18.02.2023 Handlungsziele 4. Automatisiert die Bereitstellung der Beispielanwendung mit Hilfe einer CI/CD Pipeline. 210 - Public Cloud für Anwendungen nutzen Infrastructure as Code Handlungsnotwendige Kenntnisse Ziele 4.1 Kennt ein Framework für die Automatisierung von Cloud Infrastrukturen (Infrastructure as Code) und kennt dessen praktische Anwendung für die Bereitstellung der Beispielanwendung • Die Lernenden kennen… • Ein Framework für die Automatisierung von Cloud Infrastrukturen 1 18.02.2023 Infrastructure as Code • Konfiguration und Verwaltung der Infrastruktur via Beschreibungsmodell Infrastructure as Code • Code statt langes Herumklicken im GUI • Sehr wichtig in DevOps • Globales IaC vs. App-IaC NOTIZEN • Infrastructure as Code (IaC) konfiguriert und verwaltet die Infrastruktur über ein Beschreibungsmodell. • Dabei geht es darum, die Infrastrukturkonfiguration und -bereitstellung genauso zu behandeln wie z.B. den Quellcode einer Anwendung. • IaC ist eine der wichtigsten DevOps-Praktiken, die bei der kontinuierlichen Bereitstellung eingesetzt werden. Es spart Zeit und vermeidet Fehler. • Es gibt dabei sowohl globales IaC, welches die Infrastruktur über alle Projekte definiert, als auch IaC auf dem Applikationslevel (also jede App bringt ihren eigenen Container, Netzwerke, etc.) Frameworks Azure Bicep Terraform • Nur für Azure Cloud • Multi-Cloud fähig (Azure, GCP, AWS etc.) Speichert Zustand der Infrastruktur in einer Datei – Zustandsverwaltung in Datei (Konfliktpotential) • Zustandsverwaltung der Infrastruktur in Azure Bicep NOTIZEN Zustandsverwaltung in Datei: In Terraform wird der aktuelle Zustand der Infrastruktur in einer Datei gespeichert. Wenn somit Änderungen an der Infrastruktur diese Datei umgehen, können Konflikte entstehen. 2 18.02.2023 Bicep 💪 Beispiel: Ressourcengruppe anlegen • Mit Bicep lassen sich Azure-Ressourcen einfach bereitstellen. • Wurde entwickelt, um die Bereitstellung und Konfiguration von Azure-Ressourcen zu vereinfachen. Eindeutige Bezeichnung Wird nur im Bicep File benötigt • Vergleicht den aktuellen Zustand der Azure-Ressourcen mit dem Zustand im Code. (keine Zustandsverwaltung) API-Version resource rg 'Microsoft.Resources/resourceGroups@2018-05-01' = { location: 'switzerlandnorth' name: 'uek-rg' } Funktionsweise von Bicep Typ Vergleich von Bicep zu JSON • Bicep wird zu JSON für den Azure Resource Manager (ARM) konvertiert • Konvertierung erfolgt automatisch • ARM untersucht Unterschiede & behebt diese NOTIZEN • Der Code von Azure Bicep wird in eine JSON-Datei konvertiert, die dem Standard des Azure Resource Manager (ARM) entspricht. • Die Konvertierung des IaC-Codes ins ARM-Json geschieht automatisch. Es kann jedoch auch manuell eine Konvertierung ausgelöst werden. • ARM untersucht, was in Azure bereits exisiert. Anschliessend werden die unterschiede analysiert und eine Abfolge von Schritten durchgeführt, um den Zustand wie in der Bicep Datei angegeben zu erreichen. Bicep 3 18.02.2023 Vergleich von Bicep zu JSON Workflow JSON Zusammenfassung Auftrag • Mit Bicep lässt sich die Infrastruktur einfach und für alle nachvollziehbar als Code verwalten • Visual Studio Code installieren • Dadurch lassen sich Änderungen an der Infrastruktur automatisiert überprüfen und deployen • IaC 4 18.02.2023 Fragen? 5