Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem
Vybudujte svůj první řetězec DevOps v pěti krocích pro začátečníky.

DevOps se stal všelékem na příliš pomalé, odpojené a jinak problematické vývojové procesy. Ale potřebujete minimální znalosti v DevOps. Bude pokrývat koncepty, jako je řetězec DevOps a jak vytvořit jeden v pěti krocích. Nejedná se o kompletní návod, ale pouze o "rybu", kterou lze rozšířit. Začněme historií.

Můj úvod do DevOps

Kdysi jsem pracoval s cloudy v Citi Group a vyvíjel jsem webovou aplikaci IaaS pro správu cloudové infrastruktury Citi, ale vždy mě zajímalo, jak optimalizovat vývojový řetězec a zlepšit kulturu mezi vývojáři. Greg Lavender, náš technický ředitel pro cloudovou architekturu a infrastrukturu, mi doporučil tuto knihu. Projekt Phoenix. Krásně vysvětluje principy DevOps a čte se jako román.

Tabulka na zadní straně ukazuje, jak často společnosti zavádějí nové verze:

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Jak se Amazonu, Googlu a Netflixu daří tak moc? A je to jednoduché: přišli na to, jak vytvořit téměř dokonalý řetězec DevOps.

Věci pro nás v Citi byly velmi odlišné, dokud jsme nepřešli na DevOps. Pak měl můj tým různá prostředí, ale doručení na vývojový server jsme provedli ručně. Všichni vývojáři měli přístup pouze k jednomu vývojovému serveru založenému na IBM WebSphere Application Server Community Edition. Při současném pokusu o doručení server „spadl“ a pokaždé jsme mezi sebou museli „bolestně“ vyjednávat. Měli jsme také nedostatečné pokrytí kódem pomocí testů, časově náročný proces ručního doručování a žádný způsob, jak sledovat doručení kódu pomocí nějakého úkolu nebo požadavku klienta.

Bylo jasné, že je potřeba něco akutně udělat, a našel jsem podobně smýšlejícího kolegu. Rozhodli jsme se vytvořit první řetězec DevOps společně – on nastavil virtuální stroj a aplikační server Tomcat a já se postaral o Jenkinse, integraci s Atlassian Jira a BitBucket a také pokrytí kódu pomocí testů. Projekt byl úspěšný: plně jsme zautomatizovali vývojový řetězec, dosáhli jsme téměř 100% dostupnosti na vývojovém serveru, byli jsme schopni monitorovat a zlepšovat pokrytí kódu pomocí testů a větev Git mohla být propojena s dodáním a vydáním Jira. A téměř všechny nástroje, které jsme použili k vybudování řetězce DevOps, byly open source.

Ve skutečnosti byl řetězec zjednodušen, protože jsme ani neaplikovali pokročilé konfigurace pomocí Jenkins nebo Ansible. Ale uspěli jsme. Možná je to důsledek principu Pareto (aka pravidlo 80/20).

Stručný popis řetězce DevOps a CI/CD

DevOps má různé definice. DevOps, stejně jako Agile, zahrnuje různé disciplíny. Většina ale bude souhlasit s následující definicí: DevOps je metoda nebo životní cyklus vývoje softwaru, jehož hlavním principem je vytvoření kultury, kde jsou vývojáři a ostatní zaměstnanci „na stejné vlně“, manuální práce je automatizována, každý dělá to, v čem je nejlepší, zvyšuje se frekvence dodávek, zvyšuje se produktivita práce, zvyšuje se flexibilita.

I když samotné nástroje k vytvoření prostředí DevOps nestačí, jsou nepostradatelné. Nejdůležitější z nich je kontinuální integrace a kontinuální dodávání (CI/CD). Pro každé prostředí existují různé fáze řetězce (např. DEV (vývoj), INT (integrace), TST (testování), QA (zajištění kvality), UAT (testování přijetí uživatelem), STG (příprava), PROD (použití)) , manuální úlohy jsou automatizovány, vývojáři dokážou vytvořit kvalitní kód, dodat jej a mohou jej snadno znovu sestavit.

Tato poznámka popisuje, jak vytvořit řetězec DevOps v pěti krocích, jak je znázorněno na obrázku níže, pomocí nástrojů s otevřeným zdrojovým kódem.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Pojďme pracovat.

Krok 1: Platforma CI/CD

Nejprve potřebujete nástroj CI/CD. Jenkins je open-source CI/CD nástroj s licencí MIT napsaný v Javě, který popularizoval hnutí DevOps a stal se de facto standardem pro CICD.

Co je Jenkins? Představte si, že máte kouzelný ovládací panel pro různé služby a nástroje. Sám o sobě je nástroj CI/CD jako Jenkins k ničemu, ale s různými nástroji a službami se stává všemocným.

Kromě Jenkins existuje mnoho dalších open source nástrojů, vyberte si jakýkoli.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Zde je návod, jak vypadá proces DevOps s nástrojem CI/CD

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

V localhost máte nástroj CI/CD, ale zatím toho není moc co dělat. Přejděme k dalšímu kroku.

Krok 2: Kontrola verzí

Nejlepší (a pravděpodobně nejjednodušší) způsob, jak otestovat kouzlo nástroje CI/CD, je integrovat jej s nástrojem pro správu řízení zdrojů (SCM). Proč potřebujete správu verzí? Řekněme, že vytváříte aplikaci. Napíšete to v Javě, Pythonu, C++, Go, Ruby, JavaScriptu nebo v jakémkoli jiném jazyce, který je vagónem a malým vozíkem. To, co píšete, se nazývá zdrojový kód. Zpočátku, zvláště pokud pracujete sami, můžete vše uložit do místního adresáře. Ale jak projekt roste a připojuje se více lidí, potřebujete způsob, jak sdílet změny kódu, ale vyhnout se konfliktům při slučování změn. A také musíte nějakým způsobem obnovit předchozí verze bez použití záloh a pomocí metody kopírování a vkládání pro soubory kódu.

A tady bez SCM kdekoli. SCM ukládá kód do repozitářů, spravuje jeho verze a koordinuje jej mezi vývojáři.

Nástrojů SCM je mnoho, ale Git se zaslouženě stal de facto standardem. Radím vám to použít, ale jsou i jiné možnosti.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Takto vypadá kanál DevOps po přidání SCM.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Nástroj CI/CD dokáže automatizovat nahrávání a stahování zdrojového kódu a týmovou spolupráci. Není špatné? Ale jak z toho teď udělat fungující aplikaci, kterou milují miliardy uživatelů?

Krok 3: Vytvořte nástroj pro automatizaci

Všechno jde, jak má. Můžete nahrát kód a odevzdat změny do ovládání zdroje a pozvat přátele, aby s vámi spolupracovali. Ale ještě nemáte aplikaci. Aby to byla webová aplikace, musí být zkompilována a zabalena pro distribuci nebo spuštěna jako spustitelný soubor. (Interpretovaný programovací jazyk jako JavaScript nebo PHP není nutné kompilovat.)

Použijte nástroj pro automatizaci sestavení. Ať už si vyberete kterýkoli nástroj, sestaví kód ve správném formátu a zautomatizuje čištění, kompilaci, testování a doručení. Nástroje pro tvorbu se liší podle jazyka, ale běžně se používají následující možnosti open source.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Perfektní! Nyní vložíme konfigurační soubory nástroje pro automatizaci sestavení do ovládání zdroje, aby je sestavil nástroj CI/CD.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Je to příjemné. Ale kde se to všechno má rozvinout teď?

Krok 4: Webový aplikační server

Takže máte zabalený soubor, který lze spustit nebo spustit. Aby byla aplikace opravdu užitečná, musí mít nějakou službu nebo rozhraní, ale je potřeba to všechno někam umístit.

Webová aplikace může být hostována na webovém aplikačním serveru. Aplikační server poskytuje prostředí, kde můžete spouštět zabalenou logiku, vykreslovat rozhraní a vystavovat webové služby přes soket. K instalaci aplikačního serveru potřebujete server HTTP a několik dalších prostředí (například virtuální počítač). Prozatím předstírejme, že se s tím vším vypořádáváte za pochodu (i když o kontejnerech budu mluvit níže).

Existuje několik otevřených webových aplikačních serverů.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Již máme téměř fungující řetězec DevOps. Dobrá práce!

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

V zásadě se zde můžete zastavit, pak to zvládnete sami, ale stojí za to mluvit o kvalitě kódu.

Krok 5: Test pokrytí

Testování zabere spoustu času a úsilí, ale je lepší hned najít chyby a vylepšit kód tak, aby potěšil koncové uživatele. K tomuto účelu existuje mnoho otevřených nástrojů, které kód nejen otestují, ale také poradí, jak jej vylepšit. Většina nástrojů CI/CD se může připojit k těmto nástrojům a automatizovat proces.

Testování je rozděleno do dvou částí: testovací rámce pro psaní a provádění testů a nástroje s radami pro zlepšení kvality kódu.

Testování rámců

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Nástroje s kvalitními tipy

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Většina těchto nástrojů a frameworků je napsána pro Javu, Python a JavaScript, protože C++ a C# jsou proprietární (ačkoli GCC je open source).

Použili jsme nástroje pro testovací pokrytí a nyní by potrubí DevOps mělo vypadat jako na obrázku na začátku tutoriálu.

Další kroky

kontejnery

Jak jsem řekl dříve, aplikační server může být hostován ve virtuálním počítači nebo serveru, ale populárnější jsou kontejnery.

Co jsou kontejnery? Ve virtuálním stroji zkrátka operační systém často zabírá více místa než aplikace a kontejner si většinou vystačí s pár knihovnami a konfigurací. V některých případech jsou virtuální stroje nepostradatelné, ale kontejner pojme aplikaci spolu se serverem bez dalších nákladů.

U kontejnerů se obvykle berou Docker a Kubernetes, i když existují i ​​​​jiné možnosti.

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Přečtěte si články o Dockeru a Kubernetes na opensource.com:

Middleware automatizační nástroje

Náš řetězec DevOps se zaměřuje na společné vytváření a dodávání aplikací, ale s nástroji DevOps můžete dělat i další zajímavé věci. Použijte například nástroje Infrastructure as Code (IaC), známé také jako nástroje pro automatizaci middlewaru. Tyto nástroje pomáhají automatizovat instalaci, správu a další úlohy pro middleware. Automatizační nástroj může například převzít aplikace (webový aplikační server, databáze, monitorovací nástroje) se správnými konfiguracemi a odeslat je na aplikační server.

Zde je několik možností pro otevřené nástroje pro automatizaci middlewaru:

Průvodce pro figuríny: Vytváření řetězců DevOps pomocí nástrojů s otevřeným zdrojovým kódem

Podrobnosti v článcích opensource.com:

A co teď?

Tohle je jen špička ledovce. Řetězec DevOps toho umí mnohem víc. Začněte s nástrojem CI/CD a uvidíte, co dalšího můžete automatizovat, abyste si usnadnili práci. Nezapomeň na otevřené komunikační nástroje pro efektivní spolupráci.

Zde je několik dalších dobrých článků DevOps pro začátečníky:

DevOps můžete také integrovat s otevřenými agilními nástroji:

Zdroj: www.habr.com

Přidat komentář