general,

DevOps y la automatización

DevOpsGT DevOpsGT Follow Aug 21, 2023 · 3 mins read
DevOps y la automatización
Share this

Hoy por hoy la automatización es una tarea implícita en las tareas de DevOps, una buena aplicación puede resultar en menores tiempos, reducción del time-to-market, aumento de la calidad y menor error humano.

Fases de automatización

Se puede integrar automatización a varias actividades y en cada una la estrategia es diferente:

  • Desarrollo: Empezando en esta etapa, herramientas de administración del código (ej: GIT) permiten gestionar y llevar el control de cambios en el código.
  • Integración: Cuando el código está listo se realiza entonces la integración, la cuál se da bien en herramientas de automatización de procesos (ej: Jenkins) lo que incluso permite identificar problemas en esta etapa temprana.
  • Testing: Los casos de prueba se pueden automatizar con herramientas de diferentes tipo (ej: Selenium) que nos ayudan a repetir rápidamente y ahorrar tiempo.
  • Documentación: Incluso la documentación se puede automatizar con la ayuda de herramientas que analizan el código (ej: Scriversi) para mantener los documentos al día.
  • Monitoreo: Finalmente una vez la aplicación está en producción podemos monitorearla (ej: Prometheus) para poder identificar en tiempo casi real inconvenientes que sucedan.

El objetivo siempre de estas herramientas es minimizar la intervención humana del proceso con el objetivo de aumentar el aprovechamiento del tiempo y la manualidad.

Estrategias de automatización en DevOps

Con lo anterior se evidencia las fases que una implementación de DevOps considera para abarcar los procesos y a las áreas involucradas en la construcción del producto:

  1. Integración Continua/Entrega Continua (CI/CD): Con la integración continua, los developers pueden aportar su código constantemente en un equipo e identificar problemas tempranamente. Mientas que con la entrega continua se trabaja en tomar ese código y volverlo un artefacto que pueda instalarse y probarse en los ambientes correctos. De nuevo, Jenkins es una herramienta popular para poder construir este tipo de implementación para permitir a los equipos automatizar esta fase.

  2. Infraestructura como código (IAC): Esta tecnología permite construir scripts que nos ayudan a construir repetidamente nuestros recursos de infraestructura, de una forma automática y predecible. Terraform es un ejemplo de tecnología que podríamos adoptar para poder automatizar y echar a andar una solución de este tipo.

  3. Administración de la configuración: Con esta estrategia se busca mantener una aplicación en un estado predecible repetidamente, en cualquier momento. Ansible es un ejemplo de herramienta que podríamos utilizar para lograr llevar nuestro sistema a un estado deseado, ejecutando tanto tareas de aprovisionamiento e incluso de instalación y mantenimiento.

  4. Monitoreo y Logging: Esta estrategia busca recopilar logs que nos permitan entender el comportamiento y el estado de los componentes de nuestro sistema y mas aún, emitir alertas si estos se salen de los valores permitidos. Prometheus como se mencionó anteriormente es un buen ejemplo de herramienta que nos ofrece capacidades de monitoreo y alertas, siendo incluso open-source.

Resumen

Es importante al momento de plantear la estrategia DevOps de tu proyecto considerar que no es sólamente de instalar herramientas, sino que dichas herramientas deben poder darnos un valor en su uso, ya sea la reducción de nuestro tiempo o la mejor de nuestros procesos. Un error común es cree que la herramienta nos solucionará el problema, en realidad hay que saber aprovecharla. En DevOpsGT podemos apoyarte en tu estrategia DevOps, si tienes cualquier duda contactanos a info@devops.gt.

DevOpsGT
Written by DevOpsGT
Aprende sobre ideas, tecnologías y herramientas para tus tareas de devops