Vamos a entender por qué DevOps se introdujo primero, y luego veremos qué es exactamente DevOps.
Antes de DevOps se usaba el modelo de cascada tradicional.
Modelo de cascada:
Consideremos el desarrollo de software de forma tradicional utilizando un modelo de cascada.
En el diagrama anterior verá las fases que implicará:
- En la fase 1: se reúne el requisito completo y se desarrolla SRS
- En la fase 2: este sistema está planeado y diseñado utilizando el SRS
- En la fase 3: se lleva a cabo la implementación del sistema
- En la fase 4: el sistema se prueba y se garantiza su calidad
- En la fase 5: el sistema se implementa para los usuarios finales
- En la fase 6: se realiza el mantenimiento regular del sistema
Desafíos del modelo de cascada
El modelo Water-fall funcionó bien y funcionó bien durante muchos años, sin embargo, tuvo algunos desafíos. En el siguiente diagrama, se destacan los desafíos del modelo de cascada.
En el diagrama anterior, puede ver que tanto el desarrollo como las operaciones tuvieron desafíos en el modelo de cascada. Desde el punto de vista de los desarrolladores, hubo dos desafíos principales:
Después del desarrollo, el tiempo de implementación del código fue enorme.
La presión del trabajo sobre el código antiguo, pendiente y nuevo era alta porque el tiempo de desarrollo e implementación era alto.
Por otro lado, Operaciones tampoco estaba completamente satisfecho. Hubo cuatro desafíos principales que enfrentaron según el diagrama anterior:
Fue difícil mantener ~ 100% de tiempo de actividad del entorno de producción.
Las herramientas de automatización de infraestructura no fueron muy afectivas.
El número de servidores a monitorear sigue aumentando con el tiempo y, por lo tanto, la complejidad.
Fue muy difícil proporcionar comentarios y diagnosticar problemas en el producto.
En el siguiente diagrama se destaca la solución propuesta a los desafíos del Modelo de Cascada.
En el diagrama anterior, las soluciones probables para los problemas que enfrentan los desarrolladores y las operaciones se resaltan en azul. Esto establece las pautas para una estrategia de desarrollo de software ideal.
Desde el punto de vista de los desarrolladores:
Un sistema que permite la implementación del código sin demora ni tiempo de espera.
Un sistema en el que el trabajo se realiza en el código actual, es decir, los sprints de desarrollo son cortos y están bien planificados.
Desde el punto de vista de Operaciones:
El sistema debe tener al menos un 99% de tiempo de actividad.
Existen herramientas y sistemas para facilitar la administración.
El sistema eficaz de monitoreo y retroalimentación debe estar allí.
Mejor colaboración entre desarrollo y operaciones y es un requisito común para el equipo de desarrolladores y operaciones.
Supongo que es hora de que exploremos qué es DevOps y cómo supera estos desafíos.
DevOps:
DevOps integra desarrolladores y equipo de operaciones para mejorar la colaboración y la productividad.
De acuerdo con la cultura de DevOps, un solo grupo de ingenieros (desarrolladores, administradores de sistemas, QA’s, probadores, etc. convertidos en ingenieros de DevOps) tiene la responsabilidad de extremo a extremo de la aplicación (software) desde el cumplimiento del requisito hasta el desarrollo, las pruebas y la infraestructura. despliegue, despliegue de aplicaciones y, finalmente, monitoreo y recopilación de comentarios de los usuarios finales, luego nuevamente implementando los cambios.
Este es un ciclo interminable y el logotipo de DevOps tiene mucho sentido para mí. Solo mire el diagrama anterior: ¿Qué podría haber sido un símbolo mejor que el infinito para simbolizar DevOps?
Ahora veamos cómo DevOps se ocupa de los desafíos que enfrentan el Desarrollo y las Operaciones. La siguiente tabla describe cómo DevOps aborda los desafíos de desarrollo.
Yendo más allá, la tabla a continuación describe cómo DevOps aborda los desafíos de Ops.
Sin embargo, aún se preguntará cómo implementar DevOps. Para acelerar y actualizar el proceso de DevOps, además de aceptarlo culturalmente, también se necesitan varias herramientas de DevOps como Puppet, Jenkins, GIT, Chef, Docker, Selenium, AWS, etc. Pruebas, implementación continua, monitoreo continuo para entregar un software de calidad al cliente a un ritmo muy rápido.
Ahora eche un vistazo al siguiente diagrama de DevOps con varias herramientas de DevOps de cerca e intente decodificarlo.
Estas herramientas se han categorizado en varias etapas de DevOps. Por lo tanto, es importante que primero le cuente sobre las etapas de DevOps y luego hable más sobre las herramientas de DevOps.
El ciclo de vida de DevOps se puede dividir en términos generales en las siguientes etapas de DevOps:
- Desarrollo continuo
- Integración continua
- Pruebas continuas
- Monitoreo continuo
- Virtualización y Containerización
Estas etapas son los bloques de construcción para lograr DevOps en su conjunto.
Puede consultar el siguiente video sobre las herramientas de DevOps para comprender cómo se puede implementar DevOps en la vida real. Da una buena introducción a todas las principales herramientas de DevOps, como Git, Jenkins, Puppet, Docker, etc.
A continuación se encuentran los videos sobre todas las herramientas principales de DevOps, a saber: Git, Docker, Jenkins, Puppet, Chef, Ansible.
También le recomendaría que consulte los siguientes blogs sobre las principales herramientas de DevOps que lo ayudarán a obtener mejores conocimientos:
Git
Jenkins
Estibador
Marioneta
Cocinero
Ansible