Chevron LeftVolver atrás

Reducción de Toil: cómo pequeñas automatizaciones liberaron a nuestro equipo de SRE/DevOps

En Monokera, tenemos un canal en Slack llamado Devops Requests, creado durante la primera generación de SREs/DevOps de la empresa. Este canal sigue siendo muy útil hasta hoy, ya que gran parte de las solicitudes que recibe el equipo de SRE llegan por allí.

El origen del término Toil

Documentada alrededor del año 1300, la palabra "Toil" tiene significados como:

[trabajo duro] toile, "tumulto, contienda violenta, batalla" (sentidos ahora obsoletos), del anglo-francés toil (siglo XIII), de toiler "agitar, revolver, enredar, retorcerse", del francés antiguo toeillier "arrastrar, ensuciar" (siglo XII). Generalmente se dice (Watkins, etc.) que proviene del latín tudiculare, "aplastar con un pequeño martillo", de tudicula "molino para triturar aceitunas, instrumento para aplastar", del latín tudes, "martillo" (del protoindoeuropeo tud-, variante de (s)teu- "empujar, golpear, golpeteo, batir"; ver obtuso).

El sentido de "trabajo duro, esfuerzo agotador, labor realizada con fatiga y dolor" (1590) proviene del verbo relacionado (ver toil (v.)) o está reforzado por la noción de una "lucha" con dificultades y obstáculos. Link de referencia

Toil en el contexto de SRE

En SRE, TOIL fue el nombre elegido por Google para definir tareas que son:

  1. Manuales
  2. Repetitivas
  3. Automatizables
  4. Sin valor duradero
  5. Que aumentan proporcionalmente al crecimiento del servicio

En Monokera, tenemos un canal en Slack llamado Devops Requests, creado durante la primera generación de SREs/DevOps de la empresa. Este canal sigue siendo muy útil hasta hoy, ya que gran parte de las solicitudes que recibe el equipo de SRE llegan por allí. Sin embargo, también concentra una gran cantidad de Toil.

Algunas de estas solicitudes son excelentes candidatas para la automatización, por ejemplo:

  • Crear y proporcionar un backup de una base de datos específica.
  • Realizar el deploy de una API en AWS API Gateway.
  • Ejecutar un comando curl en algún endpoint.
  • Correr rails tasks en entornos específicos.

En el día a día, muchas veces el equipo de SRE está enfocado en tareas más complejas que requieren mucho tiempo y concentración. Entonces, surge una de estas pequeñas solicitudes a través de Devops Requests, interrumpiendo su enfoque.

Eliminando Toil

Para eliminar el Toil, hemos tenido éxito creando pequeñas automatizaciones y poniéndolas a disposición como jobs en Jenkins. De esta manera:

  • Aumentamos la autonomía y agilidad del equipo de desarrollo: Ellos mismos pueden ejecutar la tarea cuando lo necesiten.
  • Garantizamos seguridad y control: Los jobs están configurados para ejecutar solo lo necesario y con parámetros predefinidos, sin que sea necesario que el desarrollador acceda a algún entorno.

Este aumento en agilidad impacta positivamente en todo el ciclo de desarrollo, mientras que el equipo de SRE puede dedicar más tiempo y enfoque a tareas más complejas y estratégicas.