Will man eine Software entwickeln, spielt neben der Definition konkreter Anforderungen die Auseinandersetzung mit einer entsprechenden Softwarearchitektur eine entscheidende Rolle. Denn diese definiert wie bei einem Bauplan die grundlegenden Softwarekomponenten sowie deren Zusammenspiel und legt damit das gesamte Softwaregerüst fest. Selten gibt es dabei nur eine geeignete Architektur zur Umsetzung des Ziels bzw. der Absicht einer Software. Vielmehr stehen je nach Softwareanforderungen verschiedene Architekturtypen bei der Entwicklung zur Auswahl.

Agil, performant und sicher

War früher eine monolithische Architektur sehr verbreitet, ist inzwischen eine Microservices-Architektur üblich. Die verschiedenen Software-Komponenten basieren dabei nicht mehr als Gesamtpaket auf einer Datenbank, sondern jede Komponente für sich – fokussiert auf eine einzige Funktion – auf einer separaten Datenbank. Ganz nach dem Baukastenprinzip ergibt sich die fertige Software bei diesem Design erst dann, wenn die unterschiedlichen Microservices über entsprechende Schnittstellen (APIs) miteinander verbunden wurden. Beim Online-Banking könnte das beispielsweise heißen, dass die Ansicht meines Kontos, die Überweisung und die Analyse meiner Ausgaben in der Software einzelne Funktionalitäten darstellen, die unabhängig voneinander entwickelt werden.

Die Vorteile gegenüber der traditionellen 1 bis 3 tier-Architektur liegen auf der Hand: Jeder Microservice steht hinsichtlich Programmiersprache, Datenbank oder Plattform für sich und kann verändert oder getauscht werden, ohne die anderen Services zu beeinflussen. Das optimiert nicht nur die Verfügbarkeit der gesamten Software, sondern ermöglicht auch das Einspielen regelmäßiger Updates, ohne jedes Mal die gesamte Software testen und aktualisieren zu müssen.

Ein weiterer Vorteil ist die elastische Skalierung. Microservices profitieren durch ihre übersichtliche Struktur optimal von den Serverressourcen, ohne andere Services auf demselben Server lahmzulegen. Sogar der Einsatz mehrerer Server wäre bei dieser Architektur möglich.

Außerdem entstehen Microservices unabhängig voneinander, sodass ab dem ersten Entwicklungsschritt die jeweils bestmöglichen Sicherheitsfunktionalitäten berücksichtigt werden können. Einmal zusammengesetzt, besitzt die Software dann nicht nur eine flexible, sondern auch eine absolut sichere Architektur, die es erlaubt, jederzeit schnell auf Kundenanforderungen zu reagieren. Dank dem Einsatz von OpenSource-Tools ist es beispielsweise ein Leichtes, alle einzelnen Microservices auf Fehler oder Sicherheitslücken hin zu überwachen, um auch hier eine schnelle Reaktion und Fehlerbehebung sicherzustellen.

Unabhängige Softwaremodule ermöglichen unabhängige Entwicklerteams

Ist die Entscheidung für eine Microservices-Architektur erst einmal nur eine technische Diskussion, verlangt sie spätestens bei der konkreten Umsetzung auch ein Umdenken bei den Entwicklerteams. Das bedeutet, dass oft jahrelang praktizierte Abläufe, fest definierte Zuständigkeiten und Release-Zyklen aufgeweicht werden.

Stattdessen sind die Entwickler entsprechend der unabhängigen Softwaremodule in kleinere, unabhängige Teams organisiert. Denn fortan sind sie nicht mehr für einen speziellen Teilbereich eines riesigen Softwarekonstrukts verantwortlich, sondern für den gesamten Lebenszyklus des jeweiligen Microservices – von der Entwicklung über das Testen bis hin zum Betrieb.

Im Ergebnis spricht man hier von agiler Softwareentwicklung. Die Teams haben zwar einen größeren Verantwortungsbereich, können aber auch flexibler und unabhängiger über alle Teilbereiche entscheiden. Nur so ist die parallele Entwicklung verschiedener Komponenten überhaupt möglich und nur so kann heute schnell und effizient auf neue Anforderungen und Gegebenheiten reagiert werden. Deshalb setzt auch Brainloop bei der Weiterentwicklung seiner Datenraum-Lösungen auf die Logik von Microservices.

Softwarearchitektur im Wandel: Das sind die Kundenvorteile

Effizienz ist nicht nur das Stichwort, wenn es zur Wahl eines bestimmten Softwaredesigns kommt, sondern auch, wenn es um die Kundenvorteile geht. Denn hat man erstmal Kunden für seine Software gewonnen, wollen diese möglichst effizient, komfortabel und störungsfrei damit arbeiten. Und genau das kann mit den Microservices sichergestellt werden, da sie durch ihre unabhängige Struktur insgesamt für eine größere Verfügbarkeit, eine höhere Performance und eine schnellere Realisierung von bestimmten Anforderungen sorgen.


Brainloop,  Informationssicherheit