CI/CD in 5G-Netzwerken - Continuous Integration und Continuous Delivery für 5G-Netzwerke auf AWS

CI/CD in 5G-Netzwerken

Das Designkonstrukt der Infrastruktur wird in Form von Code in einer deklarativen Sprache gespeichert. So kann der CSP bei Bedarf eine wiederholbare Reproduktion der Infrastruktur mit demselben erwarteten Verhalten abrufen. Der Code wird im Code-Repository verwaltet, und es wird eine Pipeline eingerichtet, um die Aktualisierungen der bereitgestellten Stacks zu orchestrieren (z. B. AWS CDK und AWS CloudFormation). AWS kann bei der Entwicklung von Infrastructure as Code (IaC) für das agile Onboarding von Funktionen unabhängiger Softwareanbieter (ISV) helfen.

Diagramm, das den Code-Pipeline-Verlauf darstellt

Code-Pipeline-Verlauf

Änderungen an den Konfigurationen von cloudnativen Netzwerkfunktionen durch Helm-Charts werden als Auslöser für eine automatische CI/CD-Pipeline-Ausführung für die Netzwerkfunktionen betrachtet.

AWS CodeCommit kann zur Verwaltung von Konfigurationsdateien und Amazon ECR zur Aufbewahrung von Container-Images verwendet werden.

Wie in der Abbildung Code-Pipeline-Verlauf dargestellt, wird die Code-Pipeline ausgelöst, wenn der ISV neue Codeänderungen in das Code-Repository (Helm-Chart, Konfigurationsdateien oder eine Eigenschaftendatei) überträgt. Die Code-Pipeline ruft das Image aus ECR ab und verwendet das Helm-Chart zur Bereitstellung der Anwendung. Die neuen Anwendungstests können in das Framework zur Testautomatisierung eines Drittanbieters integriert werden. Basierend auf dem Ergebnis können CSPs die Produktionsbereitstellung genehmigen.

Die Quellstufe von CodePipeline sucht nach Änderungen in den Konfigurationsdateien. Gültige Anbieter für die Quellstufe sind CodeCommit, Amazon S3, GitHub oder AWS CloudFormation. Alternative Quellsysteme können integriert werden, indem Lambda-Funktionen zur Implementierung von Webhooks verwendet werden. Dies ermöglicht eine ereignisgesteuerte Integration zwischen Gitlab und AWS CodePipeline. Unter den folgenden Links finden Sie eine ausführliche Implementierungsanleitung.

Das Design der CI/CD-Pipeline sollte kritische Bereitstellungsschritte berücksichtigen, z. B. die Erstbereitstellung, das Testen und das Hochstufen in die Produktion, sobald die Testergebnisse die Anforderungen erfüllen und mit der Baseline abgeglichen wurden. Jede Phase des Pipeline-Prozesses liefert Datenartefakte, die Vergleiche und datengesteuerte Entscheidungen ermöglichen.

Diagramm, das die CI/CD-Pipeline-Schritte der Anwendung darstellt: Ändern, Bereitstellen, Testen, Hochstufen, Überwachen.

Schritte der CI/CD-Pipeline für Anwendungen

Jede Phase kann als separate Aufgabe betrachtet werden, was die Einbeziehung von Validierungs- und Bereitstellungsworkflows ermöglicht, die für die Unterstützung von Netzwerkservices und cloudnativen Netzwerkfunktionen geeignet sind. Bei der Ausführung von Aufgaben können zusätzliche Tools von Drittanbietern, wie z. B. Datenverkehrsgeneratoren und -simulatoren, einbezogen werden und so eine End-to-End-Validierung von Netzwerkservices ermöglichen.

AWS bietet den ausgefeilten Service AWS Step Functions (ein cloudnativer Zustandsautomat), der nativ mit anderen AWS-Services integriert werden kann und auch die Möglichkeit bietet, externe Systeme wie Jira oder ein Framework zur Testautomatisierung zu integrieren.