Constantemente escuchamos que existen nuevas herramientas que parecen mágicas porque soluciona TODOS nuestros problemas, y una de ellas es el Modelo DevOps y antes de implementarlo debemos saber en ¿Qué consiste? ¿Cómo se usa?¿Qué requiere? ¿Qué problemas resuelve? y principalmente sabemos ¿Cuál es el problema que tenemos o queremos resolver?
Comencemos por definir qué es y que no es DevOps
¿Qué es DevOps?
• Una practica
• Una cultura y mentalidad
• Colaboración
• Operaciones Agiles
• Enfoque de software para las operaciones
• Rápida entrega de TI
¿Qué NO es DevOps?
• Un equipo permanente
• Un profesional
• Sólo herramienta de software
• Sólo infraestructura de código
• Un ingeniero de sistemas
• Gestión de servicios informáticos estándar
Entre los Fundamentos de Devops se encuentran
Desarrollo Agil (Agile Develoment):
El desarrollo de software ágil es un concepto usado en el desarrollo de software para
describir las metodologías de desarrollo incrementales (Cohen, Lindvall & Costa, 2003).
Integración Continua (Continuous Integration):
La integración continua es el nombre que se le da a la automatización de los labores
de compilación, test y análisis estático del código.
Esto se puede conseguir con integración continua a todo lo que hay entre un script que
periódicamente ejecuta un trabajo y servicio online para poder detectar fallos cuanto
antes.
Pruebas Continuas (Continous Testing):
Las pruebas continuas son conocidas por tener la capacidad de aprovechar las pruebas
automatizadas como una parte fundamental de la entrega de pipeline del software, a fin de
obtener una retroalimentación en todo el ciclo de vida del desarrollo del software.
El desarrollo de software detecta de principio a fin los probelmas antes para darles
solución de manera oportuna.
Entrega Continua (continous Delivery):
La entrega continua es un proceso de punta a punta que abarca el ciclo entero de
construcción, prueba, despliegue y liberación. Para que la integración continua sea una
realidad, debemos automatizar gran parte de nuestras actividades.
Un buen ejemplo sería la Parábola de “Los Seis Sabios Ciegos y El Elefante” la podemos comparar con lo que podría pasar al tratar de implementar de forma parcial o que entre los miembros del equipo no tengan comunicación. Cada integrante podría aplicar las practicas correspondientes a su área bajo el modelo DevOps, sin embargo, las partes del elefante de manera individual no hacen un elefante hasta que están unidas.
No tendrán DevOps hasta que todas las partes estén operando de forma integrada.
Al implementar DevOps pasamos de tener desarrollos con tiempos de entrega grandes en los cuales se requiere de procesos manuales propensos a fallas, retrasos, retrabajos. A usar estos esfuerzos en acciones más productivas, los desarrollos de funcionalidades puntuales ya estarían probados, integrados y disponibles en tiempos cortos y con poca o nula inversión de recursos valiosos.
Una parte muy importante para poder aplicar DevOps y son las pruebas automáticas, es razonable tener desconfianza al confiarle la calidad de nuestro trabajo a una máquina, pero usando las herramientas adecuadas de forma correcta podemos asegurar la calidad de los procesos automáticos, disminuir el esfuerzo humano y tiempo de ejecución para cada entrega.
Para entender mejor este tema, te dejamos un E-book realizado en colaboración con uno de nuestros expertos.