Al configurar proyectos en Django y WordPress noté que los pasos eran siempre los mismos. Así que me interesé por la automatización de procesos para reducir tiempo y errores humanos.
Hay casos en los que no automatizar puede ser una opción, aunque solo se me ocurren dos válidos:
En el primer caso, la no automatización se justifica porque la frecuencia para realizar estas tareas es tan baja que no se considera repetitiva. No es una necesidad.
En el segundo, cuando se trabaja directamente en el servidor, la automatización de los procesos se dificulta por el riesgo de cambiar el código. Aqui la urgencia es pensar en mejores practicas.
Teniendo esto en cuenta, a menos de que rara vez toquemos el servidor o que lo usemos como nuestro computador de escritorio, no puedo encontrar razones válidas para no automatizar.
Es mas facil encontrar razones para automatizar procesos de software:
Emplear el tiempo para operaciones que realmente importan y no para procesos repetitivos.
Configurar un nuevo servidor puede tomar, en promedio, entre una y dos horas, dependiendo de la pila que utilice. Si lo automatizamos puede reducirse el tiempo a tan solo cinco minutos o menos.
Los humanos nos equivocamos, ¡especialmente cuando estamos cansados y realizando tareas repetitivas!
Automatizar un proceso para reducir el riesgo de error humano, hace que recuperarse de los mismos sea mucho más fácil y rápido.
El tiempo de un desarrollador es costoso, por lo que es importante que se emplee en tareas adecuadas.
Si el personal requerido para mantener funcionando su infraestructura se reduce, sus costos también lo harán, a la vez que aumente la calidad de sus productos.
Automatizar no es gratis, requiere una gran inversión inicial para familiarizarse con las tecnologías y metodologías necesarias.
En mi caso comencé con scripts de BASH , luego probé AWS CodeDeploy y finalmente encontré Ansible .
Pase de configurar mis servidores manualmente, comando por comando, a configurarlos según mis parámetros con una sola tarea.
Después de estar en ese punto se puede automatizar aún más, integrando pruebas dentro de nuestro proceso y creando un flujo similar al de la siguiente imagen:
Fuente: Grégoire Détrez, original de Jez Humble.
En resumen, nuestro flujo funciona así:
Como parte de nuestro proceso en desarrollamos una herramienta que permite soportar todo nuestro proceso.
Si está interesado en automatizar los procesos en su empresa le podemos asesorar sobre cómo empezar con nuestra invención.