Aan de slag met de laatste DevOps trends van Atlassian

12 oktober 2020
DevOps Loop
Als TMC ALM hebben we ruime ervaring met de Atlassian toolset en het uitvoeren van DevOps best practices. We kunnen u helpen bij DevOps implementaties, vraagstukken en er voor zorgen dat uw software ontwikkeling efficienter plaatsvind.

Aan de slag met DevOps

Atlassian is constant hard aan het werk om ontwikkelaars een complete toolset aan te bieden waarmee zij het maximale uit hun werkdag halen. In deze blog delen wij, als gerenommeerd Atlassian partner, onze basis DevOps ervaringen en expertise met deze tools. Ook laten we zien wat de mogelijkheden voor software ontwikkelaars zijn met Atlassian tooling. De doelgroep voor deze blog is mensen die benieuwd zijn naar DevOps of er basis ervaring mee hebben.

Wat is DevOps

Om goed software te ontwikkelen is niet alleen een toolset nodig die dit mogelijk maakt. Hierbij horen ook zaken als werkafspraken, best-practices en de bijbehorende structuur en cultuur van het samenwerken over de afdelingen heen.

Dit plaatje geeft goed weer hoe de verschillende onderdelen van Devops in elkaar grijpen en hoe DevOps een continue proces is.

Samenvatting van DevOps

Recent heeft Atlassian een DevOps onderzoek laten uitvoeren. Deze is hier kosteloos te downloaden. In deze blog hebben we de highlights van dit rapport samengevat:

Highlights:

  • Devops is een positieve toevoeging voor de organisatie
  • Zorgt voor een kwalitatief beter product
  • Snellere time to market

Obstakels:

  • Oude (IT) infrastructuur belemmert vaak de invoering
  • Vraagt cultuur verandering
  • Vereist andere manier van werken

Atlassian en DevOps

Binnen DevOps is het belangrijk dat mensen zo prettig en efficient mogelijk samenwerken over de afdelingen heen. Dit zijn typisch afdelingen als Software, Business en IT. In traditionele organisaties wordt vaak op ‘eilandjes’ gewerkt, wordt het wiel opnieuw uitgevonden (zogenaamde “Not Invented Here” syndroom) wat vaak resulteert in langere doorlooptijden, hogere kosten en zelfs suboptimale oplossingen. Kennis en data word niet gedeeld waardoor er geen gedeelde waarheid is of besluiten worden genomen zonder alle relevante gegevens.

De Atlassian tools maken het delen van kennis of de status van, een pakket aan, taken eenvoudig en laagdrempelig. Om te voorkomen dat tijd verloren gaat in het schakelen tussen verschillende omgevingen is de Atlassian toolset zo ingericht dat zoveel mogelijk vanuit één scherm, of dashboard, uit te voeren is. Daarnaast zet Atlassian vol in op de deployment van haar producten in de cloud. Dit zorgt er voor dat IT afdelingen minder tijd kwijt zijn aan het beheer van de infrastructuur en omgeving, en meer tijd over houden om de business en software ontwikkel afdelingen te ondersteunen.

Het resultaat van een centrale interface is dat mensen minder tijd spenderen aan vergaderingen en meer tijd aan coderen. Vergaderingen worden vervangen door relevante bijdragen in bijvoorbeeld chat kanalen die voor een specifiek issue of onderwerp opgezet worden.

Resultaat van deze inrichting en cultuurverandering is een ontwikkelorganisatie die meer tijd kan besteden aan het leveren van toegevoegde waarde aan de klanten.

Hieronder hebben we een lijst met zeven punten waarvan we denken dat deze een goede basis en start geeft om met DevOps aan de slag te gaan.

1) Blijf in de flow

Om vlot en zonder verstoringen je werk te kunnen doen helpt het als dit met zo min mogelijk context wisselingen plaatsvindt en deelnemers niet gehinderd worden door de verschillende user interfaces, workflows of inconsistente manieren van werken.

Idealiter wil je in je product snel kunnen terugtracen, tot op regelniveau in de code, waar wijzigingen hebben plaatsgevonden. Zodat bij het zoeken naar incidenten en problemen je snel tot de bron komt. De toolset zorgt ervoor dat je snel kunt aanwijzen wat, waar en door wie er wijzigingen gemaakt zijn. Dit zorgt ervoor dat je snel code kunt bouwen, testen, uitrollen en metrics verzamelt door het hele proces heen.

2) Plan en track je code in 1 omgeving

Één van de krachtigste dashboards voor ontwikkelaars is het nieuwe dashboard in Bitbucket Cloud. Hier is in één dashboard de code te bereiken maar ook gelijk de link en integratie met andere tools zoals:

  • Link naar build resultaten van code
  • Gerelateerde Jira issues en taken
  • Reports voor bijvoorbeeld het meten van de code quality
  • Activity tab voor complete historie van taak en code
  • Integratie naar de wiki voor kennisdeling

Screenshot Bitbucket Cloud met de verschillende integraties:

Hiermee zie je dat de integratie van al deze tools in één scherm het eenvoudig maakt om zonder context switching de juiste en laatste data op te vragen zonder enige frictie.

3) Automatiseer repetitieve taken

Om repetitieve taken weg te automatiseren biedt Jira nu ook Automation Triggers aan. Dit geeft de mogelijkheid om automatisering van repetitieve taken toe te passen maar ook om zelf automation te programmeren. Dit klinkt technisch maar het is zo opgezet dat dit ook te doen is voor mensen met weinig kennis van programmeren. De interface zorgt ervoor dat je met enkele ‘If Then Else’ stappen je eigen automatisering kan toepassen. Voorbeelden van deze automatisering zijn bijvoorbeeld:

  • automatisch sluiten van issues als alle subtaken afgerond zijn
  • creëren van Slack notifications bij een Pull Request
  • toewijzen van issues voor bijvoorbeeld QA

Collega’s Rudy Holtkamp en Rick van Twillert hebben hier recent nog uitleg en blogs over geschreven:

Voorbeeld van automatisering in JIra

Een voorbeeld van het automatiseren in Jira is bijvoorbeeld een Epic afsluiten als alle onderliggende taken of story’s afgerond zijn.

Door middel van een grafische “If This Then Do That” (IFTTDT) kunnen ook niet technische mensen zelf routines aanmaken om het werk te vereenvoudigen.

Hieronder een screenshot hoe zo’n routine eruit kan zien.

4) Soepel Testen, Reviewen en Releasen

Met de recente invoering van Code Insights in Atlassian Bitbucket is het nu ook mogelijk om code pro-actief te onderzoeken. Hiermee worden reviewers van code in Pull Requests (PR) goed geïnformeerd over de staat van de wijzigingen.

De volgende analyses kunnen bijvoorbeeld hiermee uitgevoerd worden:

  • Statische code analyse
  • Security
  • Links naar artefacten
  • Unit Testen
  • Build status

Al deze informatie is eenvoudig in het Bitbucket dashboard te bekijken en of op te vragen.

De PR maakt het mogelijk om met alle relevante gebruikers code te reviewen en door samenwerking tot een optimaal resultaat te komen.

5) Continuous Integration en Delivery

Doordat repository managers zoals Bitbucket interfaces met Jira en build tools zoals Atlassian Bamboo of Jenkins kunnen wijzigingen automatisch gebouwd en getest worden. De resultaten worden automatisch gecommuniceerd naar bijvoorbeeld Jira en Bitbucket waardoor de status van wijzigingen automatisch weergegeven wordt. Met Automation kunnen hier weer verder, automatische, acties op ondernomen worden. In het Bitbucket dashboard wordt zo automatisch zichtbaar of de wijzigingen rijp zijn voor productie of niet.

Als de build eenmaal succesvol gebouwd, getest en de juiste kwaliteit heeft kan deze automatisch uitgegeven worden. Dit kan bijvoorbeeld naar een alpha, beta of productie omgeving zijn. Afhankelijk welke eisen worden gesteld en het gebruikte proces.

6) Meten is weten

Zodra het product in het veld staat en er problemen ontstaan is het van belang zo snel mogelijk tot de root cause of oplossing te komen. In de wereld waar (software) wijzigingen elkaar steeds sneller en vaker opvolgen is niet vaak niet eenvoudig om na te gaan wie, wat, waar en hoe de wijzigingen hebben plaatsgevonden.

Zonder juiste Change Management binnen DevOps is dit vaak een moeizaam proces. Klanten nemen contact op, Informatie moet uit de error reports gehaald worden, bijbehorende code moet gevonden worden. Welke code zit er nu precies in het product?

Met Atlassian producten zoals OpsGenie en de integratie ervan met andere Atlassian producten worden shortcuts mogelijk gemaakt om snel tot de bron van de fout te komen. Atlassian biedt een infrastructuur om dit allemaal te faciliteren. Klanten kunnen on-line problem reports invoeren die proactief behandeld kunnen worden. Er is de mogelijkheid om kennisbank(en) op te zetten zodat klanten zelf al oplossingen kunnen toepassen. Bij registratie van klachten of problemen kan de ontwikkelafdeling direct inspelen en bij oplossingen kunnen klanten actief geïnformeerd worden of de mogelijke oplossing.

Hieronder een voorbeeld wat laat zien hoe problemen in de infrastructuur te relateren zijn aan wijzigingen in de code.

In OpsGenie kan men dan vervolgens een escalatieproces beschrijven om hier mee om te gaan.

7) Laagdrempelige communicatie

Om klanten proactief te informeren over de staat van de software is er StatusPage. Klanten of stakeholders kunnen zo zelf de status van het product controleren en het voorkomt onnodig contact met de service organisatie. Dezelfde klanten kunnen zich aanmelden om actief geïnformeerd te worden wanneer een oplossing voor een geregistreerd probleem gevonden is.

Om gebruikers, over de verschillende afdelingen heen, met elkaar te laten communiceren heeft Atlassian in haar producten een interface naar Slack. Het unieke van Slack is dat er eenvoudig groepen kunnen worden aangemaakt zodat op taakniveau groepen (automatisch) kunnen worden aangemaakt waar teams nauw samen kunnen werken om tot een oplossing te komen Met de eerder besproken Jira automation is het mogelijk om automatisch notificaties te maken en of de juiste mensen bij elkaar te zetten in een Slack groep.

Ik wil zelf aan de slag, waar kan ik DevOps best practices vinden?

Op dit punt komt de toegevoegde waarde van het partnership tussen TMC ALM en Atlassian sterk naar voren. Als TMC ALM hebben we ruime ervaring met de Atlassian toolset en het uitvoeren van DevOps best practices. We kunnen u helpen bij DevOps implementaties, vraagstukken en er voor zorgen dat uw software ontwikkeling efficiënter plaatsvindt. Zoals u in deze blog heeft kunnen lezen heeft Atlassian state of the art tooling om met DevOps te kunnen werken. Daarnaast hebben ze een uitgebreide collectie aan best-practices, templates en runbooks opgezet om gebruikers die met DevOps aan de slag willen te ondersteunen. Deze startpagina, https://www.atlassian.com/devops/best-practices, is een bron van informatie om met dit onderwerp aan de slag te gaan. Veel van deze templates zitten out of the box in de Atlassian producten zodat gebruikers een vliegende start kunnen maken. De producten van Atlassian kunnen echter zo aangepast worden dat je je eigen manier van werken, workflow en templates kunt toevoegen. Bij dit laatste kan TMC ALM u ondersteunen.

Geïnteresseerd in wat we voor u kunnen betekenen? Neem geheel vrijblijvend contact op met TMC ALM.