1. ForretningsOperations Management Kontinuerlig integration og kontinuerlig levering: Implementering og fordel af CI / CD

Af Emily Freeman

Væksten af ​​DevOps-kultur har ændret den måde, udviklere bygger og sender software på. Før Agile-tankegangen opstod, fik udviklingshold tildelt en funktion, bygget den og derefter glemt det. De kastede koden over til QA-teamet, som derefter kastede den tilbage på grund af fejl eller flyttede den videre til operationsteamet. Operations var ansvarlig for at implementere og vedligeholde koden i produktionen.

Denne proces var mildest talt klodset, og den forårsagede en hel del konflikter. Fordi hold eksisterede i siloer, havde de ringe eller ingen indsigt i, hvordan andre hold fungerede, herunder deres processer og motiveringer.

CI / CD, der står for kontinuerlig integration og kontinuerlig levering (eller implementering), sigter mod at nedbryde de vægge, der historisk har eksisteret mellem teams, og i stedet indføre en jævnere udviklingsproces.

Fordele ved kontinuerlig integration og kontinuerlig levering

CI / CD giver mange fordele. Processen med at opbygge en CI / CD-rørledning kan imidlertid være tidskrævende, plus det kræver buy-in fra teamet og ledelsen.

Nogle fordele ved CI / CD inkluderer:

  • Grundig automatiseret test: Selv den mest enkle implementering af CI / CD kræver en robust testsuite, der kan køres mod koden, hver gang en udvikler forpligter deres ændringer til hovedgrenen. Accelereret feedback loop: Udviklere modtager øjeblikkelig feedback med CI / CD. Automatiske test og begivenhedsintegrationer mislykkes, før den nye kode slås sammen. Dette betyder, at udviklere kan afkorte udviklingscyklussen og implementere funktioner hurtigere. Nedsat interpersonel konflikt: Automatisering af processer og reduktion af friktion mellem teams opmuntrer til et mere samarbejdsvilligt arbejdsmiljø, hvor udviklere gør, hvad de gør bedst: ingeniørløsninger. Pålidelig implementeringsproces: Enhver, der rulles tilbage en indsættelse på en fredag ​​eftermiddag, kan fortælle dig, hvor vigtigt det er, at deploys går uden problemer. Kontinuerlig integration sikrer, at kode testes godt og fungerer pålideligt i et produktionslignende miljø, før den nogensinde når en slutbruger.

Implementering af kontinuerlig integration og kontinuerlig levering

CI / CD er rodfæstet i smidige metoder. Du skal tænke på at implementere CI / CD som en iterativ proces. Hvert hold kan drage fordel af en version af CI / CD, men tilpasning af den overordnede filosofi afhænger meget af din nuværende tech-stack (de sprog, rammer, værktøjer og teknologi, du bruger) og kultur.

Kontinuerlig integration

Hold, der praktiserer kontinuerlig integration (CI), fletter kodeændringer tilbage i master- eller udviklingsgrenen så ofte som muligt. CI bruger typisk et integrationsværktøj til at validere build og køre automatiserede test mod den nye kode.

Processen med CI giver udviklere i et team mulighed for at arbejde på det samme område af kodebasen og samtidig holde ændringerne minimale og undgå massive fletningskonflikter.

Sådan implementeres kontinuerlig integration:

  • Skriv automatiske test for hver funktion. Dette forhindrer, at fejl distribueres i produktionsmiljøet. Opret en CI-server. Serveren overvåger hovedopbevaringsstedet for ændringer og udløser de automatiserede test, når nye forpligtelser skubbes. Din CI-server skal være i stand til at køre test hurtigt. Opdater udviklervaner. Udviklere er nødt til at flette ændringer tilbage til hovedkodebasen ofte. Som minimum skal denne fusion ske en gang om dagen.

Kontinuerlig levering

Kontinuerlig levering er et trin op fra CI, idet udviklere behandler enhver ændring af koden som leverbar. I modsætning til kontinuerlig implementering skal en frigivelse imidlertid udløses af et menneske, og ændringen leveres muligvis ikke med det samme til en slutbruger.

I stedet er distributioner automatiseret, og udviklere kan flette og distribuere deres kode med en enkelt knap. Ved at lave små, ofte leverede iterationer, sikrer teamet, at de nemt kan fejlfinde ændringer.

Når koden har bestået de automatiserede test og er bygget, kan teamet implementere koden til uanset hvilket miljø de specificerer, såsom QA eller iscenesættelse. Ofte gennemgår en peer manuelt koden, før en ingeniør fusionerer den til en produktionsudgivelsesgren.

Sådan implementeres kontinuerlig levering:

  • Har et stærkt fundament i CI. Den automatiserede testsuite skulle vokse i korrelation med funktionsudvikling, og du skal tilføje test, hver gang der rapporteres en fejl. Automatiser udgivelser. Et menneske indleder stadig implementeringer, men frigivelsen skal være en et-trins proces - et enkelt klik på en knap. Overvej funktionsflag. Funktionsflagg skjuler ufuldstændige funktioner for specifikke brugere, hvilket sikrer, at dine kammerater og kunder kun ser den funktionalitet, du ønsker.

Kontinuerlig implementering

Kontinuerlig implementering tager kontinuerlig levering endda et skridt videre end kontinuerlig levering. Hver ændring, der passerer hele produktionsfrigørelsens rørledning, implementeres. Det er rigtigt: Koden sættes direkte i produktion.

Kontinuerlig implementering eliminerer menneskelig indgriben fra installationsprocessen og kræver en grundigt automatiseret testsuite.

Sådan implementeres kontinuerlig implementering:

  • Oprethold en stærk testkultur. Du bør overveje afprøvning som en kerne del af udviklingsprocessen. Dokumenter nye funktioner. Automatiske udgivelser bør ikke overgå API-dokumentationen. Koordinere med andre afdelinger. Inddrag afdelinger som markedsføring og kundesucces for at sikre en jævn rollout-proces.