Microservices: Der Hype im Realitätscheck
()
About this ebook
Kaum ein anderes Thema unterliegt momentan einem solchen Hype wie Microservices. Doch was ist eigentlich möglich mit Microservices, wo liegen Stärken und Schwächen? Dieser shortcut gibt einen kurzen Überblick über den Architekturtrend und beantwortet die wichtigsten Fragen. Dabei führt er die Vor- und Nachteile von Microservices ebenso auf wie die eigenen Erfahrungen der Autoren mit gut gemachten Microservices-Implementierungen, die den Wandel in der Technologie vereinfachen können. Auch fertige Komponenten für Konfiguration, Service Discovery und Resilience werden näher vorgestellt und ihre Einsatzmöglichkeiten erläutert.
Read more from Eberhard Wolff
Das Microservices-Praxisbuch: Grundlagen, Konzepte und Rezepte Rating: 0 out of 5 stars0 ratingsMicroservices: Grundlagen flexibler Softwarearchitekturen Rating: 0 out of 5 stars0 ratingsContinuous Delivery: Der pragmatische Einstieg Rating: 0 out of 5 stars0 ratings
Related to Microservices
Titles in the series (100)
Skalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit 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 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsOAuth 2.0: Client & Server Rating: 0 out of 5 stars0 ratingsVaadin mit Eclipse, Clojure und OSGi Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Qualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratings
Related ebooks
Von Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen Rating: 0 out of 5 stars0 ratingsAgiliät und Continuous Delivery Rating: 0 out of 5 stars0 ratingsSAFe® 4.6: Eine Anleitung zur lean agilen Revolution? Rating: 0 out of 5 stars0 ratingsBessere Softwareentwicklung mit DevOps Rating: 0 out of 5 stars0 ratingsModerne Datenzugriffslösungen mit Entity Framework 6 Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsMit dem Nexus™ Framework Scrum skalieren: Kontinuierliche Bereitstellung eines integrierten Produkts mit mehreren Scrum-Teams Rating: 0 out of 5 stars0 ratingsAgiles Projektmanagement: Scrum für Einsteiger Rating: 0 out of 5 stars0 ratingsScrum: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsMicroservices-Architektur: Patterns in Spring implementieren Rating: 0 out of 5 stars0 ratingsSQL Server: Performanceprobleme analysieren und beheben Rating: 0 out of 5 stars0 ratingsGraphQL: Eine Einführung in APIs mit GraphQL Rating: 0 out of 5 stars0 ratingsBig Data, Fast Data 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 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsAgiles Requirements Engineering und Testen Rating: 0 out of 5 stars0 ratingsWeb-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Rating: 0 out of 5 stars0 ratings50 Arten, Nein zu sagen: Effektives Stakeholder-Management für Product Owner Rating: 0 out of 5 stars0 ratingsRetrospektiven in der Praxis: Veränderungsprozesse in IT-Unternehmen effektiv begleiten Rating: 0 out of 5 stars0 ratingsDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Rating: 0 out of 5 stars0 ratingsErfolgreich mit dem agilen Spotify Framework: Squads, Tribes und Chapters - der nächste Schritt nach Scrum und Kanban? Rating: 0 out of 5 stars0 ratingsGlossar Agilität: kurz - knapp - klar Rating: 0 out of 5 stars0 ratingsKnigge für Softwarearchitekten Rating: 0 out of 5 stars0 ratingsLeadership im Produktmanagement: Wie Sie Stakeholder und Entwicklungsteams effektiv führen Rating: 0 out of 5 stars0 ratings
Programming For You
Microsoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsDie ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsHausautomation mit Raspberry Pi: Alarmanlage, Heizung, Smart Home, W-LAN & Co: 20 Projekte, die Ihr Leben leichter machen Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5HTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsPraktisches Programmieren in C: Grundlagen und Tipps Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5C++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Java 8 - Die Neuerungen: Lambdas, Streams, Date and Time API und JavaFX 8 im Überblick Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsArduino: Ein schneller Einstieg in die Microcontroller-Entwicklung Rating: 5 out of 5 stars5/5Linux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 2 Rating: 0 out of 5 stars0 ratingsProgrammieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Das Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratings
Reviews for Microservices
0 ratings0 reviews
Book preview
Microservices - Eberhard Wolff
GmbH
1 Erfahrungen, Vor- und Nachteile von Microservices
Kaum ein Thema ist im Moment so ein Hype wie Microservices [1]. Welche Gründe gibt es dafür? Und wie kann man Microservices gewinnbringend einsetzen? Welche Herausforderungen gibt es? Dieses Kapitel gibt einen Überblick über den Architekturtrend und beantwortet die wichtigsten Fragen.
Microservices dienen eigentlich nur zur Modularisierung von Software. Für Modularisierung gibt es aber unzählige Ansätze: Klassen, Packages oder JARs dienen in der Java-Welt beispielsweise diesem Ziel. Nur so können auch große Projekte in kleine Einheiten aufgeteilt werden und bleiben dadurch erweiterbar und wartbar. Aber Microservices sind anders: Die wesentliche Eigenschaft von Microservices ist das unabhängige Deployment. Ein Microservice kann in Produktion gebracht werden, ohne dass die anderen Microservices ebenfalls neu deployt werden müssen. Während also bei den klassischen Deployment-Monolithen die Module wie Klassen, Packages oder JARs alle gleichzeitig in Produktion gebracht werden müssen, ist das bei Microservices nicht so. Übrigens können Deployment-Monolithen durchaus intern sauber modularisiert sein – nur müssen eben alle Module gemeinsam in Produktion gebracht werden.
Konkret können Microservices beispielsweise als einzelne Docker-Container umgesetzt sein. Mehrere solcher Container bilden dann zusammen eine Anwendung. Jeder einzelne Microservice kann eine REST-Schnittstelle haben oder für bestimmte URLs die Weboberfläche als HTML-Seiten erzeugen.
Durch die Aufteilung in mehrere Deployment-Einheiten wie Docker-Container ergeben sich neben dem unabhängigen Deployment noch verschiedene andere Konsequenzen: Jeder Microservice kann in einer anderen Programmiersprache auf einer anderen Plattform implementiert sein. In einem Docker-Container kann schließlich fast jede Infrastruktur laufen. Ebenso kann jeder Microservice einzeln skaliert werden. Dazu sind nur ein Load Balancer und mehrere Instanzen des Docker-Containers notwendig. Auch bezüglich der Robustheit ist ein Microservice eine Einheit: Wenn beispielsweise ein Microservice zu viel Speicher allokiert oder die CPU stark belastet, beeinflusst das nur diesen einen Microservice. Wenn die anderen Microservices sogar den Ausfall dieses Microservice tolerieren können, entsteht so ein sehr robustes System.
Es gibt auch ganz andere Infrastrukturen für Microservices. Beispielsweise erlaubt Amazon Lambda [2] das Deployment einzelner in Java, JavaScript oder Python geschriebener Funktionen. Diese werden auch automatisch in ein Monitoring integriert. Die Abrechnung erfolgt pro Aufruf, wobei die erste Million Aufrufe kostenlos ist.
Eine solche Technologie verringert den Aufwand für einen Microservice erheblich: Er muss nur mit einem Kommandozeilenwerkzeug deployt werden, den Rest erledigt die Infrastruktur. Es ist also kein Aufbau eines Docker-Containers oder ähnliches notwendig. Solche Technologien können die Nutzung von Microservices erheblich vereinfachen. Dennoch bieten sie eine gute Isolation und eine gute Skalierbarkeit einzelner Services. Microservices müssen also nicht unbedingt Docker nutzen – im Gegenteil, andere Ansätze wie Amazon Lambda können sogar noch einfacher und effizienter sein.