Referencia: como funciona o proceso de Integración Continua

Hoxe analizaremos a historia do termo, analizaremos as dificultades de implementación de CI e proporcionaremos varias ferramentas populares que che axudarán a traballar con el.

Referencia: como funciona o proceso de Integración Continua
/flickr/ Altug Karakoc / CC BY / Foto modificada

prazo

A integración continua é un enfoque para o desenvolvemento de aplicacións que implica compilacións frecuentes de proxectos e probas de código.

O obxectivo é facer previsible o proceso de integración e detectar posibles erros e erros nunha fase inicial, para que haxa máis tempo para solucionalos.

O termo Integración Continua apareceu por primeira vez en 1991. Foi introducido polo creador da linguaxe UML Grady Butch (Grady Booch). O enxeñeiro introduciu o concepto de CI como parte da súa propia práctica de desenvolvemento - Método Booch. Implicaba un refinamento incremental da arquitectura ao deseñar sistemas orientados a obxectos. Gradi non describiu ningún requisito para a integración continua. Pero máis tarde no seu libro "Análise e deseño orientado a obxectos con aplicacións"Dixo que o obxectivo da metodoloxía é acelerar o lanzamento de "versións internas".

Historia

En 1996, CI foi adoptada polos creadores da metodoloxía programación extrema (XP) - Kent Beck (Kent Beck) e Ron Jeffries (Ron Jeffries). A integración continua converteuse nun dos doce principios fundamentais do seu enfoque. Os fundadores de XP aclararon os requisitos para a metodoloxía CI e sinalaron a necesidade de construír o proxecto varias veces ao día.

A principios dos anos 2000, un dos fundadores da Agile Alliance comezou a promover a metodoloxía de integración continua Martin Fowler (Martin Fowler). Os seus experimentos con CI levaron á primeira ferramenta de software nesta área: CruiseControl. A utilidade foi creada polo colega de Martin, Matthew Foemmel.

O ciclo de compilación da ferramenta está implementado como un daemon que verifica periodicamente o sistema de control de versións para detectar cambios na base de código. A solución pódese descargar hoxe distribuído por baixo unha licenza tipo BSD.

Coa chegada do software para CI, máis e máis empresas comezaron a adoptar a práctica. Segundo a investigación de Forrester [páxina 5 informe], en 2009, o 86% das cincuenta empresas tecnolóxicas enquisadas utilizaron ou implementaron métodos de CI.

Hoxe, a práctica da Integración Continua é utilizada por organizacións dunha gran variedade de industrias. En 2018, un gran provedor de nube realizou unha enquisa entre especialistas en TI de empresas dos sectores de servizos, educación e finanzas. Dos seis mil enquisados, o 58% dixo que utiliza ferramentas e principios de CI no seu traballo.

Chat isto

A integración continua baséase en dúas ferramentas: un sistema de control de versións e un servidor CI. Este último pode ser un dispositivo físico ou unha máquina virtual nun ambiente de nube. Os desenvolvedores cargan código novo unha ou máis veces ao día. O servidor CI cópiao automaticamente con todas as dependencias e constrúeo. Despois, realiza probas de integración e unidade. Se as probas pasan con éxito, o sistema CI desprega o código.

O diagrama xeral do proceso pódese representar do seguinte xeito:

Referencia: como funciona o proceso de Integración Continua

A metodoloxía de CI fai unha serie de requisitos para os desenvolvedores:

  • Corrixa os problemas inmediatamente. Este principio chegou a CI da programación extrema. Corrixir erros é a máxima prioridade dos desenvolvedores.
  • Automatizar procesos. Os desenvolvedores e xestores deben buscar constantemente os pescozos de botella no proceso de integración e eliminalos. Por exemplo, moitas veces hai un pescozo de botella na integración resulta probando.
  • Realizar asembleas coa maior frecuencia posible. Unha vez ao día para sincronizar o traballo do equipo.

Dificultades de implantación

O primeiro problema son os altos custos operativos. Aínda que unha empresa utilice ferramentas de CI abertas (das que falaremos máis adiante), aínda terá que gastar cartos en apoio á infraestrutura. Non obstante, as tecnoloxías na nube poden ser a solución.

Simplifican a montaxe de configuracións informáticas a diferentes escalas. Ademais da empresa pagar só polos recursos empregados, o que axuda a aforrar infraestruturas.

Segundo as enquisas [páxina 14 Artigo], a integración continua aumenta a carga dos empregados da empresa (polo menos ao principio). Teñen que aprender novas ferramentas, e os compañeiros non sempre axudan coa formación. Polo tanto, tes que xestionar novos frameworks e servizos sobre a marcha.

A terceira dificultade son os problemas coa automatización. As organizacións cunha gran cantidade de código herdado que non está cuberto por probas automatizadas enfróntanse a este problema. Isto leva ao feito de que o código simplemente se reescribe antes da implementación completa de CI.

Referencia: como funciona o proceso de Integración Continua
/flickr/ oilr / CC BY-SA

Quen usa

Os xigantes das TIC foron dos primeiros en apreciar os beneficios da metodoloxía. Google usos integración continua desde mediados dos anos 2000. Implementouse CI para resolver o problema dos atrasos no buscador. A integración continua axudou a detectar e resolver rapidamente os problemas. Agora CI é usado por todos os departamentos do xigante das TIC.

A integración continua tamén axuda ás pequenas empresas, e as ferramentas de CI tamén son utilizadas polas organizacións financeiras e sanitarias. Por exemplo, en Morningstar, os servizos de integración continua axudaron a parchear as vulnerabilidades un 70 % máis rápido. E a plataforma médica Philips Healthcare puido duplicar a velocidade das actualizacións de probas.

Ferramentas

Aquí tes algunhas ferramentas populares para CI:

  • Jenkins é un dos sistemas CI máis populares. Soporta máis de mil complementos para a integración con varios VCS, plataformas na nube e outros servizos. Tamén usamos Jenkins en 1cloud: tool incluído no noso sistema DevOps. Comprobe regularmente a rama de Git destinada a probar.
  • Buildbot — un framework Python para escribir os seus propios procesos de integración continua. A configuración inicial da ferramenta é bastante complicada, pero isto vese compensado polas amplas opcións de personalización. Entre as vantaxes do marco, os usuarios destacan a súa baixa intensidade de recursos.
  • Concurso CI é un servidor de Pivotal que usa contedores Docker. Concourse CI intégrase con calquera ferramenta e sistema de control de versións. Os desenvolvedores sinalan que o sistema é axeitado para traballar en empresas de calquera tamaño.
  • Gitlab CI é unha ferramenta integrada no sistema de control de versións de GitLab. O servizo execútase na nube e usa ficheiros YAML para a súa configuración. Como Concourse, Gitlab CI aplícase Contedores Docker que axudan a illar diferentes procesos entre si.
  • Codificación é un servidor de CI na nube que funciona con GitHub, GitLab e BitBucket. A plataforma non require unha configuración inicial longa: os procesos de CI preinstalados estándar están dispoñibles en Codeship. Para proxectos pequenos (ata 100 compilacións ao mes) e de código aberto, Codeship está dispoñible de balde.

Materiais do noso blog corporativo:

Fonte: www.habr.com

Engadir un comentario