DevOps alati koje bi svi trebali naučiti u 2020

Počnite koristiti najbolje DevOps alate već danas!

DevOps alati koje bi svi trebali naučiti u 2020
DevOps revolucija je konačno zavladala svijetom i DevOps alati su postali nevjerovatno popularni. Prema servisu Google trendovi, broj zahtjeva za “DevOps alatima” stalno raste, a ovaj trend se nastavlja.

DevOps metodologija pokriva cijeli životni ciklus razvoja softvera, tako da profesionalci mogu birati između raznih alata. Ali, kao što znate, nijedan alat ne može postati univerzalni alat za sve. Međutim, neka rješenja nude tako širok raspon funkcija da se mogu nositi s gotovo svim zadacima.

Podijelimo DevOps alate u kategorije i usporedimo ih s analozima:

  • alati za razvoj i izgradnju
  • alati za automatizaciju testiranja
  • alati za organizaciju implementacije
  • Runtime alati
  • alati za saradnju.

Uspješna i promišljena implementacija DevOps praktičar uključuje instrumente iz svih pet gore navedenih grupa. Analizirajte trenutni skup alata u vašem projektu kako ne biste propustili važan element CI/CD cevovoda.

Alati za razvoj i izgradnju

DevOps alati koje bi svi trebali naučiti u 2020
Ovo je osnova CI/CD pipeline steka. Sve počinje upravo ovdje! Najbolji alati u ovoj kategoriji mogu upravljati višestrukim tokovima događaja i lako se integrirati s drugim proizvodima.

U ovoj fazi životnog ciklusa razvoja, postoje tri grupe alata:

  • sistem kontrole verzija (SCM)
  • kontinuirana integracija (CI)
  • Upravljanje podacima

GIT je imao pozitivne rezultate u 2020. godini, tako da bi vaš SCM alat trebao imati besprijekornu podršku za GIT. Za CI, preduslov je sposobnost izvršavanja i pokretanja build-ova u izolovanom okruženju kontejnera. Kada je u pitanju upravljanje podacima, ono zahtijeva mogućnost izmjene šeme baze podataka i održavanja baze podataka prema verziji aplikacije.

SCM + CI Alat #1

Pobjednik: GitLab i GitLab-CI

DevOps alati koje bi svi trebali naučiti u 2020
Najbolji alat DevOps ciklusa 2020. je bez sumnje GitLab, i definitivno će nastaviti da vodi inovacije u bliskoj budućnosti.

Glavna funkcija GitLaba je da obezbedi udobno upravljanje Git repozitorijumom. Web sučelje je intuitivno i jednostavno za korištenje. GitLab pruža sve što vam je potrebno u besplatnoj verziji i dolazi kao SaaS i on-prem (koristeći vlastite resurse za hostovanje softvera).

Nijedan drugi SCM alat nije koristio kontinuiranu integraciju (CI) direktno na vašem spremištu, a GitLab to radi već duže vrijeme. Da biste koristili GitLab-CI, morate dodati datoteku .gitlab-ci.yml u korijen izvornog koda, a sve promjene u projektu će pokrenuti radnje koje se temelje upravo na onome što ste naveli. GitLab i GitLab-CI su zasluženo prepoznati kao lideri u oblasti kontinuirane integracije (CI-as-code).

Ključne prednosti

  • Pouzdanost - Proizvod je na tržištu od 2013. godine; stabilan; dobro podržan.
  • Otvoreni kod – besplatna verzija GitLaba ne ograničava osnovnu funkcionalnost koja je potrebna razvojnim timovima. Paketi plaćenih usluga pružaju dodatne korisne funkcije za kompanije različitih veličina i potreba.
  • Ukorijenjen CI - Nijedan drugi alat na tržištu nije izgradio kontinuiranu integraciju direktno u SCM kao GitLab-CI. Korištenje Dockera osigurava izolirane gradnje bez problema, a ugrađeni izvještaji olakšavaju otklanjanje grešaka. Ne zahtijevamo složenu integraciju i upravljanje više alata u isto vrijeme.
  • Neograničene integracije - GitLab omogućava jednostavnu integraciju svih DevOps alata koji su vam potrebni. Ovo osigurava da timovi za razvoj i održavanje imaju jedan izvor informacija o njihovoj primjeni u bilo kojem okruženju.

Takmičari

Učestvovao u bici, ali nije pobedio

Postoje i drugi popularni alati u ovoj kategoriji, ali nisu tako dobri kao GitLab. I zato:

GitHub — Ovo je odličan SaaS sistem kontrole verzija za male kompanije i rane faze razvoja. Za velike kompanije koje moraju da zadrže IP adrese na sopstvenoj mreži, jedino rešenje sa GitHuba bila je .OVA virtuelna mašina bez podrške za sisteme visoke dostupnosti. Ovo otežava on-prem održavanje, osim toga, .OVA je prikladan samo za srednja preduzeća, inače će se server jednostavno srušiti pod većim opterećenjem. Nedostatak GitHub Actions (donedavno i još uvijek nije bio u on-prem verziji) ili CI-as-code znači da morate odabrati poseban CI alat i zatim upravljati tom integracijom. Konačno, GitHub je mnogo skuplji od bilo koje verzije GitLaba.

Jenkins — Iako se Jenkins podrazumevano smatra standardom među alatima za kontinuiranu integraciju, oduvek su mu nedostajale mogućnosti kontrole verzija. Ispostavilo se da koristite Jenkins plus neku vrstu SCM alata. Preteško je kada GitLab može i jedno i drugo. Osrednji UX dizajn nije prikladan za modernu web aplikaciju i ostavlja mnogo da se želi.

BitBucket/Bamboo — Moram ga prepoznati kao automatskog gubitnika: čemu dva alata kada GitLab sve radi potpuno nezavisno. BitBucket Cloud podržava GitLab-CI / GitHub Action funkcionalnost, ali nijedna kompanija veća od startupa to ne može lako implementirati. On-prem BitBucket server čak ne podržava BitBucket cjevovode!

#1 Alat za upravljanje podacima

Pobjednik: FlywayDB

DevOps alati koje bi svi trebali naučiti u 2020
U razvoju web aplikacija automatizaciji baze podataka se obično ne pridaje važnost. Ideja o implementaciji promjena sheme baze podataka za nove verzije aplikacije dolazi kasno. Promjene sheme često rezultiraju dodavanjem i preimenovanjem stupaca ili tabela. Ako se verzija aplikacije ne podudara s verzijom sheme, aplikacija se može srušiti. Osim toga, upravljanje promjenama baze podataka prilikom ažuriranja aplikacije može biti izazovno jer postoje dva različita sistema. FlyWayDB rješava sve ove probleme.

Ključne prednosti

  • Verzija baze podataka - Flyway vam omogućava da kreirate verzije baze podataka, pratite migracije baze podataka i lako prenosite ili vraćate promjene šeme bez dodatnog alata za to.
  • Binarno ili ugrađeno – možemo izabrati da pokrenemo Flyway kao dio aplikacije ili kao binarnu izvršnu datoteku. Flyway provjerava kompatibilnost verzija pri pokretanju i pokreće odgovarajuće migracije, održavajući sinkronizirane verzije baze podataka i aplikacije. Pokretanjem ad-hoc naredbe cmd linije, pružamo fleksibilnost postojećim bazama podataka bez ponovne izgradnje cijele aplikacije.

Takmičari

Učestvovao u bici, ali nije pobedio

Nema mnogo alata u ovoj oblasti. Pogledajmo neke od njih:

LiquiBase — Liquibase liči na FlywayDB. Voleo bih da ga postavim na Flyway da imam nekoga u mom timu sa više iskustva sa Liquibaseom.

Flocker - Može raditi samo za kontejnerske aplikacije. Za uspješno pokretanje kontejneriziranih baza podataka, sve mora biti savršeno isplanirano. Preporučujem korištenje RDS-a (Relational Database Service) za baze podataka i ne savjetujem pohranjivanje važnih informacija u kontejner.

Alati za automatizaciju testiranja

DevOps alati koje bi svi trebali naučiti u 2020
Započnimo našu raspravu o alatima za automatizaciju testiranja tako što ćemo ih klasificirati na osnovu piramide testiranja.

Piramida testiranja (testovi) ima 4 nivoa:

  • Jedinični testovi - Ovo je osnova cjelokupnog procesa automatiziranog testiranja. Trebalo bi biti više jediničnih testova u odnosu na druge vrste testova. Programeri pišu i pokreću jedinične testove kako bi osigurali da je dio aplikacije (poznat kao "jedinica") u skladu s njenim dizajnom i da se ponaša kako se očekuje.
  • Testovi komponenti – Glavna svrha testiranja komponenti je provjera ulazno/izlaznog ponašanja testnog objekta. Moramo osigurati da je funkcionalnost testnog objekta implementirana ispravno u skladu sa specifikacijom.
  • Integracioni testovi - Vrsta testiranja u kojoj se pojedinačni softverski moduli kombinuju i testiraju kao grupa.
  • Testovi od kraja do kraja – Ovaj korak je razumljiv sam po sebi. Pratimo cijelu aplikaciju i pazimo da funkcionira kako je planirano.

Budući da jedinične testove i testiranje komponenti izvode samo programeri i često su specifični za programski jezik, nećemo procjenjivati ​​ove alate za DevOps domen.

#1 Alat za testiranje integracije

Pobjednik: krastavac

DevOps alati koje bi svi trebali naučiti u 2020
Cucumber kombinuje specifikacije i testnu dokumentaciju u jedan živi dokument. Specifikacije su uvijek ažurne jer ih krastavac automatski testira. Ako želite da napravite okvir za automatsko testiranje od nule i modelirate ponašanje korisnika u web aplikaciji, onda je Selenium WebDriver sa Javom i Cucumber BDD odličan način da naučite i implementirate Cucumber u projektu.

Ključne prednosti

  • BDD pristup (Behavior Driven Development - “razvoj kroz ponašanje” za razliku od pristupa “test-driven development”) - Cucumber je dizajniran za BDD testiranje, originalno je kreiran upravo za ovaj zadatak.
  • Živa dokumentacija - dokumentacija je uvijek muka! Budući da su vaši testovi napisani kao kod, Cucumber testira automatski generiranu dokumentaciju kako bi osigurao da su testovi i dokumentacija usklađeni.
  • Podrška - Možemo birati između mnogih alata, ali Cucumber ima potrebna finansijska sredstva i dobro organizovan sistem podrške za pomoć korisnicima u svakoj teškoj situaciji.

Takmičari

Učestvovao u bici, ali nije pobedio

Među ostalim okvirima i alatima specifičnim za tehnologiju, samo se Cucumber može smatrati univerzalnim rješenjem.

Alati za testiranje s kraja na kraj

Kada provodite end-to-end testiranje, morate se fokusirati na dvije ključne točke:

  • funkcionalno testiranje
  • Testiranje na stres.

U funkcionalnom testiranju provjeravamo da li se zaista događa sve što želimo. Na primjer, kada kliknem na određene elemente moje SPA (jednostrane aplikacije), ispunim formulare i odaberem "Pošalji", podaci se pojavljuju u bazi podataka i na ekranu se pojavljuje poruka "Uspješno!".

Također nam je važno provjeriti da se određeni broj korisnika koji rade na istom scenariju može obraditi bez grešaka.

Odsustvo ove 2 vrste testiranja bit će značajan nedostatak u vašem CI/CD kanalu.

#1 alat za end-to-end testiranje. Funkcionalno testiranje

Pobjednik: SoapUI Pro

DevOps alati koje bi svi trebali naučiti u 2020
SoapUI je već duže vrijeme u prostoru za testiranje API-ja otkako su web servisi zasnovani na SOAP-u bili standard. Iako više ne kreiramo nove SOAP usluge i naziv alata se nije promijenio, to ne znači da nije evoluirao. SoapUI pruža odličan okvir za kreiranje automatskih pozadinskih funkcionalnih testova. Testovi se mogu lako kombinovati sa alatima za kontinuiranu integraciju i koristiti kao deo CI/CD cevovoda.

Ključne prednosti

  • Detaljna dokumentacija - SoapUI je na tržištu već duže vrijeme, tako da postoji mnogo online resursa koji vam mogu pomoći da shvatite kako postaviti testove.
  • Lakoća upotrebe – Iako alat podržava više protokola za testiranje API-ja, SoapUI-jevo prisustvo zajedničkog interfejsa za više usluga čini pisanje testova lakšim.

Takmičari

Učestvovao u bici, ali nije pobedio

selen je još jedan odličan instrument u ovoj grupi. Preporučujem da ga koristite ako pravite i pokrećete aplikaciju zasnovanu na Javi. Međutim, ako gradite potpunu web aplikaciju s više tehnologija, ona može postati glomazna za komponente koje nisu Java.

Br. 1 alat za end-to-end testiranje. Testiranje na stres

Pobjednik: LoadRunner

DevOps alati koje bi svi trebali naučiti u 2020
Objašnjenje: Kada dođe vrijeme za testiranje učitavanja svakog elementa vaše aplikacije, samo LoadRunner može izvršiti zadatak. Da, u početku je skupo i teško, ali LoadRunner je jedini alat koji meni, kao tehničkom arhitekti, daje potpuno povjerenje da će novi kod raditi pod ekstremnim uvjetima opterećenja. Također, mislim da je vrijeme da LoadRunner preuzmu razvojni timovi, a ne timovi za testiranje.

Ključne prednosti

  • Opsežna dokumentacija - LoadRunner je na tržištu već neko vrijeme, tako da postoji mnogo online resursa koji će vam pomoći da shvatite kako postaviti testove opterećenja.
  • Podrška za protokol - Load Runner podržava sve od ODBC do AJAX, HTTPS i bilo koji drugi netrivijalni protokol koji vaša aplikacija može koristiti. Trudimo se da ne koristimo više alata za testiranje opterećenja, jer to samo komplikuje proces.

Takmičari

Učestvovao u bici, ali nije pobedio

Opet, nema mnogo univerzalnih alata u ovoj oblasti, pa je najbolje rješenje ono koje će raditi u svakom okruženju s bilo kojom tehnologijom.

Alati za implementaciju

DevOps alati koje bi svi trebali naučiti u 2020
Alati za implementaciju su vjerovatno najmanje razumljiv aspekt razvoja. Za operativni tim bez dubokog razumijevanja koda i funkcionalnosti aplikacije, teško je koristiti takve alate. Za programere, upravljanje implementacijom je nova odgovornost, tako da oni još nemaju dovoljno iskustva u radu s takvim alatima.

Prije svega, podijelimo sve alate za implementaciju u tri potkategorije:

  • upravljanje artefaktima
  • upravljanje konfiguracijom
  • razviti.

#1 Alat za upravljanje artefaktima

Pobjednik: veza

DevOps alati koje bi svi trebali naučiti u 2020
Nexus skladište artefakata podržava gotovo sve glavne tehnologije, od Jave preko NPM-a do Dockera. Ovaj alat možemo koristiti za pohranjivanje svih artefakata koje koristimo. Proksiranje udaljenih menadžera paketa također značajno ubrzava proces izgradnje CI-ja, čineći pakete pristupačnijim za izgradnju. Još jedna prednost je mogućnost da se dobije potpuni pregled svih paketa koji se koriste u nekoliko softverskih projekata, blokirajući nesigurne pakete otvorenog koda (mogu djelovati kao vektor napada).

Ključne prednosti

  • Tehnička podrška - Pouzdan proizvod; dobro podržan.
  • Open Source – besplatna verzija ne ograničava osnovnu funkcionalnost koja je potrebna razvojnim timovima.

#1 Alat za upravljanje konfiguracijom

Pobjednik: Ansible

Ansible je lider iz jednog jednostavnog razloga: bez državljanstva. Ranije su slični alati bili fokusirani na upravljanje stanjem konfiguracije. Kada se pokrene, takav alat, nakon što dobije željenu konfiguraciju, pokušat će ispraviti trenutnu konfiguraciju aplikacije. A sa novim pristupom, prisutne su samo komponente bez državljanstva. Nove verzije koda su artefakti koji se postavljaju da zamijene postojeće. Ovo se može smatrati nekom vrstom efemernog, kratkoročnog okruženja.

Ključne prednosti

  • Bez stanja – Playbook se pokreće sa mašine za implementaciju i izvršava na ciljnim serverima. Ne moram da brinem o stanju udaljenog objekta koristeći alat kao što je Packer za kreiranje objekata koji se mogu primeniti.
  • Otvoreni izvor - Kao i CentOS, Ansible također podržava RedHat. Pomaže u održavanju zajednice i pruža visokokvalitetne module jednostavne za korištenje.
  • Testiranje sa Molecule (ansible framework) - Pošto je upravljanje konfiguracijom kod, kao i sve ostalo, testiranje je od suštinskog značaja. Moleculeov Ansible okvir za testiranje uloga radi besprijekorno, osiguravajući da je konfiguracija istog kvaliteta i da prati isti CI/CD cevovod kao kod aplikacije.
  • YAML – U poređenju sa drugim alatima, YAML je lakši za razumevanje. Budući da je upravljanje konfiguracijom obično novi izazov za one koji implementiraju DevOps prakse, jednostavnost je njegov adut.

Takmičari

Učestvovao u bici, ali nije pobedio

OpsCode Chef — Započeo sam svoju DevOps karijeru kao programer kuharica. Ruby i Chef su mi, naravno, jako dragi, ali jednostavno ne rješavaju probleme modernih aplikacija bez državljanstva, koje su izvorne u oblaku. OpsCode Chef je odličan alat za tradicionalnije aplikacije, ali u ovom članku smo fokusirani na budućnost.

lutka — Lutka nikada nije imala mnogo obožavatelja, posebno u poređenju sa Chefom i Ansibleom. Odličan je za obezbjeđivanje i rad sa hardverom, ali mu nedostaje moderna podrška za upravljanje konfiguracijom za web aplikaciju.

Alat za implementaciju #1

Pobjednik: Terraform

DevOps alati koje bi svi trebali naučiti u 2020
Terraform rješava problem opisivanja vaše infrastrukture kao koda, od mrežnih komponenti do kompletnih slika servera. Ovaj proizvod je prešao dug put od svog početnog izdanja, sa toliko kreiranih dodataka i tako snažnom zajednicom da ćete biti sigurni da ćete dobiti pomoć u bilo kojem scenariju implementacije. Mogućnost podrške bilo koje vrste okruženja (lokalno, u oblaku ili drugdje) je neuporediva. Konačno, najnovija verzija pruža većinu istih logičkih funkcija i klasa u HCL-u kao i bilo koji drugi tradicionalni programski jezik, čineći Terraform lakim za programere da shvate brzo i lako.

Ključne prednosti

  • Agnostik okoline - Terraform koristi funkcije koje djeluju kao sučelje između vašeg Terraform koda, svih API-ja i interne logike za komunikaciju sa dobavljačem infrastrukture. To znači da ću savladati samo jedan alat i onda mogu raditi bilo gdje.
  • Otvoreni kod - Teško je pobijediti besplatne alate! Podrška zajednice na najvišem nivou.

Takmičari

Učestvovao u bici, ali nije pobedio

AWS CloudFormation — Čak i ako radite samo u AWS cloud okruženju, vaš sljedeći posao može koristiti drugačiji alat. Posvetiti sve svoje vreme i energiju samo jednoj platformi je kratkovida odluka. Osim toga, mnoge nove AWS usluge su često dostupne kao Terraform moduli prije nego što budu dostupne u CloudFormation-u.

Runtime alati

DevOps alati koje bi svi trebali naučiti u 2020

Krajnji cilj svakog razvojnog projekta je pokretanje aplikacije u produkciji. U svijetu DevOps-a želimo biti potpuno svjesni svih mogućih problema s našim okruženjem, a želimo i minimizirati ručnu intervenciju. Odabir pravog skupa alata za vrijeme izvođenja je od suštinskog značaja za postizanje nirvane razvoja aplikacija.

Podkategorije runtime alata:

  • X-as-a-service (XaaS)
  • orkestracija
  • praćenje
  • logging.

X-alat-kao-usluga #1

Pobjednik: Amazon Web Services

DevOps alati koje bi svi trebali naučiti u 2020
Amazon je oduvijek bio lider u cloud tehnologijama, ali se tu ne zaustavlja: raznolikost novih usluga za programere otvara oči. Donesite bilo koju tehnologiju i predložak u AWS i on će biti izgrađen i pokrenut. Trošak alata je prilično razuman: usporedite ga sa montažom, upravljanjem i održavanjem opreme u vlastitom podatkovnom centru. Besplatna verzija vam omogućava da eksperimentišete i donesete pravu odluku prije nego što potrošite novac.

Ključne prednosti

  • Rasprostranjenost – Ako imate iskustva u izradi aplikacija u AWS-u, možete raditi bilo gdje. Preduzeća vole AWS, a startupi također cijene njegovu nisku cijenu.
  • Besplatna verzija je zaista značajan faktor koji izdvaja AWS od svojih kolega. Dozvolite mi da isprobam uslugu i vidim kako funkcionira prije nego što donesem odluku o kupovini, ne želim da trošim hiljade dolara na nešto nepotrebno. Besplatna verzija mi je uvijek dovoljna da testiram bilo koji koncept.

Takmičari

Učestvovao u bici, ali nije pobedio

plavetnilo „Azure je prešao dug put od svog prvog izdanja i to je za svaku pohvalu. Međutim, želja da se bude drugačiji dovela je do čudnih naziva za usluge, što često otežava posao. Šta znači "blob memorija"? I dok .NET kod radi bolje u Microsoft ekosistemu, malo je vjerovatno da ćete koristiti samo .NET za svaku komponentu vaše aplikacije.

Heroku — Nikada ne bih vodio ništa osim ličnog projekta na Heroku-u zbog niskog nivoa pouzdanosti i transparentnosti, tako da kompanije ne bi trebalo da ga koriste kao platformu. Heroku je odličan za demonstriranje nečega na blogu, ali za praktičnu upotrebu - "Ne, hvala!"

#1 Alat za orkestraciju

Pobjednik: openshift

DevOps alati koje bi svi trebali naučiti u 2020
Vjerovatno koristite Docker ili druge kontejnere u svom steku aplikacija. Aplikacije bez servera su odlične, ali možda ne odgovaraju svakoj arhitekturi. Pokretanje kontejnera bez platforme za orkestraciju jednostavno neće raditi. Kubernetes Core (K8s) je bez premca u pogledu sigurnosti i alata. OpenShift je jedina platforma zasnovana na Kubernetesu koja može prikupljati Source2Image, podržava automatsku implementaciju na podove i podržava praćenje i praćenje. OpenShift se može pokrenuti on-prem, u oblaku ili on-prem i u oblaku u isto vrijeme.

Ključne prednosti

  • Ugrađena sigurnost - Upravljanje bezbednošću K8s može zahtevati napredni stepen. Svaki detalj mora biti pažljivo osmišljen i uzet u obzir! Sigurnosni mehanizmi ugrađeni prema zadanim postavkama sa OpenShift-om skidaju teret sa programera i pružaju sigurniju platformu za aplikacije.
  • Sve-u-jednom rješenje - Za razliku od osnovnog K8s, koji ne uključuje alate za balansiranje opterećenja po defaultu, OpenShift ima sve. Mogu ga koristiti za kreiranje i hostovanje kontejnera, pokretanje CI/CD alata, upravljanje vanjskim procesima, upravljanje ključevima i još mnogo toga. Iako je grafičko korisničko sučelje još uvijek daleko od savršenog, pristup baziran na API-ju znači da se sve može opisati u skripti. Za razliku od drugih GUI-ja za K8s, OpenShift čini učenje osnova Kubernetesa mnogo lakšim. Ne morate čak ni da steknete diplomu!

Takmičari

Učestvovao u bici, ali nije pobedio

Docker roj — Docker Swarm je pokušao da pojednostavi K8 tako što se riješio mnogih stvari. Odličan je za male aplikacije, ali za poslovne aplikacije jednostavno ne radi. Osim toga, rješenja poput AWS ECS imaju sličan pristup, ali olakšavaju rad s drugim uslugama s kojima također mogu komunicirati (Lambda, IAM, itd.).

Alat za praćenje #1

Pobjednik: New Relic

DevOps alati koje bi svi trebali naučiti u 2020
Rana izdanja New Relic-a su radila jednu stvar dobro - APM (Application Performance Monitoring) praćenje. To je sada potpuno opremljen alat za praćenje koji vam omogućava da nadgledate performanse servera, kontejnera, baze podataka, nadgledanje iskustva krajnjeg korisnika i, naravno, praćenje performansi aplikacija.

Ključne prednosti

  • Lakoća upotrebe - Kada sam radio kao sistemski inženjer, koristio sam mnoge alate za praćenje, ali nikada nisam naišao na jedan tako jednostavan i lak za korišćenje kao New Relic. To je SaaS, tako da ne morate sami da ga instalirate.
  • Preglednost od kraja do kraja - Drugi alati pokušavaju pratiti jedan specifičan element vaše aplikacije. Na primjer, metrika korištenja procesora ili mrežnog prometa, ali sve to mora biti sveobuhvatno praćeno da bi aplikacija ispravno radila. New Relic vam daje mogućnost da spojite sve svoje podatke kako biste dobili sveobuhvatan uvid u ono što se dešava.

Takmičari

Učestvovao u bici, ali nije pobedio

Zabbix — Moj prvi i omiljeni sistem za praćenje, ali je ostao u prošlosti zbog nedostatka razvoja u cloud tehnologijama i na polju praćenja performansi APM aplikacija. Zabbix i dalje dobro obavlja tradicionalni nadzor serverske infrastrukture, ali to je sve.

DataDog — Previše fokusiran na proces upravljanja proizvodnim okruženjem aplikacije, a ne na sam kod. Sa DevOps timovima koji uključuju programere, ne moramo se oslanjati na alate teške za korištenje kako bismo pružili vrhunsku podršku.

Alat za evidentiranje br.1

Pobjednik: Splunk

DevOps alati koje bi svi trebali naučiti u 2020
Teško je takmičiti se sa Splunkom! Dugo vremena ostaje lider u sječi drva, nastavljajući to raditi bolje od bilo koga drugog. Uz on-prem i SaaS ponude, Splunk možete koristiti bilo gdje. Velika mana je njegova cijena: Splunk je i dalje prokleto skup!

Ključne prednosti

  • Prodornost – preduzeća vole Splunk, a kompanije imaju novca da ga kupe.
  • Iako startupi pokušavaju nadoknaditi troškove, mnoge funkcije se mogu riješiti zahvaljujući analogima otvorenog koda.
  • Održavanje - Jednostavno rečeno, Splunk radi i radi dobro. Dolazi s mnogim zadanim postavkama i funkcijama spremnim za korištenje. Nema potrebe da gubite vrijeme čitajući dokumentaciju i pokušavajući natjerati Splunk da radi ili dešifrirati bilo što.

Takmičari

Učestvovao u bici, ali nije pobedio

ELK Stack (ElasticSearch, LogStash i Kibana) “Čini se da su ovi alati omiljeni jer ne morate čak ni prodati svoju jetru da biste ih koristili.” Međutim, kako skup dnevnika raste i broj aplikacija na brodu raste, posao postaje sve teži. U poređenju sa Splunk-om, sa ELK Stack-om sam proveo mnogo više vremena postavljajući alate prije kreiranja bilo koje kontrolne ploče nego ikada prije.

Alati za saradnju

DevOps alati koje bi svi trebali naučiti u 2020
DevOps se prvenstveno odnosi na promjenu kulture unutar organizacije. Kupovina bilo kojeg alata neće promijeniti trenutnu praksu preko noći, ali svakako može potaknuti suradnju i nove načine interakcije.

Potkategorije alata za saradnju:

  • praćenje zadataka
  • ChatOps
  • dokumentaciju.

#1 Alat za praćenje problema

Pobjednik: Jira

DevOps alati koje bi svi trebali naučiti u 2020
Jira zadržava svoju lidersku poziciju, iako je konkurencija u ovoj oblasti sve veća. Jira-ina nevjerovatna fleksibilnost omogućava timovima za razvoj i održavanje da upravljaju projektnim radom i zadacima sprinta. Ugrađeni standardi koji koriste Agile terminologiju olakšavaju prelazak sa tradicionalnih načina rada na efikasnije procese.

Ključne prednosti

  • Popularnost - Kao i mnogi drugi alati, Jira se koristi gotovo svuda. Mali timovi koriste jeftiniju, pristupačniju verziju i dobijaju sve što im je potrebno, dok veće kompanije mogu sebi priuštiti skuplju licencu.
  • Integracije - Jira je pionir u svojoj oblasti. Ova činjenica i brzi razvoj proizvoda dovode do toga da druge kompanije biraju Jira da kreiraju sopstvene integracije, čime se povećava vrednost alata. Možemo integrirati Jira sa svim alatima navedenim u ovom članku iz kutije uz malu konfiguraciju.

Takmičari

Učestvovao u bici, ali nije pobedio

Trello — Trello je brzo stekao popularnost zahvaljujući besplatnom Kanban alatu. Međutim, kada se procesi povećaju i kada sa desetina zadataka pređete na hiljade, Trello postaje težak za navigaciju, pretraživanje i izvještavanje o njima.

Pivotal Tracker — Bio sam veliki obožavatelj ovog alata kada sam radio za startup. Međutim, Pivotal Tracker je više fokusiran na upravljanje proizvodima nego na tehničke zadatke. Iako je upravljanje proizvodima u Jira malo složenije, i dalje se može implementirati bez upotrebe dodatnog alata.

ChatOps alat #1

Pobjednik: MatterMost

DevOps alati koje bi svi trebali naučiti u 2020
Objašnjenje: Možda najveće iznenađenje za vas u mom izboru, a to je dobra vijest! MatterMost je stekao popularnost uzimajući najbolje od prethodnih alata, ali ih stavljajući na prem. Ovo je veoma važno za kompanije: MatterMost vam omogućava da kontrolišete svoje podatke i takođe vam pomaže da ih integrišete sa alatima koji rade lokalno. Više ne moramo izlaziti izvan firewall-a da bismo provjerili radne razgovore.

Ključne prednosti

  • Otvoreni izvor – verzija MatterMost otvorenog koda radi odlično i za srednje i za velike timove. Za razliku od Slackovog besplatnog plana, koji briše vašu historiju poruka, pokretanje vlastitog servera znači da čuvate sve svoje podatke.
  • Integracije - Pošto je API skoro 100% zasnovan na Slack API-ju, skoro sve Slack integracije se mogu koristiti direktno sa MatterMost-om.

Takmičari

Učestvovao u bici, ali nije pobedio

zatišje — Slack je kul, ali ovi momci su toliko porasli da su počeli da traže profit. Približava se faza povrata poslovanja, što im oduzima glavnu vrijednost: Slack je pružao usluge besplatno; Najvažniji nedostatak besplatne verzije je brisanje istorije razgovora.

Microsoft timovi — Pokušajte integrirati Microsoftov proizvod sa nečim što nije u vlasništvu Microsofta... Sretno! To je sve što imam da kažem o ovom alatu!

Alat za dokumentaciju #1

Pobjednik: Sotočje

DevOps alati koje bi svi trebali naučiti u 2020
Izrada i održavanje kvalitetne tehničke dokumentacije je složen proces, bez obzira koji alat koristite. Iako su mnogi alati za SaaS dokumentaciju nedavno došli na tržište, bilo bi mi teško prepustiti pohranu tehničke dokumentacije o kritičnim aplikacijama trećoj strani. Poželjnije je pohranjivati ​​podatke i dokumente na prem, a ovo je način na koji Confluence to rješava.

Ključne prednosti

  • Jednostavan za rukovanje - Većina samostalnih alata može biti malo složena za postavljanje i rad i zahtijevaju određeno znanje za održavanje. Confluence Server radi odlično za 10 ili 10,000 korisnika.
  • Dodaci - Svaka čast Confluence-u za prekrasnu navigaciju koja je laka za korištenje i mogućnost dodavanja dodatka za gotovo sve otključava potencijal sličan Wiki-u.

Takmičari

Učestvovao u bici, ali nije pobedio

Pročitajte dokumente — Cool za open source, ali nemojte ni razmišljati o pohranjivanju kritičnog znanja ovdje.

Markdown - Odličan za dokumentiranje koda, ali je teško objaviti arhitekturu, procese ili druge vrste dokumentacije zbog MarkDown-ovog specifičnog formatiranja.

Jekyll — Kada dokumentujem tehničko znanje, ne želim da kreiram novu statičnu lokaciju koja će se postavljati svaki put kada dođe do promene. Jednostavan sistem kontrole verzija kompanije Confluence uvelike pojednostavljuje internu dokumentaciju.

Hajde da sumiramo rezultate

Na tržištu postoje doslovno stotine DevOps alata, pa je teško znati koje od njih koristiti i kada ih treba implementirati. Slijedite ovaj jednostavan vodič za odabir DevOps alata za kompletan CI/CD kanal.

Obavezno odaberite alate iz svih pet kategorija:

  • alati za razvoj i izgradnju
  • alati za automatizaciju testiranja
  • alati za implementaciju
  • Runtime alati
  • alati za saradnju.

Glavna preporuka: Automatizirajte sve!

Hvala Zach Shapiro!

izvor: www.habr.com

Dodajte komentar