Die Ursprünge des Menschen sind ein faszinierendes Forschungsgebiet, das die moderne Welt immer wieder überrascht. In einer Kalksteinhöhle in Sibirien fanden Wissenschaftler das Fossil eines außergewöhnlichen menschlichen Hybriden. Forschungsstudien wie diese beleuchten die Welt, in der wir leben, und offenbaren, wie wunderbar sie vor Zehntausenden von Jahren mit einer Vielfalt menschlicher Lebensformen war. Die Lektüre über menschliche Hybride sorgt für Verblüffung, und die Forschungsergebnisse werden uns mit weiteren Entdeckungen immer wieder begeistern. Doch dies ist nicht der einzige „Hybrid“, der uns im Zeitalter der Digitalisierung begeistert. Hybride Microservices können einen enormen Einfluss auf die Arbeitsabläufe digitaler Unternehmen haben.

Sam Newman, Autor von „Building Microservices: Designing fine-grained systems“, erklärt, dass ein Microservices-Ansatz eine hervorragende Option ist, wenn das Team talentiert ist, effizient Grenzen zwischen Prozessen und Modulen setzen und mit zahlreichen Kommunikationsprotokollen arbeiten kann. Entweder Sie refaktorieren die Anwendung, um sie auf Microservices laufen zu lassen, oder Sie arbeiten weiterhin mit Ihrem monolithischen Architektur-Setup. Tatsächlich ist es möglich, Microservices für bestimmte Teile Ihrer Anwendung zu nutzen, aber nicht vollständig. Das bedeutet, andere Komponenten arbeiten weiterhin auf einer monolithischen Architektur. Wenn Sie dies tun, verfolgen Sie einen hybriden Ansatz für Microservices.
Ein hybrider Ansatz
Einfach ausgedrückt, besteht eine hybride Microservices-Architektur aus Teilen einer Anwendung, die als Microservices erstellt und bereitgestellt werden, während der Rest der Anwendung monolithisch bleibt. Dies ähnelt der Hybrid Cloud, die eine Mischung aus öffentlicher, privater und/oder On-Premises-Infrastruktur ist. Ähnlich wie bei der Hybridisierung der Cloud bietet die Hybridisierung der Microservices-Architektur die Vorteile von Microservices in Bezug auf Flexibilität, Skalierbarkeit und Sicherheit, ohne dass Sie Ihre bestehende Anwendung vollständig umgestalten müssen, um sie als Microservices zu betreiben. Die Einführung des hybriden Ansatzes ist auch für Software-Delivery-Teams gut umsetzbar, da diese Teams den Versuch, die Monolithen vollständig zu refaktorieren, aufgrund von Zeitmangel und fehlendem Fachwissen möglicherweise nicht für machbar halten.
Eine hybride Microservices-Architektur besteht aus Teilen einer Anwendung, die als Microservices erstellt und bereitgestellt werden, während der Rest der Anwendung monolithisch bleibt
In einem Interview sprach Dave Riess, CTO von Wunder Capital, über die Einführung einer hybridisierten Microservices-Architektur. Er sagte: „Der Microservice-Ansatz sieht ziemlich ansprechend aus, wenn man aus einer monolithischen Umgebung kommt.“ Riess und Wunder Capital entschieden sich für hybride Microservices, indem sie Dienste innerhalb ihres Monolithen aufbauten und diese nicht auf verschiedenen Servern laufen ließen. Riess erklärt, dass dies es ihnen ermöglicht, Service-Aufrufe zu tätigen, die effektiv Methodenaufrufe sind, und sich nicht um die Asynchronität kümmern zu müssen, die in einer serviceorientierten Welt üblich ist. Er fügt hinzu, dass auch die Arbeit über 10 verschiedene Codebasen hinweg kein Problem darstellt. Hybridisierte Microservices haben Wunder Capital geholfen, die Komplexität in ihren Namespace-Servern zu kapseln.
Herausforderungen und Best Practices
Martin Fowler, Entwickler, Autor und Redner, sagt, dass der hybride Ansatz für Microservices vermieden werden sollte, wenn das Projekt nicht groß und komplex ist. Wenn das Projekt also mit Hilfe einer einzigen Programmiersprache einfach erstellt werden kann, funktioniert ein monolithischer Ansatz hervorragend. Obwohl Microservices extrem flexibel und modular sind, erfordern sie einen Management-Mehraufwand: Anwendungen, die mit Microservices erstellt werden, hängen von den Fähigkeiten des Entwicklungsteams ab und davon, wie gut sie die Anwendung beheben, aktualisieren und modifizieren können. Er sagt weiter, dass die Geschwindigkeit vom Entwicklungsteam bei der Bewertung des Microservices-Ansatzes berücksichtigt werden sollte. Die Entwicklung einer neuen App wird mehrere Versuche erfordern, um sie richtig umzusetzen. Eine monolithische Architektur kann Ihnen dabei helfen, schnell einen Prototyp zu erstellen und zu iterieren. Hier wird der hybride Ansatz interessant. Es ist wichtig, die Entwicklung mit einem Monolithen zu beginnen, die Modularität innerhalb der Software beizubehalten und später zu einer Microservices-Architektur überzugehen.
Zu den Best Practices gehören Überlegungen zu Skalierbarkeit, Sicherheit und Updates. Es ist wichtig zu erkennen, welche Teile Ihrer Anwendung den größten Nutzen bringen, wenn sie als Microservices ausgeführt werden. Es ist auch besser, eine hybride Microservices-Strategie zu entwickeln, die die zusätzliche Komplexität reduziert, die durch Microservices entsteht, z. B. indem identifiziert wird, welche Microservices weniger API-Aufrufe benötigen und welche in separate Container verpackt werden können. Solche Maßnahmen können dazu beitragen, den Bedarf an mehr API-Overhead oder Containern als nötig zu vermeiden.
Fazit
Hybride Microservices werden sich ständig weiterentwickeln und können implementiert werden, indem ein Teil Ihrer Anwendung in Microservices umgewandelt wird. Mit der Zeit wird auch der Umbauprozess wachsen. Eine Microservices-Roadmap kann Sie bei Ihrem Übergang unterstützen. Im weiteren Verlauf können Sie ein Skalierungsniveau erreichen, das es rechtfertigt, einen separaten Dienst in eine eigenständige Einheit auszulagern, was vergleichsweise einfach sein wird.
Abonnieren
Verwandte Blogs
Erkunden von Drupal Single Directory Components: Ein Wendepunkt für Entwickler

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

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?

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