birželio 22, 2023

Infrastruktūros optimizavimas taikant CI/CD: kaip taupyti laiką, mažinti klaidų tikimybę ir didinti produktyvumą

Įsivaizduokite – jūsų programinės įrangos kūrimo komanda skuba išleisti kritiškai svarbų atnaujinimą, tačiau rankinės diegimo procedūros ir klaidų kupini procesai darbus gerokai lėtina. Kas tuomet rinkoje pirmauja? O gi, Jūsų konkurentai, besimėgaujantys efektyvesniu darbo procesu.

Būtent taip nutiko e-prekybos gigantui „Etsy“. Lėtas ir klaidingas diegimo procesas, juo sekantys reti atnaujinimai ir per mažai bendradarbiavimo tarp kūrėjų ir operacijas vykdančių komandų įmonei vos nekainavo žlugimo. Nuolat atsiliekantys „Etsy“ privalėjo keistis, tačiau pasikeitimai net ir pačioms didžiausioms įmonėms dažniausiai pasirodo per brangūs ir bauginantys – o kas, jei įdiegus naujas praktikas viskas tik pablogės, jei procesas visai sugrius?

„Etsy“ privalėjo rasti būdą, kaip plėsti savo infrastruktūrą, prisitaikyti prie spartaus rinkos augimo ir tuo pačiu išlaikyti galimybę žaibiškai diegti naujas funkcijas bei patobulinimus. Negana to, pokyčiai turėjo būti atliekami mažomis „porcijomis“, kad programuotojai galėtų susitelkti rašant mažas, bet kokybiškas kodo atkarpas, užuot kūrus didelį, tačiau žemiau vidutinės kokybės kodo gabalą.

 

Čia padėtį gelbsti CI/CD (Continuous Integration and Continuous Delivery)

Vienintelis būdas, kaip „Etsy“ galėtų susidoroti su plėtros problema, buvo sumažinti kodą prižiūrinčių žmonių skaičių ir jų darbą automatizuoti. Būtent tai ir yra CI/CD – gerosios praktikos ir automatiniai testavimai, vykdomi tam, kad būtų užtikrintas kodo atitikimas išsikeltiems lūkesčiams.

Įdiegus CI/CD praktiką, „Etsy“ darbo procesas atrodė taip:

  1. Programuotojai dažniau pateikia savo kodo pakeitimus į bendrą repozitoriją;
  2. Vos tik atsiradus naujam pateikimui, paleidžiamas automatinis kūrimo procesas ir toliau rašomas bendras kodas;
  3. Paleidžiami automatiniai testai, tikrinantys kodo funkcionalumą ir stabilumą.
  4. Jei kodas „praeina“ visus testus, jis automatiškai perkeliamas į diegimo etapą ir diegiamas į bandymų arba gamybinę aplinką.

Paprasčiau tariant, vietoj: 

– „Gal gali paziureti mano koda?“

– „Veliau, dbr uzsiemes“

– „Ok, parasyk kai paziuresi 🙁 “Dabar „Etsy“ padaro po 50 diegimų ir atnaujinimų per dieną!

 

Teoriškai – viskas aišku ir paprasta, o realybėje atrodė taip:

Naudodama atviro kodo įrankių ir pasirinktinių sprendimų derinį, Etsy“ įdiegė CI/CD pipeline’ą. CI procesas buvo valdomas su „Jenkins“, automatizuojančiu kodų pakeitimų, kūrimo, testavimo ir integracijos procesą. Tuo tarpu CD procesui „Etsy“ naudojo savo pačių diegimo įrankį „Deployinator“, atsakingą už greitesnį ir patikimesnį diegimo proceso valdymą bandymų, gamybinėse ir atkūrimo aplinkose.

Savo programinės įrangos kokybei užtikrinti,  „Etsy“ naudojo automatinio testavimo įrankių rinkinį, tarp kurių – paskirų vienetų testavimui skirtas „PHPUnit“, naršyklės testavimui dedikuotas „Selenium“ ir JavaScript programavimo kalbos sintaksę tikrinantis „JSHint“. Šie įrankiai buvo integruoti į CI/CD pipeline’ą tam, kad dar ankstyvoje kūrimo stadijoje būtų galima identifikuoti galimas problemas ir užkirsti kelią jų patekimui į gamybinę aplinką.

Negana to, „Etsy“ naudojo „funkcijų vėliavų“ sistemą, leidžiančią naujas funkcijas išleisti dalimis nedideliam vartotojų kiekiui. Toks metodas palengvino A/B testavimą ir leido „Etsy“ gauti vartotojų atsiliepimus bei stebėti našumą prieš galutinai paleidžiant produktą į rinką.

Rezultatas – įdiegusi CI/CD praktiką „Etsy“ sulaukė reikšmingo diegimo dažnio padidėjimo (net iki 50 sėkmingų diegimų per dieną), kartu išlaikydama aukštą programinės įrangos kokybės lygį.

 

Norite panašaus rezultato? Skaylink gali padėti!

Ar visas minėtas procesas atrodo kaip „Misija neįmanoma“? Skaylink mėgsta iššūkius, tad jei manote, kad ir Jūsų verslas turėtų naudos iš CI/CD, Skaylink patirtis Cloud paslaugų sferoje ir patyrę DevOps specialistai gali padėti jums įdiegti šias praktikas. O tuomet džiugins geriausi rezultatai – Jūsų infrastruktūros transformacija ir nuolatinio tobulėjimo kultūra.

Susisiekite su mumis ir pradėkime kurti jau šiandien!