Home Programmeur inhuren DevOps team aan de slag bij groupXS

DevOps team aan de slag bij groupXS

Over het verkorten van de time-to-market door het inzetten van DevOps en een DevOps team.

  • Aantoonbaar betere broncodekwaliteit
  • Naadloze integratie van componenten en containers
  • Verbeterde testdekking
  • Procesautomatisering tot in het kleinste detail

  • Tobias Hertkorn
    Algemeen directeur
  • Technologie
    Kubernets, Docker, Rancher, Ansible, Azure, Jenkins, Selenium

"Groene projecten"

Als toonaangevende leverancier van oplossingen in de duurzame energie sector biedt groupXS professionele oplossingen voor data-acquisitie en digitalisering. Deze worden gebruikt in bedrijven van verschillende groottes, van het MKB tot grote bedrijven. Een uitdagende situatie op het gebied van DevOps!

Om beter om te kunnen gaan met de snelle dynamiek in de technologische ontwikkeling ​​en de groei van de activiteiten te faciliteren, heeft groupXS besloten om de ontwikkelings- en QA-processen van de eigen ontwikkelingsafdeling verder te professionaliseren. Aangezien de softwareontwikkeling over meerdere locaties is verspreid, was de eerste stap het verbeteren en optimaliseren van de implementatieprocessen voor nieuwe releases van de door groupXS ontwikkelde applicaties met behulp van een DevOps team.

GroupXS had al eerder ervaring opgedaan met Addcode op het gebied van kwaliteitsborging en testautomatisering en een introductie van de infrastructuur en inzicht in de organisatie was dus niet nodig. Na een paar meetings tussen de projectdeelnemers werd dan ook besloten om het pilotproject "DevOps Integration" samen aan te pakken. Op basis hiervan heeft Addcode een ervaren DevOps engineer voorgesteld om groupXS te ondersteunen bij deze nieuwe uitdaging, waardoor een professioneel DevOps team ontstond.

De uitdagingen

Een DevOps team kan ondersteuning bieden aan diverse taken van IT-bedrijven. In het geval van groupXS betekende dit in het begin het oplossen van diverse urgente uitdagingen:

  • De integratie van nieuwe ontwikkelaars in het lopende softwareontwikkelingsproject verliep traag.
  • De communicatie-inspanning tussen nieuwe en bestaande ontwikkelaars in een doorlopend softwareontwikkelingsproject nam te veel tijd in beslag.
  • De processen rondom de ontwikkeling van nieuwe functionaliteiten waren te lang (Continuous integration, ofwel een lange continue integratie).
  • Nieuwe releases werden langzaam voorbereid en uitgeleverd (Continuous delivery).
  • Het ontwikkelteam moest klantspecifieke wensen grotendeels handmatig aanpassen.
  • De kwaliteit van de code was laag vanwege het gebrek aan unit- en integratietests.

Toolstack

DevOps is gebaseerd op een open en transparante cultuur van samenwerking, wat gelijk staat aan het gebruik van "Open Source" principes en tools voor software ontwikkeling. DevOps teams gebruiken tools in de open source omgeving om voor verbeterde samenwerking. In dit project lag de focus dan ook op een “volledig open source toolstack”, wat de samenwerking bevordert. Om professionele verwerking te garanderen werden o.a. de volgende reeds gebruikte en nieuwe software door het DevOps team gebruikt:

Toolstack DevOps

Dit proces wordt meestal handmatig door één medewerkers uitgevoerd. Het is ons echter gelukt om het proces te automatiseren tot een uitvoerbaar script. Dit resulteert in onder andere een continu proces, hogere kwaliteit en geautomatiseerde testen, waaronder continue integratie.

Een multistage-build met Docker

Hoe zit een multistage-build met Docker in elkaar en welke stappen zijn er nodig?

  1. De ontwikkelaar uploadt de broncode naar Git.
  2. CI-Tool start (Jenkins / GitHub-acties) voor frontend / backend / database
  3. Lint
  4. Compile
  5. Unit test
  6. Docker Image opstellen
  7. Upload de Docker-afbeelding naar de repository
  8. Docker-images worden geleverd op Kubernetes-clusters (één image per frontend / backend / DB)
  9. UI-tests bevestigen de kwaliteit van de code en rapporteren succes aan de ontwikkelaar of herstart het proces met verwijzing naar Git.
  10. worden geleverd op Kubernetes-clusters (één image per frontend / backend / DB)

Dit proces wordt meestal handmatig door één medewerkers uitgevoerd. Het is ons echter gelukt om het proces te automatiseren tot een uitvoerbaar script.

Hoe ziet een DevOps-proces eruit?

DevOps is een proces dat stevig verankerd is in agile development. Aangezien een van de agile principes "vroege en continue levering van waardevolle software" is, is CI / CD (Continuous Integration / Continuous Deployment) cruciaal voor DevOps teams. Een belangrijk aspect hiervan is de (continue) feedbackcyclus die een DevOps-proces nodig heeft, zodat de aangeleverde code wordt vrijgegeven en getest. Indien nodig kan ook gerapporteerd worden aan het ontwikkelteam voor troubleshooting. Daarnaast vindt constante monitoring plaats, rekening houdend met prestaties, infrastructuurcondities en mogelijke risico's. Dit zorgt voor een continue implementatie binnen de software industrie, hoogwaardige software en een uniforme klantgerichtheid.

Het multidisciplinaire team zorgt dus voor:

  • Continue integratie
  • Continuous delivery
  • Culturele verschuiving als geïntegreerd onderdeel
  • Innovatieve producten

DevOps lifecycle

 

 

DevOps en containers

DevOps versnelt het ontwikkelingsproces van concept tot implementatie en release. Dit komt doordat DevOps is gebaseerd op de automatisering van routinetaken en standaardisatie van omgevingen gedurende de gehele levenscyclus van de applicatie. Zogeheten Containers maken het creëren van gestandaardiseerde omgevingen (Kubernetes) mogelijk. Kubernets ondersteunen geïntegreerde automatisering en elke vorm van infrastructuur.

De beslissing om Kubernetes in het DevOps team project te gebruiken was dus een vanzelfsprekendheid. Mede omdat ontwikkelteams vaak een microservice-architectuur gebruiken om kleinere functionele gebieden en bijbehorende API's te ontwikkelen en aan de services te koppelen. Om hoge uitgaven voor het beheer van de services en API's te vermijden, vertrouwt men op clustering en containers. Hierdoor kunnen processen worden versneld en omgevingen eenvoudig en flexibel worden geschaald.

Wat hebben we met dit project bereikt?

Het belangrijkste doel van een DevOps-project is dat alle projectdeelnemers elkaar begrijpen, elkaar ondersteunen en een bijdragen leveren aan het voorzien van zoveel mogelijk kennis over het project. Kennis moet worden gedeeld en mag niet alleen beschikbaar zijn op gespecialiseerde (IT)afdelingen van een bedrijf. Het moet open en transparant beschikbaar zijn voor alle stakeholders. Door het creëren van een professionele projectstructuur door het DevOps team kunnen binnen enkele maanden de volgende voordelen worden behaald:

  • Snellere time-to-market dankzij verkorting Release cycli
  • Aantoonbaar betere broncodekwaliteit
  • Naadloze integratie van componenten en containers
  • Verbeterde testdekking
  • Herbruikbare containers
  • Procesautomatisering tot in het kleinste detail
In cijfers uitgedrukt:
  • Looptijd - 3 maanden
  • Procesversnelling - 60%
  • Multistage build - 1 stap in plaats van 14 stappen
  • Uitgaven aan gereedschap - € 0,-

Tobias Hertkorn - GroupXSTobias Hertkorn, algemeen directeur van groupXS zegt er het volgende over:

“Door de steeds vergaande digitalisering van de serviceprocessen in bedrijven en het continue vertrouwen van onze klanten is ons team het afgelopen jaar verdubbeld en sindsdien blijven groeien. Dankzij de moderne tools voor gedistribueerd teamwork is samenwerken met Addcode verfrissend eenvoudig gebleken. Ondanks het feit dat er op afstand gewerkt moet worden, hebben we optimaal kunnen profiteren van deze samenwerking"

Meer weten over DevOps?

Wanneer u meer wilt weten over DevOps en wat dit voor uw organisatie kan betekenen, kunt u direct een afspraak plannen voor een telefonisch onderhoud of een (digitale) meeting.