Microservices mit node.js - Gespräch mit Rico Fritzsche

03.04.2017 15:51

Der Web-Backend Track der DWX 17 steht bald vor der Tür. Hier wird Rico Fritzsche in das Thema „Microservices mit node.js“ eintauchen. Vorweg gibt er allerdings schon ein Exklusivinterview mit Gregor Biswanger, dem Track-Chair für die Themen Web-Backend und Cross-Platform.

 

Gregor: Wenn ich mit Entwicklern über Microservices spreche, denken sie es handle sich hierbei einfach um viele kleine Web-Services und dass man keinen einzelnen großen anbieten soll. Aber eine Microservices-Architektur ist viel mehr als nur das. Kannst du für Licht im Dunklen sorgen und erklären was eine Microservices-Architektur ist?

Rico: Die Microservices Architektur basiert auf der Idee Bounded Context aus Domain-Driven Design von Eric Evans und wurde im gleichnamigen Buch im Grunde schon 2003 beschrieben. Dabei werden fachliche Anforderungen in jeweils kleinere fachliche Kontexte zerlegt, die jeweils eine einzige konkrete Aufgabe erfüllen sollen. So können große, komplexe Systeme in viele kleinere Systeme zerlegen, so dass keine Monolithen entstehen. In erster Linie verstehe ich Microservices analog zu den Gedanken aus Domain-Driven Design als ein Konzept fachliche Komplexität in der Softwareentwicklung in der Griff zu bekommen und die Entstehung unwartbarer Monolithen zu vermeiden.

Die Microservices Architektur ist außerdem ein organisatorisches Konzept, bei dem mehrere Teams relativ unabhängig voneinander eine Lösung entwickeln können ohne vom Fortschritt eines anderen Teams unmittelbar abhängig zu sein.  Außerdem geht mit diesem Ansatz zwingend die Automatisierung von Test, Build- und Deploymentprozessen einher. Ist man nicht in der Lage, einen hohen Automatisierungsgrad zu erreichen, dann machen Microservices keinen Sinn.

Im Übrigen sollte die Idee Bounded Context auch genutzt werden, wenn man keine Microservices Architektur anstrebt, da es Entwickler dazu bringt, sich vor dem Coden schon intensiv mit der Fachlichkeit zu beschäftigen. Dann können auch Module entstehen, die in einem sogenannten Deployment-Monolith ausgeliefert werden, was unter Umständen auch die richtige Lösung sein kann.

 

Gregor: Welche Vorteile habe ich dann mit Microservices?

Rico: Eine Microservices Architektur versetzt uns in die Lage, mit mehreren Teams zeitgleich an großen Projekten zu arbeiten. Voraussetzung ist die intensive Auseinandersetzung mit den fachlichen Anforderungen, um den optimalen Schnitt der Services zu erreichen, was zugegebenermaßen nicht einfach und ein permanenter Lernprozess ist. Durch den zwingend erforderlichen hohen Automatisierungsgrad ist ein Team in der Lage, unkompliziert und schnell neue Versionen liefern zu können. Man kann einzelne Services aktualisieren oder auch skalieren ohne das andere davon betroffen sind.

Ein weiterer Vorteil besteht darin, dass man sich nicht an eine einzige Technologie oder Programmiersprache für alle Module auf alle Zeiten über den gesamten Lebenszyklus eines Softwaresystems binden muss. Teamübergreifende Regeln in der Makroarchitektur sind aber dennoch wichtig und notwendig.

 

Gregor: Das hört sich richtig attraktiv an. Gibt es hierbei auch Schattenseiten?

Rico: Ich sehe eine große Gefahr, diese Architektur einzusetzen, wenn man sich nicht ausreichend mit dem Konzept und der Idee dahinter auseinandergesetzt hat. Microservices sollten keinesfalls nur auf technische Aspekte und Technologien reduziert werden oder eingesetzt werden, weil sie gerade angesagt sind. Im schlimmsten Fall gewinnt man dann damit nichts, sondern erzeugt ungewollt Komplexität und schafft sich unnötige Probleme. Wichtig ist, dass das Unternehmen als auch die Entwickler die Idee dahinter verstehen und die notwendigen organisatorischen Rahmenbedingungen schaffen. Damit sind unter anderem Domain-Driven Design und Devops gemeint. Auch Kommunikation im und zwischen den Teams ist entscheidend für den Erfolg.

 

Gregor: Du hast auch jahrelange Erfahrungen mit ASP.NET. Wie schwer war für dich der neue Architekturansatz unter Node.js im Vergleich zu ASP.NET?

Rico: Da ich mich schon lange mit der Modularisierung von Software-Systemen und Domain-Driven Design beschäftige, war die grundlegende Architektur nicht wirklich neu für mich. Der Wechsel von Microsoft Technologien zu anderen Technologien wie beispielsweise node.js empfinde ich nach wie vor als einen richtigen Schritt. Als schwer habe ich diesen Technologiewechsel zu keiner Zeit empfunden.

Aus meiner Sicht und Erfahrung kann man oft mit deutlich weniger Aufwand Anforderungen effizienter umsetzen. Für die Entwicklung von Microservices mit Node.js genügt mir zum Beispiel der Terminal und der kostenfreie Atom Editor von Github auf meinem Macbook. Ich benötige kein dickes Visual Studio auf einer Windows VM. Aber es gibt sicher auch genügend Einsatzgebiete, wo ASP.NET MVC die passende Technologie ist.

 

Gregor: Kannst du unseren Lesern zum Schluss noch einen kleinen Microservices Tipp verraten?

Rico: Spontan fällt mir als wichtiger Tipp ein, dass es von Vorteil ist, sich vor allem mit der Idee von Microservices intensiv auseinanderzusetzen sowie das Konzept Bounded Context zu verstehen und zu leben. Das bedeutet stets zuerst die fachlichen Anforderungen zu verstehen und zu einem späteren Zeitpunkt technische Entscheidungen zu treffen. Microservices machen auch nicht überall Sinn, deswegen sollte man sorgfältig prüfen, ob es für das jeweilige Projekt wirklich der richtige Ansatz ist. Der Microservices- Ansatz setzt nämlich die richtigen Strukturen im Unternehmen und im Team voraus. Nur weil es ein Trend ist, heißt es nicht, dass es pauschal der richtige Lösungsansatz für alle Probleme ist.

 

Gregor: Besten Dank für das tolle Interview Rico. Ich freue mich schon auf deine Session!

Microservices mit node.js 
26.06.2017 15:30 - 16:30 Uhr   Track: Web-Backend

Fritzsche-Rico_dwxspeakerdetail

Rico Fritzsche

Rico ist leidenschaftlicher Softwareentwickler und -Architekt mit Schwerpunkt in der Entwicklung von web basierten und mobilen Lösungen. Er ist Gründer und kreativer Kopf des Softwareunternehmens Visual World und beschäftigt sich seit vielen Jahren mit der Konzeption und Implementierung von verteilten Architekturen und Anwendungen in verschiedenen nationalen und internationalen Projekten. Zum Thema Domain-Driven Design veröffentlichte er bereits mehrere Artikel in Fachmagazinen. Nach vielen Jahren der Entwicklung im .NET Umfeld rückte der Fokus in letzter Zeit stark in Richtung node.js, react.js und MongoDB sowie Containertechnologien wie beispielsweise Docker.

Schlagwörter: Architektur , JS


Autor Gregor Biswanger

Gregor Biswanger (Microsoft MVP, Intel Black Belt & Intel Software Innovator) ist freier Dozent, Berater, Trainer, Autor und Sprecher. Er berät große und mittelständische Unternehmen, Organisationen und Agenturen rund um die Themen zur Softwarearchitektur, Web- und Cross-Platform-Entwicklung mit JavaScript. Außerdem schreibt er online als freier Autor und bringt für Fachmagazine auch gerne Artikel aufs Blatt. Er ist international als Sprecher auf zahlreichen Konferenzen und Communities unterwegs. Sie erreichen ihn unter www.cross-platform-blog.de.

Gregor Biswanger

Developer Week in Social Media

Folgen Sie uns auf:

Aussteller & Sponsoren

Infos anfordern

Infos anfordern
  • Florian Bender
  • Projektleitung
  • Tel.: +49 (89) 74117-206
  • Fax: +49 (89) 74117-448
  • E-Mail: florian.bender@nmg.de

Medienpartner