DevOpsBeheertaken automatiseren met Azure DevOps

Van applicaties die belangrijke processen ondersteunen wordt verwacht dat deze altijd beschikbaar zijn. En up-2-date, zodat deze applicaties optimaal werken en de nieuwste functionaliteit bevatten. In het geval van een on-premise installatie betekent dat, dat er updates uitgevoerd moeten worden. Door het upgrade-proces te automatiseren met Azure DevOps heb ik bij een van mijn klanten tijd bespaard en mogelijke werkonderbrekingen voorkomen.

SonarQubeSonarQube

Bij deze klant wordt gebruik gemaakt van SonarQube (SQ), een opensource code analyse tool die developers helpt om code kwaliteit te verbeteren. Het controleert de code op bugs, code smells, en veiligheidsrisico’s.

Omdat er regelmatig updates uitkomen van SQ, is het upgraden een taak die regelmatig weer naar voren komt. Omdat het overdag uitvoeren van upgrades vanwege mogelijke werkonderbrekingen geen optie is, is besloten dit proces te automatiseren.

Analyse

De eerste stap is om uit te zoeken wat er allemaal nodig is voor de upgrade van SQ. De klant heeft ervoor gekozen om het op een Windows server te draaien met MSSQL als database engine. SQ zelf heeft Java runtime nodig en er wordt een set aan SQ plugins gebruikt die gewaarborgd moeten blijven. De gebruikers authentiseren via een LDAP koppeling, dus ook deze moet na de upgrade weer beschikbaar zijn. De laatste stap is de upgrade van de SQ database naar de laatste versie.

Beheertaken automatiseren met Azure DevOps

We hebben een Azure Devops Release pipeline opgezet met een TEST en PROD straat.  Bij het starten van de release, wordt om het gewenste versie nummer van SQ gevraagd. Hierna worden de volgende stappen ondernomen om SQ te installeren met behulp van deployment pool agents.

  1. Download de gewenste versie van de SQ website.
  2. Uninstall de SQ Windows service.
  3. Maak een back-up van de database in het geval van calamiteiten.
  4. Maak een back-up van de SQ plugins.
  5. Controleer of de Java Runtime geïnstalleerd is op de server. Installeer deze indien nodig.
  6. Pak de SQ zipfile uit.
  7. Kopieer de SQ plugins naar de plugin folder.
  8. Vul sonar.properties met de juiste waardes, zodat LDAP weer functioneert.
  9. Installeer de SQ Windows service en run deze onder de juiste credentials.
  10. Start de Windows service en upgrade de database
  11. Draai een smoke-test om te zien of de website weer draait. Tijdens de smokte-test wordt de SQ website opgeroepen en gezocht op een aantal woorden in de titel en inhoud van de pagina.

Zoals bovenstaande lijst laat zien, zijn er een hoop stappen die bij een handmatige upgrade mis kunnen gaan. Ook is het overdragen van de upgrade werkzaamheden een stuk eenvoudiger geworden.

Beheertaken automatiserenConclusie

Azure DevOps is prima te gebruiken om beheertaken te automatiseren. In dit geval is de release / upgrade van SonarQube in een continuous delivery jasje gegoten. Wilt u ook (laten) onderzoeken hoe we uw beheerlast kunnen verlagen, neem dan contact met ons op.

Peter Barendse, DevOps Consultant