Azure Container Apps mit Terraform und Dapr
Zielgruppe:
- Entwickler mit Erfahrung in C# und ASP.NET
- Vertraut mit der Entwicklung von APIs und Cloud-Technologien
- Voraussetzungen: Azure-Konto, Azure DevOps Account, Möglichkeit Ressourcen zu erstellen
Ziele der Schulung:
- Azure Container Apps kennenlernen und in Azure bereitstellen
- Infrastruktur mit Terraform definieren und Ressourcen automatisch bereitstellen
- Dapr in Azure Container Apps integrieren, um Microservices zu realisieren
- Praktische Erfahrung durch die Implementierung einer Lösung im Team
Teil 1: Theorie – Einführung und Konzepte
1. Überblick über Azure Container Apps
- Was sind Azure Container Apps?
- Vorteile von Azure Container Apps gegenüber anderen Containerlösungen (wie Kubernetes)
- Architektur und Komponenten (Container, Umgebungen, Dienste)
- Automatische Skalierung, Integrationen und Sicherheitsfeatures
2. Einführung in Terraform
- Was ist Terraform und wie funktioniert es?
- Terraform-Grundlagen: Providers, Ressourcen, Module, Zustandsdateien
- Erstellen und Verwalten von Ressourcen in Azure mittels Terraform
- Terraform CLI und Azure Provider einrichten und konfigurieren
3. Einführung in Dapr
- Was ist Dapr (Distributed Application Runtime) und warum ist es nützlich für Cloud-native Anwendungen?
- Dapr-Komponenten: Service Invocation, State Management, Pub/Sub, Bindings
- Wie Dapr die Kommunikation zwischen Microservices vereinfacht
- Integration von Dapr in Azure Container Apps
4. Kombination der Technologien
- Nutzung von Dapr in einer Microservice-Architektur
- Best Practices für die Erstellung von skalierbaren Microservices mit Dapr in Azure Container Apps
- Überblick über das gemeinsame Setup von Terraform, Dapr und Azure Container Apps in einer realen Anwendung
Teil 2: Praktische Trainingseinheit – Umsetzung
1. Projektvorstellung und Setup
- Ziel: Die Teilnehmer werden in Gruppen (max. 5 Personen) ein Beispielprojekt gemeinsam umsetzen, das die Integration von Azure Container Apps, Terraform und Dapr umfasst.
- Beispielprojekt: Bereitstellung einer skalierbaren Microservice-Anwendung, z. B. ein Task-Management-System oder eine einfache REST-API, die Dapr für die Microservice-Kommunikation nutzt.
- Schritt-für-Schritt-Anleitung:
- Initialisierung eines Terraform-Projekts und Azure Container Apps Setup
- Definition der benötigten Azure-Ressourcen mit Terraform (Resource Group, Container Apps Umgebung)
- Erstellen einer einfachen REST API in ASP.NET Core (oder ein einfaches Beispiel aus C#)
- Integration von Dapr-Komponenten (State Store, Pub/Sub oder Service Invocation)
2. Ressourcen bereitstellen mit Terraform
- Bereitstellung von Ressourcen (Container Apps, App Environments, Secrets) über Terraform
- Automatisierung der Bereitstellung durch Terraform-Commands (init, plan, apply)
- Fehlerbehebung und Troubleshooting während der Bereitstellung
- Diskussion und Klärung von möglichen Problemen
3. Dapr-Integration in der API
- Konfiguration der Dapr-Komponenten (State Store, Pub/Sub, Service Invocation) in der API
- Implementierung einer einfachen Kommunikation zwischen mehreren Microservices via Dapr
- Durchführung von Tests und Sicherstellen der ordnungsgemäßen Funktionsweise der Anwendung in Azure
4. Nutzung von Azure DevOps für CI/CD
- Integration der Terraform-Konfiguration in eine Azure DevOps Pipeline
- Automatisierung des Deployments der Container Apps in Azure
- Beispiel für eine einfache Build- und Release-Pipeline für das Projekt
5. Skalierung und Überwachung
- Vertikale und horizontale Skalierung der Container Apps in Azure
- Monitoring und Logging der Anwendung mit Azure Monitor und Dapr-Logs
- Nutzung von Application Insights für das Troubleshooting
6. Zusammenarbeit und Teamarbeit
- Die Teilnehmer arbeiten in kleinen Teams zusammen, um die Aufgaben zu erledigen
- Gemeinsame Diskussion der Herausforderungen und Lösungen
- Feedback und Unterstützung durch den Trainer während der praktischen Übungen
Teil 3: Abschluss und Best Practices
1. Best Practices und Optimierung
- Sicherheitsaspekte beim Arbeiten mit Azure Container Apps (Secrets, Azure Key Vault)
- Empfehlungen zur Skalierung und Verwaltung von Cloud-nativen Anwendungen
- Automatisierung und Wiederverwendbarkeit von Terraform-Konfigurationen
- Best Practices für die Integration von Dapr in Microservices
2. Q&A und offene Diskussion
- Besprechung von aufgetretenen Fragen und Problemen während des praktischen Teils
- Diskussion über die nächsten Schritte für die Teilnehmer, um das Gelernte in realen Projekten anzuwenden
3. Weiterführende Ressourcen
- Dokumentationen und Tutorials für Azure Container Apps, Terraform und Dapr
- Community-Foren und weitere Lernressourcen
Technische Voraussetzungen:
- Azure-Konto für den Zugriff auf Azure Container Apps und Azure DevOps
- Terraform installiert
- Dapr CLI und Docker installiert (für Containerisierung und lokale Entwicklung)
- Visual Studio Code oder ein anderer geeigneter Editor
- Azure DevOps Account für CI/CD-Pipelines und Automatisierung
Hinweise:
- Interaktive Elemente: Der praktische Teil ist stark interaktiv, mit regelmäßigen Check-ins und Unterstützung durch den Trainer.
- Maximale Gruppengröße: 5 Personen, um sicherzustellen, dass jeder Teilnehmer genug individuelle Unterstützung und Feedback erhält.
- Demos und Beispiele: Alle praktischen Schritte werden live vorgeführt, und die Teilnehmer können die Beispiele in Echtzeit nachbauen und anpassen.