Aunque los ejecutores de GitHub Actions cubren un rango amplio de los entornos de ejecución más comunes y son los más rápidos para empezar, a veces los equipos necesitan administrar ejecutores autoalojados, como cuando la política de la organización solo permite despliegues a infraestructura alojada de forma privada desde dentro del perímetro de seguridad de la propia organización. En tales casos, los equipos pueden utilizar ejecutores de GitHub autoalojados** de Philips**, un módulo de Terraform que inicia ejecutores personalizados en instancias de spot de EC2 de AWS. El módulo también crea un conjunto de funciones Lambda que maneja la gestión del ciclo de vida (escalabilidad hacia arriba y hacia abajo) para estos ejecutores. Según nuestra experiencia, esta herramienta simplifica enormemente el aprovisionamiento y gestión de ejecutores de GitHub Actions auto-alojados. Una alternativa para los equipos que usan Kubenentes es actions-runner-controller.
Aunque los ejecutores de GitHub Actions cubren una amplia gama de los entornos de ejecución más comunes, a veces se necesita algo más específico para casos particulares, como un entorno de ejecución de un lenguaje menos común o o una configuración de hardware específica. En estas situaciones funciona mejor un ejecutor auto alojado. El ejecutor auto alojado para GitHub de Philips es un módulo de Terraform que permite levantar ejecutores personalizados en instancias spot de AWS EC2. Al auto alojar ejecutores se pierde parte de la gestión del ciclo de vida de GitHub Actions, por lo que el módulo crea una serie de Lambdas para contrarrestarlo. También se encarga de escalar los ejecutores según necesidad, lo cual contribuye a gestionar costos y permite que los ejecutores sean efímeros, una buena práctica que mejora la repetibilidad y la seguridad. Al auto alojar ejecutores hay muchas cosas que se pueden pasar por alto si se construye de cero, por lo que herramientas como ésta pueden facilitar la tarea.