Focus: Container

Container sind die Erfolgsbasis für Technologie, Prozesse und Kultur

Uhr
von Pascal Auderset, Head Application and Technology Architecture, Die Mobiliar

Dem Business den versprochenen Nutzen in hoher Qualität liefern – dies war die Hauptmotivation der Mobiliar IT, den Weg zur Microservice-Architektur einzuschlagen. Diesen konsequent weiterzugehen, vor allem mit Hilfe von Docker, hilft uns auch dabei, die DevOps-Kultur entscheidend vorwärtszubringen.

Pascal Auderset, Head Application and Technology Architecture, Die Mobiliar. (Source: zVg)
Pascal Auderset, Head Application and Technology Architecture, Die Mobiliar. (Source: zVg)

Agil, performant, skaliert, automatisiert, Services intern/extern integrieren: Diese Strategiebegriffe unserer IT sollen nicht nur Schlagwörter sein. Darum bauen wir konsequent an einer Microservice-Architektur (MSA). Das wirkt auf Technologie und Prozesse, bringt aber auch Mindset und Kultur voran.

Erste Schritte

Die Mobiliar startete 2015 mit MSA. Richtungsweisend war der Entscheid für Docker als Container. Bei den Runtime-Plattformen setzte sich Kubernetes (K8S) gegenüber Docker Swarm durch. Aus heutiger Sicht zu Recht: K8S hat den Markt erobert.

Technologie und DevOps

Ausser Microservices stand auch Continuous Delivery (CD) im Fokus, als Basis für die DevOps-Einführung. Die enge Verzahnung von Entwicklung und Betrieb ermöglicht im komplexen Umfeld den schnellsten End-to-End-Durchlauf bis zum Kunden. Dabei geht es um Team-Verantwortung für Apps, aber auch um hoch-standardisierte, automatisierte Prozesse.

Docker: Mittel zum Zweck

Unsere lose Architektur realisieren wir mit auf Twelve Factor App basierenden Microservices. Container helfen uns beim Kapseln der Microservices – dies erhöht Veränderbarkeit, Testbarkeit und Stabilität. Services sind per Default stateless und immutable, es gibt eine klare Container-/Orchestrator-Schnittstelle. Abhängigkeiten zwischen Container/Orchestrator sind versionierbar in Files abgelegt. Feature Team und Operation von K8S-Clusters haben klar getrennte Aufgaben.

Der Docker-Einsatz vereinfacht CD: Durch die unveränderbare Software ist die Testpyramide einfacher umzusetzen. Zudem kann man unendlich viele Stages in die CI/CD-Pipeline einbauen. Auch Testdaten werden in DBs im Docker Image gehalten, somit sind Tests wiederholbar.

Unsere Learnings

Die Microservice-Kapselung funktioniert gut. Die klar getrennte Verantwortung zwischen Microservice und K8S-Runtime hilft, DevOps-Prozesse besser anzuwenden. Jeder Microservice hat eine eigene CI/CD-Pipeline und profitiert vom unabhängigen Deployment. Die isolierte Funktionalität unterstützt wesentliche Aspekte der DevOps-Kultur: ausser CD auch Lean Product Development, Lean Management und Transformational Leadership. Um Lifecycle Management zu automatisieren, muss man die Lifecycle-Informationen ins Docker Image einbauen, inklusive der benutzten Software.

Die Container-/Orchestrator-Schnittstelle ist klar, aber nicht immer einfach zu bedienen. Entwickler brauchen hierzu viel Ausbildung – für eine Schnittstelle, um die sie sich eigentlich nicht kümmern sollten. Vielleicht wäre Knative deshalb eine Alternative.

Das Angebot DBs als Docker Image wird wenig genutzt. Nicht alle sehen darin einen Mehrwert – die guten Erfahrungen der bisherigen Nutzer müssen sich noch herumsprechen.

Wie weiter?

Wir möchten zukünftig vermehrt Cloud-Services beziehen. Nutzen wir die weltweite, breitgefächerte IT-Industrie, müssen wir weniger selbst entwickeln und können uns auf fachliche Features konzentrieren.

Deren Stellenwert zeigt sich auch im Recruiting von rund 60 neuen Java-Entwicklern in der jüngeren Vergangenheit. Und diese werden es gegenüber früher sogar leichter haben: Feature Teams von morgen benötigen weniger direktes Infrastruktur-Know-how (etwa K8S-HELM).

Tags
Webcode
DPF8_136201