Continuous Delivery
Lesgeld
Intro cursus Continuous Delivery
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.
Docker Containers in Continuous Delivery
Vervolgens wordt het gebruik van Docker Containers
Intro cursus Continuous Delivery
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.
Docker Containers in Continuous Delivery
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.
Jenkins Essentials voor 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.
Acceptance Testing in Continuous Delivery
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.
Configuration Management met Ansible
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.
Advanced Topics in 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.
Doelgroep Cursus Continuous Delivery
De cursus Continuous Delivery is bestemd voor developers, testers en administrators die betrokken zijn bij software ontwikkeling en die continuous delivery willen implementeren.
Voorkennis Cursus Continuous Delivery
Algemene kennis en vertrouwdheid met software ontwikkeling, programmeren, testen en installeren is vereist om aan de cursus Continuous Delivery te kunnen deelnemen.
Uitvoering Cursus Continuous Delivery
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.
Certificaat Cursus Continuous Delivery
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Continuous Delivery.
Modules
Module 1 : Intro Continuous Delivery
- 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
Module 2 : Docker Essentials
- 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
Module 3 : Docker Applications
- 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
- 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
Module 5 : CI Pipeline
- 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
Module 6 : Acceptance Testing
- 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
- 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
Module 8 : CI Pipeline
- 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
Module 9 : Docker Swarm
- 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