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.