Definition: Microservices als Basis von Cloud native Applikationen

Was sind Microservices?

| Autor / Redakteur: Stefan Luber / Florian Karlstetter

Microservices - kleine entkoppelte Dienste für den modularen Aufbau von Anwendungen.
Microservices - kleine entkoppelte Dienste für den modularen Aufbau von Anwendungen. (Bild: gemeinfrei (geralt / pixabay) / CC0)

Bei Microservices handelt es sich um kleine entkoppelte Prozesse, die einzelne Funktionen für eine Anwendungssoftware bereitstellen. Sie ermöglichen den modularen Aufbau von Software und bilden die Basis von Cloud native Applikationen, die die Vorteile von Cloud-Umgebungen voll ausschöpfen.

Microservices ermöglichen es, komplexe Anwendungen mit Hilfe einer Architektur bestehend aus vielen kleinen voneinander entkoppelten Diensten und Prozessen zu realisieren. Die Microservices kommunizieren über Schnittstellen und stellen der Applikation jeweils einzelne Funktionen und Dienste zur Verfügung. Selbst komplexe Anwendungssoftware kann auf Basis von Microservices modular entwickelt und umgesetzt werden.

Cloud native, Container, Docker & Co.: Definitionen rund um Cloud Computing

Definitionen rund um Cloud ComputingVon AWS bis XaaS: Alle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie verständlich erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier neutral verfasste und leicht verständliche Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Begriffe direkt dort nachschlagen, wo sie im Text auftauchen.  

Zum Special: Definitionen rund um Cloud Computing

Die einzelnen Microservices sind voneinander unabhängig und können auf verschiedenen Rechnern in verteilten Umgebungen oder auf Cloud-Plattformen laufen. Das Starten, Stoppen, Updaten und Skalieren der Services ist ohne eine gegenseitige Beeinflussung möglich. Für so genannte Cloud native Anwendungen, die die Möglichkeiten und Vorteile von Cloud-Umgebungen voll ausschöpfen, bilden Microservices und Container bestehend aus Microservices die Funktionsbasis.

Typische Merkmale von Microservices

Typisches Merkmal eines Microservices ist, dass er nur wenige oder nur eine einzige Aufgabe erledigt. Er ist auf diese spezialisiert und für die Aufgabe optimiert. Der Umfang der Aufgaben bleibt überschaubar und Services sind einfach ersetzbar. Betreut werden die Microservices von kleinen Entwicklerteams, die Veränderungen oder Anpassungen schnell und flexibel vornehmen können. Die Entwicklerteams sind für einen Microservice oder für fachlich zusammengehörige Microservices zuständig und bestehen in der Regel aus vier bis maximal sieben Personen. Im Vordergrund steht der Nutzen für die übergeordnete Anwendung.

Um mit der Anwendung oder gegebenenfalls mit anderen Microservices zu kommunizieren, verwenden die Services standardisierte Schnittstellen und Protokolle. Durch die Kommunikation über Schnittstellen, sind die Details der Implementierung nach außen verborgen. Für die Anwendung ist nicht ersichtlich, welche Technologie oder Architektur für die Erbringung der Leistung zum Einsatz kommt. Es zählt nur die Bereitstellung der spezifischen Funktion im geforderten Umfang. Grundsätzlich ist es möglich, dass jeder Service eine andere Programmiersprache, Datenbanktechnik oder ein anderes Framework verwendet. Um gegenseitige Beeinflussungen von Microservices zuverlässig zu verhindern, sind sie entkoppelt und gegenüber anderen Services isoliert. Dadurch lassen sich die Services unabhängig voneinander in Produktion bringen und betreiben.

Die Microservices laufen auf unterschiedlichen Rechnern, virtuellen Servern oder in getrennten Betriebssystemumgebungen. Dieser verteilte Ansatz verhindert die gegenseitige Beeinflussung oder eventuelle Überlastungen der Host-Systeme durch Microservices. Microservices besitzen keinerlei zentralistische Hierarchie und sind horizontal skalierbar. Soll die übergeordnete Applikation skalieren, werden nicht Rechnerleistungen oder Netz- und Speicherressourcen angepasst, sondern die Leistungen der einzelnen Microservices erhöht. Treten Fehler einzelner Services auf, sind Fehlerzustände und Ereignisse separiert. Die Überwachung und die Sicherheit der Microservices gewährleisten getrennte Authentifizierungs-, Autorisierungs- und Verschlüsselungsverfahren sowie entkoppelte Logging-, Monitoring- und Reporting-Tools.

Die Vorteile von Microservices

Eine Architektur, die konsequent auf Microservices setzt, bietet gegenüber herkömmlichen Ansätzen zahlreiche Vorteile. Zuständige Entwicklerteams agieren unabhängig voneinander. Parallelisierte Entwicklungsprozesse, bei denen viele Microservices gleichzeitig bereitgestellt werden, lassen sich realisieren. Es ist keine Kommunikation zwischen den Entwicklern der verschiedenen Microservices notwendig. Die Steuerung des kompletten Entwicklungsprozesses ist zentral aus Anwendungssicht möglich, was den Koordinationsaufwand minimiert. Da Microservices nur einzelne Funktionen bereitstellen, bleiben sie klein und überschaubar. Eventuelle Anpassungen oder Erweiterungen sind mit wenig Aufwand in überschaubaren Zeiten umsetzbar.

Genügt ein Microservice den Anforderungen nicht mehr, ist er problemlos durch einen komplett neu entwickelten Service eines anderen Teams ersetzbar. Abhängigkeiten zwischen Funktionen und Diensten lassen sich vermeiden und die Architektur bleibt weiterhin konsequent auf die Bereitstellung von Services für die übergeordnete Anwendung ausgerichtet. Aufgrund der Kommunikation ausschließlich über definierte Schnittstellen werden proprietäre Ansätze vermieden und etablierte Standardmechanismen genutzt. Eine hohe Verfügbarkeit des Gesamtsystems und der Applikation ist erreichbar, da sämtliche Microservices getrennt voneinander funktionieren. Ein Ausfall eines einzelnen Services beeinflusst andere nicht und ist durch die Bereitstellung eine Ersatzservices schnell abzufangen. In puncto Skalierbarkeit bleibt die Anwendung extrem flexibel, da nicht die Anwendung selbst oder Rechnerressourcen, sondern die Microservices skalieren.

Microservices und Cloud native Anwendungen

Eine wichtige Rolle spielen Microservices für Cloud native Anwendungen (NCAs). Es handelt sich bei diesen Anwendungen um Programme, die speziell für Cloud-Computing-Architekturen entwickelt und optimiert werden. Die Applikationen nutzen die Besonderheiten einer Cloud-Umgebung konsequent zu ihrem Vorteil. Die Basis von Cloud native Anwendungen bilden die Microservices, die sich aus voneinander entkoppelten Cloud-Services auf unterschiedlichen Systemen zusammensetzen.

Die Dienste für die Applikation lassen sich auf diese Art auf verschiedenen Systemen und an unterschiedlichen Standorten erbringen. Beispiele für bereitgestellte Funktionen der Microservices sind das Empfangen von Nachrichten, das Liefern von spezifischen Daten, das Lösen von Rechenaufgaben oder das Auslesen von Sensoren. Schon bei der Entwicklung der Cloud native Applikation ist die Cloud-Architektur mit ihren verteilt arbeitenden Microservices zu berücksichtigen. Es sind Redundanzen und Kommunikationsschnittstellen bereitzustellen, die sicherstellen, dass die einzelnen Microservices unabhängig von spezifischer Hardware und bestimmten Betriebssystemen lauffähig bleiben. Für den Fehlerfall einzelner Services sind Redundanzmechanismen vorzusehen.

Oft sind Microservices mit einer HTTP-Schnittstelle für die Kommunikation versehen. Ein wesentlicher Vorteil von NCAs ist, dass Anwendungen schnell zu realisieren und bereitzustellen sind. Die Anwendungen bleiben flexibel, da ein horizontales Skalieren über die Microservices möglich ist. Das aus herkömmlichen Serverumgebungen typische Überprovosionieren von Ressourcen ist überflüssig und die Leistungsfähigkeit kann direkt passend zu den aktuellen Anforderungen bereitgestellt werden. Ebenfalls hinfällig sind lange Deploymentprozesse, da die Cloud native Applikation direkt mit der Fertigstellung der Programmierung veröffentlicht werden kann.

Der Cloud native Ansatz macht Anwendungen ohne große Anpassungen auf verschiedenen öffentlichen oder privaten Cloud-Umgebungen lauffähig. So lassen sich Cloud-Umgebungen und Cloud-Anbieter nach optimalem Preis-Leistungsverhältnis auswählen. Die Unternehmen binden sich nicht an einen bestimmten Provider und vermeiden Abhängigkeiten zu Dienstleistern und Partnern.

Was ist Cloud native?

Definition: Cloud-Architektur konsequent genutzt

Was ist Cloud native?

14.12.17 - Bei Cloud native handelt es sich um einen Ansatz, der sicherstellen soll, dass Anwendungen für die Cloud-Computing-Architektur konzipiert und entwickelt werden. Die Cloud native Anwendungen nutzen die von der Cloud bereitgestellten Services konsequent und basieren auf Microservices. lesen

Container zur Bündelung von Microservices

Mehrere Microservices lassen sich zu so genannten Containern zusammenfassen. Dadurch ist die Bereitstellung von vielen einzelnen Microservices vereinfacht und schneller möglich. Gleichzeitig sind Container gegenüber zum Beispiel einer virtuellen Maschine wesentlich effizienter und flexibler zu handhaben. Die Container sind untereinander isoliert, stellen aber für ihre eigenen Microservices übergeordnete Funktionalitäten bereit. Dies können Filesysteme, Datenbanken oder andere Ressourcen und Services sein.

Grundlagen der Container-Virtualisierung

Container-Technologien - von Docker-Engines bis Kubernetes (K8s)

Grundlagen der Container-Virtualisierung

15.09.16 - Application Container waren im vergangenen Jahr der letzte Schrei in der IT-Szene, 2016 haben sich Docker und Co bewiesen. Sollten Sie als Cloud-Anwender sich in die Materie einarbeiten? Lohnt sich der Einsatz dieser „neuen“ Technologie? Kann sie möglicherweise sogar die Cloud ersetzen? lesen

Was ist AWS Lambda?

Definition: Datenverarbeitungsservice von Amazon Web Services

Was ist AWS Lambda?

29.11.18 - Mit AWS Lambda können Anwender einen Code ausführen, ohne dass dabei Server verwaltet bzw. bereitgestellt werden müssen. Kosten fallen grundsätzlich nur für die tatsächliche Rechenzeit an, die ein Anwender verbraucht. Wird der Code demgegenüber nicht ausgeführt, entstehen auch keine Kosten. lesen

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
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.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Neue Technologien für Managed Cloud-Umgebungen

Das „Salz in der Suppe“ – Cloud native, Kubernetes und Unikernels (Teil 5)

Neue Technologien für Managed Cloud-Umgebungen

Nachdem wir die Geschichte der Cloud, den aktuellen Status quo, die Einsatzszenarien sowie die verschiedenen Service Provider genauer angesehen haben, können wir nun endlich über das Salz in der Cloud-Suppe sprechen: Die Verfahren, mit denen Workloads und Anwendungen zwischen den verschiedenen Clouds hin- und herbewegt werden können. Dies ist der aktuell spannendste Entwicklungsstrang im Cloud Computing. lesen

Aktuelle Einsatzszenarien für Cloud Computing

Total Cloud – Einsatzszenarien im Überblick (Teil 3)

Aktuelle Einsatzszenarien für Cloud Computing

Cloud Computing hat sich flächendeckend durchgesetzt. Nachdem wir im ersten Teil unserer Total-Cloud-Artikelreihe auf Vergangenheit, Gegenwart und tatsächliche Marktgegebenheiten geblickt haben, thematisieren wir im dritten Teil die möglichen Einsatzszenarien. Keine Branche muss ohne eine Vielzahl von Lösungsvorschlägen auskommen, die auf einer oder mehreren Clouds basieren. lesen

So schützen Sie Container

Container-Backup

So schützen Sie Container

Container werden immer populärer. Deswegen erhält auch der Schutz der Daten durch Backups eine erhöhte Bedeutung. Wir zeigen Ihnen, wie Sie dies am besten schaffen und welche Angebote es gibt. lesen

Was ist NGINX?

Definition: Webserver mit Load Balancer und API Gateway

Was ist NGINX?

Die von Igor Sysoev entwickelte Software NGINX beinhaltet einen Webserver, E-Mail-Proxy und Reverse Proxy. Sie ist unter BSD-Lizenz frei verfügbar und eignet sich dank der ressourcenschonenden Arbeitsweise besonders gut für Webseiten mit hohem Besucher- und Verkehrsaufkommen. Unter anderem setzen Netflix und WordPress NGINX ein. lesen

Channel Guide AWS

Die Cloud ist mehr als ein Bereitstellungsmodell

Channel Guide AWS

IT wie Strom aus der Steckdose, so lautete die Vision, als Amazon Web Services (AWS) im Jahr 2006 erstmals Speicherkapazität und Rechenleistung in der Cloud bereitstellte. Die Vorzüge des Modells, das bald Nachahmer fand, sind mittlerweile praktisch jedem in der Branche geläufig. lesen

Altanwendungen durch API Management für die Hybrid Cloud nutzen

Cloud-Integration mit Dell Boomi, Talend & Salesforce Mulesoft

Altanwendungen durch API Management für die Hybrid Cloud nutzen

Um unterschiedliche Cloud- sowie alte On-premises-Anwendungen in hybriden Architekturen miteinander zu integrieren, bieten sich Integration Platform as a Service (iPaaS) an. Sie sollen insbesondere das Erstellen und Verwalten von APIs erleichtern. Ein Vergleich von drei Anbietern zeigt Gemeinsamkeiten, Unterschiede und Trends auf. lesen

SAS fokussiert sich auf IoT, Cloud-Solutions und KI

Nachbericht SAS Forum 2019 Bonn

SAS fokussiert sich auf IoT, Cloud-Solutions und KI

Auf dem diesjährigen SAS Forum hat der Analytics-Spezialist seine Produkte „SAS Intelligent Decisioning“ und „SAS Analytics for IoT“ vorgestellt sowie „SAS Demand Planning“ angekündigt. Die neue Plattform Viya werde komplett im Kubernetes-Container laufen. Daher wird es künftig neue Preismodelle geben. lesen

Multi-Cloud-Services erleichtern die Digitale Transformation

Portfolio-Erweiterung bei F5 Networks

Multi-Cloud-Services erleichtern die Digitale Transformation

Immer mehr Unternehmen führen Projekte zur Digitalen Transformation durch. In der Regel benötigen sie dabei Lösungen für die sichere Bereitstellung von qualitativ hochwertigen Anwendungen. Nur damit können sie die steigenden Erwartungen der Nutzer erfüllen. IT-Teams setzen dafür zunehmend agile Entwicklungsprozesse und Microservice-Architekturen ein, doch dafür müssen Unternehmen ihre Infrastrukturen und Dienste modernisieren. lesen

Kubernetes – die Wundertüte für Container

Kubernetes feiert 5. Geburtstag auf KubeCon + CloudNativeCon

Kubernetes – die Wundertüte für Container

Die vom 20. bis 23. Mai in Barcelona ausgerichtete KubeCon + CloudNativeCon Europe 2019 war gleichsam eine Art Geburtstagsparty für die 2014 erschienene Container-Orchestrierungs-Lösung Kubernetes. 7.700 Besucher feierten eine geradezu wuchernde Plattform der Plattformen. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45005792 / Definitionen)