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, su plataforma de Microsoft Azure ofrece plantillas como DevOps template:
Veamos cómo podemos empezar con DevOps dentro 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