Microservices-Architektur: Patterns in Spring implementieren
Von Michael Schäfer, Achim Müller und Rafael Kansy
()
Über dieses E-Book
Michael Schäfer
Michael Schäfer (Dr. phil.) ist wissenschaftlicher Mitarbeiter an der Technischen Universität Dresden.
Mehr von Michael Schäfer lesen
Sprachwissenschaft für Skandinavisten: Eine Einführung Bewertung: 0 von 5 Sternen0 BewertungenLove me, coach Bewertung: 0 von 5 Sternen0 BewertungenTouch me, coach Bewertung: 0 von 5 Sternen0 BewertungenGöttinger Stadtgespräche: Persönlichkeiten aus Kultur, Politik, Wirtschaft und Wissenschaft erinnern an Größen ihrer Stadt Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Microservices-Architektur
Titel in dieser Serie (100)
JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenOAuth 2.0: Client & Server Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenBPM: Strategien und Anwendungsfälle Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenTitanium Mobile: Multi Platform Apps mit JavaScript Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenJavaFX Rendering & 3D Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Von Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen Bewertung: 0 von 5 Sternen0 BewertungenMicroservices: Der Hype im Realitätscheck Bewertung: 0 von 5 Sternen0 BewertungenServerless Computing in der AWS Cloud Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 2 Bewertung: 0 von 5 Sternen0 BewertungenSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Bewertung: 0 von 5 Sternen0 BewertungenPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Bewertung: 0 von 5 Sternen0 BewertungenIT-Management: Grundlagen und Perspektiven für den erfolgreichen Einsatz von IT im Unternehmen Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenAgiliät und Continuous Delivery Bewertung: 0 von 5 Sternen0 BewertungenAgiles Requirements Engineering und Testen Bewertung: 0 von 5 Sternen0 BewertungenCloud Computing Grundlagen: Technisch / rechtlich / wirtschaftlich und architekturell Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenSoftwarearchitektur für Dummies Bewertung: 0 von 5 Sternen0 BewertungenZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Bewertung: 0 von 5 Sternen0 BewertungenAgile Architektur mit .NET - Grundlagen und Best Practices Bewertung: 0 von 5 Sternen0 BewertungenIT Management: Erfahrungen und Trends Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform-Entwicklung mit HTML und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenMobile Web-Apps mit JavaScript: Leitfaden für die professionelle Entwicklung Bewertung: 0 von 5 Sternen0 BewertungenZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Bewertung: 0 von 5 Sternen0 BewertungenBPM in der Praxis Bewertung: 0 von 5 Sternen0 BewertungenAgiles Projektmanagement: Scrum für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenIT-Servicemanagement (in OWL): Umfrage und aktuelle Trends Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenInformation Security: Smarte Lösungen zu neuartigen Bedrohungen und erweiterter Regulatorik Bewertung: 0 von 5 Sternen0 BewertungenSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Bewertung: 0 von 5 Sternen0 BewertungenLogging: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Microservices-Architektur
0 Bewertungen0 Rezensionen
Buchvorschau
Microservices-Architektur - Michael Schäfer
GmbH
1 Microservices Architecture
1.2 Warum Microservices Architecture?
Die Gesellschaft konsumiert Produkte und Services überwiegend im Internet. Ganz neue digitale Geschäftsmodelle entstehen. Start-up-Unternehmen wie Uber und Airbnb schießen wie Pilze aus dem Boden. Diese Unternehmen sind stark disruptiv, das heißt, sie verdrängen bestehende Technologien und Produkte vollständig vom Markt. Aber auch große und bereits bekannte Unternehmen wie Google, Amazon, Netflix oder Spotify etablieren neue Produkte und Services in neuen und bestehenden Märkten. Mit der Veränderung der Gesellschaft und den neuen technologischen Möglichkeiten haben wir es mit einer ganz neuen Art von Kunden zu tun. Der Kunde ist sehr stark individualisiert und erwartet daher personalisierte Produkte. Er hat keine Zeit und möchte das passende Produkt für sein Problem sofort haben. Das Produkt muss einfach sein und ihn begeistern. Es muss schnell und fehlerfrei funktionieren. Fehler in den Produkten müssen umgehend beseitigt werden und neue Features schnell verfügbar sein – und das rund um die Uhr, unabhängig von Ort und Kanal (Desktop, Mobile, TV …).
Mit diesen Anforderungen stehen wir als IT-Architekten vor einem ganz neuen Anwendungskontext, der uns vor neue Herausforderungen stellt. Wir benötigen eine dafür passende IT-Architektur. Die Microservices Architecture verspricht uns, genau für diesen Anwendungskontext die beste Architektur zu sein. Aber warum? Schauen wir uns dazu die Merkmale und die sich daraus ergebenden Vorteile etwas genauer an. Microservices sind
klein
autonom
miteinander kombinierbar
Dabei bedeutet klein, dass der Microservice genau eine fachliche Aufgabe optimal umsetzt, beispielsweise die personalisierte Anzeige meiner Filme bei Netflix. Die LOC¹, nach denen in diesem Zusammenhang immer wieder gefragt wird, spielen dabei nur eine untergeordnete Rolle. Es geht um den Business Value², den der Microservice liefern soll.
Dabei bedeutet autonom, dass die Microservices unabhängig voneinander entwickelt und ausgeliefert werden können. Somit ist es möglich, dass Facebook täglich neue Features releast und sich Features wie Likes ändern, ohne dass die gesamte Anwendung davon betroffen ist. Oft bekommt man Änderungen gar nicht mit.
Kombinierbar bedeutet, dass es möglich ist, eine Anwendung aus einer Menge von Microservices zusammenzusetzen. Für verschiedene Anwendungen müssen Microservices daher wiederverwendbar sein. Beispielsweise ist die gesamte Amazon-Seite aus vielen kleinen Microservices aufgebaut, die nicht nur die Funktion, sondern auch die User-Interface-Komponenten für die Darstellung der Seite liefern. Aus diesen Eigenschaften ergeben sich die folgenden Vorteile:
Heterogenity
Resilience
Scalability
Easy Deployment
Organizational Alignment
Composability
Reusability
Replaceability
Diese Vorteile werden von Sam Newman in seinem Buch „Building Microservices"³ ausführlich beschrieben. Genau diese Vorteile unterstützen die Anforderungen aus dem neuen Anwendungskontext. Wir können in diesem shortcut nicht auf alle Vorteile eingehen, aber anhand des Vorteils Easy Deployment, der leicht verständlich ist, wollen wir verdeutlichen, wie die neuen Anforderungen unserer Kunden umgesetzt werden.
Easy Deployment bedeutet, dass wir einen Bugfix oder ein Feature einfach und schnell deployen und damit dem Kunden zur Verfügung stellen können. Genau das benötigen wir! Der Kunde erwartet, dass Fehler umgehend beseitigt werden und Features schnell zur Verfügung stehen. Das ist nicht möglich, wenn wir nur wenige Releases im Jahr ausrollen. Nein, wir brauchen mindestens tägliche Releases, um unseren Kunden zu begeistern, wenn nicht sogar mehrere Releases pro Tag.
Aber Vorsicht! Die Anforderungen unserer Kunden sind nicht überall identisch. Wird die Microservices Architecture in einem falschen Anwendungskontext eingesetzt, kann sie auch schnell zu einem Misserfolg und damit zum Scheitern des IT-Projekts führen. Gerade in klassischen Unternehmen, beispielsweise im Versicherungs-, Finanz- oder Automobilwesen, ist das Zerlegen eines bestehenden Monolithen⁴ in Microservices nicht zwingend die beste Lösung. Auch von einer zwanghaften Zerteilung einer Anwendungslandschaft in Microservices, die dafür nicht geeignet ist, ist abzusehen. In Unternehmen ist der Kunde oft der Mitarbeiter, für den wir Produkte bauen, und der erwartet nun wirklich nicht täglich ein neues Release, ganz im Gegenteil.
Hat man sich allerdings für eine Microservices Architecture entschieden, wird man vor große Herausforderungen gestellt, diese auch erfolgreich umzusetzen – Herausforderungen wie das Design, das User Interface, die Datenhaltung, die verteilte synchrone und asynchrone Kommunikation, die Versionierung oder das Monitoring, um nur einige zu nennen. Dabei wird klar, dass wir die Vorteile, die Microservices uns bieten, nicht geschenkt bekommen, sondern eine Menge dafür