© DrHitch/Shutterstock.com
Microservices-Architektur

3 Deployment-Patterns


Microservices werden in Cloud-Umgebungen deployt. Clouds erfüllen mit ihren Eigenschaften Time-to-Market, Pay-as-you-use und Scalability, um nur einige zu nennen, die Anforderungen, die an Microservices Architectures gestellt werden. Daher sind Clouds die optimale Laufzeitumgebung für Microservices. Wie erreichen wir die in Tabelle 1.2 genannten Vorteile wie Easy to deploy, Replaceability und Scalability in der Cloud?

Dazu müssen Entwicklung und Betrieb in der Cloud optimal aufeinander abgestimmt werden. Genau das ist das Ziel von DevOps. DevOps ist nur mit den Methoden aus Continuous Delivery (CD) möglich, die Anforderungen stellen, die bei der Entwicklung von Microservices berücksichtigt werden müssen.

In Kapitel 1.1 werden Regeln beschrieben, die bei der Entwicklung von Microservices in der Cloud unter DevOps einzuhalten sind, um ein optimales Ergebnis zu erreichen. Kapitel 3 greift nun genau die Twelve Factors auf und stellt sie als Patterns vor.

Wir werden sehen, dass einige Patterns auch bei monolithischen Applikationen angewendet werden können (z. B. Config in Environment) oder dort bereits weit verbreitet sind (z. B. One Codebase, Dependency Declaration). Trotzdem müssen sie bei der Entwicklung von Microservices in der Cloud explizit erwähnt werden, da sie dort absolut essenziell sind.

3.1 One Codebase

Problem

Bei der Entwicklung monolithischer Applikationen entsteht oft sehr viel Sourcecode. Dementsprechend komplex werden die Wartung und Erweiterung des bestehenden Codes. Änderungen können zu unerwünschten Seiteneffekten führen, sodass schlimmstenfalls die gesamte Applikation nicht mehr lauffähig ist. Deshalb muss es jederzeit möglich sein, einen historischen Stand der Applikation wiederherzustellen.

Gleichzeitig muss der Microservice in verschiedene Umgebungen deployt werden. Jede Umgebung unterscheidet sich in ihrer Konfiguration. Daher müssen die entsprechenden applikationsspezifischen Konfigurationseinstellungen irgendwo gespeichert werden.

Schließlich müssen mehrere Stände parallel verwaltet werden können, da in verschiedenen Umgebungen verschiedene Versionen der Applikation existieren können. Diese Problematik gilt für alle Arten von Architekturen.

Lösung

Durch die Ablage in einem Sourcecode Repository wie Git ist es möglich, verschiedene Versionsstände eines Microservice zu rekonstruieren. Damit kann das Deployment unterschiedlicher Versionen im Rahmen einer Continuous Delivery Pipeline auch in viele Umgebungen automatisiert werden.

...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang