DevOps es una cultura de ingeniería de software que integra de forma colaborativa a los equipos de desarrollo y operaciones. Su objetivo principal es mejorar la eficiencia y la calidad del proceso de desarrollo mediante prácticas como la automatización de procesos, la integración y entrega continua (CI/CD), las pruebas y el monitoreo.
Su objetivo es eliminar las barreras y silos entre los equipos. Por lo tanto, no hace distinción entre sectores, sino que promueve la colaboración y la integración de todos los miembros del equipo en un proceso de desarrollo de software más ágil y eficiente.
¡Continúa leyendo para entender todo sobre el tema!
¿Qué se necesita para implementar DevOps?
El uso de DevOps en una empresa generalmente requiere cambios culturales significativos. Además del uso de una metodología o conjunto de herramientas, también es necesaria una filosofía que enfatice la colaboración, la comunicación, la automatización y la mejora continua.
Esto exige transformaciones en la mentalidad y el comportamiento de los equipos de desarrollo y operaciones, así como en la cultura organizacional en su conjunto. Algunos de los puntos necesarios para implementar DevOps son:
Ruptura de barreras
Para que los procesos ocurran de forma más ágil, todos deben estar integrados. Para lograrlo, es necesario romper las barreras entre los equipos de desarrollo y operaciones, promoviendo acciones de colaboración y comunicación.
Valor agregado
Los clientes son cada vez más exigentes en la búsqueda de soluciones para sus demandas. Mientras tanto, el mercado tecnológico se vuelve más competitivo.
Por lo tanto, para atender de manera asertiva, es necesario establecer un pensamiento enfocado en la agregación de valor para el cliente, que va más allá de la entrega del software.
Estandarización y eficiencia
Promover la automatización y la estandarización de procesos es otro cambio necesario con DevOps. Con esto, es posible aumentar la eficiencia y reducir los errores humanos. Aquí entra la búsqueda de la mejora del rendimiento del negocio, así como su capacidad de respuesta.
Innovación continua
Otro factor importante es incentivar la experimentación y la innovación continua. En otras palabras, establecer una cultura de aprendizaje y mejoras.
¿Cuáles son los beneficios de DevOps?
Para implementar con éxito DevOps en una empresa, es importante involucrar a toda la organización, desde la alta gerencia hasta los equipos de desarrollo y operaciones. En el caso de una transición desde un modelo más tradicional, los beneficios incluyen:
- Mejora de la calidad y confiabilidad del software, con automatización de pruebas y análisis de código;
- Mayor eficiencia y productividad, automatizando tareas repetitivas;
- Entrega de software más rápida y frecuente, a través de la colaboración;
- Reducción de costos promovida a través de la automatización y las mejoras.
¿Cómo fue el cambio de cultura en Teclógica?
Teclógica comenzó a utilizar DevOps a mediados de 2015, cuando percibimos que nuestro equipo de desarrollo y nuestros clientes necesitaban un proceso de entrega que acompañara nuestro crecimiento.
Existía una dependencia de que las personas ejecutaran una serie de procesos y procedimientos manuales, dependiendo de conocimientos específicos para que algo fuera entregado en los entornos, ya sea en desarrollo o en producción.
Para mejorar esto, comenzamos a utilizar las prácticas de DevOps y herramientas de CI/CD, como Jenkins – servidor de automatización de código abierto, para automatizar al máximo posible estos procesos, orientados a nuestro ciclo de vida de desarrollo desde la creación de ramificaciones del proyecto (branches) hasta la entrega de la solución.
Tuvimos grandes avances en este sentido, y seguimos evolucionando porque creemos en la mejora continua, con la constante evolución de las herramientas. Con el tiempo, hubo contribuciones del propio equipo, que ayudaron a perfeccionar y pulir los procesos.
Ya en 2019, realizamos la migración de la herramienta Jenkins a la herramienta GitLab, que poseía algunos recursos más adecuados a las necesidades de evolución y crecimiento. Además, fue importante para centralizar las herramientas de desarrollo y hacer que el proceso fuera más estructurado, integrado y transparente, disminuyendo la posibilidad de fallas humanas.
Jenkins atendía muy bien nuestras necesidades de CI/CD, pero GitLab, además de atender las mismas demandas perfectamente, permitió vincular y controlar todas las tareas de desarrollo de forma automática.
¿Cómo se hace DevOps hoy en la empresa?
Actualmente, GitLab es la principal herramienta de desarrollo en Teclógica, donde registramos todas las incidencias relacionadas con los productos, desde mejoras hasta errores de programas, permitiendo hacer un seguimiento de todo el flujo hasta su resolución.
Los cambios de código fuente se pueden observar fácilmente a través de la trazabilidad proporcionada por la herramienta, los cuales se agrupan en un hito (milestone) para ser enviados a producción a través de una release.
De este modo se crea un proceso que organiza una serie de complejidades de manera más transparente, volviéndose indispensable para el buen funcionamiento de DevOps.
Al tener nuestros productos en la nube de Google Cloud desde 2016, a mediados de 2020 comenzamos a utilizar Google Kubernetes Engine (GKE), que no es más que una herramienta de orquestación de servicios en contenedores para desplegar las aplicaciones. Esta práctica contribuyó directamente a la disponibilidad, elasticidad y resiliencia de las aplicaciones.
Otra innovación importante fue la adopción de Infrastructure as Code (IaC), que significa mantener los procedimientos de infraestructura, como la creación de máquinas y recursos, en el código fuente.
Esto significa que para reconstruir las máquinas y servicios basta con ejecutar scripts, sin mucha necesidad de intervención humana, disminuyendo significativamente el riesgo de fallas en este proceso, especialmente en entornos extremadamente complejos.
Además, IaC hace que todo quede documentado y versionado, facilitando la trazabilidad de los cambios. Esto también permite ejecutar procesos de fallback de forma más sencilla, lo cual resulta muy laborioso en los modelos de infraestructura tradicionales.
Conclusión
Tras todos estos ciclos de evolución, podemos concluir que DevOps dejó de ser una recomendación y se convirtió en una necesidad para quienes trabajan con desarrollo de software, respaldando la evolución ágil, continua y organizada de las aplicaciones.
DevOps no tiene una receta única: cada empresa necesita implementar un proceso ajustado a su realidad y a sus necesidades. Debe considerarse como un proceso en continua evolución, ya que las herramientas disponibles en el mercado y las necesidades del negocio cambian, generando oportunidades para adoptar mejores prácticas y soluciones.
Este proceso es también un instrumento para proporcionar un aumento en la satisfacción del cliente, contribuyendo a la estabilidad y confiabilidad en el uso de las soluciones. ¿Te gustó este contenido? Entonces sigue acompañando el blog de Teclógica.
*Este artículo fue producido por el equipo de Teclógica: Sílvio Etges, Gerente de Producto; João Batista Gianisini Junior, Arquitecto de Software, e Igor Thiago Balsanelli Martins, Analista de Infraestructura.
