Direkt zum Inhalt
Bild
blog%20banner%20ma.jpg

Die "Saga" der Microservices-Einführung verstehen

AI-Translated
article publisher

Shilpi

Artikel

Microservices haben seit ihrer Einführung eine viel fortschrittlichere Stufe erreicht. Die auch als Microservice-Architektur bezeichnete Architektur ist eine Alternative zu einer serviceorientierten Architektur (SOA), die zur Entwicklung einer Vielzahl großer Softwareanwendungen verwendet wird, bei denen die Systeme in viele kleinere Teile unterteilt wurden, im Gegensatz zum Monolithen, bei dem die Dienste als ein einziges, klar definiertes Paket geliefert werden.

Bild, das Microservices darstellt und die Hände einer Person zeigt, die das Bild eines handgefertigten Blumenstraußes in der einen und eine Kamera in der anderen Hand hält, mit verschwommenen Blumen, Bäumen und Menschen im Hintergrund


Darüber hinaus können die schnellen und unmittelbaren Lösungen für die bestehenden Systeme mit Hilfe der Microservices-Architektur effizient extrahiert werden. Darüber hinaus hat die Fähigkeit, Modularität, Skalierbarkeit und Verfügbarkeit in einem einzigen Paket bereitzustellen, sie zum meistdiskutierten Thema in der Softwareentwicklungsbranche gemacht.

Entwickler sind ganz verrückt nach der Microservices-Architektur, als ob sie mit Microservices reibungslos durch alle anderen Dinge in der Softwarewelt segeln könnten. Ist das überhaupt möglich? Wie können Microservices mit den Bedürfnissen des Unternehmens Schritt halten?

Bevor wir tiefer in die Materie einsteigen, beginnen wir von vorne und finden heraus, was eigentlich eine monolithische Software ist.

Monolithische Anwendungen und Microservices entschlüsselt

Wikipedia meint: "Monolithische Anwendung beschreibt eine einschichtige Softwareanwendung, bei der die Benutzeroberfläche und der Datenzugriffscode in einem einzigen Programm von einer einzigen Plattform kombiniert werden."

Um die Herausforderungen einer monolithischen Anwendungsentwicklung zu bewältigen, wurden Microservices erfunden. MARK EMEIS, Senior Director of Software Technologies bei CA Technologies, definiert Microservices als "eine Architektur, die eine Reihe von technischen Vorteilen bietet, die zur Entwicklungsgeschwindigkeit und Produktqualität in Softwareprojekten beitragen und gleichzeitig die allgemeine Geschäftsagilität fördern".

Illustrationsbild, das eine monolithische Anwendung als Blöcke zeigt, die alle Elemente an einem Ort in verschiedenen Farben auf der linken Seite einschließen, und eine Microservices-Architektur auf der rechten Seite, die alle Elemente in verschiedenen blockierten Komponenten getrennt hält
Quelle: Martin Fowler

Martin Flower behauptet, es gäbe keine genaue Definition des Microservices-Architekturstils. Vielmehr kann sie als ein bestimmtes Verfahren zur Gestaltung einer Vielzahl von unabhängig voneinander einsetzbaren Softwareanwendungen oder -diensten mit Geschäftsfunktionen, automatisierter Bereitstellung, Intelligenz in den Endpunkten und dezentraler Steuerung von Sprachen und Daten als ihren gemeinsamen Merkmalen bezeichnet werden.

Es hat sich gezeigt, dass Microservices-Architekturen seit ihrem Ursprung die Softwareentwicklungsbranche revolutioniert haben, indem sie perfekte Lösungen für viele spontane Komplexitäten bieten. Die Einführung von Microservices wird sich sicherlich auf die technische und operative Kultur eines Unternehmens auswirken.

Viele große Unternehmen haben inzwischen die Microservices-Kultur übernommen und die orthodoxe monolithische Architektur aufgegeben, um im Softwareentwicklungsspiel voranzukommen. NetFlix war in seiner frühen Wachstumsphase nicht in der Lage, die Rechenzentren zu bauen, die dem Unternehmen die Skalierbarkeit bieten. Unzählige Probleme veranlassten die Entwickler, immer wieder nach den Problemen zu suchen, was sie sehr anstrengte.

Mit Microservices-Architekturen wurde das Umschreiben der vorherrschenden Probleme einfach und NetFlix konnte Milliarden von API-Aufrufen von 800 verschiedenen Geräten verarbeiten. Derzeit arbeitet das Unternehmen mit über 500 Microservices und über 30 Engineering-Teams.

Auf der anderen Seite war es bei Uber zum Zeitpunkt seines Aufstiegs mit einer einzigen Codebasis sehr einfach, alle aufgetretenen Probleme zu lösen. Später, als das Geschäft expandierte, wurden die Komponenten jedoch eng miteinander verbunden, die Verdichtung war ein Problem und die Unternehmen waren für die kontinuierliche Integration verantwortlich. Die Wahl von Microservices für dasselbe wirkte sich positiv auf Uber aus, und mit der Microservices-Architektur, dem API-Gateway, das alle Fahrgäste und Fahrer verbindet, werden separate Einheiten für unterschiedliche Funktionalitäten eingesetzt und alle Funktionen wurden individuell skaliert. Insgesamt hat die Migration von Monolith zu Microservices Uber geholfen, viel zu erreichen.

Warum Microservices einführen?

Ein Bild, das einen Turm mit einer Brücke in violetten Farben mit gravierten Lichtern und blauem Himmel darstellt


Wie wir in den vorherigen Beispielen gesehen haben, haben NetFlix und Uber ihren Unternehmen einen zusätzlichen Wert verliehen, indem sie Microservice-Architekturen eingeführt haben. Ob klein, mittel oder groß, die Größe spielt keine Rolle, ein Vorwärtssprung mit Microservices wird Ihnen helfen, Geschäftsziele schneller zu erreichen. Die folgenden Gründe helfen dabei:

  • Verbesserte Flexibilität: Die vollständige Dissoziation und Dezentralisierung der gesamten Anwendung in separate Einheiten, im Gegensatz zu Monolith, erfolgt in der Microservices-Architektur, wodurch die Wartung optimiert wird. Die Wartung wird unbemerkt bleiben, falls einige der Einheiten dafür heruntergefahren werden.
  • Erhöhte Erweiterbarkeit: Jeder Dienst ist eine separate Einheit, die separat skaliert werden kann, ohne dass die gesamte Anwendung skaliert werden muss. Darüber hinaus können wichtige Dienste des Unternehmens auf mehreren Servern bereitgestellt werden, wodurch die Verfügbarkeit und Leistung erhöht wird, ohne die Leistung anderer Dienste zu beeinträchtigen.
  • Aufgaben und Tools in Beziehung: Microservices bieten Mobilität bei der Auswahl der Tools zur Ausführung einer bestimmten Anzahl von Aufgaben. Der Benutzer ist nicht an ein einzelnes Tool gebunden und hat die Wahl, das Tool auszuwählen, das für die Aufgabe am besten geeignet ist. Jeder separate Dienst kann in seiner eigenen Sprache, seinem eigenen Framework und seinen eigenen unterstützenden Diensten arbeiten, wobei die Kommunikation zwischen den anderen Diensten auf dem Punkt gehalten wird.
  • Schnellere Markteinführungszeit: Die Entitäten in Microservices sind lose gekoppelt, wodurch jede von ihnen unabhängig von den anderen ist. Daher sind keine Änderungen an der gesamten Codebasis erforderlich, um eine Funktion hinzuzufügen oder zu ändern. Auch die Entwicklung von Anwendungen als kleine Teile wird sie schnell marktreif machen.
  • Problemlose Fehlersuche und Wartung: Kleinere Module, die einen kontinuierlichen Liefer- und Testprozess durchlaufen, ermöglichen eine effiziente Bereitstellung fehlerfreier Anwendungen.
  • Verbesserter ROI mit reduziertem TCO: Wenn mehrere Teams an mehreren unabhängigen Entitäten oder Diensten arbeiten, wird der Bereitstellungsprozess durch die Optimierung von Ressourcen und die Möglichkeit einer einfachen Neuausrichtung bei Bedarf unterstützt. Dies reduziert die Entwicklungszeit und ermöglicht die Wiederverwendung von Code. Die erweiterte Effizienz von Microservices reduziert die Infrastrukturkosten und minimiert auch die Ausfallzeiten. Durch die Entkopplung ist die Arbeit an teuren Maschinen nicht erforderlich, mit einfachen x86-Maschinen werden Wunder geschehen.
  • Kontinuierliche Bereitstellung: Microservices-Teams verwalten den gesamten Entwicklungslebenszyklus mit einem kontinuierlichen Bereitstellungsmodell, das von funktionsübergreifenden Teams verwaltet wird. Fehlersuche und Tests werden einfach und kontinuierlich, da Entwickler, Tester und Betriebsteams gleichzeitig an einem einzigen Dienst arbeiten. Darüber hinaus wird Code aus den bestehenden Bibliotheken wiederverwendet, was die Effizienz der Entwicklung verbessert.

Es besteht kein Zweifel an der Tatsache, dass Unternehmen, die Microservices eingeführt haben, viele Vorteile daraus gezogen haben. Aber wenn man die Medaille auf die andere Seite dreht, wird deutlich, dass nicht jedes Unternehmen würdig genug ist, die Vorteile der Microservices-Architektur zu nutzen. Bevor Sie sich für Microservices entscheiden, stellen Sie sicher, dass Ihr Unternehmen in der Lage ist, diese zu verwalten.

Rote Flaggen bei der Einführung von Microservices

Ein Bild, das eine Reihe von Warnschildern in gelber Farbe mit Menschen, Straße und Gebäuden im Hintergrund und blauem Himmel darstellt

 

  • Überstürzt: Mit dem kontinuierlichen Bereitstellungs- und inkrementellen Entwicklungsmodell können Teams Ressourcen schnell bereitstellen, Verzögerungen von Tagen oder Monaten werden nicht berücksichtigt, um mit dem Tempo Schritt zu halten und das Beste aus den Microservices herauszuholen. Darüber hinaus sollte die Bereitstellung der Dienste sofort erfolgen.
  • Greifbare Überwachung: Jeder Dienst in der Microservice-Architektur basiert auf seiner eigenen Sprache, API, Plattform usw. Mehrere Teams arbeiten gleichzeitig an diesen Diensten, und daher sollten die Teams wissen, wann der Dienst ausfällt, damit die Verfolgung einfach wird, wenn er auftritt. Daher ist eine robuste Überwachung ein Muss, wenn es um die effiziente Verwaltung der Infrastruktur geht.
  • DevOps-Kultur: Im Gegensatz zur traditionellen Kultur der Softwareentwicklung arbeiten in DevOps sowohl die Entwickler- als auch die Betriebsteams Seite an Seite, um das endgültige Ziel zu erreichen. Beim Wechsel zu Microservices wird die Einhaltung von DevOps zur Pflicht.
  • Die Testkomplexität steigt: Das Testen ist bei Microservices nicht mühelos. Jeder Dienst ist von anderen abhängig, entweder direkt oder progressiv. Mit dem Hinzufügen von mehr neuen Funktionen nehmen die Abhängigkeiten zu. Es ist kaum möglich, all dies zu verfolgen. Ob Datenbankfehler, Netzwerklatenz oder Caching-Probleme, Microservices-Architekturen sollten in der Lage sein, alles rational zu handhaben. 
  • Denken Sie beim Entwerfen immer daran, dass das Schlimmste noch bevorsteht: Mehrere Fehler oder Schluckaufe sind üblich bei der Erstellung eines perfekten Designs. Langsame Dienste, Systemausfallzeiten und unerwartete Antworten sind bei mehreren Fehlern offensichtlich. Lastverteilung ist Teil von Plan A, aber ein Plan B für den Fall einer Unterbrechung ist das Beste. Im Falle eines Fehlers sollte der betroffene Dienst weiterhin mit eingeschränkter Funktionalität laufen, ohne das gesamte System zu beeinträchtigen.

Voraussetzungen für die Einführung von Microservices

Bild, das eine Hand mit einem Messröhrchen und drei kleinen Flaschen mit braunen Lösungen zeigt, die auf einem weißen Tisch stehen

 

  • Schnelle Beschaffung: Das gesamte System sollte in der Lage sein, die schnelle Bereitstellung durchzuführen, d. h. die Bereitstellung sollte zügig erfolgen. Von schneller Bereitstellung spricht man im Grunde beim Cloud Computing, aber die Aufgabe kann auch ohne einen vollständigen Cloud-Service durchgeführt werden. Automatisierung ist für Ersteres entscheidend.
  • Überwachung ist unerlässlich: Da die Elemente oder Dienste in Microservices lose gekoppelt sind, kann bis zum Erreichen der Produktion einiges schiefgehen, und es wäre schwierig, den Fehler in Testumgebungen zu finden. Die Strategie hier ist, sowohl technische (Verfügbarkeit von Diensten, Zählen von Fehlern) als auch geschäftliche Probleme (Rückgang der Bestellungen) regelmäßig zu überprüfen. Daher ist es wichtig, das systematische Überwachungsverfahren zu befolgen, um die aufgetretenen Probleme schnell zu erkennen und zu lösen. 
  • Effiziente und sofortige Bereitstellung: Eine schnelle Bereitstellung der Anwendung ist erforderlich, um alle lose gekoppelten Dienste sowohl in der Test- als auch in der Produktionsumgebung angemessen zu verwalten. Eine vollständig automatisierte Bereitstellungspipeline (wenige manuelle Eingriffe) wird sich als Segen erweisen und die Aufgabe in wenigen Stunden ausführen. 

Die oben genannten Faktoren werden als Paradigmenwechsel für die Unternehmen angesehen, der sowohl die Entwickler- als auch die Betriebsteams in enger Zusammenarbeit hält, eine DevOps-Kultur aufbaut, eine schnelle Bereitstellung gewährleistet, eine effektive Ursachenanalyse eines Problems ermöglicht und im Gegenzug die sofortige Lösung in der schnellen Bearbeitungszeit bietet.

Lesen Sie hier mehr über Architekturelemente und Prinzipien von Microservices.

Befolgen Sie Folgendes für eine erfolgreiche Implementierung

Bild, das eine geclusterte Reihe von Lichtern darstellt, die mit den Wänden in blauen, rosa und orangefarbenen Farben hängen

Wenn Sie über die Einführung der Microservices-Kultur nachdenken, ist es sehr wichtig, die Implementierung zügig zu beginnen. Die folgenden Überlegungen ermöglichen Ihnen einen gesunden Ansatz für die erfolgreiche Implementierung von Microservices.

Strangler-Methode

Motiviert von seiner Reise nach Australien schlug Martin Fowler die Strangler-Methode für die gut organisierte Implementierung der Microservices-Architektur vor.

Er erklärt: "Eines der Naturwunder dieser Gegend [Australien] sind die riesigen Würgefeigen. Sie säen sich in den oberen Ästen eines Feigenbaums aus und arbeiten sich allmählich den Baum hinunter, bis sie im Boden wurzeln. Im Laufe der Jahre wachsen sie zu fantastischen und schönen Formen heran, während sie den Baum, der ihr Wirt war, erwürgen und töten."

Die Methode wandelt sich in einen schrittweisen Ansatz, bei dem die Teile der monolithischen Anwendung in Microservices-Elemente umgewandelt werden, wodurch der Monolith schließlich entfernt wird. Dieser Wechsel wird sehr vereinfacht, ohne dass er sich auf das gesamte System auswirkt, und ermöglicht einen einfachen Übergang von traditionellen zu Microservices-Architekturen. Diese Methode verzichtet auf Geschwindigkeit.

Eskalieren mit Lego

Was ist, wenn ein Unternehmen nicht vollständig auf Microservices basieren möchte und sowohl Monolithen als auch Microservices für seine Anwendungsentwicklung haben möchte. Die Lego-Strategie ist für solche Unternehmen ein Lebensretter. 

Das Team von Kong hat diesen Begriff ins Spiel gebracht, bei dem ein Vorwärtssprung gemacht wird, indem man mit den vorhandenen Dingen baut, wie die Lego-Blöcke. Anstatt vollständig auf Microservices zu setzen, werden Microservices als neue Funktion in das System eingefügt, wobei die monolithische Architektur intakt bleibt. Mit diesen aktuellen Problemen werden die aktuellen Probleme nicht behoben, aber die Expansion ist mit der Zeit sicher. Dies schafft eine mühelose hybride Build-Umgebung mit wenigen Risiken wie der Erhöhung der technischen Schulden, dem Wechsel zwischen den Codeversionen von Monolith und Microservices, den Wartungskosten usw. 

Der Atomwaffendeal

Von Grund auf neu zu beginnen ist sowohl vorteilhaft als auch nachteilig, die nukleare Option wird sehr selten verwendet. Es ist wie beim vollständigen Übergang von traditionellen Monolithen zu den neuen Microservices, und wenn dies geschieht, werden viele unvorhergesehene Probleme auftreten, die die Dienste für einige Zeit nicht verfügbar machen. Da sich die Microservices-Infrastruktur in der Cloud befindet, werden Software und Personal unbemerkt bleiben, und in der Zwischenzeit, wenn die Änderungen im Gange sind, müssen sich die Endbenutzer mit einem ins Stocken geratenen Monolithen auseinandersetzen, der als "Second-System-Syndrom" bezeichnet wird.

Fazit

Die Microservices-Architektur hat die IT-Landschaft eines Unternehmens revolutioniert, um die Geschäftsfunktionen zu unterstützen. Viele im Internet ansässige Unternehmen haben sie erfolgreich eingeführt und große Vorteile daraus gezogen. Unternehmen in traditionellen Branchen kämpfen jedoch noch mit dem Prozess der Einführung von Microservices.

Es hat sich herausgestellt, dass Entwickler es lieben, Aufgaben Block für Block zu erledigen, und dasselbe wurde durch die Microservices-Architekturen ermöglicht. Eine Steigerung der Agilität, Effizienz und Widerstandsfähigkeit der operativen Fähigkeiten eines Unternehmens sind die Aufgaben, die von Microservices ausgeführt werden und die Unternehmen in höhere Einnahmen verwandeln und die Kosten für ein Unternehmen senken. Wenn Unternehmen planen, Microservices einzuführen, wird dies ihnen viele große Vorteile bringen, sowohl technisch als auch operativ, aber es ist unvermeidlich, dass sie die notwendigen Maßnahmen ergreifen und alle Vor- und Nachteile gemäß den Bedürfnissen und Spezifikationen ihres Unternehmens abwägen.

Abonnieren

Ready to start your digital transformation journey with us?

Verwandte Blogs

Erkunden von Drupal Single Directory Components: Ein Wendepunkt für Entwickler

Single Directory Component

Webentwicklung lebt von Effizienz und Organisation, und Drupal, unser Lieblings-CMS, ist mit seiner neuesten Funktion hier,…

7 schnelle Schritte zur Erstellung von API-Dokumentationen mit Postman

How To Create API Documentation using Postman.png

Wenn Sie mit APIs arbeiten, kennen Sie wahrscheinlich bereits Postman, den beliebten REST Client, dem unzählige Entwickler…

Was ist der Product Engineering Life Cycle?

What%20is%20Product%20Engineering%20Life%20Cycle.png

Stellen Sie sich vor, Sie bauen ein Haus ohne Bauplan oder Konstruktionszeichnungen. Es wäre schwierig, die Kosten und den…