GitHub Actions para Compute: un nuevo recurso para facilitar el envío de código al edge

Una de las razones de ser de Compute, que se utiliza para crear, probar y desplegar código en nuestro entorno informático sin servidores, es hacer que la experiencia del desarrollador sea lo más fluida y ergonómica posible. Como miembro del equipo de relaciones con desarrollo (Developer Relations), tengo el placer diario de crear herramientas interesantísimas que ponemos sobre nuestra propia plataforma, lo cual me permite detectar áreas en las que podemos mejorar la experiencia del personal de desarrollo. A raíz de esta necesidad, vista de primera mano, de desplegar rápidamente aplicaciones en Fastly, hoy presentamos GitHub Actions para Compute

Analicemos qué novedades aporta y en qué se diferencia de los flujos de trabajo de despliegue de VCL a los que seguramente estés acostumbrado.

Infraestructura como código = Despliegues automatizados

En el caso de los clientes que utilizan VCL para crear lógica en el edge en sus servicios de Fastly, nos das tu código VCL en formato de fuente (ya sea a través de la API o introduciéndolo en nuestra interfaz web) y nosotros ejecutamos nuestro propio compilador para convertir el VCL en C muy optimizado y seguro, y ejecutarlo como código nativo en nuestros servidores del edge.

Si bien introducir código en una interfaz de usuario web puede resultar práctico, los clientes con servicios complejos dejan atrás muy pronto la visión de VCL como «configuración» y muchos lo pasan a considerar una parte integral de la arquitectura de su sistema global. Por muy simple que sea tu servicio de Fastly, y veas o no tu configuración como software, la práctica moderna de tratar toda la infraestructura como código te puede aportar ventajas al capturarla en código y desplegarla de manera repetible y automatizable.

La solución moderna de la «infraestructura como código» se apoya principalmente en sistemas de integración continua (CI) como Travis, CircleCI, Jenkins y, más recientemente, GitHub Actions. Un servidor de CI puede ejecutar tus secuencias de comandos de pruebas y despliegue de forma automática cada vez que llega código a tu repositorio, de manera que puedes desplegar tus servicios mediante la API o la interfaz de línea de comandos (CLI) de Fastly.

Nuestros clientes que utilizan VCL tienen una forma de gestionar la infraestructura como código que es la más habitual en el sector, de la mano de nuestro proveedor Terraform. Durante años, los equipos han utilizado este método para desplegar modificaciones en los servicios de Fastly, pero Compute trae algunos cambios.

Compute añade un paso de compilación

Con Compute, tienes que compilar el código en un archivo binario de Wasmantes de enviarlo a Fastly. La CLI de Fastly ofrece comandos para hacerlo, y se puede utilizar en tus máquinas de desarrollo o en tu entorno de CI para compilar y desplegar tus aplicaciones de Compute.

Esto significa que, para automatizar despliegues, debes ordenar a la plataforma de CI que instale la CLI de Fastly, compile el código y almacene de forma segura los tokens de autenticación que dan acceso a tu cuenta de Fastly.

Llega GitHub Actions para Compute

GitHub Actions se está convirtiendo en uno de los sistemas de CI más populares a raíz de su facilidad de uso y de integración con repositorios de código fuente de GitHub. Sin ir más lejos, el personal de desarrollo de loveholidays ya crea sus flujos de trabajo de despliegue de Compute en Actions.

El atractivo de GitHub Actions reside en su enorme biblioteca de flujos de trabajo de código abierto creados por la comunidad, a la que GitHub ha sabido sacar provecho con el Marketplace, que ayuda a los desarrolladores a descubrir acciones relevantes para sus proyectos. Nunca había sido tan fácil implementar una herramienta de terceros en tus flujos de trabajo de CI.

Es por esta razón que hemos creado GitHub Actions para Compute. Comparado con un método de CI tradicional, Actions te permite pasar con suma facilidad de un despliegue manual a un flujo de trabajo de despliegue totalmente automatizado, lo cual te ofrece una gran ventaja, y es que ya puedes utilizar patrones conocidos de despliegues de aplicaciones web para enviar lógica del servidor al edge, más cerca del usuario. 

Pruébalo tú mismo

Si quieres utilizar GitHub Actions para habilitar despliegues automáticos en tu propia aplicación de Compute, a continuación te explicamos cómo configurarlo para proyectos de Rust:

  1. Crea una configuración de flujo de trabajo en la carpeta .github/workflows con los siguientes contenidos:

name: Deploy Application
on:
  push:
    branches: [main] # change to your default branch name
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
  - name: Install Rust toolchain
      uses: actions-rs/toolchain@v1
      with:
          toolchain: 1.49.0 # current Rust toolchain for Compute@Edge
          target: wasm32-wasi # WebAssembly target
    - name: Deploy to Compute@Edge
      uses: fastly/compute-actions@beta
      env:
        FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}

Esta configuración del flujo de trabajo indica a GitHub que recupere tu repositorio, instale Rust y luego compile y despliegue tu aplicación de Rust en Compute.

2. Añade tu token de la API de Fastly como variable bajo el nombre de FASTLY_API_TOKEN en «Secrets» en la configuración del repositorio. Deberá tener permiso para crear y activar nuevas versiones del servicio.

3. Confirma el cambio y envíalo a la rama principal de tu repositorio.

4. Ve a la pestaña «Actions» de tu repositorio y supervisa los registros. Si la compilación y el despliegue han salido bien, deberías ver el dominio del servicio de Fastly impreso en la consola.
Nota: En la actualidad, mientras Compute esté en disponibilidad limitada, la CLI de Fastly requiere una versión concreta de la cadena de herramientas de Rust. Si alguna versión futura de la CLI cambiase la versión de la cadena de herramientas, deberías actualizar el flujo de trabajo de acciones para que coincida.

Con vistas al futuro

Esperamos mejorar esta versión para ofrecer cada vez más herramientas de integración continua, como pruebas, ramas de vistas previas y estados de confirmación. Ponte en contacto con nosotros utilizando el apartado de seguimiento de problemas o el formulario de comentarios del Developer Hub si detectas algún problema o te gustaría contar con una funcionalidad nueva.

Kailan Blanks
Senior Software Engineer, Relaciones con Desarrollo
Fecha de publicación:

4 min de lectura

Comparte esta entrada
Kailan Blanks
Senior Software Engineer, Relaciones con Desarrollo

Como Software Engineer del equipo de Relaciones con Desarrollo de Fastly, Kailan se encarga de las herramientas y los contenidos orientados al cliente. Entre sus tareas está dirigir el mantenimiento del Developer Hub de Fastly y diversos proyectos de código abierto relacionados con Compute@Edge, nuestro entorno informático sin servidores. En sus ratos de ocio, es posible que te lo encuentres en Cornualles explorando los rincones de la campiña a bordo de su monopatín eléctrico.

¿List@ para empezar?

Ponte en contacto o crea una cuenta.