Referència: com funciona el procés d'integració contínua

Avui veurem la història del terme, parlarem de les dificultats d'implementar CI i oferirem diverses eines populars que us ajudaran a treballar-hi.

Referència: com funciona el procés d'integració contínua
/flickr/ Altug Karakoc / CC BY / Foto modificada

Termini

La integració contínua és un enfocament per al desenvolupament d'aplicacions que implica compilacions freqüents de projectes i proves de codi.

L'objectiu és fer previsible el procés d'integració i detectar possibles errors i errors en una fase inicial, de manera que hi hagi més temps per solucionar-los.

El terme d'integració contínua va aparèixer per primera vegada l'any 1991. Va ser introduït pel creador del llenguatge UML Grady Butch (Grady Booch). L'enginyer va introduir el concepte de CI com a part de la seva pròpia pràctica de desenvolupament: Mètode Booch. Implicava un refinament incremental de l'arquitectura a l'hora de dissenyar sistemes orientats a objectes. Gradi no va descriure cap requisit per a la integració contínua. Però més endavant en el seu llibre "Anàlisi i disseny orientat a objectes amb aplicacions"Va dir que l'objectiu de la metodologia és accelerar el llançament de "versions internes".

Història

El 1996, CI va ser adoptat pels creadors de la metodologia programació extrema (XP) - Kent Beck (Kent Beck) i Ron Jeffries (Ron Jeffries). La integració contínua es va convertir en un dels dotze principis clau del seu enfocament. Els fundadors de XP van aclarir els requisits de la metodologia CI i van assenyalar la necessitat de construir el projecte diverses vegades al dia.

A principis dels anys 2000, un dels fundadors de Agile Alliance va començar a promoure la metodologia d'integració contínua Martin Fowler (Martin Fowler). Els seus experiments amb CI van portar a la primera eina de programari en aquesta àrea: CruiseControl. La utilitat la va crear el col·lega de Martin, Matthew Foemmel.

El cicle de creació de l'eina s'implementa com un dimoni que verifica periòdicament el sistema de control de versions per detectar canvis en la base de codi. La solució es pot descarregar avui: això Distribuït per sota una llicència semblant a BSD.

Amb l'arribada del programari per a CI, cada cop més empreses van començar a adoptar la pràctica. Segons la investigació de Forrester [pàgina 5 informe], l'any 2009, el 86% de les cinquanta empreses tecnològiques enquestades utilitzaven o implementaven mètodes d'IC.

Avui en dia, la pràctica de la integració contínua és utilitzada per organitzacions d'una gran varietat d'indústries. El 2018, un gran proveïdor de núvol va realitzar una enquesta entre especialistes informàtics d'empreses dels sectors de serveis, educació i finances. Dels sis mil enquestats, el 58% va dir que utilitzen eines i principis d'IC ​​en el seu treball.

Com funciona això

La integració contínua es basa en dues eines: un sistema de control de versions i un servidor CI. Aquest últim pot ser un dispositiu físic o una màquina virtual en un entorn de núvol. Els desenvolupadors pengen codi nou una o més vegades al dia. El servidor CI el copia automàticament amb totes les dependències i el construeix. Després, realitza proves d'integració i unitats. Si les proves passen correctament, el sistema CI desplega el codi.

El diagrama general del procés es pot representar de la següent manera:

Referència: com funciona el procés d'integració contínua

La metodologia CI fa una sèrie de requisits per als desenvolupadors:

  • Corregiu els problemes immediatament. Aquest principi va arribar a CI a partir de la programació extrema. Arreglar errors és la màxima prioritat dels desenvolupadors.
  • Automatitzar processos. Els desenvolupadors i gestors han de buscar constantment colls d'ampolla en el procés d'integració i eliminar-los. Per exemple, sovint hi ha un coll d'ampolla en la integració resulta provant.
  • Realitzar assemblees tan sovint com sigui possible. Un cop al dia per sincronitzar el treball de l'equip.

Dificultats d'implementació

El primer problema són els alts costos operatius. Fins i tot si una empresa utilitza eines CI obertes (de les quals parlarem més endavant), encara haurà de gastar diners en suport d'infraestructura. Tanmateix, les tecnologies al núvol poden ser la solució.

Simplifican el muntatge de configuracions d'ordinador a diferents escales. A més de l'empresa pagar només pels recursos utilitzats, la qual cosa ajuda a estalviar en infraestructures.

Segons enquestes [pàgina 14 Article], la integració contínua augmenta la càrrega dels empleats de l'empresa (almenys al principi). Han d'aprendre noves eines, i els companys no sempre ajuden amb la formació. Per tant, heu de fer front a nous marcs i serveis sobre la marxa.

La tercera dificultat són els problemes amb l'automatització. Les organitzacions amb una gran quantitat de codi heretat que no està cobert per proves automatitzades s'enfronten a aquest problema. Això porta al fet que el codi simplement es reescriu abans de la implementació completa de CI.

Referència: com funciona el procés d'integració contínua
/flickr/ ellr / CC BY-SA

Qui utilitza

Els gegants informàtics van ser dels primers a apreciar els beneficis de la metodologia. Google usos integració contínua des de mitjans dels anys 2000. CI es va implementar per resoldre el problema dels retards en el cercador. La integració contínua va ajudar a detectar i resoldre ràpidament els problemes. Ara CI és utilitzat per tots els departaments del gegant informàtic.

La integració contínua també ajuda a les petites empreses i les organitzacions financeres i sanitàries també utilitzen les eines de CI. Per exemple, a Morningstar, els serveis d'integració contínua van ajudar a corregir les vulnerabilitats un 70% més ràpidament. I la plataforma mèdica de Philips Healthcare va poder duplicar la velocitat de les actualitzacions de proves.

Instruments

Aquí hi ha algunes eines populars per a CI:

  • Jenkins és un dels sistemes CI més populars. Admet més de mil connectors per a la integració amb diversos VCS, plataformes en núvol i altres serveis. També fem servir Jenkins a 1cloud: tool inclòs al nostre sistema DevOps. Consulta regularment la branca de Git destinada a fer proves.
  • Buildbot — un marc Python per escriure els vostres propis processos d'integració contínua. La configuració inicial de l'eina és força complicada, però això es compensa amb les àmplies opcions de personalització. Entre els avantatges del marc, els usuaris destaquen la seva baixa intensitat de recursos.
  • Concurs CI és un servidor de Pivotal que utilitza contenidors Docker. Concourse CI s'integra amb qualsevol eina i sistema de control de versions. Els desenvolupadors assenyalen que el sistema és adequat per treballar en empreses de qualsevol mida.
  • Gitlab CI és una eina integrada al sistema de control de versions de GitLab. El servei s'executa al núvol i utilitza fitxers YAML per a la configuració. Igual que Concourse, Gitlab CI s'aplica Contenidors Docker que ajuden a aïllar diferents processos entre si.
  • Codificació és un servidor CI al núvol que funciona amb GitHub, GitLab i BitBucket. La plataforma no requereix una configuració inicial llarga: els processos de CI preinstal·lats estàndard estan disponibles a Codeship. Per a projectes petits (fins a 100 compilacions al mes) i de codi obert, Codeship està disponible de forma gratuïta.

Materials del nostre blog corporatiu:

Font: www.habr.com

Afegeix comentari