DevOps-verktøy alle bør lære i 2020

Begynn å bruke de beste DevOps-verktøyene i dag!

DevOps-verktøy alle bør lære i 2020
DevOps-revolusjonen har endelig tatt over verden og DevOps-verktøyene har blitt utrolig populære. I følge tjenesten Google Trends, øker antallet forespørsler om «DevOps-verktøy» stadig, og denne trenden fortsetter.

DevOps-metodikk dekker hele livssyklusen for programvareutvikling, slik at fagfolk kan velge mellom en rekke verktøy. Men, som du vet, kan ingen verktøy bli et universelt verktøy for alle. Noen løsninger tilbyr imidlertid et så bredt spekter av funksjoner at de kan håndtere nesten alle oppgaver.

La oss dele DevOps-verktøyene inn i kategorier og sammenligne dem med analoger:

  • utvikle og bygge verktøy
  • test automatiseringsverktøy
  • verktøy for å organisere distribusjon
  • Kjøretidsverktøy
  • samarbeidsverktøy.

Vellykket og gjennomtenkt implementering DevOps-utøver inkluderer instrumenter fra alle de fem gruppene som er oppført ovenfor. Analyser gjeldende sett med verktøy i prosjektet ditt for ikke å gå glipp av et viktig element i CI/CD-pipelinen.

Utvikling og byggeverktøy

DevOps-verktøy alle bør lære i 2020
Dette er grunnlaget for CI/CD-rørledningsstakken. Det hele begynner akkurat her! De beste verktøyene i denne kategorien kan administrere flere hendelsesstrømmer og enkelt integreres med andre produkter.

På dette stadiet av utviklingens livssyklus er det tre grupper av verktøy:

  • versjonskontrollsystem (SCM)
  • kontinuerlig integrasjon (CI)
  • Dataledelse

GIT har hatt en positiv merittliste i 2020, så SCM-verktøyet ditt bør ha sømløs støtte for GIT. For CI er en forutsetning evnen til å utføre og kjøre bygg i et isolert containermiljø. Når det gjelder databehandling, krever det evnen til å gjøre endringer i databaseskjemaet og vedlikeholde databasen i henhold til applikasjonsversjonen.

SCM + CI-verktøy #1

Vinner: GitLab og GitLab-CI

DevOps-verktøy alle bør lære i 2020
Det beste verktøyet i 2020 DevOps-syklusen er uten tvil GitLab, og det vil definitivt fortsette å lede innovasjon i nær fremtid.

Hovedfunksjonen til GitLab er å gi komfortabel administrasjon av et Git-depot. Nettgrensesnittet er intuitivt og enkelt å bruke. GitLab gir alt du trenger i en gratisversjon og kommer som SaaS og on-prem (ved å bruke dine egne ressurser til å være vert for programvare).

Ingen andre SCM-verktøy har brukt kontinuerlig integrasjon (CI) direkte på depotet ditt, og GitLab har gjort dette i lang tid. For å bruke GitLab-CI må du legge til en .gitlab-ci.yml-fil i kildekoden din, og eventuelle endringer i prosjektet vil utløse handlinger basert på nøyaktig det du spesifiserte. GitLab og GitLab-CI er fortjent anerkjent som ledere innen kontinuerlig integrasjon (CI-as-code).

Viktige fordeler

  • Pålitelighet - Produktet har vært på markedet siden 2013; stabil; godt støttet.
  • Åpen kildekode – Gratisversjonen av GitLab begrenser ikke kjernefunksjonaliteten som utviklingsteam trenger. Betalte tjenestepakker gir flere nyttige funksjoner for bedrifter av varierende størrelse og behov.
  • Engrained CI - Ingen andre verktøy på markedet har bygget kontinuerlig integrasjon direkte inn i SCM som GitLab-CI. Bruk av Docker sikrer problemfrie isolerte bygg, og innebygde rapporter gjør feilsøking enkelt. Vi krever ikke kompleks integrasjon og administrasjon av flere verktøy samtidig.
  • Ubegrensede integrasjoner - GitLab gir enkel integrasjon av alle DevOps-verktøyene du trenger. Dette sikrer at utviklings- og vedlikeholdsteam har én enkelt informasjonskilde om applikasjonen deres i alle miljøer.

konkurrenter

Deltok i kampen, men vant ikke

Det er andre populære verktøy i denne kategorien, men de er ikke like gode som GitLab. Og det er derfor:

GitHub — Dette er et utmerket SaaS versjonskontrollsystem for små bedrifter og tidlige stadier av utvikling. For store selskaper hvor det er viktig å beholde IP-adresser på eget nettverk, var den eneste løsningen fra GitHub den virtuelle .OVA-maskinen uten støtte for systemer med høy tilgjengelighet. Dette gjør vedlikehold på stedet vanskelig, dessuten er .OVA kun egnet for mellomstore bedrifter, ellers vil serveren rett og slett krasje under større belastning. Mangelen på GitHub Actions (inntil nylig og ennå ikke i en lokal versjon) eller CI-as-code betyr at du må velge et eget CI-verktøy og deretter administrere den integrasjonen. Til slutt er GitHub mye dyrere enn begge versjonene av GitLab.

Jenkins — Selv om Jenkins regnes som standarden blant kontinuerlige integreringsverktøy som standard, har den alltid manglet versjonskontroll. Det viser seg at du bruker Jenkins pluss et slags SCM-verktøy. Det er for vanskelig når GitLab kan gjøre begge deler. Middelmådig UX-design er ikke egnet for en moderne nettapplikasjon og etterlater mye å være ønsket.

BitBucket/Bambus — Jeg må anerkjenne ham som en automatisk taper: hvorfor to verktøy når GitLab gjør alt helt uavhengig. BitBucket Cloud støtter GitLab-CI / GitHub Action-funksjonalitet, men ingen bedrift større enn en oppstart kan enkelt implementere den. Den lokale BitBucket-serveren støtter ikke engang BitBucket-rørledninger!

#1 Databehandlingsverktøy

Vinner: FlywayDB

DevOps-verktøy alle bør lære i 2020
Ved utvikling av webapplikasjoner er databaseautomatisering vanligvis ikke gitt betydning. Ideen om å distribuere databaseskjemaendringer for nye versjoner av applikasjonen kommer sent. Skjemaendringer resulterer ofte i at kolonner eller tabeller legges til og får nytt navn. Hvis applikasjonsversjonen ikke samsvarer med skjemaversjonen, kan applikasjonen krasje. I tillegg kan det være utfordrende å administrere databaseendringer ved oppdatering av en applikasjon siden det er to forskjellige systemer. FlyWayDB løser alle disse problemene.

Viktige fordeler

  • Databaseversjonering - Flyway lar deg lage databaseversjoner, spore databasemigreringer og enkelt overføre eller tilbakestille skjemaendringer uten et ekstra verktøy for dette.
  • Binær eller Embedded - Vi kan velge å kjøre Flyway som en del av applikasjonen eller som en binær kjørbar. Flyway sjekker versjonskompatibilitet ved oppstart og starter de riktige migreringene, og holder database- og applikasjonsversjoner synkronisert. Ved å kjøre ad-hoc-kommandoen cmd line gir vi fleksibilitet til eksisterende databaser uten å gjenoppbygge hele applikasjonen.

konkurrenter

Deltok i kampen, men vant ikke

Det er ikke mange verktøy på dette området. La oss se på noen av dem:

LiquiBase — Liquibase ligner FlywayDB. Jeg vil gjerne sette den opp på toppen av Flyway hvis jeg hadde noen på laget mitt med mer erfaring med Liquibase.

Flocker - Kan bare fungere for containeriserte applikasjoner. For å kunne kjøre containeriserte databaser, må alt planlegges perfekt. Jeg anbefaler å bruke RDS (Relational Database Service) for databaser og anbefaler ikke å lagre viktig informasjon i en container.

Test automatiseringsverktøy

DevOps-verktøy alle bør lære i 2020
La oss starte diskusjonen om testautomatiseringsverktøy ved å klassifisere dem basert på testpyramiden.

Testpyramiden (tester) har 4 nivåer:

  • Unit Tests - Dette er grunnlaget for hele den automatiserte testprosessen. Det bør være flere enhetstester sammenlignet med andre typer tester. Utviklere skriver og kjører enhetstester for å sikre at en del av en applikasjon (kjent som en "enhet") samsvarer med designet og oppfører seg som forventet.
  • Komponenttester − Hovedformålet med komponenttesting er å verifisere input/output-atferden til testobjektet. Vi må sørge for at funksjonaliteten til testobjektet implementeres riktig i henhold til spesifikasjonen.
  • Integrasjonstester - En type testing der individuelle programvaremoduler kombineres og testes som en gruppe.
  • End-to-end-tester - Dette trinnet er selvforklarende. Vi overvåker hele applikasjonen og sørger for at den fungerer som planlagt.

Siden enhetstester og komponenttesting kun utføres av utviklere og ofte er programmeringsspråkspesifikke, vil vi ikke evaluere disse verktøyene for DevOps-domenet.

#1 Integrasjonstestverktøy

Vinner: Agurk

DevOps-verktøy alle bør lære i 2020
Cucumber kombinerer spesifikasjoner og testdokumentasjon til et enkelt levende dokument. Spesifikasjonene er alltid oppdatert da de testes automatisk av Cucumber. Hvis du ønsker å bygge et automatisert testrammeverk fra bunnen av og modellere brukeratferd i en nettapplikasjon, så er Selenium WebDriver med Java og Cucumber BDD en fin måte å lære og implementere Cucumber i et prosjekt.

Viktige fordeler

  • BDD-tilnærming (Behavior Driven Development - "utvikling gjennom atferd" i motsetning til "test-driven development"-tilnærmingen) - Cucumber er designet for BDD-testing, den ble opprinnelig laget for nettopp denne oppgaven.
  • Levende dokumentasjon - Dokumentasjon er alltid en smerte! Siden testene dine er skrevet som kode, tester Cucumber den automatisk genererte dokumentasjonen for å sikre at testene og dokumentasjonen er synkronisert.
  • Support – Vi kan velge mellom mange verktøy, men Cucumber har de nødvendige økonomiske ressursene og et godt organisert støttesystem for å hjelpe brukere i enhver vanskelig situasjon.

konkurrenter

Deltok i kampen, men vant ikke

Blant andre rammeverk og teknologispesifikke verktøy er det kun Agurk som kan betraktes som en universalløsning.

End-to-end-testverktøy

Når du utfører ende-til-ende-testing, må du fokusere på to hovedpunkter:

  • funksjonstesting
  • Stresstesting.

I funksjonstesting sjekker vi om alt vi ønsker faktisk skjer. For eksempel, når jeg klikker på visse elementer i min SPA (ensidig søknad), fyll ut skjemaene og velger "Send", vises dataene i databasen og meldingen "Suksess!" vises på skjermen.

Det er også viktig for oss å sjekke at et visst antall brukere som kjører samme scenario kan behandles uten feil.

Fraværet av disse to typene testing vil være en betydelig ulempe i CI/CD-pipeline.

#1 ende-til-ende testverktøy. Funksjonstesting

Vinner: SoapUI Pro

DevOps-verktøy alle bør lære i 2020
SoapUI har vært i API-testområdet i lang tid siden SOAP-baserte webtjenester var standarden. Selv om vi ikke lenger oppretter nye SOAP-tjenester og navnet på verktøyet ikke har endret seg, betyr det ikke at det ikke har utviklet seg. SoapUI gir et utmerket rammeverk for å lage automatiserte funksjonstester for backend. Tester kan enkelt kombineres med kontinuerlige integrasjonsverktøy og brukes som en del av en CI/CD-pipeline.

Viktige fordeler

  • Detaljert dokumentasjon - SoapUI har vært på markedet ganske lenge, så det er mange nettressurser som kan hjelpe deg å forstå hvordan du setter opp tester.
  • Brukervennlighet – Selv om verktøyet støtter flere protokoller for testing av APIer, gjør SoapUIs tilstedeværelse av et felles grensesnitt for flere tjenester det enklere å skrive tester.

konkurrenter

Deltok i kampen, men vant ikke

Selen er et annet flott instrument i denne gruppen. Jeg anbefaler å bruke den hvis du bygger og kjører en Java-basert applikasjon. Men hvis du bygger en komplett nettapplikasjon med flere teknologier, kan det bli uhåndterlig for ikke-Java-komponenter.

#1 ende-til-ende testverktøy. Stresstesting

Vinner: Loadrunner

DevOps-verktøy alle bør lære i 2020
Forklaring: Når det er på tide å lasteteste hvert element i applikasjonen din, er det bare LoadRunner som kan fullføre oppgaven. Ja, det er dyrt og vanskelig i begynnelsen, men LoadRunner er det eneste verktøyet som gir meg, som teknisk arkitekt, full tillit til at den nye koden vil fungere under ekstreme belastningsforhold. Dessuten tror jeg det er på tide at LoadRunner blir overtatt av utviklingsteam i stedet for testteam.

Viktige fordeler

  • Omfattende dokumentasjon - LoadRunner har vært på markedet en stund, så det er mange nettressurser som hjelper deg å forstå hvordan du setter opp belastningstester.
  • Protokollstøtte - Load Runner støtter alt fra ODBC til AJAX, HTTPS og enhver annen ikke-triviell protokoll applikasjonen din kan bruke. Vi prøver å ikke bruke flere verktøy for lasttesting, da dette bare kompliserer prosessen.

konkurrenter

Deltok i kampen, men vant ikke

Igjen, det er ikke mange universelle verktøy på dette området, så den beste løsningen er en som vil fungere i ethvert miljø med hvilken som helst teknologi.

Implementeringsverktøy

DevOps-verktøy alle bør lære i 2020
Utrullingsverktøy er sannsynligvis det minst forståtte aspektet ved utvikling. For et driftsteam uten dyp forståelse av koden og funksjonaliteten til applikasjonen, er det vanskelig å bruke slike verktøy. For utviklere er distribusjonsadministrasjon et nytt ansvar, så de har ennå ikke nok erfaring med å jobbe med slike verktøy.

Først av alt, la oss dele alle distribusjonsverktøy inn i tre underkategorier:

  • artefakthåndtering
  • konfigurasjonsstyring
  • utplassere.

#1 Artefaktstyringsverktøy

Vinner: Nexus

DevOps-verktøy alle bør lære i 2020
Nexus-artefaktlageret støtter nesten alle viktige teknologier, fra Java til NPM til Docker. Vi kan bruke dette verktøyet til å lagre alle gjenstandene vi bruker. Proxying av eksterne pakkeadministratorer øker også betydelig hastighet på CI-byggingsprosessen, noe som gjør pakker mer tilgjengelige for bygging. En annen fordel er muligheten til å få en fullstendig oversikt over alle pakker som brukes i flere programvareprosjekter, og blokkerer usikre åpen kildekode-pakker (de kan fungere som en angrepsvektor).

Viktige fordeler

  • Teknisk støtte - Pålitelig produkt; godt støttet.
  • Åpen kildekode - Gratisversjonen begrenser ikke kjernefunksjonaliteten som utviklingsteam trenger.

#1 Configuration Management Tool

Vinner: Ansible

Ansible er en leder av én enkel grunn: statsløs. Tidligere har lignende verktøy fokusert på administrasjon av konfigurasjonstilstand. Når det startes, vil et slikt verktøy, etter å ha mottatt ønsket konfigurasjon, forsøke å korrigere gjeldende programkonfigurasjon. Og med den nye tilnærmingen er kun statsløse komponenter til stede. Nye versjoner av kode er artefakter som er distribuert for å erstatte eksisterende. Dette kan betraktes som et slags flyktig, kortsiktig miljø.

Viktige fordeler

  • Stateless - Playbook startes fra distribusjonsmaskinen og kjøres på målserverne. Jeg trenger ikke å bekymre meg for tilstanden til det eksterne objektet ved å bruke et verktøy som Packer for å lage distribuerbare objekter.
  • Åpen kildekode – I likhet med CentOS, støttes Ansible også av RedHat. Det bidrar til å opprettholde fellesskapet og gir høykvalitets, brukervennlige moduler.
  • Testing med Molecule (et Ansible-rammeverk) - Siden konfigurasjonsadministrasjon er kode, som alt annet, er testing avgjørende. Molecules Ansible-rammeverk for rolletesting fungerer feilfritt, og sikrer at konfigurasjonen er av samme kvalitet og følger samme CI/CD-pipeline som applikasjonskoden.
  • YAML - Sammenlignet med andre verktøy er YAML lettere å forstå. Siden konfigurasjonsadministrasjon vanligvis er en ny utfordring for de som implementerer DevOps-praksis, er enkelhet trumfkortet.

konkurrenter

Deltok i kampen, men vant ikke

OpsCode Chef — Jeg startet min DevOps-karriere som kokebokutvikler. Ruby og Chef er selvfølgelig veldig kjære for meg, men de løser rett og slett ikke problemene med moderne statsløse, skybaserte applikasjoner. OpsCode Chef er et flott verktøy for mer tradisjonelle applikasjoner, men i denne artikkelen fokuserer vi på fremtiden.

Puppet — Puppet har aldri hatt mange fans, spesielt i sammenligning med Chef og Ansible. Det er flott for klargjøring og arbeid med maskinvare, men det mangler moderne konfigurasjonsadministrasjonsstøtte for en nettapplikasjon.

Implementeringsverktøy #1

Vinner: terra

DevOps-verktøy alle bør lære i 2020
Terraform løser problemet med å beskrive infrastrukturen din som kode, fra nettverkskomponenter til komplette serverbilder. Dette produktet har kommet langt siden det første lanseringen, med så mange plugins opprettet og et så sterkt fellesskap bygget at du vil være sikker på å få hjelp i ethvert distribusjonsscenario. Evnen til å støtte alle typer miljøer (lokalt, i skyen eller andre steder) er uten sidestykke. Endelig gir den nyeste versjonen mye av de samme logiske funksjonene og klasser i HCL som alle andre tradisjonelle programmeringsspråk, noe som gjør Terraform enkelt for utviklere å forstå raskt og enkelt.

Viktige fordeler

  • Miljøagnostisk - Terraform bruker funksjoner som fungerer som et grensesnitt mellom din Terraform-kode, alle API-er og intern logikk for å kommunisere med infrastrukturleverandøren. Dette betyr at jeg vil mestre bare ett verktøy og deretter kan jobbe hvor som helst.
  • Åpen kildekode - Det er vanskelig å slå gratisverktøy! Samfunnsstøtte på høyeste nivå.

konkurrenter

Deltok i kampen, men vant ikke

AWS skyformasjon — Selv om du bare jobber i AWS-skymiljøet, kan den neste jobben din bruke et annet verktøy. Å dedikere all din tid og energi til bare én plattform er en kortsiktig beslutning. I tillegg er mange nye AWS-tjenester ofte tilgjengelige som Terraform-moduler før de er tilgjengelige i CloudFormation.

Kjøretidsverktøy

DevOps-verktøy alle bør lære i 2020

Det endelige målet for ethvert utviklingsprosjekt er å sette applikasjonen i produksjon. I DevOps-verdenen ønsker vi å være fullstendig klar over alle mulige problemer med miljøet vårt, og vi ønsker også å minimere manuell intervensjon. Å velge riktig sett med kjøretidsverktøy er avgjørende for å oppnå nirvana for applikasjonsutvikling.

Underkategorier av kjøretidsverktøy:

  • X-as-a-service (XaaS)
  • orkestrering
  • overvåkning
  • hogst.

X-verktøy-som-en-tjeneste #1

Vinner: Amazon Web Services

DevOps-verktøy alle bør lære i 2020
Amazon har alltid vært ledende innen skyteknologi, men det stopper ikke der: mangfoldet av nye tjenester for utviklere er øyeåpnende. Ta med hvilken som helst teknologi og mal til AWS, så vil den bygges og kjøres. Kostnaden for verktøyet er ganske rimelig: sammenlign det med å sette sammen, administrere og vedlikeholde utstyr i ditt eget datasenter. Gratisversjonen lar deg eksperimentere og ta den riktige avgjørelsen før du bruker penger.

Viktige fordeler

  • Prevalens - Hvis du har erfaring med å bygge applikasjoner i AWS, kan du jobbe hvor som helst. Bedrifter elsker AWS, og startups setter også pris på den lave kostnaden.
  • Gratisversjonen er en virkelig viktig faktor som skiller AWS fra sine jevnaldrende. La meg prøve tjenesten og se hvordan den fungerer før jeg tar en kjøpsbeslutning, jeg vil ikke bruke tusenvis av dollar på noe unødvendig. Gratisversjonen er alltid nok for meg til å teste ethvert konsept.

konkurrenter

Deltok i kampen, men vant ikke

Azure "Azure har kommet langt siden den første utgivelsen, og det er prisverdig. Ønsket om å være annerledes har imidlertid ført til rare navn på tjenester, noe som ofte kompliserer arbeidet. Hva betyr "blob storage"? Og selv om .NET-kode gir bedre resultater i Microsofts økosystem, er det lite sannsynlig at du bare vil bruke .NET for hver komponent i programmet.

Heroku — Jeg ville aldri drevet noe annet enn et personlig prosjekt på Heroku på grunn av det lave nivået av pålitelighet og åpenhet, så bedrifter bør ikke bruke det som en plattform. Heroku er flott for å demonstrere noe på en blogg, men for praktisk bruk - "Nei, takk!"

#1 Orkestreringsverktøy

Vinner: openshift

DevOps-verktøy alle bør lære i 2020
Du bruker sannsynligvis Docker eller andre beholdere i applikasjonsstakken. Serverløse applikasjoner er flotte, men de passer kanskje ikke til alle arkitekturer. Å kjøre containere uten en orkestreringsplattform vil rett og slett ikke fungere. Kubernetes Core (K8s) er uovertruffen når det gjelder sikkerhet og verktøy. OpenShift er den eneste Kubernetes-baserte plattformen som kan samle inn Source2Image, støtter automatisert distribusjon til pods og støtter sporing og overvåking. OpenShift kan kjøres on-prem, i skyen, eller on-prem og i skyen samtidig.

Viktige fordeler

  • Innebygd sikkerhet - Administrering av K8s sikkerhet kan kreve en avansert grad. Hver detalj må være nøye gjennomtenkt og tatt i betraktning! Sikkerhetsmekanismene innebygd som standard med OpenShift tar byrden fra utviklere og gir en sikrere plattform for applikasjoner.
  • Alt-i-ett-løsning - I motsetning til de grunnleggende K8-ene, som ikke inkluderer lastbalanseringsverktøy som standard, har OpenShift alt. Jeg kan bruke den til å lage og være vert for containere, kjøre CI/CD-verktøy, administrere eksterne prosesser, administrere nøkler og mye mer. Selv om det grafiske brukergrensesnittet fortsatt er langt fra perfekt, gjør den API-baserte tilnærmingen at alt kan beskrives i et script. I motsetning til andre GUI-er for K8-er, gjør OpenShift det mye enklere å lære det grunnleggende om Kubernetes. Du trenger ikke engang å ta en grad!

konkurrenter

Deltok i kampen, men vant ikke

Docker sverm — Docker Swarm prøvde å forenkle K8s ved å bli kvitt mange ting. Det er flott for små applikasjoner, men for bedriftsapplikasjoner fungerer det bare ikke. I tillegg har løsninger som AWS ECS en lignende tilnærming, men gjør det lettere å jobbe med andre tjenester som jeg også kan samhandle med (Lambda, IAM, etc.).

Overvåkingsverktøy #1

Vinner: Ny relikvie

DevOps-verktøy alle bør lære i 2020
Tidlige utgivelser av New Relic gjorde én ting bra - APM (Application Performance Monitoring) overvåking. Det er nå et fullverdig overvåkingsverktøy som lar deg overvåke server, container, databaseytelse, overvåking av sluttbrukeropplevelse og selvfølgelig overvåking av applikasjonsytelse.

Viktige fordeler

  • Brukervennlighet - Da jeg jobbet som systemingeniør brukte jeg mange overvåkingsverktøy, men jeg har aldri møtt et så enkelt og lett å bruke som New Relic. Det er SaaS, så du trenger ikke å installere det selv.
  • End-to-end-synlighet – Andre verktøy prøver å overvåke ett spesifikt element i applikasjonen din. For eksempel en beregning av prosessorbruk eller nettverkstrafikk, men alt dette må overvåkes grundig for at applikasjonen skal fungere riktig. New Relic gir deg muligheten til å samle alle dataene dine for å få et omfattende bilde av hva som skjer.

konkurrenter

Deltok i kampen, men vant ikke

Zabbix — Mitt første og favoritt overvåkingssystem, men det har holdt seg i fortiden på grunn av mangelen på utvikling innen skyteknologier og innen APM-applikasjonsytelsesovervåking. Zabbix gjør fortsatt tradisjonell overvåking av serverinfrastruktur bra, men det er omtrent det.

DataDog — For mye fokusert på prosessen med å administrere produksjonsmiljøet til applikasjonen, og ikke på selve koden. Med DevOps-team som involverer utviklere, trenger vi ikke stole på vanskelige verktøy for å gi førsteklasses støtte.

Loggverktøy #1

Vinner: Splunk

DevOps-verktøy alle bør lære i 2020
Det er vanskelig å konkurrere med Splunk! I lang tid er han ledende innen logging, og fortsetter å gjøre det bedre enn noen andre. Med on-prem og SaaS-tilbud kan du bruke Splunk hvor som helst. Den store ulempen er prisen: Splunk er fortsatt jævla dyrt!

Viktige fordeler

  • Gjennomgående – Bedrifter elsker Splunk, og selskaper har penger til å kjøpe det.
  • Selv om startups prøver å få inn kostnadene, kan mange funksjoner løses takket være åpen kildekode-analoger.
  • Vedlikehold - Enkelt sagt, Splunk fungerer og gjør det bra. Den kommer med mange standardinnstillinger og funksjoner klare til bruk. Du trenger ikke å kaste bort tid på å lese dokumentasjon og prøve å få Splunk til å fungere eller tyde noe.

konkurrenter

Deltok i kampen, men vant ikke

ELK Stack (ElasticSearch, LogStash og Kibana) "Disse verktøyene ser ut til å være favorittene fordi du ikke engang trenger å selge leveren din for å bruke dem." Men etter hvert som settet med logger vokser og antallet søknader om bord øker, blir arbeidet vanskeligere og vanskeligere. Sammenlignet med Splunk, med ELK Stack brukte jeg mye mer tid på å sette opp verktøyet før jeg opprettet noen dashbord enn jeg noen gang har hatt før.

Samarbeidsverktøy

DevOps-verktøy alle bør lære i 2020
DevOps handler først og fremst om å endre kulturen i en organisasjon. Å kjøpe et hvilket som helst verktøy vil ikke endre gjeldende praksis over natten, men det kan absolutt oppmuntre til samarbeid og nye måter å samhandle på.

Underkategorier av samarbeidsverktøy:

  • oppgavesporing
  • ChatOps
  • dokumentasjon.

#1 Problemsporingsverktøy

Vinner: Jira

DevOps-verktøy alle bør lære i 2020
Jira beholder sin lederposisjon, selv om konkurransen på dette området øker. Jiras utrolige fleksibilitet gjør at utviklings- og vedlikeholdsteam kan administrere prosjektarbeid og sprintoppgaver. Innebygde standarder som bruker Agile terminologi gjør det lettere å gå fra tradisjonelle måter å jobbe på til mer effektive prosesser.

Viktige fordeler

  • Popularitet - Som mange andre verktøy brukes Jira nesten overalt. Små team bruker den billigere, mer tilgjengelige versjonen og får alt de trenger, mens større selskaper har råd til en dyrere lisens.
  • Integrasjoner - Jira er en pioner innen sitt felt. Dette faktum og den raske utviklingen av produktet fører til at andre selskaper velger Jira for å lage sine egne integrasjoner, og dermed øke verdien av verktøyet. Vi kan integrere Jira med alle verktøyene som er oppført i denne artikkelen ut av esken med litt konfigurasjon.

konkurrenter

Deltok i kampen, men vant ikke

Trello — Trello ble raskt populær takket være det gratis Kanban-verktøyet. Men når prosesser skaleres og du går fra dusinvis av oppgaver til tusenvis, blir Trello vanskelig å navigere, søke i og rapportere om.

Pivotal Tracker — Jeg var en stor fan av dette verktøyet da jeg jobbet for en startup. Imidlertid er Pivotal Tracker mer fokusert på produktadministrasjon i stedet for tekniske oppgaver. Selv om produktstyring i Jira er litt mer kompleks, kan den fortsatt implementeres der uten å bruke et ekstra verktøy.

ChatOps-verktøy #1

Vinner: MatterMost

DevOps-verktøy alle bør lære i 2020
Forklaring: Kanskje den største overraskelsen for deg i utvalget mitt, og det er gode nyheter! MatterMost ble populær ved å ta det beste fra tidligere verktøy, men sette dem på plass. Dette er veldig viktig for bedrifter: MatterMost lar deg kontrollere dataene dine og hjelper deg også med å integrere dem med verktøy som kjører lokalt. Vi trenger ikke lenger å gå utenfor brannmuren for å sjekke arbeidschatter.

Viktige fordeler

  • Åpen kildekode – Åpen kildekode-versjonen av MatterMost fungerer utmerket for både mellomstore og store team. I motsetning til Slacks gratisplan, som sletter meldingsloggen din, betyr det å kjøre din egen server at du beholder alle dataene dine.
  • Integrasjoner - Siden API er nesten 100% basert på Slack API, kan nesten alle Slack integrasjoner brukes direkte med MatterMost.

konkurrenter

Deltok i kampen, men vant ikke

Slack — Slack er kult, men disse gutta har vokst så mye at de begynte å se etter profitt. Tilbakebetalingsfasen av virksomheten nærmer seg, noe som tar bort hovedverdien deres: Slack leverte tjenester gratis; Den viktigste ulempen med gratisversjonen er sletting av chathistorikk.

Microsoft-lag — Prøv å integrere et Microsoft-produkt med noe som ikke eies av Microsoft... Lykke til! Det er alt jeg har å si om dette verktøyet!

Dokumentasjonsverktøy #1

Vinner: Confluence

DevOps-verktøy alle bør lære i 2020
Å lage og vedlikeholde teknisk dokumentasjon av høy kvalitet er en kompleks prosess, uansett hvilket verktøy du bruker. Selv om mange SaaS-dokumentasjonsverktøy har kommet på markedet i det siste, vil jeg finne det vanskelig å sette ut lagring av teknisk dokumentasjon om virksomhetskritiske applikasjoner til en tredjepart. Det er å foretrekke å lagre data og dokumenter on-prem, og det er slik Confluence løser det.

Viktige fordeler

  • Enkel å betjene - De fleste frittstående verktøy kan være litt kompliserte å sette opp og betjene og kreve litt kunnskap for å vedlikeholde. Confluence Server fungerer utmerket direkte for 10 eller 10,000 XNUMX brukere.
  • Plugins - Kudos til Confluence for å ha vakker, brukervennlig navigasjon ut av esken, og muligheten til å legge til en plugin for nesten alt låser opp Wiki-lignende potensial.

konkurrenter

Deltok i kampen, men vant ikke

Les dokumentene — Kult for åpen kildekode, men tenk ikke engang på å lagre kritisk kunnskap her.

Markdown - Flott for å dokumentere kode, men vanskelig å legge inn arkitektur, prosesser eller andre typer dokumentasjon på grunn av MarkDowns spesifikke formatering.

Jekyll — Når jeg skal dokumentere teknisk kunnskap, ønsker jeg ikke å lage en ny statisk side som skal distribueres hver gang det skjer en endring. Confluences enkle versjonskontrollsystem forenkler intern dokumentasjon betydelig.

Oppsummere

Det er bokstavelig talt hundrevis av DevOps-verktøy på markedet, noe som gjør det vanskelig å vite hvilke du skal bruke og når de skal implementeres. Følg denne enkle veiledningen for å velge DevOps-verktøy for en komplett CI/CD-pipeline.

Pass på å velge verktøy fra alle fem kategoriene:

  • utvikle og bygge verktøy
  • test automatiseringsverktøy
  • distribusjonsverktøy
  • Kjøretidsverktøy
  • samarbeidsverktøy.

Hovedanbefaling: Automatiser alt!

Takk Zach Shapiro!

Kilde: www.habr.com

Legg til en kommentar