Organisatorische Überlegungen
Neben den technischen und Laufzeitaspekten aus den Teilen eins uns zwei dieser Serie gibt es auch einige organisatorische Themen, die im Cloud-Native-Universum eine Rolle spielen.
DevOps Kultur
Entwicklerteams und betriebsverantwortliche Teams (Operations) sollten eng zusammenarbeiten, mit dem Fokus auf gemeinsamer Verantwortung und dem Bestreben nach kontinuierlicher Verbesserung. Oft wird das DevOps-Konzept auch im Kontext eines einzigen Teams umgesetzt. Frei nach dem Motto “You build it, you run it” obliegt die Verantwortung für den Betrieb der eigenen Software dann dem Entwicklerteam, was Vorteile (weniger Kommunikationshürden, damit effizienter) und Nachteile (mehr Verantwortung, hohe Lernkurve und weniger Fokussierung auf den Business-Wert) mit sich bringt.
Das bereits seit Langem bekannte Verfahren von Continuous Integration & Deployment (CI/CD) hilft, effiziente und sichere Prozesse zu etablieren. Dazu werden Automatisierungs-Pipelines erstellt, um Codeänderungen schnell und zuverlässig zu testen, zu integrieren und am Ende auf dem Zielsystem bereitzustellen. Aber die CI/CD-Automatisierung hört nicht bei Softwareentwicklung und –Bereitstellung auf. Ähnliche Ansätze können auch für die Verwaltung und Bereitstellung der eigentlichen Infrastruktur durch Code angewendet werden. Dieses Konzept wird als “Infrastructure as Code (IaC)” bezeichnet und weist Ähnlichkeiten mit dem GitOps-Ansatz auf. Die Definition der Infrastruktur ist ebenfalls versionskontrolliert und kann wiederholt ausgeführt werden. Tools für diese Prozesse sind zum Beispiel Ansible, AWX und Hashicorp Terraform.
Die Weiterentwicklung des DevOps-Ansatzes ist das Konzept des “Platform Engineering”. Hier ist die Idee, die Entwicklungsteams vom operativen Overhead zu entlasten, ohne jedoch zu vergangenen Zeiten zurückzukehren, als es noch eine strikte Trennung von Entwicklungs- und Operations-Teams gab. Ziel ist es also, eine individuelle Plattform durch ein dediziertes Engineering Team als Produkt bereitzustellen, um den gesamten Entwicklungszyklus zu ermöglichen. Darin enthalten sind zum Beispiel:
- CI/CD System
- Selbstverantwortliche Bereitstellung von Infrastrukturkomponenten je nach Bedarf (“self-servicing”)
- Überwachung der eigenen Dienste
- Unternehmensweite Vorgaben zu Dokumentation, Projekttemplates, usw. (Developer Portal)
Continuous Improvement
Abschließend kann der agile Ansatz mit seinen häufigen Feedbackschleifen genutzt werden, um Teams, deren Arbeitsweise und Kommunikation, sowie den Entwicklungszyklus und die Software-Qualität zu verbessern. Agilität in diesem Rahmen ermöglicht weiterhin, sich durch iterative Entwicklung und Bereitstellung schnell an sich verändernde Anforderungen und Umgebungen anzupassen. Durch die Einhaltung dieser Grundsätze können Unternehmen robuste, skalierbare und effiziente Anwendungen erstellen, welche die Möglichkeiten der Cloud voll ausschöpfen.
Zusammenfassung
Wir haben viele Themen rund um die Konzepte und Ideen von Cloud Native angesprochen und gezeigt, dass es sich nicht nur um ein technologisches Paradigma handelt. Daneben haben auch kulturelle und organisatorische Konzepte Einfluss auf die Bereitstellung von modernen Softwarelösungen in einer verteilten Form. Nicht alle oben genannten Punkte sind zwingend erforderlich, um ein System auf Cloud Native umzustellen. Auch kleine Schritte können Mehrwerte aus einer strategischen Neuausrichtung erzielen. Zum Beispiel:
- Schnellere Markteinführung
- Skalierbarkeit und Flexibilität
- Verbesserte Ausfallsicherheit und Verlässlichkeit
- Kosteneffizienz
- Innovation und Wettbewerbsfähigkeit
Die technischen Abschnitte geben einen Überblick und zeigen, welche Themen im Fokus von Cloud Native stehen sollten. Dabei ist es nicht notwendig alles selbst zu implementieren. Für viele Bereiche gibt es bereits eine Vielzahl konkreter Tools von Drittanbietern. Einen Überblick kann man sich mit einem Besuch auf der CNCF landscape Webseite der Cloud Native Computing Foundation verschaffen.
CID hat bereits jahrelange Erfahrung im Cloud-Native-Bereich bezüglich Tools, Software-Architektur, Arbeitsweisen und Strategieplanung. Sie brauchen Unterstützung? Wir freuen uns auf ein persönliches Gespräch mit Ihnen.
Autor © 2024: Marcel Hoyer – www.linkedin.com/in/marcel-hoyer-0a21a12b2/