Referentie: hoe het Continuous Integration-proces werkt

Vandaag zullen we kijken naar de geschiedenis van de term, de moeilijkheden bij het implementeren van CI bespreken en verschillende populaire tools aanbieden die u zullen helpen ermee te werken.

Referentie: hoe het Continuous Integration-proces werkt
/flickr/ Altug Karakoc / CC BY / Foto aangepast

Termijn

Continue integratie is een benadering van applicatieontwikkeling waarbij regelmatig projecten worden gebouwd en code wordt getest.

Het doel is om het integratieproces voorspelbaar te maken en potentiële bugs en fouten in een vroeg stadium te detecteren, zodat er meer tijd is om deze te herstellen.

De term Continue Integratie verscheen voor het eerst in 1991. Het werd geïntroduceerd door de maker van de UML-taal Grady Butch (Grady Booch). De ingenieur introduceerde het concept van CI als onderdeel van zijn eigen ontwikkelingspraktijk - Booch-methode. Het impliceerde een stapsgewijze verfijning van de architectuur bij het ontwerpen van objectgeoriënteerde systemen. Gradi heeft geen vereisten voor continue integratie beschreven. Maar later in zijn boek “Objectgeoriënteerde analyse en ontwerp met toepassingen“Hij zei dat het doel van de methodologie is om de release van ‘interne releases’ te versnellen.

Verhaal

In 1996 werd CI overgenomen door de makers van de methodologie extreem programmeren (XP) - Kent Beck (Kent Beck) en Ron Jeffries (Ron Jeffries). Continue integratie werd een van de twaalf belangrijkste principes van hun aanpak. De oprichters van XP verduidelijkten de vereisten voor de CI-methodologie en merkten op dat het project meerdere keren per dag moest worden gebouwd.

Begin jaren 2000 begon een van de oprichters van de Agile Alliance de methodologie voor continue integratie te promoten Martin Fowler (Martin Fowler). Zijn experimenten met CI leidden tot de eerste softwaretool op dit gebied: CruiseControl. Het hulpprogramma is gemaakt door Martins collega Matthew Foemmel.

De buildcyclus in de tool is geïmplementeerd als een daemon die periodiek het versiebeheersysteem controleert op wijzigingen in de codebasis. De oplossing kan vandaag nog worden gedownload - it gedistribueerd door onder een BSD-achtige licentie.

Met de komst van software voor CI begonnen steeds meer bedrijven deze praktijk over te nemen. Volgens onderzoek van Forrester [pagina 5 rapport] In 2009 gebruikte of implementeerde 86% van de vijftig ondervraagde technologiebedrijven CI-methoden.

Tegenwoordig wordt de praktijk van Continuous Integration gebruikt door organisaties uit een grote verscheidenheid aan industrieën. In 2018 hield een grote cloudprovider een onderzoek onder IT-specialisten van bedrijven in de diensten-, onderwijs- en financiële sector. Van de zesduizend respondenten zegt 58% dat zij in hun werk gebruik maken van CI-instrumenten en -principes.

Hoe werkt dit

Continue integratie is gebaseerd op twee tools: een versiebeheersysteem en een CI-server. Dit laatste kan een fysiek apparaat zijn of een virtuele machine in een cloudomgeving. Ontwikkelaars uploaden één of meerdere keren per dag nieuwe code. De CI-server kopieert het automatisch met alle afhankelijkheden en bouwt het. Daarna worden er integratie- en unit-tests uitgevoerd. Als de tests succesvol verlopen, implementeert het CI-systeem de code.

Het algemene processchema kan als volgt worden weergegeven:

Referentie: hoe het Continuous Integration-proces werkt

De CI-methodiek stelt een aantal eisen aan ontwikkelaars:

  • Corrigeer problemen onmiddellijk. Dit principe kwam naar CI voort uit extreem programmeren. Het oplossen van bugs heeft de hoogste prioriteit van de ontwikkelaars.
  • Automatiseer processen. Ontwikkelaars en managers moeten voortdurend op zoek gaan naar knelpunten in het integratieproces en deze wegnemen. Er is bijvoorbeeld vaak sprake van een knelpunt in de integratie blijkt testen.
  • Houd vergaderingen zo vaak mogelijk. Eén keer per dag om het werk van het team te synchroniseren.

Implementatieproblemen

Het eerste probleem zijn de hoge exploitatiekosten. Zelfs als een bedrijf open CI-tools gebruikt (waar we het later over zullen hebben), zal het nog steeds geld moeten uitgeven aan infrastructuurondersteuning. Cloudtechnologieën kunnen echter de oplossing zijn.

Ze vereenvoudigen de assemblage van computerconfiguraties op verschillende schaal. Pluspunt van het bedrijf betalen alleen voor de gebruikte middelen, waardoor er op de infrastructuur kan worden bespaard.

Volgens onderzoeken [pagina 14 Artikel], verhoogt continue integratie de druk op de werknemers van het bedrijf (althans in het begin). Ze moeten nieuwe tools leren, en collega’s helpen niet altijd met training. Daarom krijgt u direct te maken met nieuwe raamwerken en diensten.

De derde moeilijkheid zijn problemen met automatisering. Organisaties met een grote hoeveelheid verouderde code die niet door geautomatiseerde tests wordt gedekt, worden met dit probleem geconfronteerd. Dit leidt ertoe dat de code eenvoudigweg wordt herschreven vóór de volledige implementatie van CI.

Referentie: hoe het Continuous Integration-proces werkt
/flickr/ zij / CC BY-SA

Wie gebruikt

IT-giganten behoorden tot de eersten die de voordelen van de methodologie op waarde schatten. Googlen toepassingen voortdurende integratie sinds het midden van de jaren 2000. CI werd geïmplementeerd om het probleem van vertragingen in de zoekmachine op te lossen. Continue integratie hielp om problemen snel te detecteren en op te lossen. Nu wordt CI gebruikt door alle afdelingen van de IT-gigant.

Continue integratie helpt ook kleine bedrijven, en CI-tools worden ook gebruikt door financiële en gezondheidszorgorganisaties. Bij Morningstar hielpen continue integratiediensten er bijvoorbeeld bij om kwetsbaarheden 70% sneller te patchen. En het medische platform van Philips Healthcare kon de snelheid van testupdates verdubbelen.

Gereedschap

Hier zijn enkele populaire tools voor CI:

  • Jenkins is een van de meest populaire CI-systemen. Het ondersteunt meer dan duizend plug-ins voor integratie met verschillende VCS, cloudplatforms en andere diensten. Wij gebruiken ook Jenkins bij 1cloud:tool opgenomen in ons DevOps-systeem. Hij checkt regelmatig de Git-branch die bedoeld is om te testen.
  • Bouwbot — een Python-framework voor het schrijven van uw eigen continue integratieprocessen. De initiële installatie van de tool is vrij ingewikkeld, maar dit wordt gecompenseerd door de ruime aanpassingsmogelijkheden. Een van de voordelen van het raamwerk is dat gebruikers de lage hulpbronnenintensiteit benadrukken.
  • Concourse CI is een server van Pivotal die Docker-containers gebruikt. Concourse CI kan worden geïntegreerd met alle tools en versiebeheersystemen. De ontwikkelaars merken op dat het systeem geschikt is voor werk in bedrijven van elke omvang.
  • Gitlab-CI is een tool ingebouwd in het GitLab-versiecontrolesysteem. De service draait in de cloud en gebruikt YAML-bestanden voor configuratie. Zoals Concourse, Gitlab CI is van toepassing Docker-containers die verschillende processen van elkaar helpen isoleren.
  • Codeschap is een cloud CI-server die werkt met GitHub, GitLab en BitBucket. Het platform vereist geen lange initiële installatie - standaard vooraf geïnstalleerde CI-processen zijn beschikbaar in Codeship. Voor kleine (tot 100 builds per maand) en open source-projecten is Codeship gratis beschikbaar.

Materialen uit onze bedrijfsblog:

Bron: www.habr.com

Voeg een reactie