1. BusinessOperations Management Kontinuerlig integrering og kontinuerlig levering: Implementering og fordel av CI / CD

Av Emily Freeman

Veksten av DevOps-kultur har endret måten utviklere bygger og sender programvare. Før Agile-tankegangen dukket opp, fikk utviklingsteamene tildelt en funksjon, bygget den og deretter glemt den. De kastet koden over til QA-teamet, som deretter kastet den tilbake på grunn av feil eller flyttet den videre til operasjonsteamet. Operasjoner hadde ansvar for å distribuere og vedlikeholde koden i produksjonen.

Denne prosessen var mildt sagt klønete, og den forårsaket ganske mye konflikt. Fordi team eksisterte i siloer, hadde de liten eller ingen innsikt i hvordan andre team opererte, inkludert prosesser og motivasjoner.

CI / CD, som står for kontinuerlig integrering og kontinuerlig levering (eller distribusjon), tar sikte på å bryte ned murene som historisk har eksistert mellom team og i stedet sette i gang en jevnere utviklingsprosess.

Fordeler med kontinuerlig integrasjon og kontinuerlig levering

CI / CD gir mange fordeler. Prosessen med å bygge en CI / CD-rørledning kan imidlertid være tidkrevende, pluss at det krever innkjøp fra teamet og ledelsen.

Noen fordeler med CI / CD inkluderer:

  • Grundig automatisert testing: Selv den mest enkle implementeringen av CI / CD krever en robust testsuite som kan kjøres mot koden hver gang en utvikler begår endringene til hovedgrenen. Akselerert feedback-loop: Utviklere får øyeblikkelig tilbakemelding med CI / CD. Automatiserte tester og hendelsesintegrasjoner vil mislykkes før ny kode slås sammen. Dette betyr at utviklere kan forkorte utviklingssyklusen og distribuere funksjoner raskere. Nedsatt mellommenneskelig konflikt: Automatisering av prosesser og redusering av friksjon mellom team oppmuntrer til et mer samarbeidende arbeidsmiljø der utviklere gjør det de gjør best: ingeniørløsninger. Pålitelig distribusjonsprosess: Alle som har rullet tilbake en utplassering på en fredag ​​ettermiddag, kan fortelle deg hvor viktig det er at utplasseringer går greit. Kontinuerlig integrasjon sikrer at kode er godt testet og fungerer pålitelig i et produksjonslignende miljø før den noen gang når en sluttbruker.

Implementering av kontinuerlig integrasjon og kontinuerlig levering

CI / CD er forankret i smidige metoder. Du bør tenke på å implementere CI / CD som en iterativ prosess. Hvert team kan dra nytte av en versjon av CI / CD, men å tilpasse den generelle filosofien vil avhenge sterkt av din nåværende teknologibunke (språkene, rammene, verktøyene og teknologien du bruker) og kulturen.

Kontinuerlig integrering

Team som praktiserer kontinuerlig integrasjon (CI), fletter kode endres tilbake i master- eller utviklingsgrenen så ofte som mulig. CI bruker vanligvis et integrasjonsverktøy for å validere bygge og kjøre automatiserte tester mot den nye koden.

Prosessen med CI gjør det mulig for utviklere på et team å jobbe på det samme området av kodebasen, samtidig som endringene er minimale og unngå massive flettkonflikter.

Slik implementerer du kontinuerlig integrasjon:

  • Skriv automatiserte tester for hver funksjon. Dette forhindrer at feil blir satt ut i produksjonsmiljøet. Sett opp en CI-server. Serveren overvåker hovedlageret for endringer og utløser de automatiserte testene når nye forpliktelser skyves. CI-serveren din skal kunne kjøre tester raskt. Oppdater utviklervaner. Utviklere må ofte slå sammen endringer tilbake til hovedkodebasen. På et minimum skal denne sammenslåingen skje en gang om dagen.

Kontinuerlig levering

Kontinuerlig levering er et steg opp fra CI ved at utviklere behandler alle endringer i koden som leverbare. I motsetning til kontinuerlig distribusjon må imidlertid en utgivelse utløses av et menneske, og endringen kan ikke leveres umiddelbart til en sluttbruker.

I stedet blir distribusjoner automatisert og utviklere kan slå sammen og distribuere koden sin med en enkelt knapp. Ved å lage små, ofte leverte iterasjoner, sikrer teamet at de enkelt kan feilsøke endringer.

Etter at koden har passert de automatiserte testene og er bygd, kan teamet distribuere koden til uansett miljø de spesifiserer, for eksempel QA eller iscenesettelse. Ofte vurderer en fagfelle manuelt koden før en ingeniør fusjonerer den til en produksjonsutgivelsesgren.

Slik implementerer du kontinuerlig levering:

  • Ha et sterkt fundament i CI. Den automatiserte testpakken skal vokse i sammenheng med funksjonsutvikling, og du bør legge til tester hver gang en feil rapporteres. Automatiser utgivelser. Et menneske initierer fremdeles distribusjoner, men utgivelsen skal være en ett-trinns prosess - et enkelt klikk på en knapp. Vurder funksjonflagg. Funksjonsflagg skjuler ufullstendige funksjoner for bestemte brukere, og sikrer at jevnaldrende og kunder bare ser funksjonaliteten du ønsker.

Kontinuerlig distribusjon

Kontinuerlig distribusjon tar kontinuerlig levering enda et skritt lenger enn kontinuerlig levering. Hver endring som passerer hele produksjonsutgivelsesrørledningen blir distribuert. Det stemmer: Koden settes direkte i produksjon.

Kontinuerlig distribusjon eliminerer menneskelig intervensjon fra distribusjonsprosessen og krever en grundig automatisert testsuite.

Slik implementerer du kontinuerlig distribusjon:

  • Opprettholde en sterk testkultur. Du bør vurdere å teste som en kjernen del av utviklingsprosessen. Dokumenter nye funksjoner. Automatiserte utgivelser skal ikke overgå API-dokumentasjonen. Koordinere med andre avdelinger. Involver avdelinger som markedsføring og kundesuksess for å sikre en jevn utrullingsprosess.