Kontinuierliche Integration und kontinuierliche Auslieferung (CI/CD)

Die CI/CD-Pipeline ist eine bewährte Methode für DevOps-Teams. Sie ermöglicht es Entwicklern, Änderungen am Code häufig und zuverlässig ohne Fehler umzusetzen. Die Entwicklung einer CI/CD-Pipeline ist ein wichtiger Aspekt der modernen Software-Entwicklung über den vollständigen API-Lebenszyklus hinweg, vom Entwurf über die Verwaltung bis hin zur Implementierung.

Was versteht man unter kontinuierlicher Integration (CI)?

Bei der kontinuierlichen Integration handelt es sich um eine Methode und ein Leitbild der Programmierung. Sie erleichtert Entwicklungsteams die Vorbereitung, Implementierung und Durchführung von Qualitätskontrollen für ein Release. Das Ziel der kontinuierlichen Integration besteht darin, Abläufe zu automatisieren und Konsistenz beim Erstellen, Testen und Paketieren von Anwendungen zu gewährleisten. Viele der heutigen Anwendungen basieren auf Code, der mit verschiedenen Tools und auf verschiedenen Plattformen entwickelt wurde. Daher brauchen Entwicklungsteams eine Methode für die Integration und Validierung ihrer Änderungen. CI bietet zahlreiche Vorteile, wie zum Beispiel die Reduzierung fehleranfälliger Implementierungsaufgaben und frühzeitige Einblicke in Bugs.

Was versteht man unter kontinuierlicher Auslieferung (CD)?

Die kontinuierliche Auslieferung ist das andere Ende der CI/CD-Pipeline. CD automatisiert die Auslieferung von Anwendungen und Code-Änderungen, oft für mehrere Infrastrukturumgebungen wie zum Beispiel Test und Entwicklung. Anschließend führt die CD-Automatisierung Aufrufe an Datenbanken, Webserver und zusätzliche Services durch, die nach der Implementierung einer Anwendung aktualisiert oder neu gestartet werden müssen. Teams können Produktionen dann nach einem täglichen, stündlichen oder kontinuierlichen Plan implementieren.

CI/CD im Einsatz

Wenn IT-Teams ein Anwendungsentwicklungsmodell implementieren, bei dem der Software-Entwicklungszyklus (SDLC) verschiedenste automatisierte Tests und Berichte sowie eine vollständig kontinuierliche Integration und Auslieferung umfasst, kann ihr Unternehmen schnell neue Funktionen und Anwendungen testen und einführen. Diese erfolgreichen Unternehmen koppeln SDLC-Kennzahlen eng mit der Projektfinanzierung, um Projekte mit dem höchsten geschäftlichen Nutzen zu erkennen und zu priorisieren.

Mule-Entwickler nutzen zum Beispiel CI/CD für die Automatisierung von Mule-Implementierungen mit GitHub und Jenkins-Pipelines. Die meisten Entwickler sind mit der Build-Phase vertraut. Die in Anypoint Studio erledigten Aufgaben lassen sich problemlos in Ihre CI-Pipeline einbinden. Dabei werden einige der bereits erwähnten Technologien genutzt: GitHub für die Versionskontrolle, Maven für die Abhängigkeitsverwaltung und Build-Automatisierung, JUnit und MUnit für die Testautomatisierung und JIRA oder ServiceNow für die Fehler- und Serviceverwaltung. Kunden mit Microsoft-Produkten, die Mule-Apps erstellen, nutzen häufig Team Foundation und Visual Studio.

Wenn der Code bereit für die Auslieferung ist, nutzen Kunden von MuleSoft oft Jenkins, Puppet, Chef oder HP ALM sowohl für die Implementierungsautomatisierung als auch für die Orchestrierung von Release-Prozessen in verschiedenen Umgebungen: Entwicklungsumgebung, Testumgebung, Staging-Umgebung und Produktionsumgebung. Puppet und Chef können auch zur Automatisierung der Installation und Konfiguration von Mule Runtimes verwendet werden. Zur Reduzierung der Komplexität der kontinuierlichen Implementierung erfreut sich Docker immer größerer Beliebtheit. Mule Runtime kann in einem Docker-Container ausgeliefert werden. Und über den Verwaltungsagenten, Anypoint Platform für APIs und Anypoint Platform CLI, können Benutzer Prozesse weiter automatisieren. Hierzu verwenden sie Tools für die Konfigurationsautomatisierung und -verwaltung, zum Beispiel Puppet, Chef, Ansible und Salt, anstelle der Benutzeroberfläche der Anypoint Platform.