Saltar al contenido principal
Página

Tema 1.4 - Modelo y prácticas DevOps

DevOps requiere un ciclo de entrega que comprende planificación, desarrollo, prueba, implementación, lanzamiento y monitoreo con cooperación activa entre los diferentes miembros de un equipo.




A continuación, las explicaremos una a una cada una de las prácticas.

Agile Planning (Planificación Agil):

en esta primera etapa definimos las labores del equipo, los requerimientos necesarios a implementar en la plataforma o producto.

Podemos hacer usos de herramientas como issues para hacer un monitoreo de nuestro progreso, así como boards como Trello o Asana.

la planificación ágil organiza el trabajo en iteraciones cortas (por ejemplo, sprints) para aumentar el número de entregas. Esto significa que el equipo solo tiene objetivos de alto nivel descritos, mientras realiza una planificación detallada de dos iteraciones por adelantado. Esto permite flexibilidad una vez que las ideas se prueban en un incremento temprano del producto.

Continuous Delivery (Entrega continua):

Es una práctica de desarrollo de software mediante la cual se preparan automáticamente los cambios en el código y se entregan a la fase de producción. Fundamental para el desarrollo de aplicaciones modernas, la entrega continua amplia la integración continua al implementar todos los cambios en el código en un entorno de pruebas o de producción después de la fase de compilación. Cuando la entrega continua se implementa de manera adecuada, los desarrolladores dispondrán siempre de un artefacto listo para su implementación que se ha sometido a un proceso de pruebas estandarizado.

Con la entrega continua, todos los cambios en el código se crean, se prueban y se envían a un entorno de almacenamiento o pruebas de no producción. Pueden efectuarse varias pruebas al mismo tiempo antes de la implementación en producción


Continuos Integration (Integración continua):

Es una práctica de desarrollo de software mediante la cual los desarrolladores combinan los cambios en el código en un repositorio central de forma periódica, tras lo cual se ejecutan versiones y pruebas automáticas. La integración continua se refiere en su mayoría a la fase de creación o integración del proceso de publicación de software y conlleva un componente de automatización (p. ej., CI o servicio de versiones) y un componente cultural (p. ej., aprender a integrar con frecuencia). Los objetivos clave de la integración continua consisten en encontrar y arreglar errores con mayor rapidez, mejorar la calidad del software y reducir el tiempo que se tarda en validar y publicar nuevas actualizaciones de software.

 

Con la integración continua, los desarrolladores envían los cambios de forma periódica a un repositorio compartido con un sistema de control de versiones como Git. Antes de cada envío, los desarrolladores pueden elegir ejecutar pruebas de unidad local en el código como medida de verificación adicional antes de la integración. Un servicio de integración continua crea y ejecuta automáticamente pruebas de unidad en los nuevos cambios realizados en el código para identificar inmediatamente cualquier error.


Continuous automated testing and integration CI/CD (Pruebas e integración continúas automatizadas):

La CI/CD es un método para distribuir aplicaciones a los clientes con frecuencia mediante el uso de la automatización en las etapas del desarrollo de aplicaciones. Los principales conceptos que se atribuyen a la CI/CD son la integración continua, la distribución continua y la implementación continua. La CI/CD es una solución para los problemas que puede generar la integración del código nuevo a los equipos de desarrollo y de operaciones (también conocida como "el infierno de la integración").

En concreto, la CI/CD incorpora la automatización continua y el control permanente en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación. Este conjunto de prácticas se conoce como "canales de CI/CD", y cuenta con el soporte de los equipos de desarrollo y de operaciones que trabajan de forma conjunta y con agilidad.


Continuous deployment (Despliegue continuo):

Esta es una modalidad más avanzada de Entrega Continua en la medida en que los despliegues a producción no pasan por una validación humana, sino que están totalmente automatizados.

La única forma de detener nuevos desarrollos en producción es a través de una prueba que falla e identifica los errores. La implementación es una manera de acelerar la retroalimentación, haciendo más eficiente el trabajo del equipo.

Gracias a este tipo de despliegue, los desarrolladores pueden llegar a ver su trabajo funcionando poco tiempo después de haberlo realizado, pero requiere el mayor esfuerzo en buenas prácticas y procesos automatizados.


Continuous monitoring (Monitoreo continuo):

La etapa final del ciclo de vida de DevOps está orientada a la evaluación de todo el ciclo. El objetivo del monitoreo es detectar las áreas problemáticas de un proceso y analizar los comentarios del equipo y los usuarios para informar sobre imprecisiones existentes y mejorar el funcionamiento del producto


Diferencia entre Continuous integration - Continuous delivery - Continuous deployment:



La integración continua, el despliegue continuo y la entrega continua son como vectores que tienen la misma dirección, pero diferente magnitud. Su objetivo es el mismo: hacer que nuestro proceso de desarrollo y lanzamiento de software sea más rápido y robusto.

La integración continua pone un gran énfasis en la automatización de pruebas para verificar que la aplicación no se rompa cada vez que se integran nuevos compromisos en la rama principal.

La entrega continua es una extensión de la integración continua para garantizar que pueda lanzar nuevos cambios a sus clientes rápidamente de una manera sostenible. Esto significa que además de automatizar sus pruebas, también ha automatizado su proceso de lanzamiento y puede implementar su aplicación en cualquier momento haciendo clic en un botón.

El despliegue continuo va un paso más allá que la entrega continua. Con esta práctica, cada cambio que pasa todas las etapas de su proceso de producción se libera al cliente. No hay intervención humana, y solo una prueba fallida evitará que se implemente un nuevo cambio en la producción


Última modificación: lunes, 11 de mayo de 2020, 21:22