Informe Técnico. GA5-220501121-AA2-EV01-FERNANDO RAVELO
Informe Técnico. GA5-220501121-AA2-EV01-FERNANDO RAVELO
Informe Técnico. GA5-220501121-AA2-EV01-FERNANDO RAVELO
24 de agosto 2022
Introducción
Cada vez son más las organizaciones que se benefician al adoptar la
integración continua y la entrega continua, conocidas como CI/CD, como un
elemento clave para darle agilidad, velocidad y mayor calidad al software que
transforma las empresas.
En algunos casos es posible que los miembros más antiguos del equipo de
trabajo se resistan a la adopción de CI/CD en el flujo de trabajo, pues la
necesidad de reorganizar algunos roles, de utilizar nuevas herramientas y de
poner al descubierto debilidades técnicas llevan a que se perciba el cambio
como una amenaza.
Por esta razón es fundamental definir desde el inicio del proyecto la forma en
que la metodología CI/CD puede beneficiar al equipo, teniendo claridad
respecto a cuáles serán las acciones, responsabilidades y funciones de cada
uno de los integrantes del mismo.
Ventajas
A continuación, se indican algunas de las ventajas más notables que
proporciona la integración continua:
DevOps
Caso de uso
El siguiente caso de uso hipotético ilustra cómo dos desarrolladores de
software pueden utilizar la integración continua para mejorar su proceso de
DevOps.
Servidores
Un servidor de integración continua es una herramienta de software que
centraliza todas sus operaciones de integración continua y proporciona una
plataforma fiable y estable para que pueda crear sus proyectos. Puede
configurar y ajustar servidores de CI para crear varios proyectos para
distintas plataformas. Un servidor de integración continua modela y visualiza
fácilmente flujos de trabajo complejos (lo que permite la entrega continua) y
proporciona una interfaz intuitiva para crear interconexiones de entrega
continua. Un servidor de integración continua ofrece la posibilidad de hacer
lo siguiente:
Entrega continua
La 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.
Mejores prácticas
A continuación, se incluye un conjunto de prácticas recomendadas que
se deben tener en cuenta al utilizar la entrega continua:
Haga que todos los cambios sean liberables: si usa la entrega
continua para hacer que todos los cambios sean liberables, debe
incluir documentación de usuario, runbooks de operaciones e
información sobre lo que ha cambiado, con fines de auditoría.
Adopte el desarrollo basado en troncos: la entrega continua se basa
en la integración continua . Evite las ramificaciones que retrasan la
integración tanto como sea posible para que cada cambio se
construya, pruebe e implemente juntos para obtener la
retroalimentación más rápida.
Entregue a través de una canalización automatizada: para
implementar con éxito la entrega continua, necesita una canalización
de entrega automatizada bien construida para garantizar que todos
los lanzamientos de código se muevan a sus entornos de prueba y
producción de manera consistente.
Automatice tanto como sea posible: en la entrega continua, debe
automatizar tantos procesos como sea posible en su ciclo de vida de
desarrollo de software para crear una canalización de entrega buena
y confiable, no solo para compilaciones e implementaciones de
código, sino también para la creación de nuevos entornos de
desarrollo.
Apunte a no tener tiempo de inactividad: para garantizar la
disponibilidad de la aplicación mientras realiza actualizaciones de
entrega continuas y frecuentes, cuando envía una nueva función a
producción, primero debe validarla antes de implementarla en la
instancia de aplicación de ejecución pública.
Lanzamiento en la granularidad de la prueba: si dos partes de un
sistema deben probarse juntas, deben publicarse juntas para que
sepa que las partes de su sistema son compatibles. Las herramientas
de automatización de lanzamientos son buenas para coordinar este
tipo de entrega. Alternativamente, desacople completamente.
Tubería/marco continuo
Para aprovechar los beneficios de la entrega continua, necesita otros
elementos del marco continuo, como exploración continua, integración
continua, implementación continua y lanzamiento bajo demanda.
Cuando usa etapas de canalización de entrega continua, debe dividirlas en
trabajos separados, que son unidades de ejecución dentro de una etapa:
Las herramientas de entrega continua de código abierto que puede usar para
una sólida canalización de entrega continua incluyen:
Jenkins
Concurso CI
Espinaquer
Travis CI
GoCD
CI de GitLab
Ágil y DevOps