Einführung in Continuous Delivery
Classroom Schulung | Deutsch | Anspruch
Schulungsdauer: 2 Tage
Ziele
Das Seminar legt den Grundstein, um den Prozess der Softwareauslieferung zu automatisieren und somit reproduzierbar und effizient zu gestalten. Hierzu wird auf das Konzept der Delivery Pipeline eingegangen, die sich schrittweise einer Produktionsumgebung annähert.
Seminar Teilnehmer lernen relevante Technologien, Frameworks und Techniken kennen, die zum Aufbau solch einer Pipeline nötig sind. Ein Praxisbeisipel (Java + Python) verdeutlicht die Prinzipien für die Einrichtung einer solchen Pipeline. Dazu wird dieses Beispiel via Gitlab verwaltet und integriert und in die Cloud-Plattform Amazon Web Services (Amazon Elastic Kubernetes Service und AWS Lambda) deployed. Die vorgestellten Prozesse und Konzepte der Continuous Delivery sind auf andere Implementierungsplatformen ebenso anwendbar.
- Überblick über und Motivation für Continuous Delivery
- Einbettung in das DevOps-Paradigma und verwandte Konzepte (Continuous Integration, Continuous Deployment, Continuous Delivery)
- Automatische Bereitstellung von Infrastruktur mit Docker und Terraform
- Test-Pyramide (Unit, Integration, GUI Tests mit Selenium)
- Deployment der Software in die vorgesehene Umgebung (Staging, Production)
- Versionierung, Rollout und Rollback
- Produktionsbetrieb und Monitoring der Anwendung
Zielgruppe
- Software-Entwickler
- Software-Architekten
Voraussetzungen
Kenntnisse in Programmierung mit Java und Python wünschenswert.
Agenda
Tag 1
Einführung
- Continuous Delivery Motivation
- DevOps Paradigma und Einbettung von Continuous Delivery
- Continuous Integration, Continuous Delivery, Continuous Deployment
- Geeignete Software Architektur für Automatisierung (12-Factor-Apps)
Grundlagen - Technologien und Frameworks
- Docker
- (Kubernetes)
- CI Anbieter (Gitlab, Circle, Drone, Travis, etc.)
- Einfache (Yaml) Konfiguration
- Stages, Jobs
- Runner
Hands-On (Praxisbeispiel)
- Deployment Pipeline
- Build
- Test (Unit, Integration)
- Packaging der Applikation in ein Docker image und hochladen in die Amazon Elastic Container Registry (ECR)
Tag 2
Infrastructure
- Infrastructure as Code (IaC)
Hands-On (Praxisbeispiel)
- Vorbereiten der Infrastruktur (Buckets, SQL DB, Kubernetes Cluster, etc.)
- Staging Deployment
- Tests mit Selenium in der Pipeline
- Deploy Production
- Monitoring von Cloud-Anwendungen
- Update, Rollout, Rollback von Anwendungen
Hands-On (Praxisbeispiel)
- Rollout/Rollback/Teardown
- Monitoring
Abgrenzung zu anderen Themengebieten
Automatisiertes Testen von Applikationen ist ein Enabler für Continuous Delivery, der in dieser Schulung nicht fehlen darf. Es werden verschieden Arten von Tests (Unit, Integration, Acceptance, etc) automatisiert innerhalb der Deployment Pipeline durchlaufen. Der Fokus liegt klar auf der Automatisierung der Tests. Allgemeine Methoden des Testens und der Testautomatisierung werden als bekannt vorausgesetzt.
Ziele
Das Seminar legt den Grundstein, um den Prozess der Softwareauslieferung zu automatisieren und somit reproduzierbar und effizient zu gestalten. Hierzu wird auf das Konzept der Delivery Pipeline eingegangen, die sich schrittweise einer Produktionsumgebung annähert.
Seminar Teilnehmer lernen relevante Technologien, Frameworks und Techniken kennen, die zum Aufbau solch einer Pipeline nötig sind. Ein Praxisbeisipel (Java + Python) verdeutlicht die Prinzipien für die Einrichtung einer solchen Pipeline. Dazu wird dieses Beispiel via Gitlab verwaltet und integriert und in die Cloud-Plattform Amazon Web Services (Amazon Elastic Kubernetes Service und AWS Lambda) deployed. Die vorgestellten Prozesse und Konzepte der Continuous Delivery sind auf andere Implementierungsplatformen ebenso anwendbar.
- Überblick über und Motivation für Continuous Delivery
- Einbettung in das DevOps-Paradigma und verwandte Konzepte (Continuous Integration, Continuous Deployment, Continuous Delivery)
- Automatische Bereitstellung von Infrastruktur mit Docker und Terraform
- Test-Pyramide (Unit, Integration, GUI Tests mit Selenium)
- Deployment der Software in die vorgesehene Umgebung (Staging, Production)
- Versionierung, Rollout und Rollback
- Produktionsbetrieb und Monitoring der Anwendung
Zielgruppe
- Software-Entwickler
- Software-Architekten
Voraussetzungen
Kenntnisse in Programmierung mit Java und Python wünschenswert.
Agenda
Tag 1
Einführung
- Continuous Delivery Motivation
- DevOps Paradigma und Einbettung von Continuous Delivery
- Continuous Integration, Continuous Delivery, Continuous Deployment
- Geeignete Software Architektur für Automatisierung (12-Factor-Apps)
Grundlagen - Technologien und Frameworks
- Docker
- (Kubernetes)
- CI Anbieter (Gitlab, Circle, Drone, Travis, etc.)
- Einfache (Yaml) Konfiguration
- Stages, Jobs
- Runner
Hands-On (Praxisbeispiel)
- Deployment Pipeline
- Build
- Test (Unit, Integration)
- Packaging der Applikation in ein Docker image und hochladen in die Amazon Elastic Container Registry (ECR)
Tag 2
Infrastructure
- Infrastructure as Code (IaC)
Hands-On (Praxisbeispiel)
- Vorbereiten der Infrastruktur (Buckets, SQL DB, Kubernetes Cluster, etc.)
- Staging Deployment
- Tests mit Selenium in der Pipeline
- Deploy Production
- Monitoring von Cloud-Anwendungen
- Update, Rollout, Rollback von Anwendungen
Hands-On (Praxisbeispiel)
- Rollout/Rollback/Teardown
- Monitoring
Abgrenzung zu anderen Themengebieten
Automatisiertes Testen von Applikationen ist ein Enabler für Continuous Delivery, der in dieser Schulung nicht fehlen darf. Es werden verschieden Arten von Tests (Unit, Integration, Acceptance, etc) automatisiert innerhalb der Deployment Pipeline durchlaufen. Der Fokus liegt klar auf der Automatisierung der Tests. Allgemeine Methoden des Testens und der Testautomatisierung werden als bekannt vorausgesetzt.