Zum Inhalt gehen

Cloud: Container-Referenzarchitektur für Microservices

Dr. Eldar Sultanow
08. März 2021

In diesem Beitrag geben wir Ihnen eine containerbasierte Serverless-Referenzarchitektur an die Hand, mit der Sie das Steuer im Framework-Chaos übernehmen können.

Microservices, Serverless, FaaS und ein endloses Framework-Chaos

Das enorme Interesse an cloud-nativen Architekturen und damit der zunehmende Einsatz von Containern und Microservices zieht sich wie ein roter Faden durch unterschiedlichste Industrien – von Automotive über Pharma, bis hin zum öffentlichen Sektor. Diesem hohen Interesse stehen eine Vielzahl an unterschiedlichen Begriffen wie Microservices, Serverless oder FaaS gegenüber. Auch die Anzahl an Frameworks und Plattformen in diesen Bereichen nimmt kontinuierlich zu. Sie sprießen geradezu wie Pilze aus dem Boden. Die Folge ist ein Framework-Chaos. Vor diesem Hintergrund haben wir eine containerbasierte Serverless-Referenzarchitektur entworfen, die Ordnung ins Chaos bringt.

Warum Container die ideale Verpackung für Microservices sind

Ein Microservice kommt selten allein. Neben vielen Vorteilen bringen Microservices auch einige neue Herausforderungen: Wie finden sich die Services untereinander? Wie kann die Last verteilt werden? Wie können neue Versionen bereitgestellt werden? In der Vergangenheit wurden diese Herausforderungen auf der Anwendungsebene gelöst. Das Problem hierbei: Die eigentliche Geschäftslogik wird mit Operationscode angereichert. Die Komplexität der einzelnen Services steigt.

Die Vorteile beim Einsatz von Containern wie etwa Isolation, Portabilität, Skalierbarkeit und eine schnelle Bereitstellung, schaffen ideale Bedingungen für die Bereitstellung und den Betrieb von Microservices. Während Container die Kapselung eines einzelnen Microservices sicherstellen, bedarf es zur Orchestrierung mehrere Container über verschiedene Cluster-Nodes hinweg einer Container-Plattform – wie beispielsweise Kubernetes.

Serverless-Referenzarchitektur

Serverless-Referenzarchitektur

Bereits im Zuge der Entwicklung gilt es, die Art und Weise des Testens zu überdenken und agilere Vorgehensmodelle zu etablieren, um mit der Geschwindigkeit der Releases mithalten zu können und um die richtigen Frameworks und Tools zu wählen. Eine funktionierende CI / CD-Pipeline sichert die Möglichkeit der schnellen und kontinuierlichen Bereitstellung neuer Microservice-Versionen.

Der zentrale Baustein der Referenzarchitektur ist die Containerplattform. Mit dieser ist es möglich, die Container auf unterschiedlichen Host-Systemen (Cluster-Nodes) zu verteilen. Ein Master-Knoten kümmert sich dann unter anderem um Aspekte der Lastverteilung, das Scheduling sowie die Orchestrierung. Die Containerplattform setzt, begleitet von Sicherheitsaspekten wie Authentifizierung und Autorisierung sowie Secret- und Zertifikatsmanagement, auf einer Infrastruktur auf. Diese kann dabei auch in Form einer Infrastruktur-as-a-Service (IaaS) durch einen Cloud-Provider zur Verfügung gestellt werden.

Microservices vs. FaaS – Geht das auch gemeinsam?

Neben Microservices sind FaaS-Funktionen, auch Nanoservices genannt, ein weiterer Trend der cloud-nativen Entwicklung. Plattformen wie AWS Lambda stellen Laufzeitumgebungen für FaaS-Funktionen bereit, so dass die Entwicklung sich auf die eigentliche Geschäftslogik konzentrieren kann. Die Verwendung solcher Drittlösungen geht allerdings mit einem Vendor-Lock-In-Effekt einher. Zurecht kommt hierbei die Frage auf, ob zwingend ein externer Anbieter genutzt werden muss oder ob sich die ohnehin bestehende Cloud-Struktur nicht um FaaS-Funktionen erweitern lässt?

Die Antwort: ja, das ist möglich. Plattformen wie beispielweise OpenFaaS lassen sich direkt auf Kubernetes und anderen Containerplattformen bereitstellen. Der Vorteil: bestehende Ressourcen können so ideal genutzt werden und zudem Standards hinsichtlich des Umgangs innerhalb des Betriebs etabliert werden.

Zusammenfassung

Die Entscheidung für Microservices in der Cloud betrifft alle Bereiche, von der Entwicklung bis zur grundlegenden Infrastruktur. Will man die Vorteile von Microservices ausspielen, so bedarf es auch einen Plan wie mit den damit verbundenen Herausforderungen umzugehen ist. Die vorgestellte Referenzarchitektur adressiert diese Herausforderungen, indem die Komplexität durch die visuellen Bausteine reduziert wird.

In diesem Artikel haben wir Ihnen einen Überblick zu unserer Serverless-Referenzarchitektur gegeben. Wenn Sie sich jetzt Fragen, wie die Architektur im Detail aussieht und wie die bestehenden Frameworks und Tools in diese einzuordnen sind, so möchten wir Ihnen unseren Artikel im aktuellen eBook „Enterprise Architecture“ von Sigs Datacom nahelegen, das nach einmaliger Registrierung kostenlos zum Download verfügbar ist. In unserem Beitrag „Container-Referenzarchitektur für Microservices in der Cloud“ finden Sie weiterführende Ausführungen und zusätzliche Details rund um die Möglichkeit, Microservices und FaaS-Funktionen in der Cloud zu betreiben. Darüber hinaus liefert der Artikel eine konkrete Einordnung von Frameworks und Tools in die Architektur. Damit steht Ihrem eigenen Technologie-Stack nichts mehr im Wege.

Vielen Dank an den Co-Autor Daniel Friedmann für die Mithilfe bei der Erstellung dieses Blogbeitrages.

Vollständiger Beitrag „Container-Referenzarchitektur für Microservices in der Cloud“ kostenlos zum Download verfügbar

Blog-Updates per Mail?

Abonnieren Sie unseren Newsletter und erhalten Sie alle zwei Monate eine Auswahl der besten Blogartikel.

Autor

Dr. Eldar Sultanow

CTO Insights & Data Germany, Capgemini
Dr. Eldar Sultanow hat langjährige Praxiserfahrung in der Softwareindustrie, insbesondere in den Bereichen JEE, Electronic/Mobile Commerce, Track-&-Trace und Auto-ID im Pharmabereich. In einem zwischenstaatlichen Projekt hat er eine Plattform mit konzipiert, an der internationale Finanzinstitute angeschlossen sind. Aktuell ist Eldar Sultanow als technischer Chefdesigner in einem der größten öffentlichen IT-Verfahren aktiv, das hunderttausende Transaktionen pro Tag mit einem Jahresvolumen von über 25 Milliarden EUR vollzieht.