Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020

Začnite uporabljati najboljša orodja DevOps še danes!

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Revolucija DevOps je končno zavzela svet in orodja DevOps so postala neverjetno priljubljena. Glede na storitev Google Trends, število zahtev za »orodja DevOps« nenehno narašča in ta trend se nadaljuje.

Metodologija DevOps pokriva celoten življenjski cikel razvoja programske opreme, tako da lahko strokovnjaki izbirajo med različnimi orodji. Toda, kot veste, nobeno orodje ne more postati univerzalno orodje za vsakogar. Nekatere rešitve pa ponujajo tako široko paleto funkcij, da so kos skoraj vsaki nalogi.

Razdelimo orodja DevOps v kategorije in jih primerjamo z analogi:

  • orodja za razvoj in gradnjo
  • orodja za avtomatizacijo testiranja
  • orodja za organiziranje uvajanja
  • Orodja za izvajanje
  • orodja za sodelovanje.

Uspešna in premišljena izvedba DevOps praktik vključuje instrumente iz vseh petih zgoraj naštetih skupin. Analizirajte trenutni nabor orodij v vašem projektu, da ne boste zamudili pomembnega elementa cevovoda CI/CD.

Orodja za razvoj in izdelavo

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
To je osnova sklada cevovoda CI/CD. Vse se začne tukaj! Najboljša orodja v tej kategoriji lahko upravljajo več tokov dogodkov in se enostavno integrirajo z drugimi izdelki.

Na tej stopnji življenjskega cikla razvoja obstajajo tri skupine orodij:

  • sistem za nadzor različic (SCM)
  • neprekinjena integracija (CI)
  • Upravljanje podatkov

GIT je imel v letu 2020 pozitivne rezultate, zato mora imeti vaše orodje SCM brezhibno podporo za GIT. Za CI je predpogoj zmožnost izvajanja in zagona gradenj v okolju izoliranega vsebnika. Kar zadeva upravljanje podatkov, zahteva možnost spreminjanja sheme baze podatkov in vzdrževanje baze podatkov glede na različico aplikacije.

Orodje SCM + CI #1

Zmagovalec: GitLab in GitLab-CI

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Najboljše orodje cikla DevOps 2020 je nedvomno GitLab, ki bo zagotovo še naprej vodilo inovacije v bližnji prihodnosti.

Glavna funkcija GitLaba je zagotoviti udobno upravljanje repozitorija Git. Spletni vmesnik je intuitiven in enostaven za uporabo. GitLab ponuja vse, kar potrebujete, v brezplačni različici in je na voljo kot SaaS in on-prem (uporaba lastnih virov za gostovanje programske opreme).

Nobeno drugo orodje SCM ni uporabljalo neprekinjene integracije (CI) neposredno v vašem repozitoriju in GitLab to počne že dolgo. Če želite uporabljati GitLab-CI, morate dodati datoteko .gitlab-ci.yml v koren izvorne kode in vse spremembe projekta bodo sprožile dejanja, ki temeljijo na točno tem, kar ste določili. GitLab in GitLab-CI sta zasluženo prepoznana kot vodilna na področju stalne integracije (CI-as-code).

Ključne prednosti

  • Zanesljivost - Izdelek je na trgu od leta 2013; stabilen; dobro podprto.
  • Odprta koda – Brezplačna različica GitLaba ne omejuje osnovne funkcionalnosti, ki jo potrebujejo razvojne ekipe. Paketi plačljivih storitev ponujajo dodatne uporabne funkcije za podjetja različnih velikosti in potreb.
  • Engrained CI – Nobeno drugo orodje na trgu ni vgradilo stalne integracije neposredno v SCM kot GitLab-CI. Uporaba Dockerja zagotavlja izolirane gradnje brez težav, vgrajena poročila pa olajšajo odpravljanje napak. Ne potrebujemo kompleksne integracije in upravljanja več orodij hkrati.
  • Neomejene integracije – GitLab zagotavlja enostavno integracijo vseh orodij DevOps, ki jih potrebujete. To zagotavlja, da imajo razvojne in vzdrževalne ekipe en sam vir informacij o svoji aplikaciji v katerem koli okolju.

konkurenti

Sodeloval v bitki, vendar ni zmagal

V tej kategoriji so še druga priljubljena orodja, vendar niso tako dobra kot GitLab. In zato:

GitHub — To je odličen sistem za nadzor različic SaaS za mala podjetja in zgodnje faze razvoja. Za velika podjetja, za katera je pomembno ohraniti naslove IP v lastnem omrežju, je bila edina rešitev GitHub virtualni stroj .OVA brez podpore za sisteme visoke razpoložljivosti. To otežuje vzdrževanje on-prem, poleg tega je .OVA primerna le za srednje velika podjetja, sicer se bo strežnik ob večji obremenitvi preprosto zrušil. Pomanjkanje dejanj GitHub (do nedavnega in še ne v različici on-prem) ali CI-as-code pomeni, da morate izbrati ločeno orodje CI in nato upravljati to integracijo. Končno je GitHub veliko dražji od katere koli različice GitLaba.

Jenkins — Čeprav Jenkins privzeto velja za standard med orodji za neprekinjeno integracijo, vedno ni imel zmožnosti nadzora različic. Izkazalo se je, da uporabljate Jenkins in nekakšno orodje SCM. Pretežko je, če GitLab zmore oboje. Povprečna zasnova UX ni primerna za sodobno spletno aplikacijo in pušča veliko želenega.

BitBucket/Bambus — Moram ga prepoznati kot avtomatskega poraženca: zakaj dve orodji, ko pa GitLab počne vse popolnoma neodvisno. BitBucket Cloud podpira funkcionalnost GitLab-CI / GitHub Action, vendar je nobeno podjetje, ki je večje od startupa, ne more zlahka implementirati. Lokalni strežnik BitBucket ne podpira niti cevovodov BitBucket!

#1 Orodje za upravljanje podatkov

Zmagovalec: FlywayDB

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Pri razvoju spletnih aplikacij avtomatizacija baz podatkov običajno ni pomembna. Zamisel o uvajanju sprememb sheme baze podatkov za nove različice aplikacije prihaja pozno. Spremembe sheme pogosto povzročijo dodajanje in preimenovanje stolpcev ali tabel. Če se različica aplikacije ne ujema z različico sheme, se lahko aplikacija zruši. Poleg tega je lahko upravljanje sprememb baze podatkov pri posodabljanju aplikacije zahtevno, saj obstajata dva različna sistema. FlyWayDB rešuje vse te težave.

Ključne prednosti

  • Različice baze podatkov – Flyway vam omogoča ustvarjanje različic baze podatkov, sledenje migracijam baze podatkov in preprost prenos ali razveljavitev sprememb sheme brez dodatnega orodja za to.
  • Binarno ali vgrajeno – Flyway lahko izvajamo kot del aplikacije ali kot binarno izvršljivo datoteko. Flyway preveri združljivost različic ob zagonu in zažene ustrezne migracije, pri čemer ohranja sinhronizacijo različic baze podatkov in aplikacije. Z zagonom ad-hoc ukaza cmd line zagotavljamo prilagodljivost obstoječim zbirkam podatkov brez ponovne gradnje celotne aplikacije.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Na tem področju ni veliko orodij. Oglejmo si nekaj izmed njih:

LiquiBase — Liquibase spominja na FlywayDB. Rad bi ga postavil na Flyway, če bi imel v svoji ekipi nekoga z več izkušnjami z Liquibase.

Flocker — Может работать только для контейнерных приложений. Для успешного запуска баз данных в контейнерах все должно быть идеально спланировано. Я рекомендую использовать RDS (Relational Database Service) для баз данных и не советую хранить важную информацию в контейнере.

Orodja za avtomatizacijo testiranja

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Začnimo razpravo o orodjih za avtomatizacijo testiranja tako, da jih razvrstimo na podlagi testne piramide.

Testna piramida (testi) ima 4 stopnje:

  • Preizkusi enot – To je osnova celotnega procesa avtomatiziranega testiranja. V primerjavi z drugimi vrstami testov bi moralo biti več testov enot. Razvijalci pišejo in izvajajo teste enot, da zagotovijo, da je del aplikacije (znan kot "enota") v skladu z njeno zasnovo in se obnaša po pričakovanjih.
  • Preskusi komponent − Glavni namen testiranja komponent je preveriti vhodno/izhodno vedenje testnega objekta. Zagotoviti moramo, da je funkcionalnost testnega predmeta pravilno implementirana v skladu s specifikacijo.
  • Integracijski testi - Vrsta testiranja, pri katerem se posamezni moduli programske opreme združijo in testirajo kot skupina.
  • Preskusi od konca do konca - ta korak je razumljiv sam po sebi. Celotno aplikacijo spremljamo in skrbimo, da deluje po načrtih.

Ker teste enot in testiranje komponent izvajajo samo razvijalci in so pogosto specifični za programski jezik, teh orodij ne bomo ocenjevali za domeno DevOps.

#1 Orodje za testiranje integracije

Zmagovalec: Kumara

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Cucumber združuje specifikacije in testno dokumentacijo v en sam živi dokument. Specifikacije so vedno posodobljene, saj jih Cucumber samodejno testira. Če želite zgraditi ogrodje za samodejno testiranje iz nič in modelirati vedenje uporabnikov v spletni aplikaciji, potem je Selenium WebDriver z Javo in Cucumber BDD odličen način za učenje in implementacijo Cucumber v projekt.

Ključne prednosti

  • BDD pristop (Behavior Driven Development – ​​»razvoj skozi vedenje« v nasprotju s pristopom »test-driven development«) - Cucumber je zasnovan za testiranje BDD, prvotno je bil ustvarjen prav za to nalogo.
  • Živa dokumentacija - Dokumentacija je vedno bolečina! Ker so vaši testi napisani kot koda, Cucumber testira samodejno ustvarjeno dokumentacijo, da zagotovi, da so testi in dokumentacija usklajeni.
  • Podpora - Izbiramo lahko med številnimi orodji, vendar ima Cucumber potrebna finančna sredstva in dobro organiziran sistem podpore, ki uporabnikom pomaga v vsaki težki situaciji.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Med drugimi ogrodji in tehnološko specifičnimi orodji lahko le Cucumber velja za univerzalno rešitev.

Orodja za testiranje od konca do konca

Pri izvajanju testiranja od konca do konca se morate osredotočiti na dve ključni točki:

  • funkcionalno testiranje
  • Stresno testiranje.

Pri funkcionalnem testiranju preverimo, ali se dejansko zgodi vse, kar želimo. Na primer, ko kliknem na določene elemente svoje SPA (enostranske prijave), izpolnim obrazce in izberem »Pošlji«, se podatki prikažejo v bazi podatkov in na zaslonu se prikaže sporočilo »Uspešno!«.

Prav tako je pomembno, da preverimo, ali je določeno število uporabnikov, ki izvajajo isti scenarij, mogoče obdelati brez napak.

Odsotnost teh dveh vrst testiranja bo pomembna pomanjkljivost v vašem cevovodu CI/CD.

#1 orodje za testiranje od konca do konca. Funkcionalno testiranje

Zmagovalec: SoapUI Pro

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
SoapUI je že dolgo v prostoru za testiranje API-jev, odkar so bile spletne storitve, ki temeljijo na SOAP, standard. Čeprav ne ustvarjamo več novih storitev SOAP in se ime orodja ni spremenilo, to ne pomeni, da se ni razvilo. SoapUI ponuja odličen okvir za ustvarjanje avtomatiziranih funkcionalnih testov zaledja. Teste je mogoče enostavno kombinirati z orodji za stalno integracijo in uporabiti kot del cevovoda CI/CD.

Ključne prednosti

  • Podrobna dokumentacija - SoapUI je na trgu že dolgo, zato obstaja veliko spletnih virov, ki vam lahko pomagajo razumeti, kako nastaviti teste.
  • Enostavnost uporabe – Čeprav orodje podpira več protokolov za testiranje API-jev, prisotnost skupnega vmesnika SoapUI za več storitev olajša pisanje testov.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Selen je še en odličen instrument v tej skupini. Priporočam, da ga uporabite, če gradite in izvajate aplikacijo, ki temelji na Javi. Vendar, če gradite celotno spletno aplikacijo z več tehnologijami, lahko postane okorna za komponente, ki niso Java.

#1 orodje za testiranje od konca do konca. Stresno testiranje

Zmagovalec: LoadRunner

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Pojasnilo: Ko pride čas za obremenitveni preizkus vsakega elementa vaše aplikacije, lahko samo LoadRunner dokonča nalogo. Da, na začetku je drago in težko, vendar je LoadRunner edino orodje, ki mi kot tehničnemu arhitektu daje popolno zaupanje, da bo nova koda delovala v pogojih ekstremne obremenitve. Prav tako menim, da je čas, da LoadRunner prevzamejo razvojne ekipe, ne pa ekipe za testiranje.

Ključne prednosti

  • Obsežna dokumentacija – LoadRunner je na trgu že kar nekaj časa, zato obstaja veliko spletnih virov, ki vam bodo pomagali razumeti, kako nastaviti obremenitvene teste.
  • Podpora za protokol – Load Runner podpira vse od ODBC do AJAX, HTTPS in katerega koli drugega netrivialnega protokola, ki ga lahko uporablja vaša aplikacija. Trudimo se, da ne uporabljamo več orodij za obremenitveno testiranje, saj to le oteži postopek.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Tudi na tem področju ni veliko univerzalnih orodij, zato je najboljša rešitev tista, ki bo delovala v katerem koli okolju s katero koli tehnologijo.

Orodja za uvajanje

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Orodja za uvajanje so verjetno najmanj razumljen vidik razvoja. Za operativno skupino brez globokega razumevanja kode in funkcionalnosti aplikacije je težko uporabljati takšna orodja. Za razvijalce je upravljanje uvajanja nova odgovornost, zato še nimajo dovolj izkušenj z delom s tovrstnimi orodji.

Najprej razdelimo vsa orodja za uvajanje v tri podkategorije:

  • upravljanje artefaktov
  • upravljanje konfiguracije
  • razmestiti.

#1 Orodje za upravljanje artefaktov

Zmagovalec: Nexus

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Repozitorij artefaktov Nexus podpira skoraj vse večje tehnologije, od Jave do NPM do Dockerja. To orodje lahko uporabimo za shranjevanje vseh artefaktov, ki jih uporabljamo. Posredovanje oddaljenih upravljavcev paketov tudi bistveno pospeši proces gradnje CI, zaradi česar so paketi bolj dostopni za gradnjo. Druga prednost je zmožnost popolnega vpogleda v vse pakete, uporabljene v več programskih projektih, blokiranje nevarnih odprtokodnih paketov (lahko delujejo kot vektor napada).

Ključne prednosti

  • Tehnična podpora - Zanesljiv izdelek; dobro podprto.
  • Odprta koda – brezplačna različica ne omejuje osnovne funkcionalnosti, ki jo potrebujejo razvojne ekipe.

#1 Orodje za upravljanje konfiguracije

Zmagovalec: Možno

Ansible je vodilni iz enega preprostega razloga: brez državljanstva. Prej so se podobna orodja osredotočala na upravljanje stanja konfiguracije. Ko se zažene, bo takšno orodje, ko prejme želeno konfiguracijo, poskušalo popraviti trenutno konfiguracijo aplikacije. In z novim pristopom so prisotne samo komponente brez stanja. Nove različice kode so artefakti, ki se uporabljajo za zamenjavo obstoječih. To se lahko šteje za neke vrste efemerno, kratkoročno okolje.

Ključne prednosti

  • Отсутствие состояния (stateless) — Playbook запускается с машины для деплоя и выполняется на целевых серверах. Я не беспокоюсь о состоянии удаленного (remote) объекта, благодаря использованию такого инструмента, как Packer, для создания развертываемых объектов.
  • Odprta koda – tako kot CentOS tudi Ansible podpira RedHat. Pomaga vzdrževati skupnost in zagotavlja module visoke kakovosti, enostavne za uporabo.
  • Testiranje z Molecule (ogrodje Ansible) – Ker je upravljanje konfiguracije koda, je testiranje bistveno, tako kot vse drugo. Ogrodje za testiranje vlog Ansible podjetja Molecule deluje brezhibno in zagotavlja, da je konfiguracija enake kakovosti in sledi istemu cevovodu CI/CD kot koda aplikacije.
  • YAML – V primerjavi z drugimi orodji je YAML lažje razumljiv. Ker je upravljanje konfiguracije običajno nov izziv za tiste, ki izvajajo prakse DevOps, je preprostost njegov adut.

konkurenti

Sodeloval v bitki, vendar ni zmagal

OpsCode Chef — Svojo kariero DevOps sem začel kot razvijalec kuharske knjige. Ruby in Chef sta mi seveda zelo pri srcu, a enostavno ne rešujeta težav sodobnih brezdržavnih, v oblaku naravnih aplikacij. OpsCode Chef je odlično orodje za bolj tradicionalne aplikacije, vendar smo v tem članku osredotočeni na prihodnost.

Lutkovno — Lutka nikoli ni imela veliko oboževalcev, sploh v primerjavi s Chefom in Ansibleom. Odličen je za zagotavljanje in delo s strojno opremo, vendar nima podpore za sodobno upravljanje konfiguracije za spletno aplikacijo.

Orodje za uvajanje #1

Zmagovalec: Terraform

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Terraform rešuje problem opisovanja vaše infrastrukture kot kode, od omrežnih komponent do celotnih slik strežnika. Ta izdelek je od svoje prve izdaje prehodil dolgo pot, s toliko ustvarjenimi vtičniki in tako močno skupnostjo, da boste zagotovo dobili pomoč pri katerem koli scenariju uvajanja. Zmožnost podpiranja katere koli vrste okolja (lokalno, v oblaku ali drugje) je brez primere. Končno, najnovejša različica ponuja večino enakih logičnih funkcij in razredov v HCL kot kateri koli drug tradicionalni programski jezik, zaradi česar je Terraform enostaven za razvijalce, da ga hitro in enostavno razumejo.

Ključne prednosti

  • Neodvisnost od okolja – Terraform uporablja funkcije, ki delujejo kot vmesnik med vašo kodo Terraform, vsemi API-ji in notranjo logiko za komunikacijo s ponudnikom infrastrukture. To pomeni, da bom obvladal samo eno orodje in potem lahko delam kjerkoli.
  • Odprta koda - Težko je premagati brezplačna orodja! Podpora skupnosti na najvišji ravni.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Oblikovanje oblaka AWS — Tudi če delate le v oblačnem okolju AWS, bo vaše naslednje delo morda uporabljalo drugo orodje. Posvetiti ves svoj čas in energijo samo eni platformi je kratkovidna odločitev. Poleg tega je veliko novih storitev AWS pogosto na voljo kot moduli Terraform, preden so na voljo v CloudFormation.

Orodja za izvajanje

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020

Končni cilj vsakega razvojnega projekta je lansiranje aplikacije v proizvodnjo. V svetu DevOps želimo biti popolnoma seznanjeni z vsemi možnimi težavami z našim okoljem, prav tako želimo zmanjšati ročno posredovanje. Izbira pravega nabora izvajalnih orodij je ključna za doseganje nirvane razvoja aplikacij.

Podkategorije orodij za izvajanje:

  • X kot storitev (XaaS)
  • orkestracija
  • spremljanje
  • sečnja.

X-orodje-kot-storitev #1

Zmagovalec: Amazon Web Services

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Amazon je bil vedno vodilni na področju tehnologij v oblaku, vendar se tu ne ustavi: raznolikost novih storitev za razvijalce odpre oči. Prenesite kakršno koli tehnologijo in predlogo v AWS in zgrajena bo in delovala. Stroški orodja so povsem sprejemljivi: primerjajte jih s sestavljanjem, upravljanjem in vzdrževanjem opreme v lastnem podatkovnem centru. Brezplačna različica vam omogoča, da eksperimentirate in sprejmete pravo odločitev, preden porabite denar.

Ključne prednosti

  • Razširjenost – če imate izkušnje z gradnjo aplikacij v AWS, lahko delate kjer koli. Podjetja obožujejo AWS, startupi pa prav tako cenijo njegove nizke stroške.
  • Brezplačna različica je resnično pomemben dejavnik, ki ločuje AWS od svojih vrstnikov. Naj preizkusim storitev in vidim, kako deluje, preden se odločim za nakup, ne želim zapraviti na tisoče dolarjev za nekaj nepotrebnega. Brezplačna različica mi vedno zadostuje za preizkus katerega koli koncepta.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Azure »Azure je od svoje prve izdaje prehodil dolgo pot in to je pohvale vredno. Želja po drugačnosti pa je pripeljala do čudnih poimenovanj storitev, kar pogosto oteži delo. Kaj pomeni "shramba blob"? In čeprav se koda .NET bolje obnese v Microsoftovem ekosistemu, je malo verjetno, da boste za vsako komponento svoje aplikacije uporabljali samo .NET.

Heroku — Na Heroku ne bi nikoli vodil ničesar drugega kot osebni projekt zaradi nizke stopnje zanesljivosti in preglednosti, zato ga podjetja ne bi smela uporabljati kot platformo. Heroku je odličen za predstavitev nečesa na blogu, vendar za praktično uporabo - "Ne, hvala!"

Orodje #1 za orkestracijo

Zmagovalec: openshift

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Verjetno uporabljate Docker ali druge vsebnike v vašem skladu aplikacij. Brezstrežniške aplikacije so odlične, vendar morda ne ustrezajo vsaki arhitekturi. Izvajanje vsebnikov brez platforme za orkestracijo preprosto ne bo delovalo. Kubernetes Core (K8s) je brez konkurence v smislu varnosti in orodij. OpenShift je edina platforma, ki temelji na Kubernetesu in lahko zbira Source2Image, podpira avtomatizirano uvajanje v pode ter podpira sledenje in spremljanje. OpenShift je mogoče izvajati lokalno, v oblaku ali lokalno in v oblaku hkrati.

Ključne prednosti

  • Vgrajena varnost – Upravljanje varnosti K8s lahko zahteva višjo diplomo. Vsaka podrobnost mora biti skrbno premišljena in upoštevana! Varnostni mehanizmi, ki so privzeto vgrajeni v OpenShift, razbremenijo razvijalce in zagotavljajo varnejšo platformo za aplikacije.
  • Rešitev vse v enem – za razliko od osnovnega K8s, ki privzeto ne vključuje orodij za uravnoteženje obremenitve, ima OpenShift vse. Uporabljam ga lahko za ustvarjanje in gostovanje vsebnikov, zagon orodij CI/CD, upravljanje zunanjih procesov, upravljanje ključev in še veliko več. Čeprav je grafični uporabniški vmesnik še daleč od popolnosti, pristop, ki temelji na API-ju, pomeni, da je vse mogoče opisati v skriptu. Za razliko od drugih grafičnih vmesnikov za K8s, OpenShift olajša učenje osnov Kubernetesa. Sploh vam ni treba pridobiti diplome!

konkurenti

Sodeloval v bitki, vendar ni zmagal

Docker roj — Docker Swarm je poskušal poenostaviti K8 tako, da se je znebil mnogih stvari. Odličen je za majhne aplikacije, vendar za poslovne aplikacije preprosto ne deluje. Poleg tega imajo rešitve, kot je AWS ECS, podoben pristop, vendar olajšajo delo z drugimi storitvami, s katerimi lahko tudi komuniciram (Lambda, IAM itd.).

Orodje za spremljanje #1

Zmagovalec: Nova relikvija

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Zgodnje izdaje New Relic so naredile eno stvar dobro - spremljanje APM (Application Performance Monitoring). Zdaj je orodje za spremljanje s polnimi funkcijami, ki vam omogoča spremljanje delovanja strežnika, vsebnika, baze podatkov, spremljanje izkušnje končnega uporabnika in seveda spremljanje delovanja aplikacije.

Ključne prednosti

  • Enostavnost uporabe – Ko sem delal kot sistemski inženir, sem uporabljal veliko orodij za spremljanje, vendar še nikoli nisem naletel na eno tako preprosto in enostavno uporabo, kot je New Relic. Je SaaS, zato vam ga ni treba namestiti sami.
  • Vidnost od konca do konca – druga orodja poskušajo spremljati en specifičen element vaše aplikacije. Na primer metrika uporabe procesorja ali omrežnega prometa, vendar je treba vse to celovito spremljati, da aplikacija deluje pravilno. New Relic vam omogoča, da združite vse svoje podatke, da dobite celovit pregled nad tem, kaj se dogaja.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Zabbix — Moj prvi in ​​najljubši nadzorni sistem, ki pa je ostal v preteklosti zaradi nerazvitosti oblačnih tehnologij in na področju spremljanja delovanja aplikacij APM. Zabbix še vedno dobro spremlja tradicionalno strežniško infrastrukturo, a to je tudi vse.

DataDog — Preveč osredotočen na proces upravljanja produkcijskega okolja aplikacije in ne na samo kodo. Z ekipami DevOps, ki vključujejo razvijalce, se nam za zagotavljanje vrhunske podpore ni treba zanašati na orodja, ki jih je težko uporabljati.

Orodje za beleženje št. 1

Zmagovalec: Splunk

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Težko je tekmovati s Splunkom! Dolgo časa ostaja vodilni v sečnji in še naprej to počne bolje kot kdorkoli drug. S ponudbami on-prem in SaaS lahko Splunk uporabljate kjer koli. Velika slabost je njegova cena: Splunk je še vedno presneto drag!

Ključne prednosti

  • Prodornost – podjetja obožujejo Splunk in podjetja imajo denar, da ga kupijo.
  • Čeprav startupi poskušajo povrniti stroške, je veliko funkcij mogoče rešiti zahvaljujoč odprtokodnim analogom.
  • Vzdrževanje - Preprosto povedano, Splunk deluje in to dobro. Na voljo je s številnimi privzetimi nastavitvami in funkcijami, pripravljenimi za uporabo. Ni vam treba izgubljati časa z branjem dokumentacije in poskusom, da bi Splunk deloval ali dešifriral karkoli.

konkurenti

Sodeloval v bitki, vendar ni zmagal

ELK Stack (ElasticSearch, LogStash in Kibana) "Zdi se, da so ta orodja priljubljena, ker vam za njihovo uporabo sploh ni treba prodati svojih jeter." Ko pa nabor dnevnikov raste in število aplikacij na krovu, postaja delo vedno težje. V primerjavi s Splunkom sem z ELK Stackom porabil veliko več časa za nastavitev orodij, preden sem ustvaril nadzorne plošče, kot kadar koli prej.

Orodja za sodelovanje

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Pri DevOps gre predvsem za spreminjanje kulture znotraj organizacije. Nakup katerega koli orodja ne bo spremenil trenutnih praks čez noč, vsekakor pa lahko spodbudi sodelovanje in nove načine interakcije.

Podkategorije orodij za sodelovanje:

  • sledenje opravilom
  • ChatOps
  • dokumentacijo.

#1 Orodje za sledenje težavam

Zmagovalec: Jira

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Jira ohranja svoj vodilni položaj, čeprav se konkurenca na tem področju povečuje. Jirina neverjetna prilagodljivost omogoča razvojnim in vzdrževalnim ekipam upravljanje projektnega dela in sprint nalog. Vgrajeni standardi, ki uporabljajo terminologijo Agile, olajšajo prehod s tradicionalnih načinov dela na učinkovitejše procese.

Ključne prednosti

  • Priljubljenost - Kot mnoga druga orodja se tudi Jira uporablja skoraj povsod. Majhne ekipe uporabljajo cenejšo in dostopnejšo različico in dobijo vse, kar potrebujejo, večja podjetja pa si lahko privoščijo dražjo licenco.
  • Integracije - Jira je pionir na svojem področju. To dejstvo in hiter razvoj izdelka privede do tega, da druga podjetja izberejo Jira za ustvarjanje lastnih integracij in s tem povečajo vrednost orodja. Jira lahko integriramo z vsemi orodji, navedenimi v tem članku, kar takoj z malo konfiguracije.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Trello — Trello je hitro pridobil priljubljenost zaradi brezplačnega orodja Kanban. Ko pa se procesi razširijo in preidete z desetine nalog na tisoče, postane Trello težko krmariti, iskati in poročati.

Pivotal Tracker — Ko sem delal za startup, sem bil velik oboževalec tega orodja. Vendar je Pivotal Tracker bolj osredotočen na upravljanje izdelkov kot na tehnične naloge. Čeprav je upravljanje izdelkov v Jiri nekoliko bolj zapleteno, ga je tam še vedno mogoče implementirati brez uporabe dodatnega orodja.

Orodje ChatOps #1

Zmagovalec: MatterMost

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Pojasnilo: Morda največje presenečenje za vas v mojem izboru, in to je dobra novica! MatterMost je pridobil na priljubljenosti s tem, da je vzel najboljše iz prejšnjih orodij, vendar jih je postavil na prvo mesto. To je zelo pomembno za podjetja: MatterMost vam omogoča nadzor nad vašimi podatki in vam jih tudi pomaga integrirati z orodji, ki delujejo lokalno. Ni nam več treba iti izven požarnega zidu, da preverimo delovne klepete.

Ključne prednosti

  • Odprta koda – odprtokodna različica MatterMost deluje odlično tako za srednje kot velike ekipe. Za razliko od brezplačnega paketa Slack, ki izbriše zgodovino vaših sporočil, zagon lastnega strežnika pomeni, da obdržite vse svoje podatke.
  • Integracije – Ker API skoraj 100 % temelji na API-ju Slack, je skoraj vse integracije Slack mogoče uporabiti neposredno z MatterMost.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Slack — Slack je kul, toda ti fantje so tako zrasli, da so začeli iskati dobiček. Bliža se faza povračila poslovanja, ki jim jemlje glavno vrednost: Slack je storitve zagotavljal brezplačno; Najpomembnejša pomanjkljivost brezplačne različice je brisanje zgodovine klepetov.

Microsoftove ekipe — Poskusite integrirati Microsoftov izdelek z nečim, kar ni v lasti Microsofta ... Vso srečo! To je vse, kar moram povedati o tem orodju!

Orodje za dokumentacijo #1

Zmagovalec: Sotočje

Orodja DevOps, ki bi se jih morali vsi naučiti leta 2020
Izdelava in vzdrževanje kakovostne tehnične dokumentacije je kompleksen proces, ne glede na to, katero orodje uporabljate. Čeprav je pred kratkim na trg prišlo veliko orodij za dokumentacijo SaaS, bi težko oddal shranjevanje tehnične dokumentacije o kritičnih aplikacijah tretji osebi. Podatke in dokumente je bolje shranjevati on-prem in tako to rešuje Confluence.

Ključne prednosti

  • Enostavno upravljanje – večina samostojnih orodij je lahko nekoliko zapletena za nastavitev in uporabo ter zahteva nekaj znanja za vzdrževanje. Confluence Server deluje odlično že takoj za 10 ali 10,000 uporabnikov.
  • Vtičniki – pohvale podjetju Confluence, ker ima že pripravljeno čudovito navigacijo, ki je enostavna za uporabo, in možnost dodajanja vtičnika za skoraj vse sprosti potencial, podoben Wikiju.

konkurenti

Sodeloval v bitki, vendar ni zmagal

Preberite dokumente — Kul za odprto kodo, vendar niti ne pomislite, da bi tu shranjevali kritično znanje.

Markdown - Odlično za dokumentiranje kode, vendar je težko objaviti arhitekturo, procese ali druge vrste dokumentacije zaradi posebnega oblikovanja MarkDown.

Jekyll — Pri dokumentiranju tehničnega znanja ne želim ustvariti novega statičnega mesta, ki bo uvedeno vsakič, ko pride do spremembe. Preprost sistem za nadzor različic Confluence močno poenostavi notranjo dokumentacijo.

Seštejte

Na trgu je dobesedno na stotine orodij DevOps, zaradi česar je težko vedeti, katera uporabiti in kdaj jih je treba implementirati. Sledite temu preprostemu vodniku za izbiro orodij DevOps za celoten cevovod CI/CD.

Bodite prepričani, da izberete orodja iz vseh petih kategorij:

  • orodja za razvoj in gradnjo
  • orodja za avtomatizacijo testiranja
  • orodja za uvajanje
  • Orodja za izvajanje
  • orodja za sodelovanje.

Glavno priporočilo: Avtomatizirajte vse!

Hvala Zach Shapiro!

Vir: www.habr.com

Dodaj komentar