Von Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen
Von Markus Lackner, Michael Hofmann, Carola Lilienthal und
()
Über dieses E-Book
Zum Einstieg in diesen shortcut diskutiert Marco Schulz zunächst die Frage, wann Microservices für ein Unternehmen wirklich Sinn ergeben und welche organisatorischen und technischen Rahmenbedingungen notwendig sind. Wie der Wechsel vom Monolith zu Microservices unter Beachtung von Domain-driven Design gelingen kann, zeigt Dr. Carola Lilienthal an einem gut nachvollziehbaren Beispiel aus der Praxis. Lars Röwekamp geht dem Problem der getrennten Datenhaltung einzelner Microservices nach und zeigt Möglichkeiten auf, wie Sie Businesstransaktionen mit Microservices durchführen können und sich trotzdem keine Sorgen um die Konsistenz Ihrer Daten machen müssen. Zum Abschluss erläutern Michael Hofmann und Markus Lackner, wie Sie mit dem Cloud-basierten Tool Istio dem Service Mesh, der Masse einzelner Microservices, die eine Microservices-Architektur ausmachen, Herr werden.
Ähnlich wie Von Monolithen und Microservices
Titel in dieser Serie (100)
TFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5UX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenEclipse meets Java FX Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Microservices: Der Hype im Realitätscheck Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenAgiliät und Continuous Delivery Bewertung: 0 von 5 Sternen0 BewertungenDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Bewertung: 0 von 5 Sternen0 BewertungenGlossar Agilität: kurz - knapp - klar Bewertung: 0 von 5 Sternen0 BewertungenBPMS: Einführung in Business Process Management-Systeme Bewertung: 0 von 5 Sternen0 BewertungenResilience: Wie Netflix sein System schützt Bewertung: 0 von 5 Sternen0 BewertungenScrum: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenAgiles IT-Architekturmanagement Bewertung: 0 von 5 Sternen0 BewertungenModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Bewertung: 0 von 5 Sternen0 BewertungenOKR: Die Erfolgsmethode von Google einfach erklärt Bewertung: 0 von 5 Sternen0 BewertungenBPM in der Praxis Bewertung: 0 von 5 Sternen0 BewertungenAgiles Requirements Engineering und Testen 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 BewertungenCloud-Services testen: Von der Risikobetrachtung zu wirksamen Testmaßnahmen Bewertung: 0 von 5 Sternen0 BewertungenTechnische Schulden: Identifizierung, Dokumentation und Management Bewertung: 0 von 5 Sternen0 BewertungenAgile Architektur mit .NET - Grundlagen und Best Practices Bewertung: 0 von 5 Sternen0 BewertungenAgiles Projektmanagement: Scrum für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenModernes Projektmanagement: Erfolg und Nachhaltigkeit in der Projektarbeit Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenStatus quo und Relevanz von digitalen Ökosystemen in der deutschen Versicherungswirtschaft Bewertung: 0 von 5 Sternen0 BewertungenCloud Computing Grundlagen: Technisch / rechtlich / wirtschaftlich und architekturell Bewertung: 0 von 5 Sternen0 Bewertungen50 Arten, Nein zu sagen: Effektives Stakeholder-Management für Product Owner Bewertung: 0 von 5 Sternen0 BewertungenLeadership im Produktmanagement: Wie Sie Stakeholder und Entwicklungsteams effektiv führen Bewertung: 0 von 5 Sternen0 Bewertungen23 Wege um eine (agile) Transformation an die Wand zu fahren: Der ultimative Leitfaden zur Eliminierung von Selbstorganisation und Mitarbeitermotivation Bewertung: 0 von 5 Sternen0 BewertungenThe People's Scrum: Revolutionäre Ideen für den agilen Wandel Bewertung: 0 von 5 Sternen0 BewertungenMit dem Nexus™ Framework Scrum skalieren: Kontinuierliche Bereitstellung eines integrierten Produkts mit mehreren Scrum-Teams Bewertung: 0 von 5 Sternen0 BewertungenAgilität neu denken: Mit Flight Levels zu echter Business-Agilität Bewertung: 0 von 5 Sternen0 BewertungenZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Von Monolithen und Microservices
0 Bewertungen0 Rezensionen
Buchvorschau
Von Monolithen und Microservices - Markus Lackner
GmbH
1 Wann Microservices (nicht) sinnvoll sind
Microservices haben mittlerweile für viele Unternehmen eine sehr hohe Bedeutung gewonnen. Durch die Verwendung dieser neuen Technologie erhofft man sich größere Flexibilität, um auf künftige Änderungen reagieren zu können. Allerdings ist es nicht damit getan, das bestehende Projekt in kleine Fragmente aufzuteilen und diese als Services zu bezeichnen. Neben den technischen Herausforderungen sind auch viele strukturelle Rahmenbedingungen zwingend erforderlich, um langfristig erfolgreich zu sein. Dieses Kapitel zeichnet ein weites Bild um die vielen Details und hilft dabei, Entscheidungen zu verstehen.
Fragt man nach den Beweggründen, weshalb in einem Unternehmen Microservices eingeführt werden sollen, sind die Antworten meist identisch. Durch einen modularen Aufbau der gesamten Anwendung haben viele Projektverantwortliche das Bild eines LEGO-Baukastens vor Augen. Man glaubt, einzelne Fragmente beliebig kombinieren zu können, um so einen hohen Grad an Wiederverwendung und natürlich implizit auch erhebliche Kosteneinsparungen in der Entwicklung zu erzielen. Die Realität schaut aber ein wenig anders aus. Ein gebetsmühlenartiges Proklamieren von wiederverwendbaren Komponenten ist für den Erfolg nicht ausreichend. Diese Evangelien wurden bereits aus dem objektorientierten Design, der vorangegangenen Religion, abgeschrieben. Auf die Erfüllung warten viele Jünger teilweise noch heute.
Standhaftigkeit
Wenn wir von Stabilität sprechen, bewegen wir uns im Kontext der nicht funktionalen Anforderungen. Aus Erfahrung wissen wir um die Schwierigkeiten, eine solche Anforderung zu artikulieren. Die meisten Beteiligten haben oft eine eigene oder nur eine vage Vorstellung über die für das Projekt relevante Bedeutung des Begriffs Stabilität. Um hier ein gemeinsames Verständnis zu schaffen, ist es unumgänglich abzugrenzen, wie im Konkreten Stabilität verstanden werden soll. Betrachten wir hierzu eine Arbeit von Boehm [1] aus dem Jahr 1976, deren Thematik Softwarequalität ist. Die von Boehm aufgezeigten verschieden Betrachtungsweisen, was der Qualitätsbegriff im Kontext von Software bedeuten kann, soll auch uns als Ausgangspunkt dienen. So können wir für den Begriff Stabilität die Aspekte Fehlertoleranz von Benutzerinteraktionen oder Netzwerklatenzen außen vor lassen. Fokussieren wir uns daher auf den Bereich Maintenance (Wartung). Denn bei Enterprise-Projekten können wir uns stets gewiss sein: Die Laufzeit der entstandenen Anwendung wird viele Jahre, wenn nicht sogar Jahrzehnte umfassen. Das impliziert kontinuierliche Anpassungen und Erweiterungen. So existieren hinreichend viele Beispiele von Anwendungen, die komplett neu entwickelt werden mussten, da sich die Aufwendungen für notwendige neue Funktionen nicht tragen konnten. So sehen einige Unternehmen in der Umstellung zu einer Service-orientierten Architektur durchaus reale Chancen, Altlasten loszuwerden. Um diese neuen Pfade erfolgreich zu beschreiten, ist es notwendig, sich mit gewonnen Erkenntnissen und Standards auseinanderzusetzen, die wir im Folgenden genauer betrachten werden.
Bonusrunden
Rekapitulieren wir an dieser Stelle besser einmal, welche Anforderungen mit einer monolithischen Architektur schwierig umzusetzen sind. Ein sehr wichtiger Aspekt ist die Risikominimierung bei der Zusammenarbeit mit externen Dienstleistern. So können beispielsweise eigenständig lauffähige Module als separates Projekt mit eigenem SCM Repository verwaltet werden, ohne dass den Offshore-Kontraktoren Zugang zu sämtlichen Interna bereitgestellt werden muss. Dieses Bild lässt sich auch für verschiedenste kollaborative Szenarien weiterentwickeln. So verhindert man bei Teams, die noch keine gemeinsame Kultur entwickelt haben, dass ein Entwickler mal schnell nach eigenem Ermessen Änderungen an Codebereichen vornimmt, die er nicht zu verantworten hat.
Wenn bei der Entwicklung auch einige Standards und Disziplin eingehalten werden, können die so entstandenen Artefakte durchaus in weiteren Applikationen ihre Verwendung finden. Neben der Vermeidung der üblichen Fallstricke im Design der Wartbarkeit gehört zu einer erfolgreichen Wiederverwendung auch eine ausführliche Dokumentation, die mehr als nur triviale Beispiele aufführt. Wenn die Forderung nach wiederverwendbaren Artefakten essenziell ist, müssen sich die Beteiligten sehr wohl im Klaren darüber sein, dass dies zusätzliche Kosten verursachen wird. Zur Risikominimierung ist es unumgänglich, den Funktionsumfang von wiederverwendbaren Komponenten erheblich einzuschränken. Es sollen für das entsprechende Einsatzszenario hochspezialisierte Komponenten entstehen und keine „eierlegende Wollmilchsau." Diese Forderung findet sich auch in der Konzeption von Microservices wieder. Ein iteratives Vorgehen, das dafür Sorge trägt, dass keine Funktionalität im Voraus entwickelt wird und nur aktuell notwendige Anforderungen umgesetzt werden, senkt die Entwicklungskosten erheblich. Ein Grund dafür liegt in reduzierten