DevOps bij groupXS

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

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

  • Tobias Hertkorn
    Algemeen directeur
  • Jaar
    2020
  • 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 faciliterwen, 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 DevOps.

GroupXS had al eerder ervaring opgedaan met Technosoft 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 Technosoft een ervaren DevOps engineer voorgesteld om groupXS te ondersteunen bij deze nieuwe uitdaging.

De uitdagingen

DevOps kan ondersteuning bieden voor 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).
  • 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. In dit project lag de focus dan ook volledig op een “volledig open source toolstack”. Om professionele verwerking te garanderen werden o.a. de volgende tools worden gebruikt:

Toolstack DevOps

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 ontwikkeling. 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.

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 ons 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 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 Technosoft 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.

Bekijk de ontwikkeling van Technosoft

1977 Vandaag
2001
Start verkoop AxisVM
1983
Registratie merk Technosoft
1984
Start ontwikkeling CAD software
2000
Overname activiteiten door Brunel en vestiging in Deventer
2007
Technosoft Duitsland
2009
Technosoft Moldavië
2015
Technosoft Roemenië
1993
Van DOS naar Windows platform
2014
Introductie 3Muri aardbevingssoftware + eerste KOMO certificering
2013
Start Business unit Quality Assurance & testing
2011
Overstap naar Eurocode software
2012
Start van nearshoring onder de naam In-shore
2006
Technosoft door Brunel verkocht door middel van een Management Buy Out
1998
Projectmanagement software
2016
Start relocation naar NL
2017
Samenvoegen van alle activiteiten onder de naam Technosoft
2018
Technosoft actief in 6 landen