kantver - Fotolia
Cómo desmitificar el proceso DevOps, paso a paso
Si bien las diferentes definiciones y los giros de marketing de proveedores pueden hacer difícil explicar el significado de DevOps, existen principios y procesos concretos que sustentan la metodología.
DevOps rompe los silos entre los equipos de desarrollo y operaciones de TI. Como metodología, permite que una organización de TI sirva a sus clientes, asegure su software y lleve las aplicaciones al mercado de manera más eficiente.
Pero, a medida que DevOps crece en popularidad, también lo hace el marketing a su alrededor: Cada integrador de sistemas y proveedor de herramientas le da un giro único a DevOps para atraer clientes, lo que puede ofuscar la verdadera definición.
El proceso DevOps exige una estrecha colaboración entre los equipos de operaciones y desarrollo en cada fase del ciclo de vida del servicio, desde el diseño hasta el desarrollo y la producción. No puede conectarse en línea y pedir DevOps. No es un producto; es un movimiento cultural. La falta de silos entre los equipos necesariamente cambia las relaciones de trabajo entre ellos para generar confianza y beneficio mutuo.
Veamos los principios básicos de DevOps y las etapas clave que comprenden el proceso DevOps.
Principios de DevOps
Hay siete principios que forman la base de DevOps:
- Mantener el control de versiones en todos los artefactos de producción: tanto los equipos de desarrollo como de operaciones de TI deben colocar sus artefactos de producción bajo un sistema de control de versiones centralizado.
- Implemente CI/CD: Los equipos entregan actualizaciones de software y parches de forma continua, en lugar de hacerlo en un plazo determinado por el calendario.
- Automatice las pruebas de aceptación de las especificaciones ejecutables del comportamiento del sistema.
- Haga cumplir los procesos de revisión por pares: Los evaluadores, desarrolladores y administradores de sistemas deben revisar los cambios de producción en colaboración a través de un enfoque documentado y sistemático.
- Cree una cultura de alta confianza: Nadie debe tener miedo de hacer preguntas difíciles, discutir y ser responsable, porque el miedo a represalias ya no existe.
- Instale prácticas de monitoreo proactivo en el entorno de producción: Brinde a las partes interesadas y a todas las demás partes involucradas informes personalizados y alertas basadas en la configuración de las herramientas de monitoreo que tiene implementadas.
- Fomentar las relaciones de beneficio mutuo entre desarrolladores y operaciones: Todo el mundo está en un equipo. Ni desarrollo ni operaciones de TI pueden tener éxito por sí mismos.
Para alcanzar estos principios en la práctica, a menudo se requiere que la organización contrate a una parte externa para poner a sus equipos de TI en el camino correcto. En cualquier caso, ningún equipo o parte interesada puede alcanzar estos niveles solo. Los equipos de gestión deben establecer un tono de colaboración para todos los involucrados.
Descomponer el proceso DevOps
DevOps implica una canalización de entrega que permite a los equipos desarrollar y lanzar software continuamente y realizar actualizaciones de seguridad y características necesarias sin demora. Algunos profesionales de la industria utilizan el término bucle infinito DevOps para describir el proceso continuo de integración y desarrollo. No hay cascada o fase final cuando la iteración del producto es continua.
Sin embargo, depende de cada organización individual crear su propio bucle infinito DevOps: Tómese el tiempo para planificar y documentar los procesos. Y no dude en repetir esos procesos si algo no funciona.
Para informar su propia implementación de DevOps, he aquí un vistazo a las fases clave típicamente involucradas.
Planificación. Esta etapa es donde los equipos de desarrollo y operaciones de TI, junto con otras partes interesadas, determinan el conjunto de características deseadas, acompañado de un valor de iteración y criterios para cada fase del proyecto. Los desarrolladores, los administradores de sistemas, la administración de productos, el personal de marketing y los escritores técnicos necesitan un asiento en la mesa para colaborar en el plan de desarrollo.
Los planes del proyecto deben residir en un depósito seguro y centralizado, como Atlassian Jira o Confluence. Y cada miembro del equipo debe tener acceso a los planes del proyecto en cualquier momento, desde cualquier lugar.
Codificar y construir. Algunos equipos tratan el código y la compilación como fases separadas. Determine qué funciona mejor para su organización. No tenga miedo de repetir estos elementos de su proceso DevOps, según la disponibilidad de personal y otros factores del proyecto.
En la fase de código, los desarrolladores realizan su trabajo de codificación asignado. Cuando completan sus tareas, verifican su trabajo en un repositorio de código fuente centralizado, como GitLab o GitHub, que debe servir como la única fuente de verdad para el código.
La fase de construcción implica la recuperación de código de software del repositorio centralizado a través de una herramienta automatizada como Chef o Puppet. Esta herramienta de automatización compila el código del software en un artefacto binario, ejecuta pruebas funcionales y publica el artefacto en un repositorio centralizado compartido.
Integración continua. La integración continua es una práctica a través de la cual los equipos de desarrollo fusionan el código en un repositorio central. Las organizaciones automatizan tareas como revisiones de código, validación y pruebas.
Pruebas. Las pruebas de DevOps se equilibran en la automatización inteligente, pero no reemplazarán a los probadores humanos en el equipo de desarrollo de software. La automatización permite a los desarrolladores realizar pruebas continuas a través de herramientas como Selenium o JUnit para probar múltiples bases de código en paralelo. Una estrategia de prueba automatizada asegura que no haya fallas en la funcionalidad de una aplicación.
Las pruebas automatizadas también producen informes detallados sobre la base de código. Las partes interesadas de una organización pueden usar estos informes para obtener información sobre el ciclo de desarrollo y la madurez del producto.
Despliegue continuo. DevOps elimina el proceso manual de manos a la obra al final del ciclo de desarrollo. En cambio, con la implementación continua, cada cambio de código pasa por toda la secuencia y entra en producción automáticamente. Una organización puede programar tantas implementaciones por día como necesite, en función de los requisitos y la velocidad de su equipo.
Operaciones. En esta fase del proceso de DevOps, los administradores de TI administran el software durante la producción. Herramientas como Ansible, Puppet, PowerShell, Chef, Salt y Otter proporcionan las capacidades necesarias de gestión y recopilación de datos, así como vistas operativas de las aplicaciones de producción.
Monitoreo continuo. Los equipos de desarrollo y operaciones deben monitorear continuamente sus aplicaciones de producción. Todos los grupos necesitan una vista del estado de la aplicación. Además, instale canales de colaboración y comunicación para alertar a todos los equipos sobre problemas de producción a medida que ocurren.
Las herramientas de monitoreo populares para esta fase incluyen New Relic, Datadog, Grafana, Wireshark, Splunk y Nagios.