Microservices – Was steckt dahinter?
Bestimmt kennen Sie das folgende Problem: Die Entwicklung umfangreicher Softwareprojekte geht mit langen Entwicklungszyklen und Testphasen einher. Bis alle Softwarebestandteile auf einem Stand sind und ein neues Update deployt werden kann, vergeht häufig einige Zeit. Die Entwicklung nach dem Konzept „Microservices“ macht es möglich, die Entwicklungszeit zu verkürzen, sodass Sie die Software eher nutzen können. In diesem Blogbeitrag erfahren Sie, was genau sich hinter dem Begriff „Microservices“ verbirgt, wann Sie diese sinnvoll einsetzen und wie sie Sie bei der App-Entwicklung mit SAPUI5 unterstützen können.
Was sind Microservices?
Microservices sind ein Entwurfsmuster aus der Softwarearchitektur, bei dem eine große Anwendung aus einer Reihe kleiner modularer Komponenten (Services) zusammengesetzt wird. Die einzelnen Services erfüllen eine bestimmte Aufgabe zu einem konkreten Thema oder als Teil eines Prozesses, wie z. B. dem Registrierungsprozess einer Anwendung. Sie sind Entwicklern oder Entwicklerteams zugewiesen und können im Gegensatz zur Objektorientierung und der Aufteilung in Klassen einzeln bereitgestellt werden. Ziel der Microservice-Architektur ist es folglich, die Services unabhängig voneinander entwickeln und laufen lassen zu können.
Vorteile und Herausforderungen von Microservices
Eine auf Microservices basierende Anwendung ist robust, da beim Ausfall eines einzelnen Service nicht direkt die ganze Anwendung blockiert wird. Die Aufteilung in logisch zusammenhängende Services, die jedoch einzeln eingeführt werden, bietet Ihnen außerdem eine saubere Softwarestruktur, die Sie leichter warten und anpassen können. Ein weiterer Vorteil ist, dass Sie Anpassungen einzelner Softwarebestandteile von vornherein berücksichtigen und einzelne Services daher einfach durch neue austauschen können.
Allerdings bringt dieser Ansatz auch Herausforderungen mit sich, die Sie beachten sollten: Auf der einen Seite entsteht ein großer Kommunikationsaufwand, da sich die einzelnen Entwicklerteams untereinander abstimmen müssen, damit die Services am Ende optimal zusammenspielen. Auf der anderen Seite müssen die Entwickler bei Neuentwicklungen besonders auf die Abwärtskompatibilität achten, da durch das voneinander losgelöste Deployment (= Installation der Anwendung) die Kompatibilität nicht automatisch sichergestellt ist.
Anwendungsbereiche – wo können Sie Microservices nutzen?
Ob der Einsatz von Microservices ratsam für Sie und Ihr Unternehmen ist, ist von verschiedenen Faktoren abhängig. Ein Faktor ist die Größe Ihres Projektes: Handelt es sich um ein Projekt, in dem mehrere Entwickler gleichzeitig tätig sind, kann der Einsatz von Microservices sinnvoll sein. Gleichzeitig muss das Projekt in einzelne, logisch zusammenhängende Bestandteile aufgeteilt werden können, um die Aufgaben voneinander zu trennen und doppelte Umsetzungen zu vermeiden.
Ein weiterer Faktor ist die Kommunikationsstruktur der Entwickler untereinander: Neben der Kommunikation innerhalb des Teams ist auch der Austausch der Entwicklerteams Grundvoraussetzung für einen gelungenen Einsatz von Microservices. Zudem ist es wichtig sicherzustellen, dass auch die Anwendungen und Services untereinander kommunizieren können.
Microservices im SAP-Umfeld
Eine Möglichkeit, wie Sie Microservices im SAP-Umfeld nutzen können, ist die Verwendung des Kyma Environments. Dieses beinhaltet eine vollständige Kubernetes-Laufzeitumgebung und baut auf dem Open Source Produkt „Kyma“ auf. Kyma wird in der SAP BTP als Alternative zur Cloud Foundry Runtime angeboten. Kubernetes ist eine Open-Source-Plattform, die die Bereitstellung, Verwaltung und Skalierung von Containern ermöglicht. Mit Hilfe der Container können Sie eine Anwendung oder einen Service separat starten und beenden.
Über Cluster wird die Auslastung der Container verteilt, sodass je nach Bedarf die Ressourcen bereitgestellt und skaliert werden können. Besonders interessant ist dieser Ansatz für die App-Entwicklung in der Cloud. Kubernetes hat sich vom ersten Release 2015 bis heute zum Standard für viele containerbasierte Anwendungen etabliert.
Insbesondere Kyma ist ein Produkt für die Cloud und ermöglicht es Ihnen, SAP-Lösungen um serverlose Funktionen zu erweitern und mit containerbasierten Microservices zu kombinieren. Damit können Sie serverunabhängige Funktionen in Container auslagern. Mit der Kubernetes-Basis profitieren Sie von folgenden Benefits:
- flexible Skalierbarkeit
- optimale Ressourcenauslastung
- hohe Zuverlässigkeit
In einem Container kann also beispielsweise eine SAPUI5-App laufen und durch ein getriggertes Event auf den Microservice eines anderen Containers zugreifen. Dazu muss der Container nicht auf dem gleichen Server liegen, sondern kann die Rechenkapazität auf anderen Servern beanspruchen.
Fazit
Microservices dienen der Strukturierung von Software. Ihr Einsatz bietet sich bei größeren Softwareprojekten an, um eine übersichtliche Softwarestruktur, eine ressourcenschonende Auslastung und eine robuste Systemlandschaft zu schaffen. Sie erfordern aber auch einen hohen Kommunikationsaufwand innerhalb und außerhalb der Entwicklerteams. SAP bietet mit dem Kyma Environment die Möglichkeit, Microservices für die Entwicklung von Apps in der Cloud zu nutzen. Dabei setzt SAP auf die bewährte containerbasierte Struktur mit Kubernetes.
Microservices
Wenn Sie wissen möchten, ob Sie Microservices auch in Ihrem nächsten Projekt einsetzen können und sollten, vereinbaren Sie gerne einen Termin für eine kostenlose Websession mit unserem Mobility-Experten und Fachbereichsleiter Tobias Schießl.
Gemeinsam finden wir das beste Vorgehen für Ihr Projekt!