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. Addcode heeft specialisten op dit gebied, die u kunnen ondersteunen bij het optimaliseren van uw DevOps. Als eerste stap kan advies van een Addcode DevOps-ingenieur uitkomst bieden.
Welke voordelen kan DevOps u opleveren?
Wanneer u geen gebruikmaakt van DevOps, krijgt u te maken met vertraagde time-to-market, kwaliteitsproblemen en moeilijkheden in wendbaarheid en communicatie tussen ontwikkelteams.
De inzet van DevOps voorkomt deze problemen. De voordelen die dit u oplevert zijn:
- 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.
Continuous Integration (CI) en Continuous Delivery (CD)
Een belangrijke pijler van DevOps die onze experts hanteren is CI/CD. Dit proces doorloopt een continue proces van stappen, waardoor de kwaliteit van de opgeleverde producten continue wordt verbeterd voor oplevering. Development en operations aan de hand van CI/CD ziet er als volgt uit:
- Softwareontwikkelaars schrijven meerdere keren per dag code in kleine blokjes zodat het gemakkelijk kan worden getest.
- 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 Jenkins, GitLab CI, Bamboo en TeamCity.
- 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.
- 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 door middel van testautomatisering en geautomatiseerde testen, is het mogelijk om sneller te werken en de kwaliteit van de applicatie te verbeteren. Dit gaat op basis van continue implementatie voor zowel oude als nieuwe software.
Welke tools gebruiken wij bij het creëren van een geautomatiseerde release-pijplijn?
Bij Addcode maken we gebruik van een aantal tools die de DevOp van uw software ontwikkeling efficiënt automatiseren, leveren en monitoren. Voorbeelden hiervan zijn:
- 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.
Continue integratie van de verschillende disciplines in plaats van geïsoleerde disciplines, zorgen voor een verbeterde samenwerking en uiteindelijk efficiënte en kwalitatieve softwareontwikkeling.