Entre más DevOps… menos culpables y más sonrisas :)
Construir productos de software nunca ha sido una tarea destinada solo a programadores, el proceso de desarrollar software implica:
- Que debe funcionar en base a una serie de requerimientos.
- Que debe ser validado y verificado.
- Que debe ser desplegado en uno o más entornos de producción.
De principio a fin muy probablemente existirán discusiones y malos entendidos en cuanto a la funcionalidad necesitada del software y como se despliega.
Las primeras batallas, siempre se dan después de cada reléase de versiones internas entre los que programan (Developers) y los que prueban (Testers), las discusiones se centran en establecer de conformidad cuando un error está presente y cuando no lo está.
Después se integrará un nuevo jugador, el profesional de IT que regula la red, monitorea los servidores y en muchas ocasiones despliega proyectos de código en servidores de aplicaciones o ya más comúnmente la nube.
En esta última etapa, los tres roles (Developers, Testers, IT people) están enfocados en que el producto de software funcione de conformidad. Sin reglas o metodologías a seguir, para llegar a este punto seguramente se arrastraron muchas malas prácticas, esencialmente por estas causas:
- Mala comunicación.
- Insuficiente entendimiento de lo que se debe construir en software.
- No claridad de lo que es prioritario a probar de lo que puede ser secundario.
- Falta de especificación de componentes de software o dependencias al momento de un despliegue (deploy).
Hablando de DevOps
Las buenas prácticas terminaran ofreciendo los mejores resultados, mientras que las malas prácticas nos llevaran a resultados no satisfactorios.
DevOps es un acrónimo de: Development + Operations
DevOps no es una herramienta informática, si no más bien un proceso de desarrollo y despliegue que viene con las mejores prácticas de comunicación y colaboración implicadas en el desarrollo de software.
Busca automatizar el proceso de creación, integración, testing y despliegue con los cambios en la infraestructura que puedan existir, todo de una manera frecuente y confiable.
En síntesis, DevOps es un marco de trabajo que fomenta el desarrollo y operaciones para que trabajen de manera orquestada, colaborativa y por un objetivo en común. Pasa convertirse en un espiral virtuoso donde las tareas de desarrollo y de operaciones se dan continuidad de manera cíclica:
¿Cómo implementar DevOps?
Creo fuertemente que el primer paso para implementar DevOps en la creación de software es: La VOLUNTAD de romper el paradigma, de hacer las cosas de una manera eficiente, ser menos egoístas y pensar como equipos CORE.
Sin embargo, al no existir software de marca “DevOps”, los equipos deben tomar ventaja de lo que ya existe, sacándole el mejor provecho posible.
A continuación, expongo por áreas donde las herramientas hacen su aparición dentro de DevOps:
¿Cuáles son las buenas prácticas?
- Infraestructura como Código (Infraestructure as Code): Pasar de las personas responsables de codificación a archivos de configuración que facilitan el despliegue de proyectos de software.
- Integración Continua (Continuous Integration): Alta confiabilidad de que nuestro software funciona en todo momento.
- Pruebas Automatizadas (Automated Testing): Comprobación en todo momento de que nuestro código no contiene errores.
- Despliegue Continuo (Continuous Deployment): Siempre mantener la última versión de nuestro software.
- Gestión de Versiones (Release Management): La facilitación de poner versiones en específico en producción.
- Monitoreo de Aplicaciones (App Performance Monitoring): Como se usa nuestro software y como responde ante los usuarios.
- Pruebas de Carga (Load Testing): Para comprobar como el software se soportará con los usuarios antes de llegar a entornos de producción.
Principalmente, Microsoft ofrece Visual Studio Online para la gestión del ciclo de vida de los proyectos de Software. Veamos cómo podemos empezar con DevOps desde Microsoft Azure y Visual Studio Online con la siguiente demostración:
Sígueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand