CI/CD Pipeline: Learn with Example

Co je to kanál CI/CD?

Plynovod CI/CD automatizuje proces dodávky softwaru. Vytváří kód, spouští testy a pomáhá vám bezpečně nasadit novou verzi softwaru. CI/CD pipeline snižuje manuální chyby, poskytuje zpětnou vazbu vývojářům a umožňuje rychlé iterace produktů.

CI/CD pipeline zavádí automatizaci a nepřetržité monitorování po celou dobu životního cyklu softwarového produktu. Zahrnuje to od fáze integrace a testování až po dodání a nasazení. Tyto propojené postupy se označují jako potrubí CI/CD.

Co je to kontinuální integrace, průběžné doručování a průběžné nasazování?

  • Nepřetržitá integrace je metoda vývoje softwaru, kde členové týmu mohou integrovat svou práci alespoň jednou denně. V této metodě je každá integrace zkontrolována automatizovaným sestavením pro vyhledání chyby.
  • Nepřetržitá dodávka je metoda softwarového inženýrství, ve které tým vyvíjí softwarové produkty v krátkém cyklu. Zajišťuje, že software lze kdykoli snadno uvolnit.
  • Nepřetržité nasazení je proces softwarového inženýrství, ve kterém jsou funkce produktu dodávány pomocí automatického nasazení. Pomáhá testerům ověřit, zda jsou změny v kódové základně správné, a je stabilní nebo ne.

V tomto kurzu CI/CD Pipeline se naučíte:

Fáze potrubí CI/CD

Kanál CI/CD je spustitelná specifikace kroků, které by měl každý vývojář provést, aby dodal novou verzi jakéhokoli softwaru. Selhání v každé fázi spouští oznámení prostřednictvím e -mailu, Slack nebo jiných komunikačních platforem. Umožňuje odpovědným vývojářům vědět o důležitých problémech.

Zde jsou důležité fáze potrubí CI/CD:

Fáze potrubí CI/CD



jak pořídit snímek obrazovky na windows 7 professional

Zdrojová fáze

Ve fázi zdroje spouští kanál CI/CD úložiště kódu. Jakákoli změna v programu spustí oznámení nástroji CI/CD, který spouští ekvivalentní kanál. Mezi další běžné spouště patří pracovní toky iniciované uživateli, automatické plány a výsledky dalších kanálů.

Build Stage

Toto je druhá fáze kanálu CI/CD, ve které sloučíte zdrojový kód a jeho závislosti. Provádí se hlavně za účelem vytvoření spustitelné instance softwaru, který můžete potenciálně odeslat koncovému uživateli.

Programy napsané v jazycích jako C ++, Java, C nebo Go by měly být kompilovány. Na druhou stranu programy JavaScript, Python a Ruby mohou fungovat bez fáze sestavení.

Neschopnost projít fází sestavení znamená, že došlo k zásadní nesprávné konfiguraci projektu, takže je lepší, abyste se s tímto problémem okamžitě vypořádali.

Testovací fáze

Testovací fáze zahrnuje provádění automatizovaných testů k ověření správnosti kódu a chování softwaru. Tato fáze brání tomu, aby se snadno reprodukovatelné chyby dostaly ke klientům. Je zodpovědností vývojářů psát automatizované testy.

Nasadit fázi

Toto je poslední fáze, kdy je váš produkt spuštěn. Jakmile sestavení úspěšně projde všemi požadovanými testovacími scénáři, je připraveno k nasazení na živý server.

Příklad kanálu CI/CD

Zde je příklad potrubí CI/CD:

  • Kontrola zdrojového kódu: Hostujte kód na GitHubu jako soukromé úložiště. To vám pomůže integrovat vaši aplikaci s hlavními službami a softwarem.
  • Průběžná integrace: Použijte platformu CircleCI pro nepřetržitou integraci a doručování a potvrďte každý kód. Když změny upozorní, tento nástroj vytáhne kód dostupný v GitHubu a zpracuje proces k sestavení a spuštění testu.
  • Nasadit kód na UAT: Nakonfigurujte CitcleCI tak, aby implementoval váš kód na server AWS UAT.
  • Nasazení do produkce: K nasazení kódu do UAT musíte znovu použít kontinuální kroky integrace.

Doporučené postupy pro CI/CD pipeline

Zde jsou doporučené postupy kanálu CI/CD:

  • Zapište si aktuální vývojový proces, můžete tedy znát postupy, které je třeba změnit, a postup, který lze snadno automatizovat.
  • Začněte malým dokladem o projektu, než budete pokračovat, a dokončete celý vývojový proces najednou.
  • Nastavte kanál s více než jednou fází, ve které nejprve proběhnou rychlé základní testy.
  • Spusťte každý pracovní postup ze stejného, ​​čistého a izolovaného prostředí.
  • Spouštějte nástroje s otevřeným zdrojovým kódem, které pokrývají vše od stylu kódu až po bezpečnostní skenování.
  • Nastavte lepší centrum kódu, abyste mohli průběžně kontrolovat kvalitu kódu spuštěním standardní sady testů na každé větvi.
  • Vzájemný kód zkontrolujte každou žádost o stažení a vyřešte problém ve spolupráci.
  • Než začnete přechod na automatizaci CD, musíte definovat metriky úspěchu. To vám pomůže důsledně analyzovat váš software a vyvíjet postup a doladit, kde je potřeba.

Výhody CI/CD potrubí

Zde jsou výhody/ výhody CI/ CD Pipeline:

  • Sestavování a testování lze snadno provádět ručně.
  • Může zlepšit konzistenci a kvalitu kódu.
  • Zlepšuje flexibilitu a má schopnost dodávat nové funkce.
  • CI/CD pipeline může zefektivnit komunikaci.
  • Může automatizovat proces dodávání softwaru.
  • Pomáhá vám dosáhnout rychlejší zpětné vazby od zákazníků.
  • CI/CD pipeline vám pomůže zvýšit viditelnost vašich produktů.
  • Umožňuje vám odstranit ruční chyby.
  • Snižuje náklady a práci.
  • Plynovody CI/CD mohou zrychlit životní cyklus vývoje softwaru.
  • Má automatizované nasazení potrubí.
  • CD potrubí poskytuje rychlou zpětnou vazbu od vývojáře ke klientovi.
  • Zlepšuje komunikaci mezi zaměstnanci organizace.
  • Umožňuje vývojářům vědět, které změny v sestavení se mohou obrátit na makléře, a vyhnout se jim v budoucnosti.
  • Automatické testy spolu s několika manuálními testovacími testy pomáhají vyřešit případné problémy, které mohou nastat.

Důležité nástroje CI/CD

Zde jsou důležité nástroje CI/CD:

Jenkins

Jenkins je open-source server pro kontinuální integraci, který pomáhá dosáhnout procesu kontinuální integrace (a nejen) automatizovaným způsobem. Jenkins je zdarma a je zcela napsán v Javě. Jenkins je široce používaná aplikace po celém světě, která má přibližně 300 000 instalací a roste každým dnem.

Funkce:

  • Jenkin bude během dne vytvářet a testovat kód mnohokrát.
  • Automatizovaný proces sestavování a testování, úspora načasování a snížení závad.
  • Kód je nasazen po každém úspěšném sestavení a testu.
  • Cyklus vývoje je rychlý.

Odkaz: https://www.jenkins.io/download/


Bambus

Bambus je server pro nepřetržitou integraci, který provádí - automatické sestavování, testování a vydávání na jednom místě. Funguje bezproblémově se softwarem JIRA a Bitbucket.

Funkce:

  • Spusťte paralelní dávkové testy
  • Nastavení Bamboo je velmi jednoduché
  • Funkce oprávnění podle prostředí umožňuje vývojářům a QA nasazení do jejich prostředí
  • Vestavěné větvení a pracovní toky Git. Automaticky sloučí větve.

Odkaz: https://www.atlassian.com/software/bamboo


CircleCI

Kruh CI je flexibilní nástroj CI, který běží v jakémkoli prostředí, jako je mobilní aplikace napříč platformami, server API Pythonu nebo cluster Docker. Tento nástroj snižuje chyby a zlepšuje kvalitu aplikace.

Funkce:

  • Umožňuje vybrat prostředí sestavení
  • Podporuje mnoho jazyků včetně C ++, JavaScript, NET, PHP, Python a Ruby
  • Podpora pro Docker vám umožňuje konfigurovat přizpůsobené prostředí.
  • Automaticky zrušit všechny spuštěné nebo spuštěné verze, když je spuštěna novější verze.

Odkaz: https://circleci.com/

Proč je CI/CD Pipeline důležité pro IT lídry?

  • Spolehlivost může zlepšit potrubí CI/CD.
  • Díky tomu je tým IT pro vývojáře atraktivnější.
  • CI/CD pipeline pomáhá IT vedoucím, získávat kód z řízení verzí a spouštět sestavování softwaru.
  • Pomáhá přesunout kód do cílového výpočetního prostředí.
  • Umožňuje vedoucím projektů snadno spravovat proměnné prostředí a konfigurovat je pro cílové prostředí.
  • Projektoví manažeři mohou publikovat komponenty push aplikací do služeb, jako jsou webové služby, databázové služby, služby API atd.
  • Poskytování dat protokolu a upozornění na stav doručení.
  • Umožňuje programátorům ověřit změny kódu, než se pohnou vpřed, což snižuje pravděpodobnost, že závady skončí ve výrobě.

Ci / CD Pipeline KPI

  • Doba cyklu nebo nasazení: Cyklus je doba, která trvá od fáze sestavení do výroby. Průměrnou dobu životního cyklu můžete získat měřením fází vývojového procesu. Tato metrika poskytne vhled do úzkých míst ve vašem procesu a celkové rychlosti vývojového času.
  • Frekvence vývoje: Frekvence vývoje vám umožňuje analyzovat úzká místa, která najdete během automatizace. Častější menší vydání snižují riziko závad a opravují je, když jsou nalezeny. Taková metrika je celkovým měřítkem efektivity vašeho týmu.
  • Změnit dodací lhůtu: To měří počáteční čas vývojové fáze k nasazení. Tato metrika je indikátorem celého procesu vývoje a toho, jak dobře tým spolupracuje.
  • Změnit míru selhání: Zaměřuje se na to, kolikrát byl vývoj úspěšný a kolikrát selhal.
  • MTTR vs. MTTF: MTTR (Mean Time to Recovery) je doba, kterou váš tým potřebuje k zotavení z neúspěchu. MTTF (Mean Time to Failure) měří dobu mezi opravami a výpadky. Tyto metriky jsou odrazem schopnosti týmu reagovat a řešit problémy.

souhrn

  • Plynovod CI/CD automatizuje proces dodávky softwaru.
  • CI/CD pipeline zavádí automatizaci a nepřetržité monitorování po celou dobu životního cyklu softwarového produktu.
  • Kontinuální integrace je metoda vývoje softwaru, kde členové týmu mohou integrovat svou práci alespoň jednou denně.
  • Kontinuální dodávka je metoda softwarového inženýrství, při které tým vyvíjí softwarové produkty v krátkém cyklu.
  • Kontinuální nasazení je proces softwarového inženýrství, ve kterém jsou funkce produktu dodávány pomocí automatického nasazení.
  • Existují čtyři fáze kanálu CI/CD 1) Fáze zdroje, 2) Fáze sestavení, 3) Fáze testování, 4) Fáze nasazení.
  • Důležité nástroje CI/CD jsou Jenkins, Bambo a Circle CI.
  • Spolehlivost může zlepšit potrubí CI/CD.
  • Díky kanálu CI/CD je tým IT pro vývojáře atraktivnější.
  • Cyklus je doba, která trvá od fáze sestavení do výroby.
  • Frekvence vývoje vám umožňuje analyzovat úzká místa, která najdete během automatizace.
  • Změnit dodací lhůtu měří počáteční čas vývojové fáze k nasazení.
  • Změnit míru selhání zaměřuje se na to, kolikrát se vývoj podaří vs. kolikrát selže.
  • MTTR (Mean Time to Recovery) je doba, kterou váš tým potřebuje k zotavení z neúspěchu.
  • MTTF (Mean Time to Failure) měří dobu mezi opravami a výpadky.