DevOps-tools die iedereen in 2020 zou moeten leren

Begin vandaag nog met het gebruik van de beste DevOps-tools!

DevOps-tools die iedereen in 2020 zou moeten leren
De DevOps-revolutie heeft eindelijk de wereld overgenomen en DevOps-tools zijn ongelooflijk populair geworden. Volgens de dienst Google Trendsgroeit het aantal aanvragen voor “DevOps-tools” voortdurend, en deze trend zet zich voort.

De DevOps-methodologie bestrijkt de gehele levenscyclus van softwareontwikkeling, zodat professionals kunnen kiezen uit een verscheidenheid aan tools. Maar zoals u weet, kan geen enkel hulpmiddel een universeel hulpmiddel voor iedereen worden. Sommige oplossingen bieden echter zo’n breed scala aan functies dat ze vrijwel elke taak aankunnen.

Laten we DevOps-tools in categorieën verdelen en vergelijken met analogen:

  • ontwikkel- en bouwtools
  • tools voor testautomatisering
  • hulpmiddelen voor het organiseren van de implementatie
  • Runtime-hulpmiddelen
  • Samenwerkingsinstrumenten.

Succesvolle en doordachte implementatie DevOps-professional omvat instrumenten uit alle vijf hierboven genoemde groepen. Analyseer de huidige set tools in uw project om geen belangrijk element van de CI/CD-pijplijn te missen.

Ontwikkelings- en bouwtools

DevOps-tools die iedereen in 2020 zou moeten leren
Dit is de basis van de CI/CD-pijplijnstack. Het begint allemaal hier! De beste tools in deze categorie kunnen meerdere evenementenstreams beheren en eenvoudig integreren met andere producten.

In deze fase van de ontwikkelingslevenscyclus zijn er drie groepen instrumenten:

  • versiebeheersysteem (SCM)
  • continue integratie (CI)
  • Gegevensbeheer

GIT heeft een positief trackrecord gehad in 2020, dus uw SCM-tool zou naadloze ondersteuning voor GIT moeten hebben. Voor CI is een vereiste de mogelijkheid om builds uit te voeren en uit te voeren in een geïsoleerde containeromgeving. Als het gaat om gegevensbeheer, vereist dit de mogelijkheid om wijzigingen aan te brengen in het databaseschema en de database te onderhouden volgens de applicatieversie.

SCM + CI-tool #1

winnaar: GitLab en GitLab-CI

DevOps-tools die iedereen in 2020 zou moeten leren
De beste tool van de DevOps-cyclus van 2020 is zonder twijfel GitLab, en het zal in de nabije toekomst zeker leidend blijven op het gebied van innovatie.

De belangrijkste functie van GitLab is het bieden van comfortabel beheer van een Git-repository. De webinterface is intuïtief en gemakkelijk te gebruiken. GitLab biedt alles wat je nodig hebt in een gratis versie en wordt geleverd als SaaS en on-prem (je gebruikt je eigen bronnen om software te hosten).

Geen enkele andere SCM-tool maakt gebruik van continue integratie (CI) rechtstreeks op uw repository, en GitLab doet dit al heel lang. Om GitLab-CI te gebruiken, moet je een .gitlab-ci.yml-bestand toevoegen aan je broncoderoot, en elke wijziging aan het project zal acties activeren op basis van precies wat je hebt gespecificeerd. GitLab en GitLab-CI worden terecht erkend als leiders op het gebied van continue integratie (CI-as-code).

Belangrijkste voordelen

  • Betrouwbaarheid - Het product is sinds 2013 op de markt; stal; goed ondersteund.
  • Open Source - De gratis versie van GitLab beperkt de kernfunctionaliteit die ontwikkelingsteams nodig hebben niet. Betaalde servicepakketten bieden extra handige functies voor bedrijven van verschillende groottes en behoeften.
  • Engrained CI - Geen enkele andere tool op de markt heeft een continue integratie rechtstreeks in SCM ingebouwd zoals GitLab-CI. Het gebruik van Docker zorgt voor probleemloze geïsoleerde builds, en ingebouwde rapporten maken het opsporen van fouten eenvoudig. We hebben geen complexe integratie en beheer van meerdere tools tegelijkertijd nodig.
  • Onbeperkte integraties - GitLab biedt eenvoudige integratie van alle DevOps-tools die u nodig heeft. Dit zorgt ervoor dat ontwikkelings- en onderhoudsteams in elke omgeving één enkele bron van informatie over hun applicatie hebben.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Er zijn andere populaire tools in deze categorie, maar deze zijn niet zo goed als GitLab. En dat is waarom:

GitHub — Dit is een uitstekend SaaS-versiecontrolesysteem voor kleine bedrijven en vroege ontwikkelingsstadia. Voor grote bedrijven waarvoor het belangrijk is om IP-adressen op het eigen netwerk te houden, was de enige oplossing van GitHub de virtuele .OVA-machine zonder ondersteuning voor systemen met hoge beschikbaarheid. Dit maakt onderhoud op locatie lastig; bovendien is .OVA alleen geschikt voor middelgrote bedrijven, anders crasht de server simpelweg bij zwaardere belasting. Het ontbreken van GitHub Actions (tot voor kort en nog niet in een on-prem versie) of CI-as-code betekent dat je een aparte CI-tool moet kiezen en die integratie vervolgens moet beheren. Ten slotte is GitHub veel duurder dan beide versies van GitLab.

Jenkins — Hoewel Jenkins standaard wordt beschouwd als de standaard onder de tools voor continue integratie, heeft het altijd mogelijkheden voor versiebeheer ontbeerd. Het blijkt dat je Jenkins gebruikt plus een soort SCM-tool. Het is te moeilijk als GitLab beide kan. Middelmatig UX-design is niet geschikt voor een moderne webapplicatie en laat veel te wensen over.

BitEmmer/Bamboe — Ik moet hem herkennen als een automatische verliezer: waarom twee tools als GitLab alles volledig onafhankelijk doet. BitBucket Cloud ondersteunt GitLab-CI / GitHub Action-functionaliteit, maar geen enkel bedrijf groter dan een startup kan dit eenvoudig implementeren. De lokale BitBucket-server ondersteunt niet eens BitBucket-pijplijnen!

#1 Hulpmiddel voor gegevensbeheer

winnaar: FlywayDB

DevOps-tools die iedereen in 2020 zou moeten leren
Bij de ontwikkeling van webapplicaties wordt aan databaseautomatisering doorgaans geen belang gehecht. Het idee om wijzigingen in het databaseschema door te voeren voor nieuwe versies van de applicatie komt laat. Schemawijzigingen resulteren er vaak in dat kolommen of tabellen worden toegevoegd en hernoemd. Als de applicatieversie niet overeenkomt met de schemaversie, kan de applicatie crashen. Bovendien kan het beheren van databasewijzigingen bij het updaten van een applicatie een uitdaging zijn, omdat er twee verschillende systemen zijn. FlyWayDB lost al deze problemen op.

Belangrijkste voordelen

  • Databaseversiebeheer - Met Flyway kunt u databaseversies maken, databasemigraties volgen en eenvoudig schemawijzigingen overbrengen of terugdraaien zonder dat u hiervoor een extra tool nodig heeft.
  • Binair of ingebed - We kunnen ervoor kiezen om Flyway uit te voeren als onderdeel van de applicatie of als een binair uitvoerbaar bestand. Flyway controleert de versiecompatibiliteit bij het opstarten en start de juiste migraties, waardoor database- en applicatieversies gesynchroniseerd blijven. Door de ad-hocopdracht cmd-regel uit te voeren, bieden we flexibiliteit aan bestaande databases zonder de hele applicatie opnieuw op te bouwen.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Er zijn niet veel tools op dit gebied. Laten we er een paar bekijken:

LiquiBase — Liquibase lijkt op FlywayDB. Ik zou het graag bovenop Flyway willen opzetten als ik iemand in mijn team had met meer ervaring met Liquibase.

Flokker - Kan alleen werken voor containertoepassingen. Om gecontaineriseerde databases succesvol te kunnen uitvoeren, moet alles perfect gepland zijn. Ik raad het gebruik van RDS (Relational Database Service) aan voor databases en raad af om belangrijke informatie in een container op te slaan.

Tools voor testautomatisering

DevOps-tools die iedereen in 2020 zou moeten leren
Laten we onze bespreking van testautomatiseringstools beginnen door ze te classificeren op basis van de testpiramide.

De toetspiramide (toetsen) kent 4 niveaus:

  • Unit Tests - Dit is de basis van het gehele geautomatiseerde testproces. Er zouden meer unit-tests moeten zijn in vergelijking met andere soorten tests. Ontwikkelaars schrijven en voeren unit-tests uit om ervoor te zorgen dat een deel van een applicatie (ook wel een "unit" genoemd) voldoet aan het ontwerp en zich gedraagt ​​zoals verwacht.
  • Componenttests - Het belangrijkste doel van het testen van componenten is het verifiëren van het invoer-/uitvoergedrag van het testobject. Wij moeten ervoor zorgen dat de functionaliteit van het testobject correct wordt geïmplementeerd volgens de specificatie.
  • Integratietests - Een soort testen waarbij individuele softwaremodules worden gecombineerd en als groep worden getest.
  • End-to-End-tests - Deze stap spreekt voor zich. Wij monitoren de gehele applicatie en zorgen ervoor dat deze functioneert zoals gepland.

Omdat unit- en componenttests alleen door ontwikkelaars worden uitgevoerd en vaak programmeertaalspecifiek zijn, zullen we deze tools niet evalueren voor het DevOps-domein.

#1 Integratietesttool

winnaar: Komkommer

DevOps-tools die iedereen in 2020 zou moeten leren
Cucumber combineert specificaties en testdocumentatie in één levend document. De specificaties zijn altijd actueel doordat deze automatisch door Cucumber worden getest. Als je vanaf het begin een geautomatiseerd testframework wilt bouwen en gebruikersgedrag in een webapplicatie wilt modelleren, dan is Selenium WebDriver met Java en Cucumber BDD een geweldige manier om Cucumber in een project te leren en te implementeren.

Belangrijkste voordelen

  • BDD-aanpak (Behavior Driven Development - “ontwikkeling door gedrag” in tegenstelling tot de “test-driven development”-aanpak) - Komkommer is ontworpen voor BDD-testen, het werd oorspronkelijk voor deze taak gemaakt.
  • Levende documentatie - Documentatie is altijd lastig! Omdat uw tests als code zijn geschreven, test Cucumber de automatisch gegenereerde documentatie om er zeker van te zijn dat de tests en documentatie synchroon lopen.
  • Ondersteuning - We kunnen kiezen uit vele tools, maar Cucumber beschikt over de nodige financiële middelen en een goed georganiseerd ondersteuningssysteem om gebruikers in elke moeilijke situatie te helpen.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Naast andere raamwerken en technologiespecifieke tools kan alleen Cucumber als een universele oplossing worden beschouwd.

End-to-end testtools

Bij het uitvoeren van end-to-end testen moet u zich op twee belangrijke punten concentreren:

  • functioneel testen
  • Stress testen.

Bij functioneel testen controleren we of alles wat we willen ook daadwerkelijk gebeurt. Wanneer ik bijvoorbeeld op bepaalde elementen van mijn SPA (applicatie met één pagina) klik, de formulieren invul en "Verzenden" selecteer, verschijnen de gegevens in de database en verschijnt het bericht "Succes!" op het scherm.

Het is ook belangrijk voor ons om te controleren of een bepaald aantal gebruikers die hetzelfde scenario uitvoeren, foutloos kunnen worden verwerkt.

De afwezigheid van deze twee soorten testen zal een aanzienlijk nadeel zijn in uw CI/CD-pijplijn.

#1 end-to-end testtool. Functioneel testen

winnaar: SoapUI Pro

DevOps-tools die iedereen in 2020 zou moeten leren
SoapUI bevindt zich al lange tijd in de API-testruimte sinds op SOAP gebaseerde webservices de standaard waren. Hoewel we geen nieuwe SOAP-services meer maken en de naam van de tool niet is veranderd, betekent dit niet dat deze niet is geëvolueerd. SoapUI biedt een uitstekend raamwerk voor het maken van geautomatiseerde backend-functionele tests. Tests kunnen eenvoudig worden gecombineerd met tools voor continue integratie en worden gebruikt als onderdeel van een CI/CD-pijplijn.

Belangrijkste voordelen

  • Gedetailleerde documentatie - SoapUI is al geruime tijd op de markt, dus er zijn veel online bronnen die u kunnen helpen begrijpen hoe u tests moet opzetten.
  • Gebruiksgemak - Hoewel de tool meerdere protocollen ondersteunt voor het testen van API's, maakt de aanwezigheid van SoapUI van een gemeenschappelijke interface voor meerdere services het schrijven van tests eenvoudiger.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Selenium is een ander geweldig instrument in deze groep. Ik raad aan het te gebruiken als je een op Java gebaseerde applicatie bouwt en uitvoert. Als u echter een volledige webapplicatie met meerdere technologieën bouwt, kan dit onpraktisch worden voor niet-Java-componenten.

#1 end-to-end testtool. Stress testen

winnaar: LoadRunner

DevOps-tools die iedereen in 2020 zou moeten leren
toelichting: Wanneer het tijd is om elk element van uw applicatie te laden, kan alleen LoadRunner de taak voltooien. Ja, het is in het begin duur en moeilijk, maar LoadRunner is de enige tool die mij als technisch architect het volledige vertrouwen geeft dat de nieuwe code zal werken onder extreme belastingsomstandigheden. Ik denk ook dat het tijd is dat LoadRunner wordt overgenomen door ontwikkelingsteams in plaats van door testteams.

Belangrijkste voordelen

  • Uitgebreide documentatie - LoadRunner is al geruime tijd op de markt, dus er zijn veel online bronnen die u kunnen helpen begrijpen hoe u belastingstests kunt opzetten.
  • Protocolondersteuning - Load Runner ondersteunt alles, van ODBC tot AJAX, HTTPS en elk ander niet-triviaal protocol dat uw applicatie mogelijk gebruikt. We proberen niet meerdere tools te gebruiken voor het testen van de belasting, omdat dit het proces alleen maar ingewikkelder maakt.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Nogmaals, er zijn niet veel universele tools op dit gebied, dus de beste oplossing is er een die in elke omgeving en met elke technologie werkt.

Implementatiehulpmiddelen

DevOps-tools die iedereen in 2020 zou moeten leren
Implementatietools zijn waarschijnlijk het minst begrepen aspect van ontwikkeling. Voor een operationeel team zonder diepgaande kennis van de code en functionaliteit van de applicatie is het moeilijk om dergelijke tools te gebruiken. Voor ontwikkelaars is implementatiebeheer een nieuwe verantwoordelijkheid, waardoor ze nog niet voldoende ervaring hebben met het werken met dergelijke tools.

Laten we eerst alle implementatietools in drie subcategorieën verdelen:

  • beheer van artefacten
  • configuratiebeheer
  • aanwenden.

#1 Tool voor artefactbeheer

winnaar: Nexus

DevOps-tools die iedereen in 2020 zou moeten leren
De Nexus-artefactrepository ondersteunt vrijwel elke belangrijke technologie, van Java tot NPM tot Docker. We kunnen deze tool gebruiken om alle artefacten die we gebruiken op te slaan. Het proxyen van externe pakketbeheerders versnelt ook het CI-bouwproces aanzienlijk, waardoor pakketten toegankelijker worden voor het bouwen. Een ander voordeel is de mogelijkheid om een ​​compleet overzicht te krijgen van alle pakketten die in verschillende softwareprojecten worden gebruikt, waardoor onveilige open source-pakketten worden geblokkeerd (ze kunnen als aanvalsvector fungeren).

Belangrijkste voordelen

  • Technische ondersteuning - Betrouwbaar product; goed ondersteund.
  • Open Source - De gratis versie beperkt niet de kernfunctionaliteit die ontwikkelingsteams nodig hebben.

#1 Configuratiebeheertool

winnaar: Ansible

Ansible is een leider om één simpele reden: staatloos. Voorheen waren soortgelijke tools gericht op het beheer van de configuratiestatus. Wanneer een dergelijk hulpmiddel wordt gelanceerd, zal het, nadat het de gewenste configuratie heeft ontvangen, proberen de huidige applicatieconfiguratie te corrigeren. En met de nieuwe aanpak zijn alleen staatloze componenten aanwezig. Nieuwe versies van code zijn artefacten die worden ingezet om bestaande versies te vervangen. Dit kan worden beschouwd als een soort kortstondige kortetermijnomgeving.

Belangrijkste voordelen

  • Staatloos: het Playbook wordt gestart vanaf de implementatiemachine en uitgevoerd op de doelservers. Ik hoef me geen zorgen te maken over de status van het externe object door een tool als Packer te gebruiken om inzetbare objecten te maken.
  • Open Source - Net als CentOS wordt Ansible ook ondersteund door RedHat. Het helpt de gemeenschap in stand te houden en biedt gebruiksvriendelijke modules van hoge kwaliteit.
  • Testen met Molecule (een Ansible-framework) - Omdat configuratiebeheer, net als al het andere, code is, is testen essentieel. Het Ansible-roltestframework van Molecule werkt feilloos en zorgt ervoor dat de configuratie van dezelfde kwaliteit is en dezelfde CI/CD-pijplijn volgt als de applicatiecode.
  • YAML - Vergeleken met andere tools is YAML gemakkelijker te begrijpen. Omdat configuratiebeheer doorgaans een nieuwe uitdaging is voor degenen die DevOps-praktijken implementeren, is eenvoud de troefkaart.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

OpsCode-chef — Ik begon mijn DevOps-carrière als kookboekontwikkelaar. Ruby en Chef liggen mij natuurlijk nauw aan het hart, maar ze lossen de problemen van moderne staatloze, cloud-native applicaties simpelweg niet op. OpsCode Chef is een geweldig hulpmiddel voor meer traditionele toepassingen, maar in dit artikel richten we ons op de toekomst.

Puppet — Puppet heeft nooit veel fans gehad, vooral niet in vergelijking met Chef en Ansible. Het is geweldig voor het inrichten en werken met hardware, maar het mist moderne configuratiebeheerondersteuning voor een webapplicatie.

Implementatietool #1

winnaar: Terraform

DevOps-tools die iedereen in 2020 zou moeten leren
Terraform lost het probleem op van het beschrijven van uw infrastructuur als code, van netwerkcomponenten tot volledige serverimages. Dit product heeft een lange weg afgelegd sinds de eerste release, met zoveel plug-ins die zijn gemaakt en zo'n sterke community dat je zeker hulp krijgt in elk implementatiescenario. De mogelijkheid om elk type omgeving (on-premise, in de cloud of elders) te ondersteunen is ongeëvenaard. Ten slotte biedt de nieuwste versie veel van dezelfde logische functies en klassen in HCL als elke andere traditionele programmeertaal, waardoor Terraform voor ontwikkelaars gemakkelijk en snel te begrijpen is.

Belangrijkste voordelen

  • Omgevingsagnostisch - Terraform gebruikt functies die fungeren als interface tussen uw Terraform-code, alle API's en interne logica om te communiceren met de infrastructuurprovider. Dit betekent dat ik slechts één tool onder de knie heb en dan overal aan de slag kan.
  • Open Source - Het is moeilijk om gratis tools te verslaan! Gemeenschapssteun op het hoogste niveau.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

AWS CloudFormatie — Zelfs als je alleen in de AWS-cloudomgeving werkt, kan het zijn dat je volgende baan een andere tool gebruikt. Al je tijd en energie besteden aan slechts één platform is een kortzichtige beslissing. Bovendien zijn veel nieuwe AWS-services vaak beschikbaar als Terraform-modules voordat ze beschikbaar zijn in CloudFormation.

Runtime-hulpmiddelen

DevOps-tools die iedereen in 2020 zou moeten leren

Het uiteindelijke doel van elk ontwikkelingsproject is om de applicatie in productie te nemen. In de DevOps-wereld willen we volledig op de hoogte zijn van alle mogelijke problemen met onze omgeving en willen we ook handmatige tussenkomst tot een minimum beperken. Het kiezen van de juiste set runtime-tools is essentieel om het nirvana voor applicatieontwikkeling te bereiken.

Subcategorieën van runtime-tools:

  • X-as-a-service (XaaS)
  • orkestratie
  • controle
  • loggen.

X-tool-as-a-service #1

winnaar: Amazon Web Services

DevOps-tools die iedereen in 2020 zou moeten leren
Amazon is altijd toonaangevend geweest op het gebied van cloudtechnologieën, maar daar blijft het niet bij: de verscheidenheid aan nieuwe diensten voor ontwikkelaars is oogverblindend. Breng elke technologie en sjabloon naar AWS en het zal worden gebouwd en uitgevoerd. De kosten van de tool zijn redelijk: vergelijk het met het assembleren, beheren en onderhouden van apparatuur in uw eigen datacenter. Met de gratis versie kun je experimenteren en de juiste beslissing nemen voordat je geld uitgeeft.

Belangrijkste voordelen

  • Prevalentie - Als je ervaring hebt met het bouwen van applicaties in AWS, kun je overal werken. Bedrijven zijn dol op AWS, en startups waarderen ook de lage kosten ervan.
  • De gratis versie is een werkelijk belangrijke factor die AWS onderscheidt van zijn concurrenten. Laat me de service uitproberen en zien hoe het werkt voordat ik een aankoopbeslissing neem. Ik wil geen duizenden dollars uitgeven aan iets dat onnodig is. De gratis versie is voor mij altijd voldoende om elk concept te testen.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Azuur “Azure heeft een lange weg afgelegd sinds de eerste release, en dat is lovenswaardig. De wens om anders te zijn heeft echter geleid tot vreemde namen voor diensten, wat het werk vaak bemoeilijkt. Wat betekent 'blob-opslag'? En hoewel .NET-code beter presteert in het Microsoft-ecosysteem, is het onwaarschijnlijk dat u voor elk onderdeel van uw toepassing alleen .NET zult gebruiken.

Heroku — Ik zou nooit iets anders dan een persoonlijk project op Heroku uitvoeren vanwege het lage niveau van betrouwbaarheid en transparantie, dus bedrijven zouden het niet als platform moeten gebruiken. Heroku is geweldig om iets op een blog te demonstreren, maar voor praktisch gebruik: “Nee, bedankt!”

#1 Orkestratietool

winnaar: OpenShift

DevOps-tools die iedereen in 2020 zou moeten leren
U gebruikt waarschijnlijk Docker of andere containers in uw applicatiestack. Serverloze applicaties zijn geweldig, maar passen mogelijk niet in elke architectuur. Het uitvoeren van containers zonder een orkestratieplatform werkt simpelweg niet. Kubernetes Core (K8s) is ongeëvenaard op het gebied van beveiliging en tooling. OpenShift is het enige op Kubernetes gebaseerde platform dat Source2Image kan verzamelen, automatische implementatie in pods ondersteunt en tracking en monitoring ondersteunt. OpenShift kan op locatie, in de cloud, of tegelijkertijd op locatie en in de cloud worden uitgevoerd.

Belangrijkste voordelen

  • Ingebouwde beveiliging - Het beheren van de beveiliging van K8 vereist mogelijk een geavanceerde graad. Elk detail moet zorgvuldig worden doordacht en in aanmerking worden genomen! De standaard ingebouwde beveiligingsmechanismen met OpenShift ontlasten ontwikkelaars en bieden een veiliger platform voor applicaties.
  • Alles-in-één oplossing - In tegenstelling tot de standaard K8's, die standaard geen tools voor taakverdeling bevatten, heeft OpenShift het allemaal. Ik kan het gebruiken om containers te maken en te hosten, CI/CD-tools uit te voeren, externe processen te beheren, sleutels te beheren en nog veel meer. Hoewel de grafische gebruikersinterface nog verre van perfect is, zorgt de API-gebaseerde aanpak ervoor dat alles in een script kan worden beschreven. In tegenstelling tot andere GUI's voor K8's maakt OpenShift het leren van de basisprincipes van Kubernetes veel eenvoudiger. Je hoeft niet eens een diploma te behalen!

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Docker Zwerm — Docker Swarm probeerde K8s te vereenvoudigen door veel dingen weg te laten. Het is geweldig voor kleine toepassingen, maar voor bedrijfstoepassingen werkt het gewoon niet. Bovendien hanteren oplossingen zoals AWS ECS een vergelijkbare aanpak, maar maken ze het gemakkelijker om met andere services te werken waarmee ik ook kan communiceren (Lambda, IAM, enz.).

Monitoringtool #1

winnaar: Nieuw relikwie

DevOps-tools die iedereen in 2020 zou moeten leren
Vroege releases van New Relic deden één ding goed: APM-monitoring (Application Performance Monitoring). Het is nu een volledig uitgeruste monitoringtool waarmee u de server-, container-, databaseprestaties, monitoring van de eindgebruikerservaring en natuurlijk de monitoring van applicatieprestaties kunt monitoren.

Belangrijkste voordelen

  • Gebruiksgemak - Toen ik als systeemingenieur werkte, gebruikte ik veel monitoringtools, maar ik ben er nog nooit één tegengekomen die zo eenvoudig en gemakkelijk te gebruiken is als New Relic. Het is SaaS, dus je hoeft het niet zelf te installeren.
  • End-to-end zichtbaarheid - Andere tools proberen één specifiek element van uw applicatie te monitoren. Bijvoorbeeld een statistiek van processorgebruik of netwerkverkeer, maar dit alles moet uitgebreid worden gemonitord om de applicatie correct te laten werken. New Relic geeft u de mogelijkheid om al uw gegevens samen te brengen om een ​​uitgebreid beeld te krijgen van wat er gebeurt.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Zabbix — Mijn eerste en favoriete monitoringsysteem, maar het is in het verleden gebleven vanwege het gebrek aan ontwikkeling in cloudtechnologieën en op het gebied van APM-applicatieprestatiemonitoring. Zabbix doet nog steeds goed de traditionele serverinfrastructuurmonitoring, maar dat is het dan ook.

DataDog — Te veel gericht op het proces van het beheren van de productieomgeving van de applicatie, en niet op de code zelf. Met DevOps-teams waarbij ontwikkelaars betrokken zijn, hoeven we niet te vertrouwen op moeilijk te gebruiken tools om eersteklas ondersteuning te bieden.

Logboektool #1

winnaar: Splunk

DevOps-tools die iedereen in 2020 zou moeten leren
Het is moeilijk om te concurreren met Splunk! Hij blijft lange tijd de leider op het gebied van houtkap en blijft het beter doen dan wie dan ook. Met het on-prem- en SaaS-aanbod kunt u Splunk overal gebruiken. Het grote nadeel is de prijs: Splunk is nog steeds verdomd duur!

Belangrijkste voordelen

  • Pervasiviteit - Bedrijven zijn dol op Splunk en bedrijven hebben het geld om het te kopen.
  • Hoewel startups de kosten proberen terug te verdienen, kunnen veel functies worden opgelost dankzij open source-analogen.
  • Onderhoudbaarheid - Simpel gezegd: Splunk werkt en doet het goed. Het wordt geleverd met veel standaardinstellingen en functies die klaar zijn voor gebruik. U hoeft geen tijd te verspillen met het lezen van documentatie en proberen Splunk aan het werk te krijgen of iets te ontcijferen.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

ELK-stack (ElasticSearch, LogStash en Kibana) "Deze hulpmiddelen lijken de favoriet te zijn, omdat je niet eens je lever hoeft te verkopen om ze te gebruiken." Naarmate de set logboeken echter groeit en het aantal applicaties aan boord toeneemt, wordt het werk steeds moeilijker. Vergeleken met Splunk heb ik met ELK Stack veel meer tijd besteed aan het opzetten van de tool voordat ik dashboards maakte dan ooit tevoren.

Samenwerkingsinstrumenten

DevOps-tools die iedereen in 2020 zou moeten leren
DevOps gaat vooral over het veranderen van de cultuur binnen een organisatie. Het kopen van welk hulpmiddel dan ook zal de huidige praktijken niet van de ene op de andere dag veranderen, maar het kan zeker samenwerking en nieuwe manieren van interactie bevorderen.

Subcategorieën van samenwerkingstools:

  • taak volgen
  • ChatOps
  • documentatie.

#1 Tool voor het volgen van problemen

winnaar: Jira

DevOps-tools die iedereen in 2020 zou moeten leren
Jira behoudt zijn leidende positie, hoewel de concurrentie op dit gebied toeneemt. Dankzij de ongelooflijke flexibiliteit van Jira kunnen ontwikkelings- en onderhoudsteams projectwerk en sprinttaken beheren. Ingebouwde standaarden die Agile-terminologie gebruiken, maken het gemakkelijker om van traditionele manieren van werken naar efficiëntere processen over te stappen.

Belangrijkste voordelen

  • Populariteit - Net als veel andere tools wordt Jira bijna overal gebruikt. Kleine teams gebruiken de goedkopere, toegankelijkere versie en krijgen alles wat ze nodig hebben, terwijl grotere bedrijven zich een duurdere licentie kunnen veroorloven.
  • Integraties - Jira is een pionier op zijn gebied. Dit feit en de snelle ontwikkeling van het product leiden ertoe dat andere bedrijven Jira kiezen om hun eigen integraties te creëren, waardoor de waarde van de tool toeneemt. Met een kleine configuratie kunnen we Jira kant-en-klaar integreren met alle tools die in dit artikel worden genoemd.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Trello — Trello werd snel populair dankzij de gratis Kanban-tool. Maar zodra processen zich opschalen en je van tientallen taken naar duizenden taken gaat, wordt Trello lastig te navigeren, te doorzoeken en erover te rapporteren.

Pivotal Tracker — Ik was een grote fan van deze tool toen ik voor een startup werkte. Pivotal Tracker is echter meer gericht op productbeheer dan op technische taken. Hoewel productbeheer in Jira iets complexer is, kan het daar toch worden geïmplementeerd zonder gebruik te maken van een extra tool.

ChatOps-tool #1

winnaar: Meest belangrijk

DevOps-tools die iedereen in 2020 zou moeten leren
toelichting: Misschien wel de grootste verrassing voor jou in mijn selectie, en dat is goed nieuws! MatterMost werd populair door het beste uit eerdere tools te halen, maar deze op locatie te plaatsen. Voor bedrijven is dit erg belangrijk: MatterMost geeft u controle over uw gegevens en helpt u deze ook te integreren met tools die lokaal draaien. We hoeven niet langer buiten de firewall te gaan om werkchats te controleren.

Belangrijkste voordelen

  • Open Source – De open source-versie van MatterMost werkt uitstekend voor zowel middelgrote als grote teams. In tegenstelling tot het gratis abonnement van Slack, waarbij uw berichtengeschiedenis wordt verwijderd, betekent het runnen van uw eigen server dat u al uw gegevens behoudt.
  • Integraties - Omdat de API bijna 100% gebaseerd is op de Slack API, kunnen vrijwel alle Slack-integraties direct met MatterMost worden gebruikt.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Slack — Slack is cool, maar deze jongens zijn zo gegroeid dat ze op zoek zijn gegaan naar winst. De terugverdienfase van het bedrijf nadert, wat hun belangrijkste waarde wegneemt: Slack leverde gratis diensten; Het belangrijkste nadeel van de gratis versie is het verwijderen van de chatgeschiedenis.

Microsoft Teams — Probeer een Microsoft-product te integreren met iets dat geen eigendom is van Microsoft... Veel succes! Dat is alles wat ik te zeggen heb over deze tool!

Documentatietool #1

winnaar: samenvloeiing

DevOps-tools die iedereen in 2020 zou moeten leren
Het maken en onderhouden van hoogwaardige technische documentatie is een complex proces, ongeacht welke tool u gebruikt. Hoewel er de laatste tijd veel SaaS-documentatietools op de markt zijn gekomen, zou ik het moeilijk vinden om de opslag van technische documentatie over bedrijfskritische applicaties aan een derde partij uit te besteden. Het verdient de voorkeur om gegevens en documenten op locatie op te slaan, en zo lost Confluence het op.

Belangrijkste voordelen

  • Eenvoudig te bedienen - De meeste stand-alone tools kunnen een beetje ingewikkeld zijn om in te stellen en te bedienen en vereisen enige kennis om te onderhouden. Confluence Server werkt out-of-the-box uitstekend voor 10 of 10,000 gebruikers.
  • Plug-ins - Een pluim voor Confluence voor de prachtige, eenvoudig te gebruiken navigatie die kant-en-klaar is, en de mogelijkheid om voor bijna alles een plug-in toe te voegen, ontgrendelt Wiki-achtig potentieel.

concurrenten

Heeft deelgenomen aan de strijd, maar heeft niet gewonnen

Lees de documenten — Cool voor open source, maar denk er niet eens aan om hier kritische kennis op te slaan.

Markdown - Geweldig voor het documenteren van code, maar moeilijk om architectuur, processen of andere soorten documentatie te posten vanwege de specifieke opmaak van MarkDown.

Jekyll — Bij het documenteren van technische kennis wil ik geen nieuwe statische site maken die bij elke verandering wordt ingezet. Het eenvoudige versiebeheersysteem van Confluence vereenvoudigt de interne documentatie aanzienlijk.

Opsommen

Er zijn letterlijk honderden DevOps-tools op de markt, waardoor het moeilijk is om te weten welke je moet gebruiken en wanneer ze moeten worden geïmplementeerd. Volg deze eenvoudige handleiding voor het kiezen van DevOps-tools voor een volledige CI/CD-pijplijn.

Zorg ervoor dat u gereedschappen uit alle vijf categorieën selecteert:

  • ontwikkel- en bouwtools
  • tools voor testautomatisering
  • implementatiehulpmiddelen
  • Runtime-hulpmiddelen
  • Samenwerkingsinstrumenten.

Belangrijkste aanbeveling: Automatiseer alles!

Bedankt Zach Shapiro!

Bron: www.habr.com

Voeg een reactie