Close

DevOps-tools

Kies tools voor elke fase van de DevOps-levenscyclus.


Open toolchain

DevOps is de volgende evolutie van agile methodologieën. Een culturele verschuiving die ontwikkelings- en operationele teams samenbrengt. DevOps is een praktijk die een culturele verandering, nieuwe managementprincipes en technologische hulpmiddelen omvat die helpen bij het implementeren van best practices.

Als het gaat om een DevOps-toolchain, moeten organisaties op zoek gaan naar tools die de samenwerking verbeteren, contextswitching verminderen, automatisering introduceren en waarnemingsvermogen en monitoring benutten om sneller betere software te leveren.

Er zijn twee primaire benaderingen voor een DevOps-toolchain: een alles-in-één of open toolchain. Een alles-in-één DevOps-oplossing biedt een complete oplossing die meestal niet kan worden geïntegreerd met andere tools van derden. Een open toolchain kan worden aangepast aan de behoeften van een team met verschillende tools. Atlassian gelooft dat een open toolchain de beste aanpak is, omdat deze met de beste tools kan worden aangepast aan de unieke behoeften van een organisatie. Het gebruik van deze aanpak leidt vaak tot een verhoogde tijdsefficiëntie en verkort de time-to-market.

Meer informatie over DevOps-toolchains.

Ongeacht het type DevOps-toolchain dat een organisatie gebruikt, moet een DevOps-proces de juiste tools gebruiken om de belangrijkste fasen van de DevOps-levenscyclus aan te pakken:

  • Plannen
  • Build
  • Continue integratie en implementatie
  • Monitoren
  • Gebruiken
  • Continue feedback

Met een open DevOps-toolchain raken de geselecteerde tools meerdere fasen van de DevOps-levenscyclus. De volgende secties laten enkele van de meest populaire tools voor DevOps zien, maar gezien de aard van de markt verandert deze lijst regelmatig. Providers voegen nieuwe mogelijkheden toe die hen in staat stellen meer fasen van de DevOps-levenscyclus te overbruggen, nieuwe integraties worden elk kwartaal aangekondigd en in sommige gevallen consolideren providers hun aanbod om zich te concentreren op een specifiek probleem voor hun gebruikers.

Plannen


Logo Jira Software Confluence-logo Logo Slack

We nemen een voorbeeld aan agile methodiek en raden tools aan waarmee ontwikkelings- en operationele teams het werk kunnen opsplitsen in kleinere, beheersbare brokken voor snellere implementaties. Hierdoor krijg je sneller informatie van gebruikers en kun je een product optimaliseren op basis van de feedback. Zoek tools waarmee je sprints kunt plannen, issues kunt bijhouden en samenwerking mogelijk kunt maken, zoals Jira.

Een andere goede werkwijze is het continu verzamelen van gebruikersfeedback, het ordenen in bruikbare input en het prioriteren van die acties voor je ontwikkelingsteams. Zoek naar tools die 'asynchroon brainstormen' aanmoedigen (om het zo maar te noemen). Het is belangrijk dat iedereen alles kan delen en erop kan reageren: ideeën, strategieën, doelen, vereisten, roadmaps en documentatie.

En vergeet integraties en functievlaggen niet. Wat je ook kiest als scope voor je functie of project, deze moet worden omgezet in userstory's in je ontwikkelingsbacklog. Functievlaggen zijn if-statements in de codebasis waarmee teams functies kunnen in- en uitschakelen.

Bekijk voor meer informatie over deze fase dit artikel van productmanagers van Atlassian over backlog-grooming en -prioritering.

Build


Kubernetes-logo Docker-logo

Productie-identieke omgevingen voor ontwikkeling:

Hoewel Puppet en Chef vooral de activiteiten ten goede komen, gebruiken ontwikkelaars open source-tools zoals Kubernetes en Docker om individuele ontwikkelomgevingen te voorzien. Codering tegen virtuele wegwerpreplica's van productie helpt je om meer werk gedaan te krijgen.

Wanneer elk teamlid vanuit identiek ingerichte omgevingen werkt, is 'Het werkt op mijn machine!' niet meer grappig omdat het waar is (nu is het gewoon grappig).

Ansible-logo Logo van Chef Docker-logo puppet-logo Terraform-logo

Infrastructure as code:

Ontwikkelaars streven ernaar om modulaire applicaties te maken die in elkaar gezet kunnen worden omdat die betrouwbaarder en gemakkelijker te onderhouden zijn. Dus waarom zou je dat denken niet uitbreiden naar de IT-infrastructuur? Dit kan lastig zijn om op systemen toe te passen omdat ze altijd veranderen. Dus we gaan dat omzeilen door code te gebruiken voor provisioning.

Infrastructuur als code betekent dat herinrichting sneller gaat dan repareren — en dat het consistenter en reproduceerbaarder is. Het betekent ook dat je eenvoudig variaties van je ontwikkelomgeving kunt laten draaien met een vergelijkbare configuratie als de productie. Inrichtingscode kan worden toegepast en opnieuw worden toegepast om een server op een bekende basislijn te plaatsen. Het kan worden opgeslagen in versiebeheer. Het kan worden getest, geïntegreerd in CI (continue integratie) en peer-reviewed.

Wanneer institutionele kennis, nou ja, gecodificeerd is in code, vervaagt de behoefte aan geleide boeken en interne documentatie. Wat naar voren komt zijn herhaalbare processen en betrouwbare systemen.

Logo Bitbucket Logo Github GitLab-logo

Bronbeheer en codering voor samenwerking:

Het is belangrijk om de broncode te beheren. Met bronbesturingstools kun je de code in verschillende ketens opslaan, zodat je elke wijziging kunt zien en gemakkelijker kunt samenwerken door deze wijzigingen te delen. In plaats van te wachten op boards om wijzigingen goed te keuren voordat je kunt implementeren naar productie, kun je de codekwaliteit en doorvoer verbeteren met peer reviews die worden gedaan via pull requests.

Wat zijn pull requests, vraag je? Pull requests vertellen je team over wijzigingen die je hebt gepusht naar een development branch in je repository. Je team kan vervolgens de voorgestelde wijzigingen bekijken en wijzigingen bespreken voordat je ze in de hoofdcoderegel integreert. Pull requests verhogen de kwaliteit van de software, wat resulteert in minder bugs/incidenten, wat de operationele kosten verlaagt en resulteert in een snellere ontwikkeling.

Bronbesturingstools moeten worden geïntegreerd met andere tools, zodat je de verschillende onderdelen van de ontwikkeling en levering van code kunt verbinden. Hierdoor kun je weten of de code van de functie in productie is. Als er zich een incident voordoet, kan de code worden opgehaald om licht te werpen op het incident.

Continuous Integration en Delivery


Logo Jenkins AWS-logo Logo Bitbucket Logo CircleCIsnyk-logo Sonarsource-logo

Continue integratie:

Continue integratie is de werkwijze waarbij code meerdere keren per dag in een gedeelde repository wordt gezet en deze elke keer wordt getest. Op die manier detecteer je problemen automatisch en vroegtijdig, repareer je ze wanneer ze het gemakkelijkst te repareren zijn en introduceer je zo snel mogelijk nieuwe functies voor je gebruikers.

Codereview door middel van pull requests vereist branches en is helemaal in de mode. De DevOps North Star is een workflow die resulteert in minder en snellere branches en de strengheid van de test handhaaft zonder in te boeten aan ontwikkelingssnelheid.

Zoek tools die je tests automatisch toepassen op ontwikkelingsbranches en je de mogelijkheid geven om naar de hoofdbranch te pushen wanneer branchbuilds succesvol zijn. Daarnaast krijg je continue feedback via realtime chatwaarschuwingen van je team dankzij een eenvoudige integratie.

Ontdek hoe Bitbucket Pipelines je helpt je code te automatiseren, van test tot productie.

Mabl-logo Saucelabs-logo Xray-logo Zephyr-logo

Testen:

Testtools omvatten vele behoeften en mogelijkheden, waaronder verkennend testen, testbeheer en orkestratie. Voor de DevOps-toolchain is automatisering echter een essentiële functie. Geautomatiseerd testen loont zich in de loop van de tijd door je ontwikkelings- en testcycli op de lange termijn te versnellen. En in een DevOps-omgeving is het om nog een reden belangrijk: bewustwording.

Testautomatisering kan de kwaliteit van de software verhogen en risico's verminderen door dit vroeg en vaak te doen. Ontwikkelingsteams kunnen herhaaldelijk geautomatiseerde tests uitvoeren, die verschillende gebieden bestrijken, zoals UI-testen, beveiligingsscans of load testing. Ze leveren ook rapporten en trendgrafieken op die helpen bij het identificeren van risicovolle gebieden.

Risico hoort bij softwareontwikkeling, maar je kunt niet verzachten wat je niet kunt verwachten. Doe je operationele team een plezier en laat ze samen met je onder de motorkap gluren. Zoek naar tools die wallboards ondersteunen en laat iedereen die betrokken is bij het project commentaar geven op specifieke build- of implementatieresultaten. Bonuspunten voor tools die het gemakkelijk maken om Operations te betrekken bij blitztesten en verkennend testen.

Logo Jira Software

Implementatiedashboard:

Een van de meest stressvolle onderdelen van software leveren is om alle informatie over de verandering, tests en implementatie voor een aanstaande release op één plek te krijgen. Het laatste wat iemand nodig heeft voor een release is een lange vergadering om te rapporteren over de status. Dit is waar release-dashboards van pas komen.

Zoek naar tools met één dashboard dat is geïntegreerd met je codeopslagplaats en implementatietools. Zoek iets dat je volledig zicht geeft op branches, builds, pull requests en implementatiewaarschuwingen op één plek.

Logo Bitbucket Zephyr-logo

Geautomatiseerde implementatie:

Er is geen magisch recept voor geautomatiseerde implementatie dat geschikt is voor elke toepassing en IT-omgeving. Maar het omzetten van het runbook van het werk naar een cmd-uitvoerbaar script met Ruby of bash is een gebruikelijke manier om te starten. Goede technische praktijken zijn van vitaal belang. Gebruik variabelen om hostnamen te bepalen — het bijhouden van unieke scripts of code voor elke omgeving is niet leuk (en mist toch de helft van het punt). Maak hulpprogramma's of scripts om dubbele code te voorkomen. En peer review je scripts om ze goed te controleren.

Probeer eerst implementaties te automatiseren naar je omgeving op het laagste niveau, waar je die automatisering het vaakst gebruikt, en repliceer dat vervolgens helemaal tot aan de productie. Op zijn minst markeert deze oefening de verschillen tussen je omgevingen en genereert hij een lijst met taken om ze te standaardiseren. Bovendien vermindert standaardisering door middel van automatisering de 'serverdrift' binnen en tussen omgevingen.

Gebruiken


AppDynamics-logo Logo van Datadog Logo Slack Splunk-logoNew Relic-logo Logo Opsgenie Pingdom-logo Nagios-logo Logo van Dynatrace Hosted Graphite-logo Sumo Logic-logo

Monitoring van prestaties toepassingen en server:

Er zijn twee soorten monitoring die geautomatiseerd moeten worden: servermonitoring en monitoring van de prestaties van toepassingen.

Handmatig een vakje afvinken of je API halen met een test is prima voor spot-checks. Maar om de trends en de algehele gezondheid van je toepassing (en omgevingen) te begrijpen, heb je software nodig die 24/7 luistert en gegevens opneemt. Voortdurende observatie is een belangrijke mogelijkheid voor succesvolle DevOps-teams.

Zoek naar tools die kunnen worden geïntegreerd met je groepschatclient, zodat waarschuwingen rechtstreeks naar de ruimte van je team gaan, of een speciale ruimte voor incidenten.

Logo Jira Service Management Logo Jira SoftwareLogo Opsgenie statuspage-logo

Incidenten, wijzigingen en probleemopsporing:

Het belangrijkste aspect om samenwerking tussen DevOps-teams mogelijk te maken is ervoor te zorgen dat ze hetzelfde werk bekijken. Wat gebeurt er als er incidenten worden gemeld? Zijn ze gekoppeld en herleidbaar naar softwareproblemen? Wanneer er wijzigingen worden aangebracht, worden ze dan gekoppeld aan releases?

Niets blokkeert Dev's samenwerking met Ops meer dan incidenten en softwareontwikkelingsprojecten die bijgehouden worden in verschillende systemen. Zoek naar tools die incidenten, veanderingen, problemen en softwareprojecten op één platform bewaren, zodat je problemen sneller kunt identificeren en oplossen.

Continue feedback


GetFeedback-logo Logo Slack Logo Jira Service Management Logo Pendo

Klanten vertellen je al of je het juiste hebt gebouwd — je hoeft alleen maar te luisteren. Continue feedback omvat zowel de cultuur als de processen om regelmatig feedback te verzamelen, en tools om conclusies op te maken uit de feedback. Continue feedbackpraktijken omvatten het verzamelen en beoordelen van NPS-gegevens, verloop-enquêtes, bugrapporten, ondersteuningstickets en zelfs tweets. In een DevOps-cultuur heeft iedereen in het productteam toegang tot gebruikersreacties omdat ze alles helpen, van releaseplanning tot verkennende testsessies.

Zoek naar toepassingen die je chattool integreren met je favoriete enquêteplatform voor feedback in NPS-stijl. Twitter en/of Facebook kunnen ook worden geïntegreerd met chat voor realtime feedback. Voor een diepere kijk op de feedback van sociale media, is het de moeite waard om te investeren in een beheerplatform voor sociale media dat rapporten kan ophalen met behulp van historische gegevens.

Het analyseren en opnemen van feedback kan het gevoel geven dat het het tempo van de ontwikkeling op korte termijn vertraagt, maar het is op de lange termijn efficiënter dan nieuwe functies releasen die niemand wil.

Conclusie...


Bij Atlassian geloven we in het belang van een DevOps-toolchain die integreert met de tools die ontwikkelings- en operationele teams graag gebruiken. Daarom hebben we ons DevOps-platform gebouwd om te integreren met meer dan 171 toonaangevende externe leveranciers, zodat je de beste beslissingen kunt nemen over de tools die je gebruikt. Omdat DevOps niet bij één leverancier gekocht kan worden, maar gebouwd moet worden.

Probeer de gratis DevOps-oplossing van Atlassian om aan de slag te gaan.


Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Toelichting DevOps

DevOps-community

Toelichting DevOps

Simulatieworkshop

Afbeelding van kaart

Gratis aan de slag

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up