Průvodce DevOps pro začátečníky

Jaký je význam DevOps, co znamená pro IT profesionály, popis metod, frameworků a nástrojů.

Průvodce DevOps pro začátečníky

Od doby, kdy se pojem DevOps ujal ve světě IT, se toho stalo hodně. S velkou částí ekosystému open source je důležité znovu zvážit, proč to začalo a co to znamená pro kariéru v IT.

Co je DevOps

I když neexistuje žádná jednotná definice, věřím, že DevOps je technologický rámec, který umožňuje spolupráci mezi vývojovými týmy a provozními týmy za účelem rychlejšího nasazování kódu do produkčních prostředí se schopností replikace a automatizace. Zbytek článku strávíme rozbalováním tohoto prohlášení.

Slovo „DevOps“ je kombinací slov „vývoj“ (vývoj) a „operace“ (operace). DevOps pomáhá urychlit poskytování aplikací a služeb. To umožňuje organizacím efektivně sloužit svým zákazníkům a stát se konkurenceschopnějšími na trhu. Jednoduše řečeno, DevOps je o sladění vývoje a IT operací s lepší komunikací a spoluprací.

DevOps si představuje kulturu, kde je spolupráce mezi vývojovými týmy, operátory a obchodními týmy považována za zásadní. Není to jen o nástrojích, protože DevOps v organizaci neustále přináší hodnotu i zákazníkům. Nástroje jsou spolu s lidmi a procesy jedním z jejích pilířů. DevOps zvyšuje schopnost organizací dodávat vysoce kvalitní řešení v co nejkratším čase. DevOps také automatizuje všechny procesy, od sestavení po nasazení, aplikaci nebo produkt.

Diskuse DevOps se zaměřuje na vztah mezi vývojáři, lidmi, kteří píší software pro živobytí, a operátory odpovědnými za údržbu tohoto softwaru.

Výzvy pro vývojový tým

Vývojáři bývají nadšení a ochotní zavádět nové přístupy a technologie k řešení organizačních problémů. Potýkají se však také s určitými problémy:

  • Konkurenční trh vytváří velký tlak na dodání produktu včas.
  • Měli by se starat o správu kódu připraveného pro produkci a implementaci nových funkcí.
  • Cyklus vydání může být dlouhý, takže vývojový tým musí před nasazením aplikací provést několik předpokladů. V tomto scénáři je potřeba více času na vyřešení problémů, které nastanou během nasazení do produkčního nebo testovacího prostředí.

Výzvy, kterým čelí operační skupina

Provozní skupiny se historicky zaměřovaly na stabilitu a spolehlivost IT služeb. Provozní týmy proto hledají stabilitu prostřednictvím změn zdrojů, technologií nebo přístupů. Mezi jejich úkoly patří:

  • Řídit alokaci zdrojů podle rostoucí poptávky.
  • Zvládání změn v designu nebo přizpůsobení, které je nutné aplikovat na produkční prostředí.
  • Diagnostikujte a řešte problémy související s produkčním prostředím po vlastním nasazení aplikací.

Jak DevOps řeší vývojové a provozní problémy

Namísto zavádění velkého množství funkcí aplikace najednou se společnosti snaží zjistit, zda mohou svým zákazníkům zavést malý počet funkcí prostřednictvím série iterací vydání. Tento přístup má řadu výhod, jako je lepší kvalita softwaru, rychlejší zpětná vazba od zákazníků atd. To zase zajišťuje vysokou míru spokojenosti zákazníků. K dosažení těchto cílů musí společnosti:

  • Snižte míru selhání u nových vydání
  • Zvyšte frekvenci nasazení
  • Dosáhněte rychlejší střední doby obnovy v případě vydání nové aplikace.
  • Zkraťte čas na opravy

DevOps se stará o všechny tyto úkoly a pomáhá zajistit bezproblémové doručení. Organizace používají DevOps k dosažení úrovní výkonu, které byly ještě před několika lety nemyslitelné. Provádějí desítky, stovky a dokonce tisíce nasazení za den a zároveň poskytují prvotřídní spolehlivost, stabilitu a zabezpečení. (Další informace o velikostech šarží a jejich dopad na dodávku softwaru).

DevOps se pokouší řešit různé problémy, které vyplývají z minulých metodologií, včetně:

  • Izolace práce vývojových týmů a operátorů
  • Testování a nasazení jako samostatné fáze po návrhu a sestavení, které trvají déle než cykly sestavení.
  • Nadměrný čas strávený testováním, nasazováním a navrhováním namísto soustředění se na budování klíčových obchodních služeb
  • Ruční nasazení kódu vedoucí k chybám ve výrobě
  • Rozdíly v harmonogramech vývojových a provozních týmů vedoucí k dalším zpožděním

Průvodce DevOps pro začátečníky

Konfrontace DevOps, Agile a tradičního IT

DevOps je často diskutován v souvislosti s jinými IT praktikami, zejména agilní a vodopádovou IT infrastrukturou.

Agile je soubor principů, hodnot a metod pro tvorbu softwaru. Pokud tedy máte například nápad, který chcete přeměnit v software, můžete využít Agile principy a hodnoty. Tento software však může běžet pouze ve vývojovém nebo testovacím prostředí. Chcete jednoduchý, bezpečný způsob, jak rychle a opakovaně přesouvat software do produkce, a cesta vede přes nástroje a postupy DevOps. Agilní vývoj softwaru se zaměřuje na vývojové procesy, přičemž DevOps odpovídá za vývoj a nasazení co nejbezpečnějším a nejspolehlivějším způsobem.

Porovnání tradičního vodopádového modelu s DevOps je dobrý způsob, jak pochopit výhody, které DevOps přináší. Následující příklad předpokládá, že aplikace bude spuštěna za čtyři týdny, vývoj je dokončen z 85 %, aplikace bude aktivní a proces nákupu serverů pro odeslání kódu právě začal.

Tradiční postupy
Procesy v DevOps

Po zadání objednávky nových serverů vývojový tým pracuje na testování. Cílová skupina pracuje na rozsáhlé dokumentaci, kterou podniky potřebují k nasazení infrastruktury.
Po zadání objednávky na nové servery spolupracují vývojové a provozní týmy na procesech a pracovních postupech pro instalaci nových serverů. To vám umožní lépe porozumět požadavkům na infrastrukturu.

Zkresleným informacím o převzetí služeb při selhání, redundanci, umístění datového centra a požadavcích na úložiště chybí informace od vývojového týmu, který má o aplikaci hluboké znalosti.
Podrobné informace o převzetí služeb při selhání, redundanci, obnově po havárii, umístění datových center a požadavcích na úložiště jsou známé a správné díky přispění vývojového týmu.

Pracovní skupina nemá ponětí o postupu vývojového týmu. Vypracovává také monitorovací plán na základě svých vlastních nápadů.

Pracovní skupina si je plně vědoma pokroku dosaženého vývojovým týmem. Spolupracuje také s vývojovým týmem a společně vyvíjejí plán monitorování, který uspokojí potřeby IT a obchodu. Používají také nástroje pro monitorování výkonu aplikací (APM).

Zátěžový test provedený před spuštěním aplikace způsobí selhání aplikace a zpozdí její spuštění.
Zátěžový test provedený před spuštěním aplikace vede ke snížení výkonu. Vývojový tým rychle odstraňuje úzká hrdla a aplikace se spouští včas.

Životní cyklus DevOps

DevOps zahrnuje přijetí určitých obecně uznávaných postupů.

Průběžné plánování

Průběžné plánování čerpá z principů štíhlé výroby a začíná v malém tím, že identifikuje zdroje a výsledky potřebné k otestování hodnoty podniku nebo vize, neustálému přizpůsobování, měření pokroku, učení se z potřeb zákazníků, změně směru podle potřeby, aby se přizpůsobila agilitě a aktualizaci podnikání. plán.

Společný rozvoj

Proces kolaborativního vývoje umožňuje podnikům, vývojovým týmům a testovacím týmům v různých časových pásmech nepřetržitě dodávat kvalitní software. To zahrnuje vývoj na více platformách, podporu vícejazyčného programování, vytváření uživatelských příběhů, nápady a správu životního cyklu. Společný vývoj zahrnuje proces a praxi nepřetržité integrace, která podporuje častou integraci kódu a automatizované sestavení. Častým vkládáním kódu do aplikace jsou problémy s integrací zachyceny na začátku životního cyklu (kdy je snazší je opravit) a celkové úsilí o integraci je sníženo neustálou zpětnou vazbou, protože projekt vykazuje neustálý a prokazatelný pokrok.

Průběžné testování

Nepřetržité testování snižuje náklady na testování tím, že pomáhá vývojovým týmům vyvážit rychlost a kvalitu. Odstraňuje také úzká hrdla testování prostřednictvím virtualizace služeb a usnadňuje vytváření virtualizovaných testovacích prostředí, která lze snadno sdílet, nasazovat a upgradovat při změnách systémů. Tyto funkce snižují náklady na poskytování a údržbu testovacích prostředí a také zkracují dobu testovacího cyklu, což umožňuje provádění integračního testování v rané fázi životního cyklu.

Průběžné uvolňování a nasazení

Tyto metodiky s sebou přinášejí jeden ze základních postupů: průběžné vydávání a zavádění. To poskytuje nepřetržitý kanál, který automatizuje klíčové procesy. Snižuje manuální kroky, čekací doby na zdroje a přepracování tím, že umožňuje nasazení tlačítka pro více verzí, méně chyb a plnou transparentnost.

Automatizace hraje klíčovou roli při zajišťování stabilní a spolehlivé verze softwaru. Jednou z největších výzev je převzít manuální procesy, jako je sestavení, regrese, nasazení a infrastruktura, a zautomatizovat je. To vyžaduje kontrolu verze zdrojového kódu; scénáře testování a nasazení; aplikační infrastruktura a konfigurační data; stejně jako knihovny a balíčky, na kterých aplikace závisí. Dalším důležitým faktorem je možnost dotazovat se na stav všech prostředí.

Průběžné sledování

Nepřetržité monitorování poskytuje reporting na podnikové úrovni, který vývojovým týmům pomáhá porozumět dostupnosti a výkonu aplikací v produkčním prostředí před jejich nasazením do produkčního prostředí. Včasná zpětná vazba poskytovaná neustálým monitorováním je zásadní pro snížení nákladů na chyby a udržení projektů v pohybu správným směrem. Tato praxe často zahrnuje monitorovací nástroje, které mají tendenci odhalovat metriky související s výkonem aplikace.

Neustálá zpětná vazba a optimalizace

Neustálá zpětná vazba a optimalizace poskytují vizuální reprezentaci toku zákazníků a určují problematické oblasti. Zpětnou vazbu lze zahrnout jak do předprodejní, tak do postprodukční fáze, aby se maximalizovala hodnota a zajistilo se úspěšné dokončení ještě více transakcí. To vše poskytuje okamžitý přehled o hlavní příčině problémů zákazníků, které ovlivňují jejich chování a dopad na podnikání.

Průvodce DevOps pro začátečníky

Výhody DevOps

DevOps může pomoci vytvořit prostředí, kde vývojáři a operátoři pracují jako tým na dosažení společných cílů. Důležitým milníkem v tomto procesu je zavedení kontinuální integrace a kontinuálního doručování (CI/CD). Tyto techniky umožní týmům uvádět software na trh rychleji s menším počtem chyb.

Důležité výhody DevOps jsou:

  • Předvídatelnost: DevOps nabízí výrazně nižší míru selhání u nových verzí.
  • Údržba: DevOps poskytuje snadné obnovení v případě selhání v nové verzi nebo vypnutí aplikace.
  • Reprodukovatelnost: Systém správy verzí pro sestavení nebo kód umožňuje podle potřeby obnovit dřívější verze.
  • Vyšší kvalita: Řešení problémů s infrastrukturou zlepšuje kvalitu vývoje aplikací.
  • Čas uvedení na trh: Optimalizace dodávky softwaru zkracuje dobu uvedení na trh o 50 %.
  • Snížení rizik: Zajištění bezpečnosti v životním cyklu softwaru snižuje počet defektů v průběhu životního cyklu.
  • Efektivita nákladů: Snaha o nákladovou efektivitu při vývoji softwaru oslovuje vrcholové vedení.
  • Stabilita: Softwarový systém je stabilnější, bezpečnější a změny lze testovat.
  • Větší kódová základna je rozdělena na spravovatelné části: DevOps je založeno na agilních vývojových postupech, které vám umožňují rozdělit velkou kódovou základnu na menší, spravovatelné části.

Principy DevOps

Přijetí DevOps zplodilo několik principů, které se vyvíjely (a stále se vyvíjejí). Většina poskytovatelů řešení vyvinula vlastní modifikace různých metodologií. Všechny tyto principy jsou založeny na holistickém přístupu k DevOps a mohou je používat organizace všech velikostí.

Vyvíjejte a testujte v produkčním prostředí

Jde o to, umožnit vývojovým týmům a týmům pro zajištění kvality (QA) vyvíjet a testovat systémy, které se chovají jako produkční systémy, aby mohly vidět, jak se aplikace chová a jak dobře funguje, než bude připravena k nasazení.

Aplikace by měla být připojena k produkčním systémům co nejdříve v životním cyklu, aby se vyřešily tři hlavní potenciální problémy. Za prvé, umožňuje otestovat aplikaci v prostředí blízkém reálnému prostředí. Za druhé, umožňuje vám předem testovat a ověřovat procesy doručování aplikací. Zatřetí, umožňuje operačnímu týmu otestovat v rané fázi životního cyklu, jak se bude jejich prostředí chovat při nasazení aplikací, což jim umožňuje vytvořit vysoce přizpůsobitelné prostředí zaměřené na aplikace.

Nasazení s reprodukovatelnými a spolehlivými procesy

Tento princip umožňuje vývojovým a provozním týmům udržovat agilní procesy vývoje softwaru během celého životního cyklu. Automatizace je zásadní pro vytváření opakujících se, spolehlivých a reprodukovatelných procesů. Organizace proto musí vytvořit zásobovací kanál, který umožní nepřetržité, automatizované nasazení a testování. Časté nasazování také umožňuje týmům testovat procesy nasazení, čímž se snižuje riziko selhání nasazení během skutečných verzí.

Sledování a kontrola kvality práce

Organizace jsou dobré v monitorování produkčních aplikací, protože mají nástroje, které zachycují metriky a klíčové ukazatele výkonu (KPI) v reálném čase. Tento princip posouvá monitorování v rané fázi životního cyklu a zajišťuje, že automatické testování sleduje funkční a nefunkční atributy aplikace v rané fázi procesu. Kdykoli je aplikace testována a nasazena, musí být prozkoumány a analyzovány metriky kvality. Monitorovací nástroje poskytují včasné varování před problémy s výkonem a kvalitou, které mohou nastat během výroby. Tyto ukazatele by měly být shromažďovány ve formátu, který je přístupný a srozumitelný všem zúčastněným stranám.

Zlepšení smyček zpětné vazby

Jedním z cílů procesů DevOps je umožnit organizacím reagovat a provádět změny rychleji. Při dodávání softwaru tento cíl vyžaduje, aby organizace včas obdržela zpětnou vazbu a poté se rychle poučila z každé podniknuté akce. Tento princip vyžaduje, aby organizace vytvořily komunikační kanály, které umožní zúčastněným stranám přístup a interakci na základě zpětné vazby. Rozvoj lze provést úpravou jejich projektových plánů nebo priorit. Výroba může působit zlepšením pracovního prostředí.

dev

  • Plánování: Kanboard, Wekan a další alternativy Trello GitLab, Tuleap, Redmine a další alternativy JIRA Mattermost, Roit.im, IRC a další alternativy k Slacku.
  • Psaní kódu: Git, Gerrit, Bugzilla; Jenkins a další open source CI/CD nástroje
  • Shromáždění: Apache Maven, Gradle, Apache Ant, Packer
  • Testy: JUnit, Okurka, Selen, Apache JMeter

ops

  • Vydání, nasazení, operace: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, atd., Netflix Archaius, Terraform
  • Sledování: Grafana, Prometheus, Nagios, InfluxDB, Fluentd a další, na které se vztahuje tato příručka

(* Nástroje pro operace byly očíslovány v pořadí, v jakém je používají operační příkazy, ale jejich nástroje se překrývají s fázemi životního cyklu nástrojů pro vydání a nasazení. Číslování bylo kvůli čitelnosti odstraněno.)

Konečně,

DevOps je stále populárnější metodika, jejímž cílem je spojit vývojáře a operátory. Je jedinečný, odlišný od tradičních IT operací a doplňuje Agile (ale není tak flexibilní).

Průvodce DevOps pro začátečníky

Zjistěte podrobnosti o tom, jak získat vyhledávanou profesi od nuly nebo Level Up, pokud jde o dovednosti a plat, absolvováním placených online kurzů SkillFactory:

více kurzů

užitečný

Zdroj: www.habr.com

Přidat komentář