- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Continuous Delivery van SpiralTrain leren de deelnemers hoe een continuous delivery proces voor het automatisch testen en deployen van software applicaties kan worden ingericht met Docker en Jenkins. Door middel van Continuous Delivery kan de kwaliteit van software worden verbeterd en de doorlooptijd worden verkort.
In de cursus Continuous Delivery worden de principes van Continuous Delivery uitgebreid toegelicht. Tijdens deze cursus leer je hoe software frequent in korte cycli kan worden gereleased, getest en via een geautomatiseerde deployment pipeline in gebruik kan worden gesteld. Deze aanpak helpt teams om sneller en betrouwbaarder software te leveren.
Vervolgens wordt het gebruik van Docker Containers besproken, een essentieel onderdeel voor het snel opzetten van een ingerichte omgeving. De werking, architectuur en configuratie van Docker Containers komen uitgebreid aan de orde. Het begrijpen van Docker is cruciaal voor een succesvolle implementatie van Continuous Delivery.
Ook is er aandacht voor de tool Jenkins, die een belangrijke rol speelt in het automatiseren van het bouwen van software. Hierbij wordt het opzetten van een Jenkins Continuous Integration Pipeline behandeld en wordt ingegaan op de inhoud en structuur van het Jenkinsfile. Jenkins is een krachtige tool voor Continuous Delivery en helpt teams om hun processen te stroomlijnen.
Daarnaast is het automatiseren van Acceptance Tests met Docker en Cucumber een belangrijk onderdeel van het cursusprogramma. Er is aandacht voor de verschillende omgevingen in een Continuous Delivery proces en de tests die daarin worden uitgevoerd. Dit zorgt ervoor dat de software aan de kwaliteitsnormen voldoet voordat deze naar productie gaat.
Vervolgens komen applicatie- en infrastructuurconfiguratie aan bod, evenals het gebruik van de configuratietaal Ansible met Playbooks, Handlers en Variables. Effectief configuration management is essentieel voor het succes van Continuous Delivery.
Tenslotte wordt er ingegaan op een aantal geavanceerde aspecten van Continuous Delivery. Dit omvat onderwerpen zoals het omgaan met veranderingen in de database, het parallelliseren van pipelines en het gebruik van shared libraries. Door deze geavanceerde technieken te beheersen, kun je de efficiëntie van je Continuous Delivery processen verder verbeteren.
Voor meer informatie over Continuous Delivery en de gebruikte tools, kun je de uitgebreide documentatie van Jenkins bekijken. Daarnaast is er een interessante cursus over Test Driven Development met JUnit die je kan helpen bij het verbeteren van je ontwikkelprocessen.
De cursus Continuous Delivery is bestemd voor developers, testers en administrators die betrokken zijn bij software ontwikkeling en die continuous delivery willen implementeren.
Algemene kennis en vertrouwdheid met software ontwikkeling, programmeren, testen en installeren is vereist om aan de cursus Continuous Delivery te kunnen deelnemen.
De theorie wordt behandeld aan de hand van presentaties. De concepten worden toegelicht met demo's. De theorie wordt afgewisseld met oefeningen. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Continuous Delivery.
Module 1 : Intro Continuous Delivery |
Module 2 : Docker Essentials |
Module 3 : Docker Applications |
|
What is Continuous Delivery? Traditional Delivery Process Shortcomings Traditional Delivery Benefits of Continuous Delivery Fast Delivery and Feedback Cycle Low Risk Releases Automated Deployment Pipeline Continuous Integration Automated Acceptance Testing Configuration Management DevOps Culture |
Virtualization and Containerization Disadvantages of Virtualization Benefits of Containers Isolation and Portability Installing Docker Docker Architecture Docker Components Docker Client Docker Server Docker Daemon Docker REST API |
Building Docker Images Docker Commit Dockerfile Environment Variables Running Docker Containers Docker Container States Docker Networking Container Networks Exposing Container Ports Automatic Port Assignment Using Docker Volumes |
Module 4 : Jenkins Essentials |
Module 5 : CI Pipeline |
Module 6 : Acceptance Testing |
|
What is Jenkins? Extensibility by Plugins Jenkins Installation Installing on Docker Jenkins Pipeline Master and Slaves Vertical and Horizontal Scaling Test and Production Instances Configuring Agents Jenkins Swarm Agents Custom Jenkins Images |
What is a Pipeline? Multi Stage Application Sections, Directives and Steps Commit Pipeline Pushing to GitHub Compile Stage Unit Test Stage Jenkinsfile Code Coverage and CheckStyle Scheduled Builds Development Workflows |
Acceptance Testing Intro? Docker Registry Artifact Repository Docker Hub Private Docker Registry Domain Certificates Building Images Pushing and Pulling Images Acceptance Test in Pipeline Acceptance Testing Stage Running Acceptance Tests |
Module 7 : Configuration Management |
Module 8 : CI Pipeline |
Module 9 : Docker Swarm |
|
Application Configuration Infrastructure Configuration Automation and Version Control Configuration Languages Chef, Puppet and Ansible Agent Based Using Ansible Creating Inventory Playbooks Handlers and Variables Deployment with Ansible Working with Redis Ansible and Docker |
Types of Environment Production Environment Staging Environment Test Environment Development Environment Non Functional Testing Performance Testing Load and Stress Testing Scalability Testing Security Testing Non Functional Challenges Application Versioning Complete Jenkins File |
Server Clustering Docker Swarm Intro Setting up a Swarm Adding Worker Nodes Deploying a Service Publishing Ports Rolling Updates Draining Nodes Multiple Manager Nodes Scheduling Strategy Docker Stack Specifying docker-compose.yml Kubernetes |
Module 10 : Advanced Continuous Delivery |
Managing Database Changes Understanding Schema Updates Database Migrations Using Flyway Configuring Flyway SQL Migration Script Backwards Compatibility Changes Non-Backwards Compatibility Changes Adding and Dropping Columns Changing Code Merging Data Avoiding Shared Database Parallelizing Pipelines Shared Libraries |