Microservices-Architektur: Patterns in Spring implementieren
By Michael Schäfer, Achim Müller and Rafael Kansy
()
About this ebook
Read more from Michael Schäfer
Sprachwissenschaft für Skandinavisten: Eine Einführung Rating: 0 out of 5 stars0 ratingsGöttinger Stadtgespräche: Persönlichkeiten aus Kultur, Politik, Wirtschaft und Wissenschaft erinnern an Größen ihrer Stadt Rating: 0 out of 5 stars0 ratings
Related to Microservices-Architektur
Titles in the series (100)
HTML5 Security Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsAgile Architektur mit .NET - Grundlagen und Best Practices Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5IT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Management Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsJavaFX Rendering & 3D Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratings
Related ebooks
GraphQL: Eine Einführung in APIs mit GraphQL Rating: 0 out of 5 stars0 ratingsMobile Web-Apps mit JavaScript: Leitfaden für die professionelle Entwicklung Rating: 0 out of 5 stars0 ratingsMicroservices: Der Hype im Realitätscheck Rating: 0 out of 5 stars0 ratingsIT-Management: Grundlagen und Perspektiven für den erfolgreichen Einsatz von IT im Unternehmen Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 2 Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsVon Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen Rating: 0 out of 5 stars0 ratingsBessere Softwareentwicklung mit DevOps Rating: 0 out of 5 stars0 ratingsAgiles Requirements Engineering und Testen Rating: 0 out of 5 stars0 ratingsBPM in der Praxis Rating: 0 out of 5 stars0 ratingsVue.js für alle: Wissenswertes für Einsteiger und Experten Rating: 0 out of 5 stars0 ratingsDas Projekt SAP: Zur Organisationssoziologie betriebswirtschaftlicher Standardsoftware Rating: 0 out of 5 stars0 ratingsInformation Security: Smarte Lösungen zu neuartigen Bedrohungen und erweiterter Regulatorik Rating: 0 out of 5 stars0 ratingsCross-Plattform-Entwicklung mit HTML und JavaScript Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsMobile App Engineering: Eine systematische Einführung – von den Requirements zum Go Live Rating: 0 out of 5 stars0 ratingsIT-Servicemanagement (in OWL): Umfrage und aktuelle Trends Rating: 0 out of 5 stars0 ratingsIT Management: Erfahrungen und Trends Rating: 0 out of 5 stars0 ratingsCloud Computing Grundlagen: Technisch / rechtlich / wirtschaftlich und architekturell Rating: 0 out of 5 stars0 ratingsKnigge für Softwarearchitekten Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsOAuth 2.0: Client & Server Rating: 0 out of 5 stars0 ratingsCloud-Services testen: Von der Risikobetrachtung zu wirksamen Testmaßnahmen Rating: 0 out of 5 stars0 ratingsModerne Realzeitsysteme kompakt: Eine Einführung mit Embedded Linux Rating: 0 out of 5 stars0 ratingsPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Rating: 0 out of 5 stars0 ratingsUML @ Classroom: Eine Einführung in die objektorientierte Modellierung Rating: 0 out of 5 stars0 ratingsMaschinelles Lernen In Aktion: Einsteigerbuch Für Laien, Schritt-Für-Schritt Anleitung Für Anfänger Rating: 0 out of 5 stars0 ratingsGroovy – kurz & gut Rating: 0 out of 5 stars0 ratings
Reviews for Microservices-Architektur
0 ratings0 reviews
Book preview
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