top of page
Foto del escritorIng. Derman Alva

DevOps: Integración y Entrega Continua

Actualizado: 28 ene 2021

INDICE

1. ¿Qué es DevOps ?

2. ¿Qué no es DevOps ? 3. ¿Qué es CI ?

4. ¿Qué es CD ? 5. Fórmula DevOps 6. Diferencias entre Integración Continua (CI) y Entrega Contínua (CD) 7. ¿Cuándo y cómo se realiza la Entrega Continua (CD)?

8. ¿Cómo se puede lograr la Entrega Continua (CD)? 9. Etapas del Deployment Pipeline de DevOps 10.Herramientas utilizadas para procesos DevOps



1. ¿Qué es DevOps ?

DevOps (Development & Operations), Desarrollo y Operaciones es el ciclo de vida de extremo a extremo de un producto y se basa en un enfoque en las necesidades comerciales y objetivos a nivel de las organizaciones.




2. ¿Qué no es DevOps ?

Actualmente en nuestro país hay personas que tienen conceptos erróneos sobre DevOps, por ello les alcanzo las características de esta metodología de Desarrollo y Operaciones (DevOps):

  • DevOps no es una herramienta. DevOps ayuda a conectarse o interactuar con otras herramientas. Ayuda a impulsar los objetivos de una Organización y mejorar la comunicación durante todo el proceso.

  • DevOps no es algo nuevo, es una extensión del modelo Agil. El concepto de Ágil es adoptar cambios constantes de desarrollo, por ello, el concepto de DevOps es incorporar esos cambios de desarrollo dentro del proceso de operaciones.

  • DevOps no es un producto, es lo concerniente a la calidad de su proyecto o producto o aplicación.

  • DevOps no es una moda. Las empresas que están adoptando DevOps están implementando su código 30 veces más rápido con un 50% menos de fallas para una nueva versión. Muchas empresas ya están utilizando el enfoque DevOps o han comenzado a hacerlo.


En el desarrollo de software tradicional, un producto o proyecto tiene diferentes fases del Ciclo de vida de Desarrollo de Software (SDLC). Existen varios Modelos de Desarrollo de Software (M. Cascada, M. Espiral, M. Orientado a la Reutilización, M. Interactivo o Incremental, etc.) y todos ellos tienen fases como el desarrollo, la integración y la implementación hasta el funcionamiento y el mantenimiento.


Todas las fases están aisladas y el ciclo es costoso y lento. Un problema es que si se necesita cambios durante la fase de desarrollo, significa que está entregando software que no contiene cambios, o que necesita comenzar el proceso a la mitad, lo que tomará más tiempo y dinero. El modelo Agile ayuda a desarrollar software mediante pequeñas iteraciones y adaptará los cambios del cliente mejor que el modelo, por ejemplo, M. Cascada, lo que nos ayudará a ahorrar tiempo y dinero.

Sin embargo, con el enfoque Ágil, existe una falta de colaboración entre el equipo de desarrollo y el equipo de operaciones que ralentiza el proceso de desarrollo y lanzamiento. La metodología DevOps proporciona una mejor colaboración, entrega de software rápida y continua, con una resolución de problemas más rápida y menos problemas para solucionar.

DevOps brinda más flexibilidad con la Entrega Continua (CD), Integración Continua (CI) y la canalización de Entrega Continua (CD).

Devops ayuda a dar una versión más automatizada y menos fallas con las necesidades del cliente, utilizando herramientas efectivas y transparencia.



3. ¿Qué es Integración Continua (CI) ? Mantenimiento del Repositorio de Código

La Integración Continua (CI) se origina con un proceso extremo de desarrollo de programación. No requiere que implemente ninguna herramienta en particular, pero es útil si usa un servidor CI.

Integración Continua (CI) significa que el desarrollador puede unir constantemente su trabajo por lo que será más fácil para el equipo de probar los últimos cambios con los cambios existentes.

El diagrama de la izquierda representa el proceso de Integración Continua (CI). En este proceso, el Equipo de Desarrollo, el Equipo de Prueba y el Equipo de Configuración de Software trabajan juntos para integrar el último código y ponerlo a disposición para el próximo proceso.


4. ¿Qué es Entrega Continua (CI) ?

Automatizar la compilación y la autocomposición

Después de implementar completamente la Integración Continua (CI) en la organización,

podemos pasar al siguiente proceso que es la implementación de la Entrega Continua (CD).

El diagrama de la derecha es un esquema de Entrega Continua (CD). En este proceso, el Equipo de Desarrollo, el Equipo de Pruebas y el Equipo de Configuración de Software trabajan juntos para integrar el último código y ponerlo a disposición para la Prueba de Aceptación. Una vez que esta prueba de aceptación se haya completado con éxito, el producto estará disponible para la entrega.


La Entrega Continua (CD) tiene como objetivo principal entregar software de calidad de una manera muy rápida. Tiene la capacidad de entregar cambios continuamente, como nuevas características, correcciones de errores y cambios de configuración en las Pruebas de Aceptación de Usuario (UAT), staging y producción. También es importante para entregar trabajo en pequeños lotes con frecuencia, de modo que los problemas se pueden descubrir en una etapa temprana.



5. Fórmula DevOps



6. Diferencias entre Integración Continua (CI) y Entrega Contínua (CD)

La Entrega Continua (CD) difiere de la Integración Continua (CI), en que CI alimentará la lógica empresarial para las pruebas.

La Integración Continua (CI) realizará la prueba de la unidad (pruebas untitarias) y no podrá detectar todos los problemas de diseño. Puede entregar el código para una revisión adicional del código en este proceso.


7. ¿Cuándo se realiza la Entrega Continua (CD)?

El proceso de Entrega Continua (CD) se puede realizar cuando se presenten los siguientes escenarios:

  • Cuando el producto se puede implementar a lo largo de su ciclo de vida.

  • Cuando al trabajar en nuevas funciones, la prioridad de su equipo será mantener el software desplegable.

  • Cuando alguien hace cambios en la preparación de la producción. De esto se obtendrá comentarios rápidos y automatizados.

  • Cuando pueda implementar cualquier versión del software después de las Pruebas de Aceptación de Usuario (UAT).


8. ¿Cómo se puede lograr la Entrega Continua (CD)?

El proceso de Entrega Continua (CD) se lograr de la siguiente manera:

  1. Mediante la Integración Contínua (CI) del software desarrollado por el equipo, creando los ejecutables y realizando pruebas automatizadas para detectar cualquier problema.

  2. Poniendo el ejecutable a un entorno similar a la producción para asegurarse de que funcionará en producción. Para realizarlo, podemos usar la Deployment Pipeline.

  3. Los usuarios pueden solicitar que la versión actual de desarrollo de trabajo se implemente en producción, en cualquier momento. Esta versión ya pasó la prueba de aceptación, por lo que no debe haber objeciones por parte del equipo.

  4. Para lograr la Entrega Continua (CD) con relaciones cercanas y de colaboración entre los equipos involucrados en la entrega de software.

  5. También puede llevar a cabo una amplia automatización para todas las partes del proceso utilizando la Deployment Pipeline.



9. Etapas del Deployment Pipeline de DevOps

La canalización de las implementaciones contiene cuatro diferentes etapas, estas son las siguientes:

Compilación Automatizada: He considerado como el primer proceso la compilación automática usando herramientas en lugar de realizarlo manualmente.

Integración Continua (CI): En CI los programadores registran el código muchas veces en un repositorio previamente compartido, la Compilación Automatizada realizará esta verificación, y luego se informará al equipo si hay defectos en los emisores o errores y de esa manera se realizará una entrega de software de forma iterativa e incremental.

Pruebas Automatizadas: Una vez que se ha probado una nueva versión de la aplicación para garantizar que tenga todas las funcionalidades de calidad. Se debe de verificar también el rendimiento, la seguridad y el cumplimiento verificados.

Implementación Automatizada: Se debe de automatizar para realizar una entrega confiable de las nuevas funcionalidades a los usuarios en cuestión de minutos.

El siguiente es el diagrama que he construido con la lógica de los procesos involucrados y con algunas herramientas necesarias para el Deployment Pipeline para DevOps.


Herramientas del entorno de Integración Continua y Entrega Continua utilizadas en este Pipeline Deployment

Maven: Necesario para la gestión y construcción de proyectos Java Java: Necesario para la compilación de programas Git: Sistema de Control de Versiones donde se alojará la aplicación desarrollada Jenkins: Servidor necesario para la Integración Continua SonarQube: Herramienta necesaria para el análisis de código MySQL: Base de datos que utilizará SonarQube para realizar sus operaciones y almacenar sus resultados

OpenVAS: Herramienta necesaria para la evaluación de vulnerabilidad

Metasploit: Herramienta necesaria para las pruebas de vulnerabilidad Nexus OSS: Herramienta necesaria para la Gestión del Repositorio para los artefactos desarrollados



10.Herramientas utilizadas para procesos DevOps

Existen diferentes tipos de herramientas para facilitar el proceso DevOps. Por lo que les presento una lista de estas herramientas: 1) Gestión del código fuente: Git, Bitbucket, Subversion 2) Herramientas de Automatización de Compilación: Maven, Ant, Gradle 3) Prueba de automatización: Selenio, JUnit, Pepino 4) Integración Continua: Jenkins, Bamboo, Hudson 5) Gestión de Configuración: Marioneta, Chef, Ansible 6) Monitoreo Continuo: Nagios, Ganglios, Sensu 7) Infraestructura virtual: Amazon Web Service, Microsoft Azure, Google Cloud Platform.

Ing. Derman Alva



69 visualizaciones0 comentarios

Entradas recientes

Ver todo

Comentários


bottom of page