- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
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.
In de cursus Continuous Delivery 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 een continuous delivery proces wordt software frequent in korte cycles gereleased en getest en wordt de software via een geautomatiseerde deployment pipeline in gebruik gesteld.
In de cursus worden in de eerste plaats de principes van continuous delivery uitgelegd. Vervolgens wordt ingegaan op het gebruik van Docker Containers voor het snel in de lucht brengen van een ingerichte omgeving. De werking, architectuur en configuratie van Docker Containers komt uitgebreid aan de orde.
Ook is er aandacht voor de tool Jenkins voor het automatiseren van het bouwen van software. Hierbij komt het opzetten van een Jenkins Continuous Integration Pipeline aan de orde en wordt ingegaan op de inhoud en structuur van het Jenkinsfile.
Ook het automatiseren van Acceptance Tests met Docker en Cucumber is onderdeel van het cursus programma. Vervolgens komen Applicatie en Infrastructuur Configuratie en het gebruik van de configuratie taal Ansible met Playbooks, Handlers en Variables aan bod.
Ook is er aandacht voor de verschillende omgevingen in een Continuous Delivery proces en de tests die daarin worden gedaan.
Tenslotte wordt nog ingegaan op een aantal geavanceerde Continuous Delivery aspecten zoals het omgaan met veranderingen in de Database, het paralelliseren van pipelines en het gebruik van shared libraries.
Module 1 : Intro Continuous Delivery |
Module 2 : Docker Essentials |
Module 3 : Docker Applications |
What is Continuous Delivery? Traditional Delivery Process Development, QA and Operations 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 The Need for Docker 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 Running Services 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 Distributed Operations Jenkins Installation Installing on Docker Initial Configuration Jenkins Pipeline Master and Slaves Vertical and Horizontal Scaling Test and Production Instances Configuring Agents Permanent Docker Agents Jenkins Swarm Agents Custom Jenkins Images |
What is a Pipeline? Pipeline Structure Multi Stage Application Sections, Directives and Steps Commit Pipeline Pushing to GitHub Compile Stage Unit Test Stage Jenkinsfile Code Quality Stages Code Coverage and CheckStyle Scheduled Builds Development Workflows Non Technical Requirements |
Acceptance Testing Intro? Docker Registry Artifact Repository Docker Hub Private Docker Registry Domain Certificates Access Restriction Building Images Pushing and Pulling Images Acceptance Test in Pipeline Acceptance Testing Stage Docket Compose Scaling Services Running Acceptance Tests |
Module 7 : Configuration Management |
Module 8 : CI Pipeline |
Module 9 : Docker Swarm |
Application Configuration Infrastructure Configuration Automation and Version Control Incremental Changes Configuration Languages Chef, Puppet and Ansible Agent Based Installing Ansible 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 Securing Environments Non Functional Testing Performance Testing Load Testing 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 Scaling a Service Publishing Ports Rolling Updates Draining Nodes Multiple Manager Nodes Scheduling Strategy Docker Stack Specifying docker-compose.yml Kubernetes Scaling Jenkins |
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 Columns Changing Code Merging Data Dropping Columns Avoiding Shared Database Preparing Test Data Parallelizing Pipelines Shared Libraries |
Al onze cursussen zijn klassikale cursussen waarbij de cursisten aan de hand van een ervaren trainer met diepgaande materie kennis door de stof worden geleid. Theorie wordt steeds afgewisseld met oefeningen.
We doen ook maatwerk en passen dan de cursusinhoud aan op uw wensen. Op verzoek gaan we ook in op uw praktijkcases.
De cursustijden zijn in pricipe van 9.30 tot 16.30. Maar we zijn hierin flexibel. Soms moeten mensen namelijk kinderen naar de opvang brengen of halen en komen andere tijden hun beter uit. In goed overleg kunnen we dan andere cursustijden afspreken.
Wij zorgen voor de computers waarop de cursus gehouden kan worden. Op deze computer is de voor de cursus benodigde software al geinstalleerd. U hoeft geen laptop mee te nemen om aan de cursus te kunnen deelnemen. Als u liever op uw eigen laptop werkt kunt u hem desgewenst meenemen. De benodigde software wordt dan aan het begin van de cursus geinstalleerd.
Onze cursussen worden over het algemeen gegeven met Open Source software zoals Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda en Netbeans. Het digitale cursusmateriaal krijgt u na de cursus mee naar huis.
De cursus is inclusief lunch die we in een restaurantje op loopafstand van het cursuslokaal gebruiken.
De cursussen worden op diverse plaatsen in het land gepland. Een cursus gaat op een locatie door als er zich minimaal 3 mensen voor die locatie inschrijven. Als er inschrijvingen voor verschillende locaties zijn gaat de cursus door op onze hoofdlocatie is Houten net onder Utrecht. Een cursus op onze hoofdlocatie gaat ook door bij 2 inschrijvingen en regelmatig ook bij 1 inschrijving. Overigens doen we ook cursussen op de locatie van de klant als men daar prijs op stelt.
De intellectuele eigendomsrechten van de gepubliceerde cursus inhoud, ook wel aangeduid als infosheet, behoren toe aan SpiralTrain. Het is niet toegestaan de cursusinformatie, de infosheet, te publiceren in schiftelijke dan wel digitale vorm zonder de uitdrukkelijke toestemming van SpiralTrain. Onder de cursus inhoud dient te worden verstaan de beschrijving van de cursus inhoud in zinnen alsmede de indeling van de cursus in modules en onderwerpen in de modules.