Nástroje DevOps by sa mal každý naučiť v roku 2020

Začnite používať najlepšie nástroje DevOps ešte dnes!

Nástroje DevOps by sa mal každý naučiť v roku 2020
Revolúcia DevOps konečne ovládla svet a nástroje DevOps sa stali neuveriteľne populárnymi. Podľa servisu Google Trends, počet žiadostí o „nástroje DevOps“ neustále rastie a tento trend pokračuje.

Metodológia DevOps pokrýva celý životný cyklus vývoja softvéru, takže profesionáli si môžu vybrať z rôznych nástrojov. Ako však viete, žiadny nástroj sa nemôže stať univerzálnym nástrojom pre každého. Niektoré riešenia však ponúkajú takú širokú škálu funkcií, že zvládnu takmer akúkoľvek úlohu.

Rozdeľme nástroje DevOps do kategórií a porovnajme ich s analógmi:

  • vývojové a stavebné nástroje
  • testovacie automatizačné nástroje
  • nástroje na organizáciu nasadenia
  • Runtime nástroje
  • nástroje spolupráce.

Úspešná a premyslená implementácia Praktik DevOps zahŕňa nástroje zo všetkých piatich vyššie uvedených skupín. Analyzujte súčasnú sadu nástrojov vo svojom projekte, aby ste nepremeškali dôležitý prvok CI/CD potrubia.

Vývojové a stavebné nástroje

Nástroje DevOps by sa mal každý naučiť v roku 2020
Toto je základ zásobníka CI/CD potrubí. Všetko to začína práve tu! Najlepšie nástroje v tejto kategórii dokážu spravovať viacero streamov udalostí a ľahko sa integrujú s inými produktmi.

V tejto fáze životného cyklu vývoja existujú tri skupiny nástrojov:

  • systém riadenia verzií (SCM)
  • kontinuálna integrácia (CI)
  • Správa údajov

GIT má v roku 2020 pozitívne výsledky, takže váš nástroj SCM by mal mať bezproblémovú podporu pre GIT. Pre CI je predpokladom schopnosť spúšťať a spúšťať zostavy v prostredí izolovaného kontajnera. Pokiaľ ide o správu údajov, vyžaduje to možnosť vykonávať zmeny v schéme databázy a udržiavať databázu podľa verzie aplikácie.

Nástroj SCM + CI č. 1

víťaz: GitLab a GitLab-CI

Nástroje DevOps by sa mal každý naučiť v roku 2020
Najlepším nástrojom cyklu DevOps 2020 je bezpochyby GitLab a v blízkej budúcnosti bude určite aj naďalej viesť inovácie.

Hlavnou funkciou GitLab je poskytovanie pohodlnej správy úložiska Git. Webové rozhranie je intuitívne a ľahko sa používa. GitLab poskytuje všetko, čo potrebujete, v bezplatnej verzii a prichádza ako SaaS a on-prem (pomocou vlastných zdrojov na hosťovanie softvéru).

Žiadny iný nástroj SCM nepoužil nepretržitú integráciu (CI) priamo vo vašom úložisku a GitLab to robí už dlho. Ak chcete používať GitLab-CI, musíte do koreňového adresára zdrojového kódu pridať súbor .gitlab-ci.yml a akékoľvek zmeny v projekte spustia akcie presne podľa toho, čo ste zadali. GitLab a GitLab-CI sú zaslúžene uznávané ako lídri v oblasti kontinuálnej integrácie (CI-as-code).

Kľúčové výhody

  • Spoľahlivosť - Produkt je na trhu od roku 2013; stabilný; dobre podporované.
  • Open Source – bezplatná verzia GitLab neobmedzuje základné funkcie, ktoré vývojárske tímy potrebujú. Platené balíky služieb poskytujú ďalšie užitočné funkcie pre spoločnosti rôznych veľkostí a potrieb.
  • Engrained CI – Žiadny iný nástroj na trhu nevybudoval nepretržitú integráciu priamo do SCM ako GitLab-CI. Používanie Dockeru zaisťuje bezproblémové izolované zostavy a vstavané zostavy uľahčujú ladenie. Nevyžadujeme komplexnú integráciu a správu viacerých nástrojov súčasne.
  • Neobmedzené integrácie – GitLab poskytuje jednoduchú integráciu všetkých nástrojov DevOps, ktoré potrebujete. To zaisťuje, že vývojové a údržbárske tímy majú jediný zdroj informácií o svojej aplikácii v akomkoľvek prostredí.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

V tejto kategórii sú aj ďalšie populárne nástroje, ale nie sú také dobré ako GitLab. A preto:

GitHub — Ide o vynikajúci systém správy verzií SaaS pre malé spoločnosti a počiatočné štádiá vývoja. Pre veľké spoločnosti, pre ktoré je dôležité ponechať si IP adresy vo vlastnej sieti, bol jediným riešením od GitHubu virtuálny stroj .OVA bez podpory systémov vysokej dostupnosti. To sťažuje údržbu na mieste; okrem toho je .OVA vhodný len pre stredne veľké podniky, inak server pri väčšom zaťažení jednoducho spadne. Nedostatok akcií GitHub (donedávna a ešte nie v on-prem verzii) alebo CI-as-code znamená, že si musíte vybrať samostatný nástroj CI a potom spravovať túto integráciu. Nakoniec, GitHub je oveľa drahší ako obe verzie GitLab.

Jenkins — Aj keď je Jenkins štandardne považovaný za štandard medzi nástrojmi nepretržitej integrácie, vždy mu chýbali možnosti správy verzií. Ukázalo sa, že používate Jenkins plus nejaký nástroj SCM. Je to príliš ťažké, keď GitLab dokáže oboje. Priemerný dizajn UX nie je vhodný pre moderné webové aplikácie a ponecháva veľa požiadaviek.

BitBucket/Bamboo — Musím ho uznať ako automatického porazeného: načo dva nástroje, keď GitLab robí všetko úplne nezávisle. BitBucket Cloud podporuje funkciu GitLab-CI / GitHub Action, ale žiadna spoločnosť väčšia ako startup ju nemôže ľahko implementovať. On-prem server BitBucket nepodporuje ani kanály BitBucket!

#1 Nástroj na správu údajov

víťaz: FlywayDB

Nástroje DevOps by sa mal každý naučiť v roku 2020
Pri vývoji webových aplikácií sa automatizácii databáz zvyčajne nepripisuje význam. Myšlienka nasadiť zmeny schémy databázy pre nové verzie aplikácie prichádza neskoro. Zmeny schémy často vedú k pridávaniu a premenovaniu stĺpcov alebo tabuliek. Ak sa verzia aplikácie nezhoduje s verziou schémy, aplikácia môže zlyhať. Okrem toho môže byť správa zmien databázy pri aktualizácii aplikácie náročná, pretože existujú dva rôzne systémy. FlyWayDB rieši všetky tieto problémy.

Kľúčové výhody

  • Verzia databáz – Flyway vám umožňuje vytvárať verzie databázy, sledovať migráciu databáz a jednoducho prenášať alebo vracať zmeny schémy bez dodatočného nástroja.
  • Binárne alebo vložené - Môžeme si vybrať, či spustíme Flyway ako súčasť aplikácie alebo ako binárny spustiteľný súbor. Flyway skontroluje kompatibilitu verzie pri spustení a spustí príslušné migrácie, pričom zosynchronizuje verzie databázy a aplikácií. Spustením ad-hoc príkazu cmd line poskytujeme flexibilitu existujúcim databázam bez prestavby celej aplikácie.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

V tejto oblasti nie je veľa nástrojov. Pozrime sa na niektoré z nich:

LiquiBase — Liquibase pripomína FlywayDB. Chcel by som ho nastaviť nad Flyway, ak by som mal v tíme niekoho, kto má viac skúseností s Liquibase.

Flocker - Môže fungovať iba pre kontajnerové aplikácie. Ak chcete úspešne prevádzkovať kontajnerové databázy, všetko musí byť dokonale naplánované. Odporúčam používať RDS (Relational Database Service) pre databázy a neodporúčam ukladať dôležité informácie do kontajnera.

Testovacie automatizačné nástroje

Nástroje DevOps by sa mal každý naučiť v roku 2020
Začnime našu diskusiu o nástrojoch automatizácie testov ich klasifikáciou na základe testovacej pyramídy.

Testovacia pyramída (testy) má 4 úrovne:

  • Unit Tests – Toto je základ celého procesu automatizovaného testovania. V porovnaní s inými typmi testov by malo byť viac jednotkových testov. Vývojári píšu a spúšťajú testy jednotiek, aby sa uistili, že časť aplikácie (známa ako „jednotka“) zodpovedá svojmu dizajnu a správa sa podľa očakávania.
  • Testy komponentov – Hlavným účelom testovania komponentov je overiť vstupno/výstupné správanie testovaného objektu. Musíme zabezpečiť, aby funkčnosť testovaného objektu bola implementovaná správne podľa špecifikácie.
  • Integračné testy – Typ testovania, pri ktorom sa jednotlivé softvérové ​​moduly kombinujú a testujú ako skupina.
  • End-to-End testy – Tento krok je samozrejmý. Sledujeme celú aplikáciu a zabezpečujeme, aby fungovala podľa plánu.

Keďže testy jednotiek a testovanie komponentov vykonávajú iba vývojári a často sú špecifické pre programovací jazyk, nebudeme tieto nástroje hodnotiť pre doménu DevOps.

#1 Nástroj na testovanie integrácie

víťaz: uhorka

Nástroje DevOps by sa mal každý naučiť v roku 2020
Uhorka spája špecifikácie a testovaciu dokumentáciu do jedného živého dokumentu. Špecifikácie sú vždy aktuálne, pretože sú automaticky testované spoločnosťou Cucumber. Ak chcete vytvoriť automatizovaný testovací rámec od začiatku a modelovať správanie používateľov vo webovej aplikácii, potom Selenium WebDriver s Java a Cucumber BDD je skvelý spôsob, ako sa naučiť a implementovať Cucumber v projekte.

Kľúčové výhody

  • Prístup BDD (Behavior Driven Development - „vývoj prostredníctvom správania“ na rozdiel od prístupu „vývoj riadený testom“) – Cucumber je určený na testovanie BDD, pôvodne bol vytvorený práve pre túto úlohu.
  • Živá dokumentácia - Dokumentácia je vždy utrpením! Keďže vaše testy sú napísané ako kód, Cucumber testuje automaticky vygenerovanú dokumentáciu, aby sa zaistilo, že testy a dokumentácia sú synchronizované.
  • Podpora – Môžeme si vybrať z mnohých nástrojov, no Uhorka disponuje potrebnými finančnými prostriedkami a dobre zorganizovaným systémom podpory na pomoc používateľom v akejkoľvek zložitej situácii.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Spomedzi ostatných frameworkov a technologicky špecifických nástrojov možno za univerzálne riešenie považovať iba Cucumber.

End-to-End testovacie nástroje

Pri vykonávaní komplexného testovania sa musíte zamerať na dva kľúčové body:

  • funkčné testovanie
  • Záťažové testovanie.

Pri funkčnom testovaní kontrolujeme, či sa skutočne stane všetko, čo chceme. Napríklad, keď kliknem na určité prvky môjho SPA (jednostranová aplikácia), vyplním formuláre a vyberiem „Odoslať“, údaje sa objavia v databáze a na obrazovke sa zobrazí správa „Úspech!“.

Je tiež dôležité, aby sme skontrolovali, či určitý počet používateľov s rovnakým scenárom môže byť spracovaný bez chýb.

Absencia týchto 2 typov testovania bude významnou nevýhodou vášho CI/CD potrubia.

#1 komplexný testovací nástroj. Funkčné testovanie

víťaz: SoapUI Pro

Nástroje DevOps by sa mal každý naučiť v roku 2020
SoapUI je v testovacom priestore API už dlho, pretože webové služby založené na SOAP boli štandardom. Aj keď už nevytvárame nové služby SOAP a názov nástroja sa nezmenil, neznamená to, že sa nevyvíjal. SoapUI poskytuje vynikajúci rámec na vytváranie automatických funkčných testov backendu. Testy je možné jednoducho kombinovať s nástrojmi kontinuálnej integrácie a použiť ich ako súčasť CI/CD potrubia.

Kľúčové výhody

  • Podrobná dokumentácia – SoapUI je na trhu pomerne dlho, takže existuje veľa online zdrojov, ktoré vám môžu pomôcť pochopiť, ako nastaviť testy.
  • Jednoduché použitie – Hoci nástroj podporuje viacero protokolov na testovanie API, prítomnosť spoločného rozhrania pre viacero služieb v SoapUI uľahčuje písanie testov.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Selén je ďalším skvelým nástrojom v tejto skupine. Odporúčam ho používať, ak vytvárate a spúšťate aplikáciu založenú na jazyku Java. Ak však vytvárate úplnú webovú aplikáciu s viacerými technológiami, môže sa to stať nepraktickým pre komponenty, ktoré nie sú v jazyku Java.

#1 komplexný testovací nástroj. Záťažové testovanie

víťaz: LoadRunner

Nástroje DevOps by sa mal každý naučiť v roku 2020
vysvetlenie: Keď príde čas na testovanie záťaže každého prvku vašej aplikácie, úlohu môže dokončiť iba LoadRunner. Áno, na začiatku je to drahé a ťažké, ale LoadRunner je jediný nástroj, ktorý mi ako technickému architektovi dáva úplnú istotu, že nový kód bude fungovať aj pri extrémnych podmienkach zaťaženia. Tiež si myslím, že je čas, aby LoadRunner prevzali vývojové tímy a nie testovacie tímy.

Kľúčové výhody

  • Rozsiahla dokumentácia – LoadRunner je na trhu už pomerne dlho, takže existuje veľa online zdrojov, ktoré vám pomôžu pochopiť, ako nastaviť záťažové testy.
  • Podpora protokolov - Load Runner podporuje všetko od ODBC po AJAX, HTTPS a akýkoľvek iný netriviálny protokol, ktorý môže vaša aplikácia používať. Na záťažové testovanie sa snažíme nepoužívať viacero nástrojov, pretože to len komplikuje proces.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

V tejto oblasti opäť nie je veľa univerzálnych nástrojov, takže najlepším riešením je riešenie, ktoré bude fungovať v akomkoľvek prostredí s akoukoľvek technológiou.

Nástroje nasadenia

Nástroje DevOps by sa mal každý naučiť v roku 2020
Nástroje nasadenia sú pravdepodobne najmenej pochopeným aspektom vývoja. Pre operačný tím bez hlbokého pochopenia kódu a funkčnosti aplikácie je použitie takýchto nástrojov náročné. Pre vývojárov je správa nasadenia novou zodpovednosťou, takže ešte nemajú dostatok skúseností s prácou s takýmito nástrojmi.

Najprv si rozdeľme všetky nástroje na nasadenie do troch podkategórií:

  • správa artefaktov
  • konfiguračný manažment
  • nasadiť.

#1 Nástroj na správu artefaktov

víťaz: Nexus

Nástroje DevOps by sa mal každý naučiť v roku 2020
Úložisko artefaktov Nexus podporuje takmer všetky hlavné technológie, od Javy cez NPM až po Docker. Tento nástroj môžeme použiť na uloženie všetkých artefaktov, ktoré používame. Proxy vzdialených správcov balíkov tiež výrazne zrýchľuje proces zostavovania CI, vďaka čomu sú balíčky prístupnejšie na zostavovanie. Ďalšou výhodou je možnosť získať úplný prehľad o všetkých balíkoch používaných vo viacerých softvérových projektoch, blokovanie nebezpečných balíkov s otvoreným zdrojovým kódom (môžu pôsobiť ako vektor útoku).

Kľúčové výhody

  • Technická podpora - Spoľahlivý produkt; dobre podporované.
  • Open Source – bezplatná verzia neobmedzuje základné funkcie, ktoré vývojárske tímy potrebujú.

#1 Nástroj na správu konfigurácie

víťaz: Ansible

Ansible je vodca z jedného jednoduchého dôvodu: bez štátnej príslušnosti. Predtým sa podobné nástroje zameriavali na správu stavu konfigurácie. Po spustení sa takýto nástroj po prijatí požadovanej konfigurácie pokúsi opraviť aktuálnu konfiguráciu aplikácie. A s novým prístupom sú prítomné iba komponenty bez štátnej príslušnosti. Nové verzie kódu sú artefakty, ktoré sa používajú na nahradenie existujúcich. Toto možno považovať za akési efemérne, krátkodobé prostredie.

Kľúčové výhody

  • Stateless – Príručka sa spustí z nasadzovacieho stroja a spustí sa na cieľových serveroch. Nemusím si robiť starosti so stavom vzdialeného objektu pomocou nástroja ako Packer na vytváranie nasaditeľných objektov.
  • Open Source – Rovnako ako CentOS, aj Ansible podporuje RedHat. Pomáha udržiavať komunitu a poskytuje vysoko kvalitné, ľahko použiteľné moduly.
  • Testovanie s Molecule (rámec Ansible) – Keďže správa konfigurácie je kód, ako všetko ostatné, testovanie je nevyhnutné. Rámec testovania rolí Ansible od Molecule funguje bezchybne a zaisťuje, že konfigurácia má rovnakú kvalitu a sleduje rovnaký kanál CI/CD ako kód aplikácie.
  • YAML – V porovnaní s inými nástrojmi je YAML jednoduchšie na pochopenie. Keďže správa konfigurácie je zvyčajne novou výzvou pre tých, ktorí implementujú postupy DevOps, jednoduchosť je jej tromfom.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Šéfkuchár operačného kódu — Svoju kariéru v DevOps som začal ako vývojár kuchárskych kníh. Ruby a Chef sú samozrejme môjmu srdcu veľmi drahé, ale jednoducho neriešia problémy moderných bezstavových aplikácií natívnych v cloude. OpsCode Chef je skvelý nástroj pre tradičnejšie aplikácie, ale v tomto článku sa zameriavame na budúcnosť.

bábka — Puppet nikdy nemal veľa fanúšikov, najmä v porovnaní s Chef a Ansible. Je skvelý na poskytovanie a prácu s hardvérom, no chýba mu moderná podpora správy konfigurácie webovej aplikácie.

Nástroj na nasadenie #1

víťaz: terraform

Nástroje DevOps by sa mal každý naučiť v roku 2020
Terraform rieši problém popisu vašej infraštruktúry ako kódu, od sieťových komponentov až po úplné serverové obrazy. Tento produkt prešiel od svojho prvého vydania dlhú cestu, s toľkými vytvorenými zásuvnými modulmi a takou silnou komunitou, že si budete istí, že získate pomoc pri akomkoľvek scenári nasadenia. Schopnosť podporovať akýkoľvek typ prostredia (on-premises, v cloude alebo inde) nemá obdobu. Napokon, najnovšia verzia poskytuje veľa z rovnakých logických funkcií a tried v HCL ako ktorýkoľvek iný tradičný programovací jazyk, vďaka čomu je Terraform pre vývojárov ľahko pochopiteľný rýchlo a jednoducho.

Kľúčové výhody

  • Environmentálne agnostické – Terraform používa funkcie, ktoré fungujú ako rozhranie medzi vaším kódom Terraform, všetkými rozhraniami API a internou logikou na komunikáciu s poskytovateľom infraštruktúry. To znamená, že ovládam len jeden nástroj a potom môžem pracovať kdekoľvek.
  • Open Source - Je ťažké poraziť bezplatné nástroje! Podpora komunity na najvyššej úrovni.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

AWS CloudFormation — Aj keď pracujete iba v cloudovom prostredí AWS, vaša ďalšia úloha môže používať iný nástroj. Venovať všetok svoj čas a energiu len jednej platforme je krátkozraké rozhodnutie. Okrem toho je veľa nových služieb AWS často dostupných ako moduly Terraform predtým, ako sú dostupné v CloudFormation.

Runtime nástroje

Nástroje DevOps by sa mal každý naučiť v roku 2020

Konečným cieľom každého vývojového projektu je spustenie aplikácie do produkcie. Vo svete DevOps si chceme byť plne vedomí všetkých možných problémov s naším prostredím a tiež chceme minimalizovať manuálne zásahy. Výber správnej sady runtime nástrojov je nevyhnutný na dosiahnutie nirvány vývoja aplikácií.

Podkategórie runtime nástrojov:

  • X-as-a-service (XaaS)
  • orchestrácia
  • monitorovanie
  • ťažba dreva.

X-tool-as-a-service #1

víťaz: Amazon Web Services

Nástroje DevOps by sa mal každý naučiť v roku 2020
Amazon bol vždy lídrom v oblasti cloudových technológií, no tým to nekončí: rozmanitosť nových služieb pre vývojárov otvára oči. Prineste akúkoľvek technológiu a šablónu do AWS a bude vytvorená a spustená. Náklady na nástroj sú celkom rozumné: porovnajte ich s montážou, správou a údržbou zariadení vo vašom vlastnom dátovom centre. Bezplatná verzia vám umožňuje experimentovať a urobiť správne rozhodnutie predtým, ako utratíte peniaze.

Kľúčové výhody

  • Prevalencia – Ak máte skúsenosti s vytváraním aplikácií v AWS, môžete pracovať kdekoľvek. Firmy milujú AWS a startupy oceňujú aj jeho nízke náklady.
  • Bezplatná verzia je skutočne významným faktorom, ktorý odlišuje AWS od svojich rovesníkov. Dovoľte mi, aby som si službu vyskúšal a videl, ako funguje, kým sa rozhodnem o kúpe, nechcem míňať tisíce dolárov za niečo zbytočné. Na otestovanie akéhokoľvek konceptu mi vždy postačí bezplatná verzia.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Blankyt „Azure od svojho prvého vydania prešla dlhú cestu, a to je chvályhodné. Túžba odlíšiť sa však viedla k zvláštnym názvom služieb, čo často komplikuje prácu. Čo znamená „ukladanie blobov“? A hoci kód .NET funguje lepšie v ekosystéme Microsoftu, je nepravdepodobné, že pre každý komponent svojej aplikácie budete používať iba .NET.

Herok — Na Heroku by som nikdy nespustil nič iné ako osobný projekt kvôli nízkej úrovni spoľahlivosti a transparentnosti, takže spoločnosti by ho nemali používať ako platformu. Heroku je skvelé na demonštráciu niečoho na blogu, ale na praktické použitie - "Nie, ďakujem!"

#1 Orchestračný nástroj

víťaz: openshift

Nástroje DevOps by sa mal každý naučiť v roku 2020
Pravdepodobne používate Docker alebo iné kontajnery v zásobníku aplikácií. Bezserverové aplikácie sú skvelé, ale nemusia vyhovovať každej architektúre. Spustenie kontajnerov bez orchestračnej platformy jednoducho nebude fungovať. Kubernetes Core (K8s) je bezkonkurenčný z hľadiska bezpečnosti a nástrojov. OpenShift je jediná platforma založená na Kubernetes, ktorá dokáže zhromažďovať Source2Image, podporuje automatické nasadenie do modulov a podporuje sledovanie a monitorovanie. OpenShift môže byť spustený on-prem, v cloude alebo on-prem a v cloude súčasne.

Kľúčové výhody

  • Zabudovaná bezpečnosť - Správa zabezpečenia K8 môže vyžadovať pokročilý stupeň. Každý detail musí byť dôkladne premyslený a zohľadnený! Bezpečnostné mechanizmy zabudované v predvolenom nastavení s OpenShift odstraňujú zaťaženie vývojárov a poskytujú bezpečnejšiu platformu pre aplikácie.
  • Riešenie typu všetko v jednom – Na rozdiel od základných K8, ktoré štandardne nezahŕňajú nástroje na vyrovnávanie záťaže, OpenShift má všetko. Môžem ho použiť na vytváranie a hosťovanie kontajnerov, spúšťanie nástrojov CI/CD, správu externých procesov, správu kľúčov a oveľa viac. Hoci grafické používateľské rozhranie má k dokonalosti ešte ďaleko, prístup založený na API znamená, že všetko sa dá opísať v skripte. Na rozdiel od iných GUI pre K8, OpenShift uľahčuje učenie sa základov Kubernetes. Nemusíte mať ani titul!

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Dockerov roj — Docker Swarm sa pokúsil zjednodušiť K8 tým, že sa zbavil mnohých vecí. Je to skvelé pre malé aplikácie, ale pre podnikové aplikácie to jednoducho nefunguje. Okrem toho riešenia ako AWS ECS majú podobný prístup, ale uľahčujú prácu s inými službami, s ktorými môžem tiež interagovať (Lambda, IAM atď.).

Monitorovací nástroj #1

víťaz: Nová relikvia

Nástroje DevOps by sa mal každý naučiť v roku 2020
Skoré vydania New Relic urobili jednu vec dobre - monitorovanie APM (Application Performance Monitoring). Teraz je to plnohodnotný monitorovací nástroj, ktorý vám umožňuje monitorovať výkon servera, kontajnera, databázy, monitorovanie skúseností koncového používateľa a samozrejme monitorovanie výkonu aplikácií.

Kľúčové výhody

  • Jednoduché použitie – Keď som pracoval ako systémový inžinier, používal som veľa monitorovacích nástrojov, ale nikdy som sa nestretol s takým jednoduchým a ľahko použiteľným ako New Relic. Je to SaaS, takže si ho nemusíte inštalovať sami.
  • Kompletná viditeľnosť – Iné nástroje sa snažia monitorovať jeden konkrétny prvok vašej aplikácie. Napríklad metrika využitia procesora alebo sieťovej prevádzky, ale to všetko je potrebné komplexne sledovať, aby aplikácia fungovala správne. New Relic vám dáva možnosť spojiť všetky vaše údaje, aby ste získali komplexný prehľad o tom, čo sa deje.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Zabbix — Môj prvý a obľúbený monitorovací systém, ktorý však zostal v minulosti kvôli nedostatočnému vývoju v cloudových technológiách a v oblasti monitorovania výkonu aplikácií APM. Zabbix stále dobre monitoruje tradičnú serverovú infraštruktúru, ale to je tak všetko.

DataDog — Prílišné zameranie na proces riadenia produkčného prostredia aplikácie a nie na samotný kód. Vďaka tímom DevOps, ktoré zahŕňajú vývojárov, sa pri poskytovaní špičkovej podpory nemusíme spoliehať na ťažko použiteľné nástroje.

Nástroj na zaznamenávanie #1

víťaz: Splunk

Nástroje DevOps by sa mal každý naučiť v roku 2020
So Splunkom je ťažké konkurovať! Po dlhú dobu zostáva lídrom v ťažbe dreva a naďalej to robí lepšie ako ktokoľvek iný. S on-prem a SaaS ponukami môžete Splunk používať kdekoľvek. Veľkou nevýhodou je jeho cena: Splunk je stále sakramentsky drahý!

Kľúčové výhody

  • Prenikavosť – Firmy milujú Splunk a spoločnosti majú peniaze na to, aby si ho kúpili.
  • Hoci sa startupy snažia vrátiť náklady, mnohé funkcie sa dajú vyriešiť vďaka analógom s otvoreným zdrojom.
  • Udržateľnosť – Jednoducho povedané, Splunk funguje a robí to dobre. Dodáva sa s mnohými predvolenými nastaveniami a funkciami pripravenými na použitie. Nie je potrebné strácať čas čítaním dokumentácie a snahou prinútiť Splunk pracovať alebo čokoľvek dešifrovať.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

ELK Stack (ElasticSearch, LogStash a Kibana) "Zdá sa, že tieto nástroje sú obľúbené, pretože na ich použitie nemusíte ani predávať svoju pečeň." Ako sa však sada guľatiny rozrastá a počet aplikácií na palube sa zvyšuje, práca je čoraz náročnejšia. V porovnaní so Splunk som s ELK Stack strávil oveľa viac času nastavovaním nástrojov pred vytvorením akýchkoľvek dashboardov, než som kedy mal.

Nástroje na spoluprácu

Nástroje DevOps by sa mal každý naučiť v roku 2020
DevOps je predovšetkým o zmene kultúry v rámci organizácie. Nákup akéhokoľvek nástroja nezmení súčasné postupy zo dňa na deň, ale určite môže podporiť spoluprácu a nové spôsoby interakcie.

Podkategórie nástrojov spolupráce:

  • sledovanie úloh
  • ChatOps
  • dokumentáciu.

#1 Nástroj na sledovanie problémov

víťaz: Jira

Nástroje DevOps by sa mal každý naučiť v roku 2020
Jira si udržiava svoju vedúcu pozíciu, hoci konkurencia v tejto oblasti rastie. Neuveriteľná flexibilita Jira umožňuje vývojovým a údržbárskym tímom riadiť projektovú prácu a sprintové úlohy. Vstavané štandardy využívajúce agilnú terminológiu uľahčujú prechod od tradičných spôsobov práce k efektívnejším procesom.

Kľúčové výhody

  • Popularita – Ako mnoho iných nástrojov, aj Jira sa používa takmer všade. Malé tímy používajú lacnejšiu, dostupnejšiu verziu a získajú všetko, čo potrebujú, zatiaľ čo väčšie spoločnosti si môžu dovoliť drahšiu licenciu.
  • Integrations - Jira je priekopníkom vo svojom odbore. Táto skutočnosť a rýchly vývoj produktu vedie k tomu, že iné spoločnosti si vyberajú Jira na vytvorenie vlastných integrácií, čím sa zvyšuje hodnota nástroja. Jiru môžeme integrovať so všetkými nástrojmi uvedenými v tomto článku hneď po vybalení s malou konfiguráciou.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Trello — Trello si rýchlo získalo popularitu vďaka svojmu bezplatnému nástroju Kanban. Keď sa však procesy zväčšia a prejdete od desiatok úloh k tisícom, bude pre Trello ťažké navigovať, vyhľadávať a podávať správy.

Pivotal Tracker — Bol som veľkým fanúšikom tohto nástroja, keď som pracoval pre startup. Pivotal Tracker sa však viac zameriava na správu produktov ako na technické úlohy. Aj keď je produktový manažment v Jira trochu zložitejší, stále ho tam možno implementovať bez použitia dodatočného nástroja.

Nástroj ChatOps č. 1

víťaz: MatterMost

Nástroje DevOps by sa mal každý naučiť v roku 2020
vysvetlenie: Možno najväčšie prekvapenie pre vás v mojom výbere, a to je dobrá správa! MatterMost získal popularitu tým, že prevzal to najlepšie z predchádzajúcich nástrojov, ale dal ich na preme. Pre spoločnosti je to veľmi dôležité: MatterMost vám umožňuje kontrolovať vaše údaje a tiež vám ich pomáha integrovať s nástrojmi, ktoré fungujú lokálne. Na kontrolu pracovných rozhovorov už nemusíme chodiť mimo firewall.

Kľúčové výhody

  • Open Source – Verzia MatterMost s otvoreným zdrojom funguje skvele pre stredné aj veľké tímy. Na rozdiel od bezplatného plánu spoločnosti Slack, ktorý vymaže vašu históriu správ, prevádzka vlastného servera znamená, že si ponecháte všetky svoje údaje.
  • Integrácie - Keďže API je takmer 100% založené na Slack API, takmer všetky integrácie Slack je možné použiť priamo s MatterMost.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Voľný — Slack je cool, ale títo chlapi vyrástli natoľko, že začali hľadať zisk. Blíži sa fáza návratnosti podnikania, ktorá im uberá hlavnú hodnotu: Slack poskytoval služby zadarmo; Najdôležitejšou nevýhodou bezplatnej verzie je vymazanie histórie chatu.

Tímy spoločnosti Microsoft — Skúste integrovať produkt spoločnosti Microsoft s niečím, čo nevlastní spoločnosť Microsoft... Veľa šťastia! To je všetko, čo môžem povedať o tomto nástroji!

Dokumentačný nástroj č. 1

víťaz: sútok

Nástroje DevOps by sa mal každý naučiť v roku 2020
Vytváranie a udržiavanie kvalitnej technickej dokumentácie je zložitý proces bez ohľadu na to, aký nástroj používate. Hoci v poslednej dobe na trh vstúpilo mnoho nástrojov na dokumentáciu SaaS, bolo by pre mňa ťažké zadať ukladanie technickej dokumentácie o kritických aplikáciách tretej strane. Uprednostňuje sa ukladanie údajov a dokumentov na preme a takto to rieši Confluence.

Kľúčové výhody

  • Jednoduchá obsluha – Väčšina samostatných nástrojov môže byť trochu zložitá na nastavenie a obsluhu a vyžaduje určité znalosti na údržbu. Confluence Server funguje skvele hneď po vybalení pre 10 alebo 10,000 XNUMX používateľov.
  • Zásuvné moduly – česť Confluence za krásnu, ľahko použiteľnú navigáciu hneď po vybalení a možnosť pridať doplnok pre takmer všetko odomyká potenciál podobný Wiki.

súťažiaci

Zúčastnil sa bitky, ale nevyhral

Prečítajte si dokumenty — Skvelé pre open source, ale ani neuvažujte o ukladaní dôležitých vedomostí tu.

Markdown - Skvelé na dokumentovanie kódu, ale je ťažké uverejniť architektúru, procesy alebo iné typy dokumentácie kvôli špecifickému formátovaniu MarkDown.

Jekyll — Pri dokumentovaní technických znalostí nechcem vytvárať novú statickú stránku, ktorá bude nasadená pri každej zmene. Jednoduchý systém správy verzií Confluence výrazne zjednodušuje internú dokumentáciu.

Zhrnúť

Na trhu sú doslova stovky nástrojov DevOps, takže je ťažké vedieť, ktoré z nich použiť a kedy by sa mali implementovať. Postupujte podľa tohto jednoduchého sprievodcu výberom nástrojov DevOps pre kompletný kanál CI/CD.

Nezabudnite vybrať nástroje zo všetkých piatich kategórií:

  • vývojové a stavebné nástroje
  • testovacie automatizačné nástroje
  • nasadzovacie nástroje
  • Runtime nástroje
  • nástroje spolupráce.

Hlavné odporúčanie: Automatizujte všetko!

Ďakujem Zach Shapiro!

Zdroj: hab.com

Pridať komentár