Referencia: cómo funciona el proceso de Integración Continua

Hoy analizaremos la historia del término, discutiremos las dificultades de implementar CI y brindaremos varias herramientas populares que lo ayudarán a trabajar con él.

Referencia: cómo funciona el proceso de Integración Continua
/flickr/ Altug Karakoc / CC BY / Foto modificada

plazo

La integración continua es un enfoque para el desarrollo de aplicaciones que implica compilaciones frecuentes de proyectos y pruebas de código.

El objetivo es hacer que el proceso de integración sea predecible y detectar posibles fallos y errores en una etapa temprana, para que haya más tiempo para solucionarlos.

El término Integración Continua apareció por primera vez en 1991. Fue introducido por el creador del lenguaje UML. Grady Butch (Grady Booch). El ingeniero introdujo el concepto de CI como parte de su propia práctica de desarrollo: método booch. Implicaba un refinamiento incremental de la arquitectura al diseñar sistemas orientados a objetos. Gradi no describió ningún requisito para una integración continua. Pero más adelante en su libro “Análisis y diseño orientado a objetos con aplicacionesDijo que el objetivo de la metodología es acelerar la liberación de “liberaciones internas”.

historia

En 1996, los creadores de la metodología adoptaron la CI. Programación extrema (PX) - Kent Beck (Kent Beck) y Ron Jeffries (Ron Jeffries). La integración continua se convirtió en uno de los doce principios clave de su enfoque. Los fundadores de XP aclararon los requisitos de la metodología CI y señalaron la necesidad de construir el proyecto varias veces al día.

A principios de la década de 2000, uno de los fundadores de Agile Alliance comenzó a promover la metodología de integración continua. Martín Fowler (Martín Fowler). Sus experimentos con CI llevaron a la primera herramienta de software en esta área: CruiseControl. La utilidad fue creada por el colega de Martin, Matthew Foemmel.

El ciclo de compilación en la herramienta se implementa como un demonio que verifica periódicamente el sistema de control de versiones en busca de cambios en el código base. La solución se puede descargar hoy mismo. distribuido por bajo una licencia tipo BSD.

Con la llegada del software para CI, cada vez más empresas comenzaron a adoptar esta práctica. Según una investigación de Forrester [página 5 informar], en 2009, el 86% de las cincuenta empresas de tecnología encuestadas utilizaron o implementaron métodos de CI.

Hoy en día, la práctica de la Integración Continua es utilizada por organizaciones de una amplia variedad de industrias. En 2018, un gran proveedor de nube realizó una encuesta entre especialistas en TI de empresas de los sectores de servicios, educación y finanzas. De los seis mil encuestados, el 58% dijo que utiliza herramientas y principios de CI en su trabajo.

¿Cómo funciona esto

La integración continua se basa en dos herramientas: un sistema de control de versiones y un servidor CI. Este último puede ser un dispositivo físico o una máquina virtual en un entorno de nube. Los desarrolladores cargan código nuevo una o más veces al día. El servidor CI lo copia automáticamente con todas las dependencias y lo construye. Luego, ejecuta pruebas unitarias y de integración. Si las pruebas pasan con éxito, el sistema CI implementa el código.

El diagrama general del proceso se puede representar de la siguiente manera:

Referencia: cómo funciona el proceso de Integración Continua

La metodología CI impone una serie de requisitos a los desarrolladores:

  • Corrija los problemas inmediatamente. Este principio llegó a CI a partir de la programación extrema. Corregir errores es la máxima prioridad de los desarrolladores.
  • Automatizar procesos. Los desarrolladores y gerentes deben buscar constantemente cuellos de botella en el proceso de integración y eliminarlos. Por ejemplo, a menudo hay un cuello de botella en la integración. vueltas pruebas.
  • Realizar asambleas con la mayor frecuencia posible. Una vez al día para sincronizar el trabajo del equipo.

Dificultades de implementación

El primer problema son los altos costos operativos. Incluso si una empresa utiliza herramientas de CI abiertas (de las que hablaremos más adelante), igual tendrá que gastar dinero en soporte de infraestructura. Sin embargo, las tecnologías en la nube pueden ser la solución.

Simplifican el montaje de configuraciones informáticas de diferentes escalas. Plus de la empresa ser pagado sólo por los recursos utilizados, lo que ayuda a ahorrar en infraestructura.

Según encuestas [página 14 Artículo], la integración continua aumenta la carga para los empleados de la empresa (al menos al principio). Tienen que aprender nuevas herramientas y los compañeros no siempre ayudan con la formación. Por lo tanto, hay que lidiar con nuevos marcos y servicios sobre la marcha.

La tercera dificultad son los problemas con la automatización. Las organizaciones con una gran cantidad de código heredado que no está cubierto por pruebas automatizadas enfrentan este problema. Esto lleva al hecho de que el código simplemente se reescribe antes de la implementación completa de CI.

Referencia: cómo funciona el proceso de Integración Continua
/flickr/ ellos / CC BY-SA

quien usa

Los gigantes de TI estuvieron entre los primeros en apreciar los beneficios de la metodología. Google usos integración continua desde mediados de la década de 2000. Se implementó CI para solucionar el problema de retrasos en el motor de búsqueda. La integración continua ayudó a detectar y resolver problemas rápidamente. Ahora todos los departamentos del gigante de TI utilizan la CI.

La integración continua también ayuda a las pequeñas empresas, y las organizaciones financieras y sanitarias también utilizan herramientas de CI. Por ejemplo, en Morningstar, los servicios de integración continua ayudaron a corregir las vulnerabilidades un 70% más rápido. Y la plataforma médica de Philips Healthcare pudo duplicar la velocidad de las actualizaciones de prueba.

Instrumentos

A continuación se muestran algunas herramientas populares para CI:

  • Jenkins es uno de los sistemas de CI más populares. Admite más de mil complementos para la integración con varios VCS, plataformas en la nube y otros servicios. También usamos Jenkins en 1cloud: herramienta incluido en nuestro sistema DevOps. Revisa periódicamente la rama de Git destinada a realizar pruebas.
  • Construir bot - un marco de Python para escribir sus propios procesos de integración continua. La configuración inicial de la herramienta es bastante complicada, pero esto se compensa con las amplias opciones de personalización. Entre las ventajas del marco, los usuarios destacan su baja intensidad de recursos.
  • Concourse CI es un servidor de Pivotal que utiliza contenedores Docker. Concourse CI se integra con cualquier herramienta y sistema de control de versiones. Los desarrolladores señalan que el sistema es adecuado para trabajar en empresas de cualquier tamaño.
  • CI de Gitlab es una herramienta integrada en el sistema de control de versiones de GitLab. El servicio se ejecuta en la nube y utiliza archivos YAML para la configuración. Como Concourse, Gitlab CI aplica Contenedores Docker que ayudan a aislar diferentes procesos entre sí.
  • Codificación es un servidor CI en la nube que funciona con GitHub, GitLab y BitBucket. La plataforma no requiere una configuración inicial prolongada: los procesos de CI estándar preinstalados están disponibles en Codeship. Para proyectos pequeños (hasta 100 compilaciones por mes) y de código abierto, Codeship está disponible de forma gratuita.

Materiales de nuestro blog corporativo:

Fuente: habr.com

Añadir un comentario