Pochopenie nepretržitej integrácie a nepretržitého nasadzovania

Počul som CI / CD, ale nie ste si istí, čo to je?


V ideálnom prípade sú softvéroví inžinieri najatí, aby napísali kód, ktorý je potrebné odoslať do produkčného prostredia, aby ho mohli využívať podniky, ktoré tento produkt potrebujú. Na uspokojenie podnikania (často nazývaného používatelia / klienti) je nevyhnutné, aby produkty neobsahovali chyby.

Typickým prístupom, ktorý používajú softvéroví inžinieri, je pracovať vo vetvách a vytvoriť požiadavku na stiahnutie, ktorá aktualizuje hlavnú vetvu novou vykonanou aktualizáciou. Prax písania testov sme prijali ako prostriedok na zabezpečenie toho, aby nové zmeny nespôsobili chyby. Keď vývojári vo väčšine prípadov pracujú na určitej funkcii, často nevytvárajú požiadavku na stiahnutie, kým nie sú s touto funkciou úplne hotoví. Keď sa pripravia, stane sa to;

  • Trávia veľa času pokusom o aktualizáciu svojej kódovej základne so zmenami, ktoré sa vyskytli vo výrobnom odbore, keď pracovali..
  • Pritom musia vyriešiť sériu zlúčených konfliktov.
  • Je tiež možné, že rozbijú výrobnú vetvu, čo ovplyvní tých, ktorí sa z vetvy stiahnu skôr, ako je problém videný a opravený..

Ak ste sa niekedy ocitli v tejto situácii, súhlasíte s tým, že to môže byť bolesť – nikto dobrovoľne nechce tráviť svoj pracovný deň takto.

Aké je riešenie?

Nepretržitá integrácia

https://www.youtube.com/watch?v=HnWuIjUw_Q8

Aby som predišiel vyššie uvedeným scenárom; Inžinierske tímy môžu prijať tzv nepretržitá integrácia – ako už názov napovedá, zahŕňa to nepretržitú integráciu zmien kódu, ktoré vykonali vývojári, do zdieľanej vetvy / úložiska. Integrovaný kód sa musí podrobiť overenej skúške, aby sa zabezpečilo, že aplikácia neporuší. Je integrovaná len vtedy, keď test prebehne

Aby sme tomu porozumeli, predstavme si skutočný scenár, v ktorom je tím 10 vývojárov. Títo vývojári vytvoria pobočku lokálne, v ktorej píšu kód na implementáciu určitých funkcií. Namiesto toho, aby posielali žiadosti o stiahnutie, keď sú úplne hotové s touto funkciou, rozhodnú sa odoslať žiadosti o stiahnutie, pretože vykonávajú malé zmeny. Príkladom takejto zmeny bude vytvorenie nového spôsobu, za predpokladu, že vývojár pracuje na funkcii, ktorá umožňuje používateľom spravovať jednotlivé úlohy v aplikácii. Namiesto toho, aby čakala na dokončenie funkcie úlohy, aby vývojár dodržal vzorec nepretržitej integrácie, vývojár posunie túto malú zmenu (v porovnaní s tým, na ktorom pracuje) a vytvorí požiadavku na stiahnutie, aby sa spojil s kódom..

Predtým, ako sa táto nová zmena integruje, musí sa vykonať séria skúšok.

Tímy softvérového inžinierstva využívajú nástroje ako Travis CI vytvoriť tieto integračné procesy a testy. S nástrojmi, ako sú tieto, sa testy automatizujú tak, že sa spustia, akonáhle je požiadavka na stiahnutie odoslaná do cieľovej vetvy vybranej počas nastavenia.

Výsledky testov sa generujú a vývojár, ktorý vytvoril požiadavky na ťahanie, môže vidieť výsledky a vykonať potrebné zmeny. Výhody toho, že sa držíme tohto vzoru integračného kódu v čo najmenšej možnej miere a majú overený test na spustenie, sú;

  • Zúčastnený tím je schopný vedieť, čo spôsobilo proces zostavenia alebo test zlyhania. Tým sa znižuje možnosť odoslania chyby do výroby.
  • Ak tím automatizuje proces, bude mať luxus, aby sa mohol sústrediť na to, aby bol produktívny.

V tejto praxi je dôležité poznamenať, že tím povzbudzuje tím, aby často tlačil kód do hlavnej vetvy. Toto by bolo neúčinné, ak ostatní členovia tímu nebudú ťahať hlavnú vetvu za aktualizáciu svojho miestneho úložiska..

Druhy testov

V písomných testoch, ktoré budú súčasťou integračného procesu, uvádzame niektoré z nich, ktoré je možné v tomto procese implementovať:

  • Integrácia – kombinuje jednotlivé jednotky softvéru a testuje ich ako skupina.
  • Jednotka – testuje jednotlivé jednotky alebo komponenty softvéru, napríklad metódy alebo funkcie.
  • UI – tvrdí, že softvér funguje dobre z pohľadu používateľa.
  • Prijatie – testuje, či softvér spĺňa obchodné požiadavky.

Je dôležité si uvedomiť, že nemusíte všetky testovať, pretože niekoľko z nich už môže byť obsiahnutých v kóde napísanom vývojárom..

Nástroje na nepretržitú integráciu

Bez toho, aby ste prešli do hĺbky, tu sú nástroje, ktoré môžete začať využívať vo svojich súčasných alebo nových projektoch;

  • Travis CI – známe vo svete s otvoreným zdrojovým kódom a sľubujú vám, že váš kód bude bez problémov testovaný v priebehu niekoľkých minút.
  • Kruh CI – poskytuje výkon, flexibilitu a kontrolu na automatizáciu vášho potrubia od ovládania po nasadenie.
  • Jenkins – poskytuje stovky doplnkov na podporu budovania, zavádzania a automatizácie akéhokoľvek projektu.

Ak ste v Jenkinsovi nováčikom, navrhol by som vám to Kurz Udemy naučiť sa CI s Java a .NET.

Nepretržité zavádzanie

Aké dobré bude, ak funkcia, ktorú vytvoríte, je umiestnená v úložisku niekoľko týždňov alebo mesiacov pred jej nasadením do produkčného prostredia. Inžinierske tímy môžu pracovať na integrácii malých zmien do hlavného odvetvia tak, ako sa to stane, ale môžu tieto zmeny čo najskôr presadiť do výrobného prostredia..

Cieľom pri nepretržitom nasadzovaní je dosiahnuť, aby sa zmeny urobili používateľom hneď, ako vývojári integrujú tieto zmeny do hlavnej vetvy..

Podobne ako v prípade nepretržitej integrácie sa pri využívaní nepretržitého zavádzania nastavujú automatizované testy a kontroly, aby sa zabezpečilo overenie novo integrovaných zmien. Nasadenie sa uskutoční až po úspešnom absolvovaní týchto testov.

Aby tím mohol ťažiť z praxe nepretržitého nasadenia, musí mať k dispozícii tieto prvky;

  • Automatizované testovanie je základným pilierom všetkých nepretržitých technických postupov. V prípade nepretržitého zavádzania musí byť kód, ktorý sa má nasadiť, v súlade s normami, ktoré tím zaviedol pre to, čo plánujú vytlačiť koncovým používateľom. V ideálnom prípade, ak je nová zmena pod prahom, test by mal zlyhať a nemal by sa integrovať. Inak sa stáva integrovaným.
  • Napriek automatizovaným testom back-to-back je možné, že niektoré chyby vkĺznu do produkčného prostredia. Z tohto dôvodu je potrebné, aby tím bol schopný vrátiť späť vykonanú zmenu – vrátiť nasadenie. To by malo vrátiť výrobný kód na pôvodný stav pred vykonaním novej zmeny.
  • Monitorovacie systémy sú potrebné na sledovanie zmien, ktoré boli vytlačené do výrobného prostredia. Takto môže tím sledovať chyby, s ktorými sa používatelia stretávajú pri využívaní nasadených zmien.

Nástroje uvedené na nepretržitú integráciu vám tiež poskytujú funkciu nastavenia systému nepretržitého nasadenia. Existuje veľa z nich si môžete tiež prečítať na.

záver

Produktivita vývojového tímu je nevyhnutná pre úspech podnikania. Aby sa zabezpečila ich produktivita, musia sa prijať postupy, ktoré to podporujú. Nepretržitá integrácia a zavádzanie sú príklady takýchto postupov.

Vďaka nepretržitej integrácii môžu tímy denne tlačiť čo najviac kódu. Po dosiahnutí tohto cieľa je ľahké nasadiť novo pridané zmeny na používateľa čo najskôr. Nasadenie týchto zmien umožňuje získať spätnú väzbu od používateľov. Podnik bude nakoniec schopný inovovať na základe získaných spätných väzieb, čo je výhodné pre všetkých.

Ak ste vývojár a zaujímate sa o výučbu CI / CD, pozrite si toto brilantný kurz.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map