DevOps

DevOps helpt bij het sneller naar de markt brengen van software, zonder verlies van kwaliteit.

  • Wat is DevOps?
  • Wat voor tools zijn er?
  • Wat zijn de voordelen?

Wat is DevOps?

DevOps staat letterlijk voor het samenbrengen en optimaliseren van ontwikkeling (Dev) en operaties (Ops). Dit procesmodel beoogt ontwikkeling, kwaliteitsborging en exploitatie samen te laten smelten tot een continue eenheid van processen. Deze methodologie is daarom een essentiële uitbreiding van de agile ontwikkeling systematiek en continuous delivery.

DevOps is tegenwoordig een van de meest besproken onderwerpen in de agile softwareontwikkelingswereld. Veel marktleiders gebruiken DevOps om softwareontwikkeling en QA-processen te optimaliseren. Het gebruik van DevOps verhoogt de prestaties, het zakelijk succes en het concurrentievermogen van uw bedrijf. Technosoft heeft specialisten op dit gebied, die u kunnen ondersteunen bij het optimaliseren van uw DevOps. Als eerste stap kan advies van een Technosoft DevOps-ingenieur uitkomst bieden.

Een belangrijke pijler van DevOps is CI/CD

Continuous Integration (CI) en Continuous Delivery (CD)

Dit proces doorloopt een continue proces van stappen, waardoor de kwaliteit van de opgeleverde producten continue wordt verbeterd voor oplevering.

  1. Softwareontwikkelaars schrijven meerdere keren per dag code in kleine blokjes zodat het gemakkelijk kan worden getest.
  2. Continu geautomatiseerd testen en integreren. Een kwaliteitsbewakingsteam bepaalt hoeveel code moet worden getest met automatiseringstools zoals Selenium, Ranorex, UFT, etc. De integratie (Continuous Integration) gebeurt met behulp van specifieke tools zoals bijvoorbeeld Jenkins, GitLab CI, Bamboo en TeamCity.
  3. CD – Continuous Deployment. In dit stadium wordt de geteste code opgeleverd om in productie te gaan. Ook hierbij kan automatisering van deze processen een rol spelen. Er zijn verschillende geautomatiseerde tools die ontwikkelaars kunnen gebruiken voor nieuwe releases, zoals Chef, Puppet, Azure Resource Manager en Google Cloud Deployment Manager.
  4. Continuous Feedback. De laatste fase van de DevOps-levenscyclus is de algehele bewaking van het proces en de terugkoppeling naar de softwareontwikkeling. Problemen kunnen worden geïdentificeerd en de feedback van het team en de gebruikers wordt geanalyseerd om eventuele onjuistheden te melden. Door dit terug te koppelen aan de ontwikkelaars, kan het product continue verbeterd worden.

Door dit proces continue te doorlopen en voor een groot deel te automatiseren, is het dus mogelijk om sneller en te werken en de kwaliteit van de applicatie te verbeteren.

 

Welke tools gebruiken wij bij het creëren van een geautomatiseerde release-pijplijn

  • Als Continuous Integration tool wordt de open source automatiseringstool Jenkins voornamelijk gebruikt. Met behulp hiervan wordt de integratie van veranderingen in een softwareontwikkelingsproject vereenvoudigd.
  • Docker vereenvoudigt de levering van applicaties met behulp van containers. Containers, die alle benodigde pakketten bevatten, kunnen gemakkelijk als bestanden worden getransporteerd en geïnstalleerd. Containers zorgen voor de scheiding en het beheer van bronnen die op een computer worden gebruikt, bijv. Code, runtime-modules, systeemtools, systeembibliotheken, oftewel alles wat op een computer kan worden geïnstalleerd.
  • Kubernetes. Deze term komt oorspronkelijk uit het Grieks en betekent zoiets als “stuurman”. Kubernetes regelt de administratie, monitoring en communicatie tussen individuele containers, van waaruit bijvoorbeeld een cloud-applicatie wordt opgezet, een nieuwe versie wordt geïnstalleerd en waarmee hun functionele afhankelijkheden worden gestuurd.

Welke voordelen kan DevOps u opleveren?

  • Snelheid en kwaliteit. Door continue levering (Continuous Integration) van software toe te passen wordt de oplevering van software versneld. Door het snelle geven van feedback ontdekken ontwikkelaars fouten in het systeem in een vroeg stadium, waardoor ze deze sneller kunnen oplossen. Hierdoor kan het team zich focussen op de kwaliteit van het product en kunnen een aantal van deze processen worden geautomatiseerd.
  • Zakelijke voordelen. Met DevOps kan een team sneller reageren op veranderingen in de markt, nieuwe functies ontwikkelen en bestaande functies verbeteren. Dit versnelt de time-to-market en verbetert de waardering van de oplossingen.
  • Beter voor uw organisatie. DevOps is vooral gericht op het stimuleren van samenwerking tussen verschillende mensen en groepen binnen organisaties. DevOps-principes en -praktijken leiden tot betere communicatie tussen teamleden, evenals tot verhoogde productiviteit en flexibiliteit. Teams die DevOps gebruiken, blijken productiever en multidisciplinair te zijn.
  • Snellere time-to-market
  • Continue verbetering van kwaliteit
  • Automatisering van processen

Nog meer ondersteuning bij de kwaliteit van uw software

Technosoft - Bas Strijker
Bas Strijker – manager operations Technosoft

“Wij hebben altijd al voorop gelopen bij het implementeren en integreren van DevOps in onze softwareontwikkelings- en kwaliteitsborgingsprocessen. Wij delen onze kennis en ervaring graag met onze klanten en andere geïnteresseerden. Onze DevOps-ingenieurs hebben een goede reputatie opgebouwd en geven regelmatig presentaties op congressen:

‘Spread the word!’

Wat doet een DevOps-ingenieur in de praktijk?

  • Inventariseren van de bestaande automatiseringstools en programmeertalen die al in de ontwikkeling worden gebruikt.
  • Introductie en automatisering van workflows voor Continuous Delivery en Integration, rekening houdend met de bestaande tools en programmeertalen.
  • Opstellen van specificaties en documentatie.
  • Infrastructuurbeheer.
  • Scripting, codering en deelname aan productontwikkeling.
  • DevOps-ingenieur moet tegelijkertijd een teamspeler en teamleider zijn, aangezien de  DevOps-cultuur is gebaseerd op communicatie en samenwerking.

Wat zijn de vereisten voor technosoft DevOps-ingenieurs?

  • Een gedegen technische achtergrond.
  • Ervaring met DevOps-gerelateerde automatiseringstools.
  • Uitstekende programmeervaardigheden.
  • Uitgebreide kennis van databasesystemen.
  • Goede sociale en communicatieve vaardigheden