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.
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:
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.
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.