Hochgradig skalierbar

Diese Tools helfen beim Aufbau und der Pflege von Microservices

| Autor / Redakteur: Otto Geißler / Ulrike Ostler

Kürzere Entwicklungszyklen in einer Microservice-Architektur ermöglichen agilere Implementierungen und Updates.
Kürzere Entwicklungszyklen in einer Microservice-Architektur ermöglichen agilere Implementierungen und Updates. (Bild: gemeinfrei: geralt/pixabay / CC0)

Für die Erstellung von Microservices-Architekturen steht eine Vielzahl von Tools zur Verfügung. Dabei geht es nicht nur darum, Software zu entwickeln, sie zu testen und bereitzustellen. Ein ständiges Monitoring soll ihre Funktion sicherstellen und beim Auftreten von Fehlfunktionen müssen diese schnell behebbar sein.

Microservices sind eine hochgradig skalierbare Architektur für die Entwicklung von Softwaresystemen, die nach dem Konzept einer serviceorientierten Architektur (SOA) arbeitet. Dabei werden geschlossene Systeme wie zum Beispiel ein Webshop so aufgeteilt, dass sie aus verschiedenen Diensten bestehen, die miteinander über Schnittstellen interagieren. Dieser Ansatz entspricht genau dem Gegenteil einer monolithischen Architektur im Legacy-Stil, die sich auf eine einzelne Anwendungseinheit konzentriert.

Kürzere Entwicklungszyklen

Die Entwicklung von Microservices besteht im Grunde genommen darin, das komplette Development-Projekt in verschiedene kleine (Mikro-) Dienste aufzuteilen. Das Aufgliedern in einzelne Dienste geht so weit, dass im Endergebnis jeder Mikrodienst eine einzelne Aufgabe erfüllt.

Das heißt: Alle Services können unabhängig voneinander entwickelt und implementiert werden und können somit idealerweise ohne jegliche Beeinflussung anderer Services funktionieren. Infolgedessen sind Entwickler in der Lage, die einzelnen Elemente leichter zu verstehen, zu aktualisieren und zu verbessern, was wiederum zu kürzeren Entwicklungszyklen führt.

Tools für Microservices

Bei der Erstellung von Microservices-Architekturen können sich Entwickler von einer Vielzahl von Tools unterstützen lassen. Dazu gehören folgende Bereiche: API-Verwaltung und –Tests, Messaging, Monitoring, „Kube“-Entwicklung, Orchestrierung, Programming Languages, Tool-Kits, architektonische Frameworks und Serverless-Tools.

API-Verwaltung und -Tests
Zu den gebräuchlichsten Tools in diesem Bereich gehören unter anderem „API Fortress“, „Postman“ und „Tyk“. API Fortress ist sowohl ein API-Test- als auch ein Integritäts-Tool und automatisiert Funktionstests, Integritätsüberwachungen und Auslastungstests von APIs. Das Tool ist so konzipiert, dass es praktisch keinen Code enthält und vollständig auf modernen API-Architekturverfahren und –mustern basiert.

Postman ist eine API-Entwicklungssuite für einzelne Entwickler und Teams, die einfache UI-gesteuerte Entwicklungen, Tests und Dokumentationen für API durchführen möchten. Tyk ist eine sofort einsatzbereite Open-Source-API-Verwaltungsplattform, die vielseitig nutzbar ist. Unabhängig davon, ob die Installation vor Ort, als Cloud-Service oder als Hybrid durchführbar sein soll.

Messaging
Mithilfe von Mustern kann der Entwickler per „RabbitMQ“ zwischen Microservices kommunizieren, um Anwendungen zu skalieren und die Probleme der meisten verteilten Systeme zu lösen. Das Tool eignet sich ebenfalls zum Austauschen von Ereignissen zwischen den Diensten.

Das Message Queuing von „Apache Kafka“ wickelt die gesamte Kommunikation zwischen Microservices untereinander und externen Quellen ab. Apache Kafka ist eine verteilte Stream-Verarbeitungsplattform mit hoher Fehlertoleranz und Ausfallsicherheit.

„Google Cloud Pub/Sub“ ist ein vollständig verwalteter Echtzeit-Nachrichtendienst, mit dem der Entwickler Nachrichten zwischen Microservices senden und empfangen kann. Durch die Integration der Anwendung in Google Cloud Pub/Sub kann er alle asynchronen Anforderungen verarbeiten und die Wartezeit der Nutzer auf eine Antwort verkürzen.

Monitoring
Nachdem ein Microservice implementiert wurde, muss er überwacht werden. „Logstash“ ist beispielsweise ein Tool, mit dem der Entwickler Daten zentralisieren, aufbewahren und transformieren kann. Die Open Source-Plattform Logstash lässt sich auch in Verbindung mit „Graylog“ als zentralisierter Server einsetzen.

Kube-Entwicklung
„Kubernetes“ ist mittlerweile zum Goldstandard für Container-Scheduling, Load-Balancing, Service-Discovery und vieles mehr geworden. Für den Microservices-Entwickler, der mit Kubernetes arbeitet, stehen einige weitere Open-Source-Tools zur Verfügung.

eBook „Open Source in der Datacenter-Administration, Teil 1“

Open Source in der Datacenter-Administration,Teil 1 Weiterführende Information im eBook von DataCenter-Insider:
Mit dem Aufkommen hyper-agiler Software-Entwicklung und damit neuer, verteilter Softwarearchitekturen haben sich zugleich die Anforderungen der Unternehmen an ihre Rechenzentren wieder einmal grundlegend geändert. Open-Source-Lösungen versprechen die nötige Flexibilisierung. (PDF | ET 09.04.2019)

eBook herunterladen »

Die Service-Mesh-Technologie von „Istio“ unterstützt die Bereitstellung von Diensten auf Kubernetes und verbessert die Beziehungen und Interaktionen zwischen der Anwendung und Microservices.

Orchestrierung
„Conductor“ ist die Microservices-Orchestrierungs-Engine von Netflix innerhalb des Netflix OSS-Ökosystems. Conductor wird in der Cloud ausgeführt und implementiert einen Flow Orchestrator, um Aufgaben über Microservices auszuführen. Darüber hinaus wird die Steuerung und Visualisierung aller Wechselwirkungen zwischen Microservices erleichtert.

Programming Languages
„Elixir“ ist eine parallele, funktionale Programmiersprache, die neben dem Bytecode auf der Erlang-VM (auch als „BEAM“ bekannt) funktioniert. Mit „Spring Boot“-Frameworks lässt sich die Erstellung von REST-basierten Microservices in nur wenigen Codezeilen vereinfachen.

Toolkits
„Fabric8“ ist ein Open-Source-Plattform-as-a-Service-Tool, das den Entwickler dabei unterstützt, Konfigurations-Verwaltungssysteme über git bereitzustellen, die Komplexität von IP-Adressen und Port-Zuordnungen zu bewältigen sowie einen Worklodad-Ausgleich für Dienste durchzuführen.

Die Cloud-Funktionen (BETA) der Google Cloud-Platform sind kompakt, serverlos, einfach bereitzustellen und zu warten. Die Konsole bietet Entwicklern Vorteile bei der Erstellung entkoppelter Mikroservice-Anwendungen durch eine Ereignis-gesteuerte Architektur. Darüber hinaus können Cloud-Funktionen über einige der API von Google Compute mit anderen Produkten verknüpft werden.

eBook „Open Source in der Datacenter-Administration, Teil 2“

Open Source in der Datacenter-Administration,Teil 2 Weiterführende Information im eBook von DataCenter-Insider:
Können Open-Source-Standards die Antworten auf die wachsenden Anforderungen durch IoT-Anwendungen liefern? Den wachsenden Anforderungen an die Interkonnektivität durch IoT-Anwendungen stellen Lösungsanbieter ein software-zentrisches RZ-Modell gegenüber. (PDF | ET 09.04.2019)

eBook herunterladen »

Architektonische Frameworks
„Goa“ bietet ein Framework für die Erstellung von REST-API und Microservices in der Programmiersprache „Golang“ nach dem Design-First-Ansatz. Mit Goa können Entwickler API entwerfen und dann beispielsweise dazu eine JSON-Dokumentation, Befehlszeilen-Anwendungen, eine JavaScript-Bibliothek erstellen. Alle Goa-Design-Dienste werden auf der Google Cloud-Platform ausgeführt.

„Kong“ ist für die Installation in mehreren Betriebsumgebungen verfügbar und nutzt zahlreiche Read-to-Deployment-Plugins, um die Entwicklung und Bereitstellung von Microservices zu unterstützen. Mit Kong sind Mikroservice- und Container-Entwurfsmuster nutzbar, um in kürzester Zeit API-zentrierte Anwendungen zu erstellen.

Serverlose Tools
Serverless Tech oder Function-as-a-Service ist ein wichtiger Bestandteil von Microservices, die den Prozess der Zerlegung optimieren. Zum Beispiel handelt es sich bei dem Tool mit der Bezeichnung „Serverless“ um eine Konsole, die die FaaS/Serverless-Technologie mit anderen Cloud-Diensten kombiniert, um Entwicklern beim Aufbau komplizierter Systeme zu unterstützen.

„Apache Openwhisk“ ist nicht nur ein Ereignis-basierter Programmierservice, sondern auch eine leicht erweiterbare serverlose Computerplattform, die Entwickler beim Erstellen, Testen, Verbinden von Aktionen mit anderen sowie beim Debuggen unterstützt. Openwhisk kann über eine Docker-Installation unter Apple, Windows oder Linux verwendet werden.

„Ironfunctions“ ist eine Open Source-Plattform ohne Server oder eine FaaS-Plattform, die überall ausgeführt werden kann. Ironfunctions ist in Golang geschrieben und unterstützt Funktionen in jeder Sprache – insbesondere das AWS Lambda-Format.

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46018462 / Anwendungen)