Ya puedes probar tu código de Compute en Fastly Fiddle

Los clientes de Fastly llevan años utilizando nuestra herramienta Fiddle para probar sus ideas de lógica en el edge en VCL. Con la llegada de Compute, nuestra red de edge computing se hizo accesible a cualquier lenguaje que compilase en WebAssembly, y ahora también puedes escribir código de Compute en Fiddle.

Compute, que ya está disponible para todo el mundo, supone muchos cambios con respecto a VCL, por lo que nuestro enfoque para uno y otro en Fiddle es totalmente distinto. Ya ofrecemos un servidor local que puedes ejecutar en tu propia máquina para probar programas de Compute, así que lo primero que los diferencia es la razón por la que Fiddle resulta útil.

Motivos para usar una herramienta Fiddle para Compute

Aunque sea posible probar el código de forma local, contar con una herramienta Fiddle para Compute aporta muchas ventajas. Una de las más importantes es que el código de ejemplo visible en developer.fastly.com puede ejecutarse en la propia documentación. O incluso en una entrada del blog como esta. ¿Quieres verlo? Solo tienes que hacer clic en RUN:

Fiddle no solo te permite probar ejemplos de código al instante; también es una gran herramienta para compartir. Los clientes que tengan problemas o dudas, pueden enviarlos en forma de fiddle a nuestro experto e incansable equipo de soporte, que también podrá usar la herramienta Fiddle para responder con soluciones e ideas. El linting que incorpora Fiddle y su capacidad de respuesta inmediata garantizan que el código compartido funcione correctamente, por lo que no se pierde tiempo copiando y pegando errores o signos de punto y coma mal colocados.

El código de Compute es diferente

Aunque los casos de uso sean prácticamente los mismos, la estructura de código de Compute es muy distinta a la de VCL. Los servicios VCL utilizan una máquina de estados que permite ejecutar el código del cliente en una serie de «subrutinas» predefinidas, que son como una especie de ventanas o enlaces que proporcionan acceso a la petición y al ciclo de respuesta en diversas fases. Si no escribes nada de código VCL, tu servicio seguirá funcionando, aunque simplemente como un proxy inverso de almacenamiento en caché estándar. En cambio, los programas de Compute tienen un único punto de entrada y tú te haces cargo del ciclo petición-respuesta en su totalidad. Si no escribes nada de código Compute, tu servicio no se activará.

Por eso, si eliges un lenguaje que no sea VCL en Fiddle, los cuadros de subrutinas típicos de VCL desaparecerán y, en su lugar, habrá un solo campo denominado «MAIN». Ahí es donde tendrás que escribir todo el código. Como Comput requiere una cantidad mínima de código para poder funcionar, rellenamos tu fiddle de antemano con un sencillo programa reutilizable. El programa funciona, así que solo tienes que elegir tu lenguaje favorito y pulsar RUN. Uno de los objetivos de diseño más importantes de Fiddle es que, con un solo clic, ya puedes empezar con una configuración válida. Así te ahorras la parte pesada de la configuración y puedes empezar a iterar de inmediato.

Si ya has usado Fastly Fiddle para VCL, habrás visto que, cuando ejecutas una petición, te enseñamos mucha instrumentación de código que muestra cómo han procesado tu petición nuestros servidores de caché, incluidas las subrutinas de VCL que se hayan ejecutado. En Compute, el proceso tiene que ser algo distinto.

Instrumentación de Compute

Parte de lo que ocurre cuando Fastly procesa una petición es igual para Compute que para VCL. En ambos casos, puedes ver:

  • la petición de cliente y la respuesta;

  • las peticiones de origen y las respuestas;

  • el contenido emitido a un punto de conexión de registro (lo que, en el caso de Compute, incluye stdout y stderr).

Sin embargo, no podemos mostrarte «subrutinas» porque no las hay. En cambio, sí podemos mostrarte eventos de instancias, que normalmente indican que la instancia se ha iniciado y que la instancia ha finalizado. Verás que aparecen en un nuevo tono verde de lo más atractivo:

C@E fiddle2

Y, por si fuera poco, te mostramos las llamadas al host que realiza el código para desencadenar comportamientos fuera del tiempo de ejecución de Wasm; por ejemplo, reenviar una petición a un servidor de origen. Los servicios VCL no realizan llamadas al host porque ya se ejecutan como código nativo, de modo que la seguridad y la protección están garantizadas por el compilador de VCL. En Compute, las garantías de seguridad que ofrece Wasm tienen un valor añadido: podemos ver e instrumentar el momento en que el servicio llama a un recurso fuera del programa.  

En Fiddle, hemos empezado a integrar las llamadas al host compatibles con las búsquedas de geolocalización:

C@E fiddle

En los próximos meses, esperamos ampliar la funcionalidad e incluir las búsquedas en diccionarios y ACL, así como interacciones de la caché, elementos que no podíamos instrumentar correctamente en los programas de VCL.

Especificación de dependencias

Una de las principales diferencias entre VCL y Compute es que los programas de Compute pueden tener dependencias en los paquetes importados. Sin embargo, en VCL nunca se han permitido los importaciones definidas por el usuario. En Compute, las importaciones declaradas en el manifiesto del paquete se crean en el programa durante la compilación, pero Fiddle no permite importar nada en crates.io o npm por razones de seguridad. De momento, tenemos definido un conjunto de las dependencias que más se usan (puedes consultar las de JavaScript y Rust en el Developer Hub), y puedes usar cualquiera de ellas en tu código. Este enfoque es similar al que se usa en herramientas como Rust Playground.

Nos encanta el enfoque de Runkit, que permite añadir cualquier módulo npm a un boceto simplemente solicitándolo o importándolo como si ya estuviera en tu proyecto. Sin embargo, para eso es necesario realizar un análisis específico del lenguaje, algo que es mejor evitar para favorecer la compatibilidad con el mayor número de lenguajes posible. Seguimos trabajando en ello, y pronto se ofrecerá una mejor compatibilidad con más dependencias.

Mientras tanto, ya se puede utilizar Fiddle para Compute para hacer demostraciones de cientos de casos de uso.

Pruébalo ya

Si todo esto te parece interesante, ¿por qué no lo pruebas? Y si aún no usas Compute, regístrate ya y disfruta de las posibilidades de la informática sin servidores. Anímate a probarlo sin ningún tipo de compromiso, con la prueba gratuita que hemos puesto en marcha hace poco.

Andrew Betts
Head of Developer Relations
Fecha de publicación:

5 min de lectura

Comparte esta entrada
Andrew Betts
Head of Developer Relations

Andrew Bett es Head of Developer Relations en Fastly y colabora con desarrolladores de todo el mundo para contribuir a que la web sea más rápida, segura, fiable y manejable. Fundó una consultora web que acabó adquiriendo el Financial Times, dirigió un equipo que creó la pionera aplicación web HTML5 del FT y fundó la división Labs dentro de este rotativo. Además, es miembro electo del Technical Architecture Group del W3C, comité compuesto por nueve personas que proporcionan orientación sobre el desarrollo de internet.

¿List@ para empezar?

Ponte en contacto o crea una cuenta.