Nástroje DevOps by se každý měl v roce 2020 naučit

Začněte používat nejlepší nástroje DevOps ještě dnes!

Nástroje DevOps by se každý měl v roce 2020 naučit
Revoluce DevOps konečně ovládla svět a nástroje DevOps se staly neuvěřitelně populární. Podle servisu Google Trends, počet požadavků na „nástroje DevOps“ neustále roste a tento trend pokračuje.

Metodika DevOps pokrývá celý životní cyklus vývoje softwaru, takže profesionálové si mohou vybrat z různých nástrojů. Ale jak víte, žádný nástroj se nemůže stát univerzálním nástrojem pro každého. Některá řešení však nabízejí tak širokou škálu funkcí, že zvládnou téměř jakýkoli úkol.

Rozdělme nástroje DevOps do kategorií a porovnejme je s analogy:

  • vývojové a stavební nástroje
  • testovací automatizační nástroje
  • nástroje pro organizaci nasazení
  • Runtime nástroje
  • nástroje pro spolupráci.

Úspěšná a promyšlená realizace Praktik DevOps zahrnuje nástroje ze všech pěti výše uvedených skupin. Analyzujte aktuální sadu nástrojů ve svém projektu, abyste nevynechali důležitý prvek potrubí CI/CD.

Vývojové a stavební nástroje

Nástroje DevOps by se každý měl v roce 2020 naučit
Toto je základ zásobníku CI/CD potrubí. Všechno to začíná právě tady! Nejlepší nástroje v této kategorii mohou spravovat více streamů událostí a snadno se integrovat s jinými produkty.

V této fázi životního cyklu vývoje existují tři skupiny nástrojů:

  • systém správy verzí (SCM)
  • kontinuální integrace (CI)
  • Správa dat

GIT má v roce 2020 pozitivní výsledky, takže váš nástroj SCM by měl mít bezproblémovou podporu pro GIT. Pro CI je předpokladem schopnost spouštět a spouštět sestavení v prostředí izolovaného kontejneru. Pokud jde o správu dat, vyžaduje možnost provádět změny schématu databáze a udržovat databázi podle verze aplikace.

Nástroj SCM + CI č. 1

Vítěz: GitLab a GitLab-CI

Nástroje DevOps by se každý měl v roce 2020 naučit
Nejlepším nástrojem cyklu DevOps 2020 je bezesporu GitLab, který bude v blízké budoucnosti určitě i nadále vést inovace.

Hlavní funkcí GitLabu je poskytovat pohodlnou správu úložiště Git. Webové rozhraní je intuitivní a snadno se používá. GitLab poskytuje vše, co potřebujete, v bezplatné verzi a přichází jako SaaS a on-prem (pomocí vašich vlastních zdrojů k hostování softwaru).

Žádný jiný nástroj SCM nepoužil kontinuální integraci (CI) přímo na vašem úložišti a GitLab to dělá již dlouhou dobu. Chcete-li používat GitLab-CI, musíte do kořenového adresáře zdrojového kódu přidat soubor .gitlab-ci.yml a jakékoli změny v projektu spustí akce přesně podle toho, co jste zadali. GitLab a GitLab-CI jsou zaslouženě uznávány jako lídři v oblasti kontinuální integrace (CI-as-code).

Klíčové výhody

  • Spolehlivost - Produkt je na trhu od roku 2013; stabilní; dobře podporováno.
  • Open Source – Bezplatná verze GitLab neomezuje základní funkce, které vývojové týmy potřebují. Placené balíčky služeb poskytují další užitečné funkce pro společnosti různých velikostí a potřeb.
  • Engrained CI – Žádný jiný nástroj na trhu nevybudoval kontinuální integraci přímo do SCM jako GitLab-CI. Použití Dockeru zajišťuje bezproblémové izolované sestavení a integrované sestavy usnadňují ladění. Nepožadujeme komplexní integraci a správu více nástrojů současně.
  • Neomezené integrace – GitLab poskytuje snadnou integraci všech nástrojů DevOps, které potřebujete. To zajišťuje, že vývojové a údržbářské týmy mají jediný zdroj informací o své aplikaci v jakémkoli prostředí.

soutěžící

Účastnil se bitvy, ale nevyhrál

V této kategorii jsou další oblíbené nástroje, ale nejsou tak dobré jako GitLab. A proto:

GitHub — Jedná se o vynikající systém správy verzí SaaS pro malé společnosti a rané fáze vývoje. Pro velké společnosti, pro které je důležité udržovat IP adresy ve vlastní síti, byl jediným řešením od GitHubu virtuální stroj .OVA bez podpory systémů s vysokou dostupností. To ztěžuje on-prem údržbu, kromě toho je .OVA vhodná pouze pro středně velké podniky, jinak server při větším zatížení jednoduše spadne. Absence GitHub Actions (donedávna a ještě ne v on-prem verzi) nebo CI-as-code znamená, že si musíte vybrat samostatný nástroj CI a pak tuto integraci spravovat. A konečně, GitHub je mnohem dražší než obě verze GitLab.

Jenkins — Ačkoli je Jenkins standardně považován za standard mezi nástroji pro kontinuální integraci, vždy mu chyběly možnosti správy verzí. Ukázalo se, že používáte Jenkins plus nějaký nástroj SCM. Je to příliš obtížné, když GitLab umí obojí. Průměrný UX design není vhodný pro moderní webovou aplikaci a ponechává mnoho přání.

BitBucket/Bamboo — Musím ho uznat jako automatického propadáka: proč dva nástroje, když GitLab dělá všechno úplně nezávisle. BitBucket Cloud podporuje funkcionalitu GitLab-CI / GitHub Action, ale žádná společnost větší než startup ji nemůže snadno implementovat. On-prem server BitBucket dokonce nepodporuje kanály BitBucket!

#1 Nástroj pro správu dat

Vítěz: FlywayDB

Nástroje DevOps by se každý měl v roce 2020 naučit
Při vývoji webových aplikací se automatizaci databází obvykle nepřikládá význam. Myšlenka nasadit změny schématu databáze pro nové verze aplikace přichází pozdě. Změny schématu často vedou k přidání a přejmenování sloupců nebo tabulek. Pokud verze aplikace neodpovídá verzi schématu, může dojít k selhání aplikace. Správa změn databáze při aktualizaci aplikace může být navíc náročná, protože existují dva různé systémy. FlyWayDB řeší všechny tyto problémy.

Klíčové výhody

  • Správa verzí databáze – Flyway vám umožňuje vytvářet verze databáze, sledovat migraci databáze a snadno přenášet nebo vracet změny schématu bez dalšího nástroje.
  • Binární nebo Embedded – Můžeme si vybrat, zda spustíme Flyway jako součást aplikace nebo jako binární spustitelný soubor. Flyway kontroluje kompatibilitu verzí při spuštění a spouští příslušné migrace, přičemž udržuje verze databáze a aplikace synchronizované. Spuštěním příkazu cmd line ad-hoc poskytujeme flexibilitu stávajícím databázím bez přestavby celé aplikace.

soutěžící

Účastnil se bitvy, ale nevyhrál

V této oblasti není mnoho nástrojů. Podívejme se na některé z nich:

LiquiBase — Liquibase připomíná FlywayDB. Chtěl bych to nastavit nad Flyway, kdybych měl ve svém týmu někoho, kdo má s Liquibase více zkušeností.

Flocker - Může fungovat pouze pro kontejnerové aplikace. Pro úspěšné provozování kontejnerových databází musí být vše dokonale naplánováno. Pro databáze doporučuji používat RDS (Relational Database Service) a nedoporučuji ukládat důležité informace do kontejneru.

Testovací automatizační nástroje

Nástroje DevOps by se každý měl v roce 2020 naučit
Začněme naši diskusi o nástrojích pro automatizaci testování jejich klasifikací na základě testovací pyramidy.

Testovací pyramida (testy) má 4 úrovně:

  • Unit Tests – to je základ celého procesu automatizovaného testování. Mělo by existovat více jednotkových testů ve srovnání s jinými typy testů. Vývojáři píší a spouštějí testy jednotek, aby zajistili, že část aplikace (známá jako „jednotka“) odpovídá svému návrhu a chová se podle očekávání.
  • Testy komponent − Hlavním účelem testování komponent je ověřit vstupní/výstupní chování testovaného objektu. Musíme zajistit, aby funkčnost testovacího objektu byla implementována správně podle specifikace.
  • Integrační testy – Typ testování, ve kterém jsou jednotlivé softwarové moduly kombinovány a testovány jako skupina.
  • End-to-End testy – Tento krok je samozřejmý. Celou aplikaci monitorujeme a zajišťujeme, aby fungovala podle plánu.

Vzhledem k tomu, že testy jednotek a testování komponent provádějí pouze vývojáři a často jsou specifické pro programovací jazyk, nebudeme tyto nástroje hodnotit pro doménu DevOps.

#1 Nástroj pro testování integrace

Vítěz: Okurka

Nástroje DevOps by se každý měl v roce 2020 naučit
Cucumber spojuje specifikace a testovací dokumentaci do jediného živého dokumentu. Specifikace jsou vždy aktuální, protože je Cucumber automaticky testuje. Pokud chcete vytvořit automatizovaný testovací rámec od začátku a modelovat chování uživatelů ve webové aplikaci, pak Selenium WebDriver s Java a Cucumber BDD je skvělý způsob, jak se naučit a implementovat Cucumber v projektu.

Klíčové výhody

  • Přístup BDD (Behavior Driven Development - „vývoj prostřednictvím chování“ na rozdíl od přístupu „vývoj řízený testem“) – Cucumber je určen pro testování BDD, byl původně vytvořen právě pro tento úkol.
  • Živá dokumentace - Dokumentace je vždy utrpení! Vzhledem k tomu, že vaše testy jsou napsány jako kód, Cucumber testuje automaticky generovanou dokumentaci, aby zajistil, že testy a dokumentace jsou synchronizované.
  • Podpora – Můžeme si vybrat z mnoha nástrojů, ale Okurka má potřebné finanční prostředky a dobře organizovaný systém podpory, který uživatelům pomůže v jakékoli složité situaci.

soutěžící

Účastnil se bitvy, ale nevyhrál

Mezi ostatními frameworky a technologicky specifickými nástroji lze za univerzální řešení považovat pouze Cucumber.

End-to-End testovací nástroje

Při provádění end-to-end testování se musíte zaměřit na dva klíčové body:

  • funkční testování
  • Zátěžové testování.

Při funkčním testování kontrolujeme, zda se skutečně stane vše, co chceme. Když například kliknu na určité prvky svého SPA (jednostránková aplikace), vyplním formuláře a zvolím „Odeslat“, data se objeví v databázi a na obrazovce se objeví zpráva „Úspěch!“.

Je pro nás také důležité zkontrolovat, zda určitý počet uživatelů se stejným scénářem může být zpracován bez chyb.

Absence těchto 2 typů testování bude významnou nevýhodou vašeho CI/CD potrubí.

#1 end-to-end testovací nástroj. Funkční testování

Vítěz: SoapUI Pro

Nástroje DevOps by se každý měl v roce 2020 naučit
SoapUI je v testovacím prostoru API již dlouhou dobu od doby, kdy byly webové služby založené na SOAP standardem. I když již nevytváříme nové služby SOAP a název nástroje se nezměnil, neznamená to, že se nevyvíjel. SoapUI poskytuje vynikající rámec pro vytváření automatizovaných backendových funkčních testů. Testy lze snadno kombinovat s nástroji pro kontinuální integraci a používat je jako součást potrubí CI/CD.

Klíčové výhody

  • Podrobná dokumentace – SoapUI je na trhu poměrně dlouho, takže existuje mnoho online zdrojů, které vám mohou pomoci pochopit, jak nastavit testy.
  • Snadné použití – Přestože nástroj podporuje více protokolů pro testování API, přítomnost společného rozhraní pro více služeb v SoapUI usnadňuje psaní testů.

soutěžící

Účastnil se bitvy, ale nevyhrál

Selen je dalším skvělým nástrojem v této skupině. Doporučuji jej používat, pokud vytváříte a provozujete aplikaci založenou na Javě. Pokud však vytváříte úplnou webovou aplikaci s více technologiemi, může se to stát nepraktickým pro komponenty, které nejsou Java.

#1 end-to-end testovací nástroj. Zátěžové testování

Vítěz: LoadRunner

Nástroje DevOps by se každý měl v roce 2020 naučit
Vysvětlení: Když přijde čas na zátěžový test každého prvku vaší aplikace, úkol může dokončit pouze LoadRunner. Ano, zpočátku je to drahé a obtížné, ale LoadRunner je jediný nástroj, který mi jako technickému architektovi dává naprostou jistotu, že nový kód bude fungovat i za extrémních podmínek zatížení. Také si myslím, že je čas, aby LoadRunner převzaly spíše vývojové týmy než testovací týmy.

Klíčové výhody

  • Rozsáhlá dokumentace – LoadRunner je na trhu již poměrně dlouho, takže existuje mnoho online zdrojů, které vám pomohou pochopit, jak nastavit zátěžové testy.
  • Podpora protokolů – Load Runner podporuje vše od ODBC po AJAX, HTTPS a jakýkoli jiný netriviální protokol, který může vaše aplikace používat. Snažíme se nepoužívat více nástrojů pro zátěžové testování, protože to celý proces jen komplikuje.

soutěžící

Účastnil se bitvy, ale nevyhrál

V této oblasti opět není mnoho univerzálních nástrojů, takže nejlepší řešení je takové, které bude fungovat v jakémkoli prostředí s jakoukoli technologií.

Nástroje pro nasazení

Nástroje DevOps by se každý měl v roce 2020 naučit
Nástroje pro nasazení jsou pravděpodobně nejméně pochopeným aspektem vývoje. Pro operační tým bez hlubokého porozumění kódu a funkčnosti aplikace je použití takových nástrojů obtížné. Pro vývojáře je správa nasazení novou odpovědností, takže zatím nemají dostatek zkušeností s prací s takovými nástroji.

Nejprve si rozdělme všechny nástroje pro nasazení do tří podkategorií:

  • správa artefaktů
  • správa konfigurace
  • nasadit.

#1 Nástroj pro správu artefaktů

Vítěz: Nexus

Nástroje DevOps by se každý měl v roce 2020 naučit
Úložiště artefaktů Nexus podporuje téměř všechny hlavní technologie, od Javy přes NPM až po Docker. Tento nástroj můžeme použít k uložení všech artefaktů, které používáme. Proxy vzdálených správců balíčků také výrazně urychluje proces sestavování CI, díky čemuž jsou balíčky přístupnější pro sestavování. Další výhodou je možnost získat úplný přehled o všech balíčcích používaných v několika softwarových projektech, blokování nebezpečných balíčků s otevřeným zdrojovým kódem (mohou fungovat jako vektor útoku).

Klíčové výhody

  • Technická podpora - Spolehlivý produkt; dobře podporováno.
  • Open Source – bezplatná verze neomezuje základní funkce, které vývojové týmy potřebují.

#1 Nástroj pro správu konfigurace

Vítěz: Možná

Ansible je vůdce z jednoho prostého důvodu: bez státní příslušnosti. Dříve se podobné nástroje zaměřovaly na správu stavu konfigurace. Po spuštění se takový nástroj po obdržení požadované konfigurace pokusí opravit aktuální konfiguraci aplikace. A s novým přístupem jsou přítomny pouze bezstavové komponenty. Nové verze kódu jsou artefakty, které jsou nasazeny, aby nahradily ty stávající. To lze považovat za jakési efemérní, krátkodobé prostředí.

Klíčové výhody

  • Stateless – Příručka je spuštěna ze zaváděcího počítače a spuštěna na cílových serverech. Nemusím se starat o stav vzdáleného objektu pomocí nástroje, jako je Packer, k vytvoření rozmístitelných objektů.
  • Open Source – Stejně jako CentOS i Ansible podporuje RedHat. Pomáhá udržovat komunitu a poskytuje vysoce kvalitní a snadno použitelné moduly.
  • Testování s Molecule (rámec Ansible) – Vzhledem k tomu, že správa konfigurace je kód, stejně jako všechno ostatní, je testování zásadní. Rámec testování rolí Ansible od Molecule funguje bezchybně a zajišťuje, že konfigurace má stejnou kvalitu a sleduje stejný kanál CI/CD jako kód aplikace.
  • YAML – Ve srovnání s jinými nástroji je YAML srozumitelnější. Vzhledem k tomu, že správa konfigurace je obvykle novou výzvou pro ty, kteří implementují postupy DevOps, je její trumfem jednoduchost.

soutěžící

Účastnil se bitvy, ale nevyhrál

Šéfkuchař OpsCode — Svou kariéru DevOps jsem začal jako vývojář kuchařek. Ruby a Chef jsou samozřejmě mému srdci velmi drahé, ale jednoduše neřeší problémy moderních bezstavových, cloud-nativních aplikací. OpsCode Chef je skvělý nástroj pro tradičnější aplikace, ale v tomto článku se zaměřujeme na budoucnost.

Loutka — Puppet nikdy neměl mnoho fanoušků, zvláště ve srovnání s Chef a Ansible. Je skvělý pro zřizování a práci s hardwarem, ale chybí mu moderní podpora správy konfigurace pro webovou aplikaci.

Nástroj pro nasazení #1

Vítěz: Terraform

Nástroje DevOps by se každý měl v roce 2020 naučit
Terraform řeší problém popisu vaší infrastruktury jako kódu, od síťových komponent až po úplné serverové obrazy. Tento produkt ušel od svého prvního vydání dlouhou cestu, s tolika vytvořenými pluginy a tak silnou komunitou, že si budete jisti, že získáte pomoc v jakémkoli scénáři nasazení. Schopnost podporovat jakýkoli typ prostředí (on-premises, v cloudu nebo jinde) nemá obdoby. A konečně, nejnovější verze poskytuje mnoho ze stejných logických funkcí a tříd v HCL jako jakýkoli jiný tradiční programovací jazyk, díky čemuž je Terraform pro vývojáře snadno pochopitelný.

Klíčové výhody

  • Environmentální agnostika – Terraform používá funkce, které fungují jako rozhraní mezi vaším kódem Terraform, všemi API a interní logikou pro komunikaci s poskytovatelem infrastruktury. To znamená, že ovládnu jen jeden nástroj a pak mohu pracovat kdekoliv.
  • Open Source – Je těžké porazit bezplatné nástroje! Podpora komunity na nejvyšší úrovni.

soutěžící

Účastnil se bitvy, ale nevyhrál

AWS Cloud Formation — I když pracujete pouze v cloudovém prostředí AWS, vaše další práce může používat jiný nástroj. Věnovat veškerý svůj čas a energii pouze jedné platformě je krátkozraké rozhodnutí. Kromě toho je mnoho nových služeb AWS často dostupných jako moduly Terraform dříve, než jsou dostupné v CloudFormation.

Runtime nástroje

Nástroje DevOps by se každý měl v roce 2020 naučit

Konečným cílem každého vývojového projektu je uvedení aplikace do výroby. Ve světě DevOps si chceme být plně vědomi všech možných problémů s naším prostředím a také chceme minimalizovat manuální zásahy. Výběr správné sady runtime nástrojů je nezbytný pro dosažení nirvány vývoje aplikací.

Podkategorie runtime nástrojů:

  • X-as-a-service (XaaS)
  • orchestrace
  • monitoring
  • protokolování.

X-tool-as-a-service #1

Vítěz: Amazon Web Services

Nástroje DevOps by se každý měl v roce 2020 naučit
Amazon byl vždy lídrem v cloudových technologiích, ale tím to nekončí: rozmanitost nových služeb pro vývojáře otevírá oči. Přineste jakoukoli technologii a šablonu do AWS a bude sestaven a spuštěn. Náklady na nástroj jsou poměrně rozumné: porovnejte je s montáží, správou a údržbou zařízení ve vašem vlastním datovém centru. Bezplatná verze vám umožňuje experimentovat a učinit správné rozhodnutí, než utratíte peníze.

Klíčové výhody

  • Prevalence – Pokud máte zkušenosti s vytvářením aplikací v AWS, můžete pracovat kdekoli. Firmy milují AWS a startupy také oceňují jeho nízkou cenu.
  • Bezplatná verze je skutečně významným faktorem, který odlišuje AWS od svých vrstevníků. Než se rozhodnu o nákupu, dovolte mi vyzkoušet službu a podívat se, jak funguje, nechci utrácet tisíce dolarů za něco zbytečného. Na otestování jakéhokoli konceptu mi vždy stačí verze zdarma.

soutěžící

Účastnil se bitvy, ale nevyhrál

Azure "Azure od svého prvního vydání ušel dlouhou cestu, a to je chvályhodné. Touha odlišit se však vedla k podivným názvům služeb, což často komplikuje práci. Co znamená „úložiště blobů“? A přestože kód .NET funguje lépe v ekosystému Microsoftu, je nepravděpodobné, že budete pro každou komponentu své aplikace používat pouze .NET.

Heroku — Na Heroku bych nikdy neprovozoval nic jiného než osobní projekt kvůli nízké úrovni spolehlivosti a transparentnosti, takže by to společnosti neměly používat jako platformu. Heroku je skvělé pro demonstraci něčeho na blogu, ale pro praktické použití - "Ne, díky!"

#1 nástroj pro orchestraci

Vítěz: OpenShift

Nástroje DevOps by se každý měl v roce 2020 naučit
Pravděpodobně používáte Docker nebo jiné kontejnery v zásobníku aplikací. Bezserverové aplikace jsou skvělé, ale nemusí vyhovovat každé architektuře. Spuštění kontejnerů bez orchestrační platformy prostě nebude fungovat. Kubernetes Core (K8s) je bezkonkurenční z hlediska zabezpečení a nástrojů. OpenShift je jediná platforma založená na Kubernetes, která dokáže shromažďovat Source2Image, podporuje automatické nasazení do podů a podporuje sledování a monitorování. OpenShift lze spustit on-prem, v cloudu nebo on-prem a v cloudu současně.

Klíčové výhody

  • Vestavěné zabezpečení - Správa zabezpečení K8 může vyžadovat pokročilý stupeň. Každý detail musí být pečlivě promyšlen a zohledněn! Bezpečnostní mechanismy zabudované ve výchozím nastavení s OpenShift odlehčují vývojářům a poskytují bezpečnější platformu pro aplikace.
  • Řešení vše v jednom – Na rozdíl od základních K8, které ve výchozím nastavení nezahrnují nástroje pro vyrovnávání zátěže, OpenShift má vše. Mohu jej použít k vytváření a hostování kontejnerů, spouštění nástrojů CI/CD, správy externích procesů, správy klíčů a mnoho dalšího. Přestože grafické uživatelské rozhraní má k dokonalosti stále daleko, přístup založený na API znamená, že vše lze popsat ve skriptu. Na rozdíl od jiných GUI pro K8 je OpenShift mnohem jednodušší naučit se základy Kubernetes. Nemusíte mít ani titul!

soutěžící

Účastnil se bitvy, ale nevyhrál

Docker roj — Docker Swarm se pokusil zjednodušit K8 tím, že se zbavil mnoha věcí. Je to skvělé pro malé aplikace, ale pro podnikové aplikace to prostě nefunguje. Navíc řešení jako AWS ECS mají podobný přístup, ale usnadňují práci s dalšími službami, se kterými mohu také komunikovat (Lambda, IAM atd.).

Monitorovací nástroj #1

Vítěz: Nová relikvie

Nástroje DevOps by se každý měl v roce 2020 naučit
První verze New Relic dělala dobře jednu věc – monitorování APM (Application Performance Monitoring). Nyní je to plnohodnotný monitorovací nástroj, který vám umožňuje sledovat výkon serveru, kontejneru, databáze, sledování uživatelské zkušenosti a samozřejmě sledování výkonu aplikací.

Klíčové výhody

  • Snadné použití – Když jsem pracoval jako systémový inženýr, používal jsem mnoho monitorovacích nástrojů, ale nikdy jsem se nesetkal s tak jednoduchým a snadno použitelným jako New Relic. Je to SaaS, takže si ho nemusíte instalovat sami.
  • Kompletní viditelnost – Jiné nástroje se snaží monitorovat jeden konkrétní prvek vaší aplikace. Například metrika využití procesoru nebo síťového provozu, ale to vše je nutné komplexně sledovat, aby aplikace fungovala správně. New Relic vám dává možnost spojit všechna vaše data, abyste získali komplexní přehled o tom, co se děje.

soutěžící

Účastnil se bitvy, ale nevyhrál

Zabbix — Můj první a oblíbený monitorovací systém, který však zůstal v minulosti kvůli nedostatečnému vývoji v cloudových technologiích a v oblasti sledování výkonu aplikací APM. Zabbix stále dobře monitoruje tradiční serverovou infrastrukturu, ale to je tak vše.

DataDog — Příliš se zaměřuje na proces správy produkčního prostředí aplikace, a ne na samotný kód. Díky týmům DevOps, které zahrnují vývojáře, nemusíme při poskytování špičkové podpory spoléhat na obtížně použitelné nástroje.

Nástroj pro protokolování #1

Vítěz: Splunk

Nástroje DevOps by se každý měl v roce 2020 naučit
Je těžké konkurovat Splunk! Po dlouhou dobu zůstává lídrem v těžbě dřeva a nadále to dělá lépe než kdokoli jiný. S nabídkami on-prem a SaaS můžete Splunk používat kdekoli. Velkou nevýhodou je jeho cena: Splunk je stále zatraceně drahý!

Klíčové výhody

  • Všudypřítomnost – Firmy milují Splunk a společnosti mají peníze, aby si ho koupily.
  • Přestože se startupy snaží vrátit náklady, mnoho funkcí lze vyřešit díky open source analogům.
  • Údržba – Jednoduše řečeno, Splunk funguje a dělá to dobře. Dodává se s mnoha výchozími nastaveními a funkcemi připravenými k použití. Není třeba ztrácet čas čtením dokumentace a snahou přimět Splunk pracovat nebo cokoliv rozluštit.

soutěžící

Účastnil se bitvy, ale nevyhrál

ELK Stack (ElasticSearch, LogStash a Kibana) "Zdá se, že tyto nástroje jsou oblíbené, protože k jejich použití nemusíte ani prodávat svá játra." S tím, jak roste sada protokolů a přibývá aplikací na palubě, je však práce stále obtížnější. Ve srovnání se Splunk jsem s ELK Stack strávil mnohem více času nastavováním nástrojů před vytvořením jakýchkoli dashboardů, než jsem kdy předtím.

Nástroje pro spolupráci

Nástroje DevOps by se každý měl v roce 2020 naučit
DevOps je především o změně kultury v rámci organizace. Nákup jakéhokoli nástroje nezmění současné postupy ze dne na den, ale určitě může podpořit spolupráci a nové způsoby interakce.

Podkategorie nástrojů pro spolupráci:

  • sledování úkolů
  • ChatOps
  • dokumentace.

#1 Nástroj pro sledování problémů

Vítěz: Jira

Nástroje DevOps by se každý měl v roce 2020 naučit
Jira si udržuje vedoucí pozici, i když konkurence v této oblasti roste. Neuvěřitelná flexibilita Jira umožňuje vývojovým a údržbářským týmům řídit projektovou práci a sprintové úlohy. Vestavěné standardy využívající agilní terminologii usnadňují přechod od tradičních způsobů práce k efektivnějším procesům.

Klíčové výhody

  • Popularita – Stejně jako mnoho jiných nástrojů se Jira používá téměř všude. Malé týmy používají levnější a dostupnější verzi a dostanou vše, co potřebují, zatímco větší společnosti si mohou dovolit dražší licenci.
  • Integrace – Jira je průkopníkem ve svém oboru. Tato skutečnost a rychlý vývoj produktu vede k tomu, že další společnosti volí Jiru k vytvoření vlastních integrací, čímž se zvyšuje hodnota nástroje. Jiru můžeme integrovat se všemi nástroji uvedenými v tomto článku ihned po malé konfiguraci.

soutěžící

Účastnil se bitvy, ale nevyhrál

Trello — Trello si rychle získalo popularitu díky svému bezplatnému nástroji Kanban. Jakmile se však procesy škálují a přejdete od desítek úkolů k tisícům, bude pro Trello obtížné navigovat, vyhledávat a podávat zprávy.

Pivotal Tracker — Byl jsem velkým fanouškem tohoto nástroje, když jsem pracoval pro startup. Pivotal Tracker se však více zaměřuje na správu produktů než na technické úkoly. Přestože je produktový management v Jira trochu složitější, lze jej tam stále implementovat bez použití dalšího nástroje.

Nástroj ChatOps #1

Vítěz: MatterMost

Nástroje DevOps by se každý měl v roce 2020 naučit
Vysvětlení: Možná největší překvapení pro vás v mém výběru, a to je dobrá zpráva! MatterMost získal popularitu tím, že vzal to nejlepší z předchozích nástrojů, ale uvedl je na prem. To je pro společnosti velmi důležité: MatterMost vám umožňuje kontrolovat vaše data a také vám je pomáhá integrovat s nástroji, které běží lokálně. Už nemusíme chodit mimo firewall, abychom kontrolovali pracovní chaty.

Klíčové výhody

  • Open Source – Open source verze MatterMost funguje skvěle pro střední i velké týmy. Na rozdíl od bezplatného plánu Slack, který maže vaši historii zpráv, provoz vlastního serveru znamená, že si ponecháváte všechna svá data.
  • Integrace – Vzhledem k tomu, že API je téměř 100% založeno na Slack API, lze téměř všechny integrace Slack použít přímo s MatterMost.

soutěžící

Účastnil se bitvy, ale nevyhrál

Volný — Slack je cool, ale tihle kluci vyrostli natolik, že začali hledat zisk. Blíží se fáze návratnosti podnikání, která jim bere hlavní hodnotu: Slack poskytoval služby zdarma; Nejdůležitější nevýhodou bezplatné verze je vymazání historie chatu.

Týmy společnosti Microsoft — Zkuste integrovat produkt společnosti Microsoft s něčím, co společnost Microsoft nevlastní... Hodně štěstí! To je vše, co mohu o tomto nástroji říci!

Dokumentační nástroj #1

Vítěz: Soutok

Nástroje DevOps by se každý měl v roce 2020 naučit
Vytváření a udržování kvalitní technické dokumentace je složitý proces bez ohledu na to, jaký nástroj používáte. Přestože v poslední době na trh vstoupilo mnoho nástrojů pro dokumentaci SaaS, bylo by pro mě obtížné zadat ukládání technické dokumentace o kritických aplikacích třetí straně. Je vhodnější ukládat data a dokumenty on-prem, a tak to řeší Confluence.

Klíčové výhody

  • Snadná obsluha – Většina samostatných nástrojů může být trochu složitá na nastavení a provoz a vyžaduje určité znalosti pro údržbu. Confluence Server funguje skvěle hned po vybalení pro 10 nebo 10,000 XNUMX uživatelů.
  • Pluginy – chvála Confluence za krásnou, snadno použitelnou navigaci po vybalení a možnost přidat plugin pro téměř vše odemyká potenciál podobný Wiki.

soutěžící

Účastnil se bitvy, ale nevyhrál

Přečtěte si dokumenty — Skvělé pro open source, ale o ukládání kritických znalostí zde ani neuvažujte.

Snížení - Skvělé pro dokumentaci kódu, ale kvůli specifickému formátování MarkDown je obtížné zveřejnit architekturu, procesy nebo jiné typy dokumentace.

Jekyll — Při dokumentování technických znalostí nechci vytvářet nový statický web, který bude nasazen pokaždé, když dojde ke změně. Jednoduchý systém správy verzí Confluence značně zjednodušuje interní dokumentaci.

Shrnout

Na trhu jsou doslova stovky nástrojů DevOps, takže je těžké vědět, které z nich použít a kdy by měly být implementovány. Postupujte podle tohoto jednoduchého průvodce výběrem nástrojů DevOps pro kompletní kanál CI/CD.

Nezapomeňte vybrat nástroje ze všech pěti kategorií:

  • vývojové a stavební nástroje
  • testovací automatizační nástroje
  • nástroje pro nasazení
  • Runtime nástroje
  • nástroje pro spolupráci.

Hlavní doporučení: Automatizujte vše!

Díky Zachu Shapiro!

Zdroj: www.habr.com

Přidat komentář