Referens: hur den kontinuerliga integrationsprocessen fungerar

Idag kommer vi att titta på termens historia, diskutera svårigheterna med att implementera CI och tillhandahålla flera populära verktyg som hjälper dig att arbeta med det.

Referens: hur den kontinuerliga integrationsprocessen fungerar
/flickr/ Altug Karakoc / CC BY / Foto modifierad

Term

Continuous Integration är ett tillvägagångssätt för applikationsutveckling som involverar frekventa projektbyggen och kodtestning.

Målet är att göra integrationsprocessen förutsägbar och upptäcka potentiella buggar och fel i ett tidigt skede, så att det finns mer tid att fixa dem.

Termen Continuous Integration dök upp första gången 1991. Det introducerades av skaparen av UML-språket Grady Butch (Grady Booch). Ingenjören introducerade konceptet CI som en del av sin egen utvecklingspraktik - Booch metod. Det innebar en stegvis förfining av arkitekturen vid design av objektorienterade system. Gradi beskrev inga krav på kontinuerlig integration. Men senare i sin bok "Objektorienterad analys och design med applikationer"Han sa att målet med metoden är att påskynda utgivningen av "interna utgåvor."

Story

1996 antogs CI av skaparna av metoden extrem programmering (XP) - Kent Beck (Kent Beck) och Ron Jeffries (Ron Jeffries). Kontinuerlig integration blev en av de tolv nyckelprinciperna för deras tillvägagångssätt. Grundarna av XP förtydligade kraven för CI-metoden och noterade behovet av att bygga projektet flera gånger om dagen.

I början av 2000-talet började en av grundarna av Agile Alliance främja metodiken för kontinuerlig integration Martin Fowler (Martin Fowler). Hans experiment med CI ledde till det första mjukvaruverktyget inom detta område - CruiseControl. Verktyget skapades av Martins kollega, Matthew Foemmel.

Byggcykeln i verktyget är implementerad som en demon som regelbundet kontrollerar versionskontrollsystemet för ändringar i kodbasen. Lösningen kan laddas ner idag - den levererad av under en BSD-liknande licens.

Med tillkomsten av mjukvara för CI började fler och fler företag att ta till sig praxis. Enligt Forrester forskning [sida 5 Rapportera], år 2009 använde eller implementerade 86 % av de femtio undersökta teknikföretagen CI-metoder.

Idag används kontinuerlig integration av organisationer från en mängd olika branscher. Under 2018 genomförde en stor molnleverantör en undersökning bland IT-specialister från företag inom tjänste-, utbildnings- och finanssektorerna. Av de sextusen tillfrågade sa 58 % att de använder CI-verktyg och -principer i sitt arbete.

Hur fungerar den här

Kontinuerlig integration bygger på två verktyg: ett versionskontrollsystem och en CI-server. Det senare kan vara antingen en fysisk enhet eller en virtuell maskin i en molnmiljö. Utvecklare laddar upp ny kod en eller flera gånger om dagen. CI-servern kopierar den automatiskt med alla beroenden och bygger den. Efteråt kör den integration och enhetstester. Om testerna blir godkända distribuerar CI-systemet koden.

Det allmänna processdiagrammet kan representeras enligt följande:

Referens: hur den kontinuerliga integrationsprocessen fungerar

CI-metoden ställer ett antal krav för utvecklare:

  • Åtgärda problem omedelbart. Denna princip kom till CI från extrem programmering. Att fixa buggar är utvecklarnas högsta prioritet.
  • Automatisera processer. Utvecklare och chefer måste hela tiden leta efter flaskhalsar i integrationsprocessen och eliminera dem. Till exempel finns det ofta en flaskhals i integrationen det visar sig testning.
  • Genomför sammanställningar så ofta som möjligt. En gång om dagen för att synkronisera teamets arbete.

Genomförandesvårigheter

Det första problemet är höga driftskostnader. Även om ett företag använder öppna CI-verktyg (som vi kommer att prata om senare), kommer det fortfarande att behöva spendera pengar på infrastrukturstöd. Däremot kan molnteknik vara lösningen.

De förenklar sammansättningen av datorkonfigurationer i olika skala. Plus av företaget betala endast för de resurser som används, vilket hjälper till att spara på infrastrukturen.

Enligt undersökningar [sida 14 Artikel], kontinuerlig integration ökar belastningen på företagets anställda (åtminstone till en början). De måste lära sig nya verktyg och kollegor hjälper inte alltid till med träning. Därför måste du hantera nya ramverk och tjänster på språng.

Den tredje svårigheten är problem med automatisering. Organisationer med en stor mängd äldre kod som inte täcks av automatiserade tester möter detta problem. Detta leder till det faktum att koden helt enkelt skrivs om innan den fullständiga implementeringen av CI.

Referens: hur den kontinuerliga integrationsprocessen fungerar
/flickr/ theilr / CC BY-SA

Vem använder

IT-jättar var bland de första att uppskatta fördelarna med metodiken. Google användningsområden kontinuerlig integration sedan mitten av 2000-talet. CI implementerades för att lösa problemet med förseningar i sökmotorn. Kontinuerlig integration hjälpte till att snabbt upptäcka och lösa problem. Nu används CI av IT-jättens alla avdelningar.

Kontinuerlig integration hjälper också små företag, och CI-verktyg används även av finans- och hälsovårdsorganisationer. Till exempel på Morningstar hjälpte kontinuerliga integrationstjänster att korrigera sårbarheter 70 % snabbare. Och Philips Healthcares medicinska plattform kunde fördubbla hastigheten för testuppdateringar.

Verktyg

Här är några populära verktyg för CI:

  • Jenkins är ett av de mest populära CI-systemen. Den stöder mer än tusen plugins för integration med olika VCS, molnplattformar och andra tjänster. Vi använder även Jenkins på 1cloud: tool ingår i vårt DevOps-system. Han kollar regelbundet in Git-grenen avsedd för testning.
  • Byggbot — ett pytonramverk för att skriva dina egna kontinuerliga integrationsprocesser. Den initiala installationen av verktyget är ganska komplicerad, men detta kompenseras av de breda anpassningsalternativen. Bland fördelarna med ramverket lyfter användarna fram dess låga resursintensitet.
  • Concourse CI är en server från Pivotal som använder Docker-containrar. Concourse CI integreras med alla verktyg och versionskontrollsystem. Utvecklarna noterar att systemet är lämpligt för arbete i företag av alla storlekar.
  • Gitlab CI är ett verktyg inbyggt i GitLabs versionskontrollsystem. Tjänsten körs i molnet och använder YAML-filer för konfiguration. Liksom Concourse, Gitlab CI gäller Docker-containrar som hjälper till att isolera olika processer från varandra.
  • Kodskap är en CI-molnserver som fungerar med GitHub, GitLab och BitBucket. Plattformen kräver ingen lång inledande installation - standardförinstallerade CI-processer finns tillgängliga i Codeship. För små (upp till 100 builds per månad) och öppen källkodsprojekt är Codeship tillgängligt gratis.

Material från vår företagsblogg:

Källa: will.com

Lägg en kommentar