Permítame primero darle una introducción a DevOps, sus diversas etapas y herramientas.
Entendamos primero por qué se introdujo DevOps, y luego veremos qué es exactamente DevOps.
Antes de DevOps se usaba el modelo de cascada tradicional.
Modelo de cascada:
- ¿Cuál debería ser el título para una presentación sobre la importancia de aprender codificación?
- ¿Cómo aprender realmente un idioma? Estoy aprendiendo portugués, pero no estoy seguro de cómo abordarlo. ¿Cómo voy de cero para completar la fluidez?
- ¿Qué debería aprender hoy que ayude en el futuro cercano?
- ¿Cuáles son las tres buenas artes marciales que funcionan bien juntas y que un principiante puede aprender?
- ¿Cuál es la forma más fácil de aprender inglés hablado?
Consideremos desarrollar software de una manera tradicional usando un modelo de cascada.
En el diagrama anterior verás las fases que implicarán:
- En la fase 1: se reunió el requisito completo y se desarrolló el SRS
- En la fase 2: este sistema está planificado y diseñado utilizando el SRS
- En la fase 3 – Implementación del sistema.
- En la fase 4 – Se prueba el sistema y se asegura 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 modelo de cascada
El modelo de caída de agua funcionó bien y sirvió bien durante muchos años, sin embargo, tuvo algunos desafíos. En el siguiente diagrama se resaltan los desafíos de Waterfall Model.
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 principalmente dos desafíos:
Después del desarrollo, el tiempo de implementación del código fue enorme.
La presión del trabajo en el código antiguo, pendiente y nuevo fue alta porque el tiempo de desarrollo y despliegue fue 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 el tiempo de funcionamiento de ~ 100% 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 resaltan las soluciones propuestas para 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 de código sin demora o tiempo de espera.
Un sistema donde el trabajo se realiza en el código actual, es decir, los sprints de desarrollo son cortos y bien planificados.
Desde el punto de vista de Operaciones:
El sistema debe tener al menos un 99% de tiempo de actividad.
Las herramientas y sistemas están ahí para una fácil administración.
Debería haber un sistema efectivo de monitoreo y retroalimentación.
Mejor colaboración entre desarrollo y operaciones y es un requisito común para los desarrolladores y el equipo de operaciones.
Creo que es hora de que exploremos qué es DevOps y cómo supera estos desafíos.
DevOps:
DevOps integra a los desarrolladores y al 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, control de calidad, probadores, etc. convertidos en Ingenieros de DevOps) tiene la responsabilidad de la aplicación (Software) de extremo a extremo, desde la recopilación del requisito de desarrollo, la prueba y la infraestructura. implementación, a la implementación de la aplicación y, finalmente, a la supervisión y recopilación de comentarios de los usuarios finales, y luego se implementan nuevamente los cambios.
Este es un ciclo sin fin y el logotipo de DevOps tiene mucho sentido para mí. Solo mire el diagrama anterior: ¿Cuál podría haber sido un mejor símbolo que el infinito para simbolizar DevOps?
Ahora veamos cómo DevOps se encarga de los desafíos que enfrenta el Desarrollo y las Operaciones. La siguiente tabla describe cómo DevOps aborda los desafíos de desarrollo.
Yendo más lejos, la tabla a continuación describe cómo DevOps aborda los desafíos de operaciones.
Sin embargo, todavía se estaría preguntando 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 e intente descodificarlo.
Estas herramientas han sido categorizadas en varias etapas de DevOps. Por lo tanto, es importante que primero le cuente las etapas de DevOps y luego hable más sobre las herramientas de DevOps.
DevOps Lifecycle se puede dividir ampliamente en las siguientes etapas de DevOps:
- Desarrollo continuo
- Integración continua
- Pruebas continuas
- Monitoreo continuo
- Virtualización y contenedorización.
Estas etapas son los bloques de construcción para lograr DevOps en su conjunto.
Puede consultar el video a continuación sobre las herramientas de DevOps para comprender cómo se puede implementar DevOps en la vida real. Ofrece una buena introducción a todas las herramientas principales de DevOps, como Git, Jenkins, Puppet, Docker, etc.
También te recomendaría que consultes los siguientes blogs sobre las principales herramientas de DevOps que te ayudarán a obtener mejores perspectivas:
Git
Jenkins
Estibador
Marioneta
Cocinero
Ansible