Hoy tenemos el agrado de anunciar que Cloudflare Snippets ya está disponible en la versión Alpha. En las próximas semanas, habilitaremos el acceso a nuestra lista de espera.
¿Qué es Snippets?
En los últimos dos años, hemos lanzado una serie de nuevos productos relacionados con reglas, como Reglas de transformación, Reglas de caché, Reglas de origen, Reglas de configuración y Reglas de redireccionamiento. Con estos nuevos productos, los clientes tienen más control sobre cómo procesamos su tráfico en nuestra red global. Y, hasta el momento, han tenido una gran aceptación. Sin embargo, aún hay ocasiones en las que nuestros clientes necesitan hacer mucho más que lo que les permiten las funcionalidades predeterminadas. Y esto no solo se trata de agregar un encabezado HTTP, sino de realizar cálculos avanzados para crear el contenido
Para estos casos, Cloudflare Snippets viene al rescate. Los Snippets son pequeños fragmentos del lenguaje JavaScript creado por el usuario que son ejecutados por Cloudflare antes de que tu sitio web, API o aplicación esté disponible para el usuario. Si conoces Cloudflare Workers, nuestra sólida plataforma para desarrolladores, entonces Snippets no será ninguna novedad para ti. Para aquellos que no los conozcan, los Snippets están diseñados para que puedan crearse, probarse y desplegarse con facilidad, lo que te da la posibilidad de desplegar tus Snippets de JavaScript personalizados por toda nuestra red global en cuestión de segundos.
Aunque Snippets se haya desarrollado a partir de la plataforma Workers, existen algunas diferencias entre ellos. La primera tiene que ver con que los Snippets funcionan dentro del Motor del conjunto de reglas como una nueva fase especializada, de manera similar a las Reglas de transformación y las Reglas de caché. Esto significa que los clientes pueden seleccionar y ejecutar un Snippet basado en cualquier filtro del Motor del conjunto de reglas, lo que les da flexibilidad para ejecutar un Snippet en cada solicitud o aplicarlo de manera selectiva sobre la base de diversos criterios ofrecidos, como puntuaciones de bots específicos, país de origen o ciertas cookies.
Además, los Snippets son acumulativos por defecto, lo que les permite a los usuarios tener varios Snippets que se pueden ejecutar si cumplen determinadas condiciones. Por ejemplo, un Snippet puede agregar un encabezado HTTP y otro puede reescribir el URL; pero ambos se ejecutarán si se cumplen sus respectivas condiciones.
Ahora los usuarios tienen la flexibilidad de elegir si van a usar una regla para tareas simples sin códigos requeridos, como agregar un encabezado Cookie de respuesta básica con las Reglas de transformación, o si van a escribir un Cloudflare Snippet para una funcionalidad de cookies más compleja, como cambiar de forma dinámica el servidor o la fecha dentro del valor de la cookie. Snippets da a los clientes la posibilidad de hacer su trabajo rápidamente y sin esfuerzo dentro del ecosistema de Cloudflare, sin incurrir en gastos adicionales (aunque se aplica un límite de uso razonable).
La diferencia entre Snippets y Workers
Otra ventaja importante de Cloudflare Snippets es que está disponible para todos los planes sin costo adicional. Esto les da a los usuarios la posibilidad de migrar sus cargas de trabajo simples desde soluciones heredadas, como VCL, hacia la plataforma de Cloudflare, lo que reduce de forma activa sus gastos mensuales.
Snippets está disponible para los usuarios de los planes Free, Pro, Business y Enterprise. Los usuarios del plan Free tienen acceso a cinco Snippets por zona, mientras que los planes Pro, Business y Enterprise ofrecen 10, 25 y 50 Snippets por zona, respectivamente.
En cuanto a recursos, Cloudflare Snippets es más liviano en comparación con Workers. Tienen un tiempo de ejecución máxima de 5 ms, una memoria máxima de 2 MB y un tamaño de paquete total de 32 KB. Estos límites son más que suficientes para casos de uso frecuentes, como la modificación de encabezados HTTP, la reescritura de URL y las tareas de direccionamiento de tráfico que no requieren las funciones ni los recursos adicionales que Cloudflare Workers tiene para ofrecer.
Asimismo, Snippets se ejecuta antes que Workers, lo que significa que los usuarios podrán mover una lógica simple de Cloudflare Workers a Snippets o usar Cloudflare Workers y sus funciones para continuar modificando una solicitud. La IU Secuencia del tráfico también se ha actualizado para incorporar a Snippets, lo que permite entender con facilidad cómo todos los productos encajan entre sí y comprender cómo fluyen las solicitudes HTTP entre sí.
¿Qué puedes crear con Cloudflare Snippets?
Snippets permite a los clientes migrar sus cargas de trabajo existentes a Cloudflare. Por ejemplo, los clientes que quieran configurar una cookie dinámica en todas sus respuestas para un porcentaje de solicitudes pueden usar la función "math.random" dentro de su Snippet.
Al aprovechar el Motor del conjunto de reglas, podemos mejorar la implementación moviendo la lógica de cookie configurada a la regla, en lugar de ejecutarla en cada respuesta o de gestionarla dentro de un Snippet. Por ejemplo, si solo quiero configurar esta cookie para mi subdominio de tienda y únicamente para los clientes de Alemania o del Reino Unido, puedo crear la siguiente regla.
Este método garantiza que el Snippet se ejecute solo cuando sea necesario, para así minimizar el procesamiento y reducir la complejidad del código requerido.
Estamos entusiasmados por ver otros casos de uso que Cloudflare Snippets tiene para ofrecer a nuestros clientes.
Cómo usar Snippets
Snippets está ubicado dentro de la sección Reglas del panel de control de Cloudflare. Allí, los clientes pueden utilizar la IU para escribir, previsualizar y desplegar su primer Snippet.
Al igual que con todos los productos de Cloudflare, los usuarios pueden desplegar sus Snippets a través de la API y Terraform, lo que les permite incorporar Snippets con facilidad dentro de sus canales de integración y distribución continuas (CI/CD). El beneficio extra de agregar el Motor del conjunto de reglas les da a los usuarios la posibilidad de probar su código en un subconjunto de tráfico. Por ejemplo, pueden especificar la IP de su oficina o encabezado secreto dentro del filtro que solo se activará si el Snippet está presente. Por último, integraremos Snippets dentro del Rastreador de solicitudes de cuentas para ayudar a los usuarios a identificar de forma sencilla todas las Reglas que se estén ejecutando en una solicitud específica.
¿Cómo creamos Snippets?
Durante la Developer Week, debatimos sobre el proceso de desarrollo de Cloudflare en Cloudflare, utilizando nuestra plataforma para desarrolladores Cloudflare Workers para mejorar nuestros productos en términos de velocidad, solidez y facilidad de desarrollo. Snippets, el producto más reciente de Cloudflare, se creó a partir de Workers for Platforms.
Un Snippet es un fragmento de JavaScript definido por el usuario que, al crearse, genera una Id. de Snippet única. Posteriormente, esta Id. de Snippet se asocia con una regla definida por el usuario creada con el uso de la sintaxis Motor de regla. Cuando se crea una regla, se le asigna una Id. única. La Id. de Snippet y la Id. de Regla se vinculan entonces en una relación de uno a uno. Los clientes tienen la flexibilidad de crear varios Snippets y reglas, cada uno con su propio Id. único. Los clientes con varios Snippets pueden priorizarlos fácilmente dentro de la interfaz de usuario (IU) o a través de la API, al igual que con nuestros otros productos basados en reglas.
Cuando la solicitud de un cliente llega a Cloudflare, evaluamos los parámetros de esa solicitud frente a las reglas de Snippets creada dentro de la zona de un usuario. Si una regla de Snippets tiene una coincidencia, se agrega la Id. de Snippet única a la tabla de Snippets. Una vez que se hayan evaluado todas las reglas y se haya completado la tabla de Snippets, esta tabla pasa al servicio interno Snippets de Workers.
Este Worker recibe todas las Id. de Snippet almacenadas dentro de la tabla que se van a ejecutar en forma secuencial. El diseño del sistema ofrece la flexibilidad de mantener la sencillez de Snippets, para que los usuarios puedan administrar Snippets individuales de forma independiente y se ejecuten en la misma solicitud. Este método les da a los usuarios la libertad de controlar y ajustar Snippets individuales en lugar de fusionarlos en una sola entidad.
Cada Snippet recibe la solicitud modificada del Snippet previo y aplica en él nuevas modificaciones. Después de ejecutar las Id. de Snippet finales, la solicitud modificada resultante vuelve a pasar a FL para el próximo paso del procesamiento de la solicitud.
Snippets en acción
Estamos entusiasmados por ver los casos de uso innovadores que crearán nuestros clientes con Snippets. En las próximas semanas, empezaremos a dar acceso a la versión Alpha a aquellos que estén en la lista de espera. Si todavía no te inscribiste en la lista de espera, aún podrás registrarte con una versión Beta abierta que estará disponible en los próximos meses.