Viden

Tre faldgruber ved CI/CD

Continuous integration (CI) og Continuous delivery (CD) anses som et smart træk til at reducere risici ifm. manuelt arbejde, forbedre samarbejde samt at øge effektiviteten via automatik. Dog er smart ikke lig nemt.

Vi synes CI/CD generelt er et klogt træk. Sigter du efter succesfuldt samarbejde på tværs af grænser, og ønsker du samtidig at fjerne nogle grænser, kan CI/CD muligvis hjælpe dig. Vi har stor erfaring med CI/CD og vi foreslår, at du tager et dybere blik i de koncepter og metoder CI/CD tilbyder.

For at sikre vi er på samme side, definerer vi CI som den proces udviklere og testere samarbejder inden for i validering af ny kode. CI er afhængig af automatik ifm. at integrere og teste kode løbende. Og vi definerer CD som den proces, hvor der løbende kreeres udgivelsesartefakter.

Ultimativt handler CI/CD om at sikre efficiens ved at fjerne manuelt arbejde og have faste automatiserede udgivelser. Dette lyder jo alt sammen virkelig godt. Men du har muligvis svært ved at implementere CI/CD grundet de tre listede årsager, som du kan læse mere om nedenfor.

Tre faldgruber
  • Faldgrube #1: Kompleksitet overskygger “just-do-it”
  • Faldgrube #2: Giver det dashboard mening?
  • Faldgrube #3: Mangel på koordinering mellem Continuous integration og Continuous Delivery

Faldgrube #1 Kompleksitet overskygger nuet

Organisationer har en tendens til at udføre et dybt dyk ned i deres nuværende udviklings-setup for at forstå totaliteten af deres problem og omfanget af det. Efterfølgende bliver der udført en meget velgennemtænkt plan, som ligner et vandfald. Men var det ikke denne type af tænkning som man flygter fra til at starte med?

Det er en fælde. Gå ikke i den retning! Den fulde transition vil tage tid, og du vil ikke være i stand til at se hele ruten. Omfavn det ukendte i stedet. Du bør adaptere CI/CD iterativt. Ja, du har brug for at lokalisere nogle pains, men ikke alle sammen på en gang. Det er ikke nødvendigt at vide alt, inden du begynder at automatisere processer. Vi anbefaler at lokalisere et par pains og “nu-og-her-handlinger”. Dog skal du stadig sikre dig, at den valgte proces har brug for at blive automatiseret nu og den følgende checkliste kan muligvis hjælpe dig.

Checkliste
  1. Synliggør hvor ofte processen bliver gentaget
  2. Omrids levetiden for processen
  3. Omrids personerne og ressourcerne i processen og find ud af om de forårsager forsinkelser i CI/CD.
  4. Undersøg om processen er risikofyldt pga. manuelt arbejde og hvorvidt automatisering vil afhjælpe risikoen.
  5. Definer hvor påtrængende nødvendigt det er at automatisere netop denne proces.

Faldgrube #2 Giver det dashboard mening?

Ovenpå dine fortræffeligheder af at have bygget en perfekt moderne pipeline som kan bygge, teste og deployere applikationer baseret på forretningsbehovene, er det nu endelig tid til at slappe af ik?

Som vi alle ved, er der ikke noget som er perfekt. Ofte i forbindelse med CI/CD setups vil du have udviklet et setup, hvilket involverer mange aktører såsom leverandører, anvendere og kunder. De har alle brug for at få den rette feedback, men i cirkuset af pipeline kan det være svært at lokalisere nøjagtigt, hvilken form for feedback som virker for dem. Det her “one-trick pony show” med generiske dashboards er ikke vejen frem.

Aktører drukner ofte i irrelevant information med generiske dashboards og i stedet tyr de til gammeldags kommunikationsplatforme i form af telefonopringen eller emailen for at indhente information. Når dette dog ender med at blive tilfældet, har hele idéen bag CI/CD setuppet fejlet.

Du er kommet et godt stykke ad vejen ved at bygge den perfekte leverance-pipeline, men nu er du nødt til at gå ud for at snakke med dine aktører for at tilpasse dashboards til hvert enkelt af dem. Til at begynde med vil det virke som et stort stykke arbejde, men de vil alle takke dig for det. De vil takke dig fordi hver aktør vil tolke forskelligt på den lysende grønne knap i CI/CD værktøjet. Basalt set kan vi ikke vide hvordan de mange forretningsændringer er leveret. Aktørerne ønsker at vide nøjagtigt, hvad de kigger på og hvordan det gavner deres behov.

Så gå ud og byg nogle dashboards og modtag bifald fra dine kunder, leverandører og anvendere.

Faldgrube #3 Mangel på koordinering mellem Continuous integration og Continuous delivery

Det er tilstoppet! Hvad? Hvordan kan det lade sig gøre at vores pipeline er tilstoppet, nu hvor vi byggede den så smukt?

Dine leverandører er muligvis en effektiv flok, som lancerer den ene leverance efter den anden, men et eller andet sted i deres leverance-pipeline stopper den til. Så hvad skete der? Det er formentlig mangel på koordinering mellem aktørerne og forvirring omkring prioritering af hvilke leverancer. Særligt i store komplekse projekter med mange interessenter og aktører er det svært, hvis ikke umuligt, at have et fuldt automatiseret setup uden menneskelig interaktion.

Du bør udvikle processer og struktur hvor menneskelig interaktion og involvering er til gavn for en smooth leverance-pipeline. Det betyder at der skal være styr på prioriteterne fra start og løbende. Og hvis der sker ændringer, hvilket der vil, bør det være så tidligt i udviklingsprocessen som muligt. Det er endnu mere vigtigt, at prioriteterne er synlige hele tiden. Ingen bør være efterladt i tvivl om hvilke leverancer der er vigtigst at håndtere – selv i et automatiseret CI/CD setup.