CI/CD in einer unveränderlichen Infrastruktur mit Jenkins und Terraform in einer virtuellen Azure-Architektur: Übersicht

Log Analytics
Managed Disks
Virtual Machine Scale Sets
GitHub

Lösungsidee

Wenn Sie möchten, dass wir diesen Artikel um weitere Informationen ergänzen, z. B. potenzielle Anwendungsfälle, alternative Dienste, Überlegungen zur Implementierung oder Preisempfehlungen, lassen Sie es uns über Feedback auf GitHub wissen!

Azure ist eine erstklassige Cloud zum Hosten von virtuellen Computern, auf denen Windows oder Linux ausgeführt wird. Unabhängig davon, ob Sie Java, Node.js oder PHP zum Entwickeln der Anwendungen verwenden, benötigen Sie eine CI/CD-Pipeline (Continuous Integration/Continuous Deployment), um Änderungen automatisch mithilfe von Push auf diese virtuellen Computer zu übertragen.

Aufbau

Architekturdiagramm Laden Sie eine SVG-Datei für diese Architektur herunter.

Datenfluss

  1. Der Quellcode der Anwendung wird geändert.
  2. Führen Sie ein Commit für Code in GitHub aus.
  3. Aktivieren Sie den Continuous Integration-Trigger für Jenkins.
  4. Jenkins löst die Erstellung eines Packer-Images aus, um einen virtuellen Computer zu erstellen, und speichert es mithilfe von Azure Managed Disks als VM-Image.
  5. Jenkins löst Terraform aus, um mithilfe des Azure Managed Disks-VM-Images eine neue VM-Skalierungsgruppe bereitzustellen.
  6. Azure Log Analytics sammelt und analysiert Protokolle.
  7. Überwachen Sie die Anwendung, und nehmen Sie Verbesserungen vor.

Komponenten

  • Verwaltete Datenträger: Persistente, gesicherte Datenträgerspeicher für virtuelle Azure-Computer
  • VM-Skalierungsgruppen Verwalten und Hochskalieren Tausender virtueller Linux- und Windows-Computer
  • Log Analytics: Sammeln, Durchsuchen und Visualisieren von Computerdaten – lokal und in der Cloud
  • Visual Studio Code: Erstellen und Bereitstellen von Apps für mehrere Plattformen, um Azure-Dienste optimal zu nutzen

Nächste Schritte

Bereitstellen in Azure