SlideShare uma empresa Scribd logo
23.02.17 EACG GmbH 1
EA
or SOA strikes back?
Jan Thielscher, EA Community Rhein Main, 21. Feb 2017
Was Enterprise Acrhitects zu Microservices wissen sollten
Agenda
23.02.17 EACG GmbH 2
• EACG brief
• Zentrale Elemente einer Service-orientierten Architektur (SOA)
• Zentrale Elemente einer Micorservice-Architektur (MSA)
• Ausgewählte Gestaltungsaspekte von MSA
• Zusammenfassung
For over 12 years EACG supports its customers in gaining
competitive advantage from information Technology
23.02.17 Making IoT successful - some lessons 3
E A C G i s a p r o s p e r i n g A W S p a r t n e rE A C G S e r v i c e s
Cloud Service Rating Open Source Risk Management
E A C G i n n o v a t e sE A C G s e r v e s s t r o n g & u p c o m i n g b r a n d s
SOA entstand primär getrieben aus Integrationsnotstand
Grundidee:
Lose Kopplung von bestehenden Systemen und deren
Aktivierung für flexible Prozessgestatung
Zentrale Gestaltungscharakteristika einer SOA:
• Standards:
Datenaustausch, Kommunikationsformen
• Service Contract: Klar definiertes Interface mit spezifischer
Leistung existiert, keine „Backdoors“
• Unabhängigkeit/Lose Kopplung: Consumer und Provider
müssen einander nicht mehr kennen, Nutzung explizierter
Transport & Connectivity-Infrastrukturen (ESB!)
• Meta-Data:
Schemata, Explikation, Repositories, alles wird exponiert und
beschrieben
• Policy-driven:
Raum für nicht-funktionale Spezifika (Encryption, Protokolle,
andere technische Charakteristika)
• Dokumenten-basierter Datenaustausch:
XML bzw. SOAP-basierter Austausch entkoppelt von Daten-
Spezifika
23.02.17 EACG GmbH 4
Service Bus Repository
Provider
System2
Typische SOA-Struktur
Provider Sys1
Consumer
Microservice-Konzept entstand, um schnell viel zu erreichen
Grundidee:
Kleine Teams können kleine Aufgaben schneller lösen als
große Teams große Aufgaben
Zentrale Gestaltungscharakteristika einer
Microservice-Architektur (MSA):
• Services sind fokussiert auf eine kleine Aufgabe
• Services sind (weitgehend) autonom
Typische Vorteile einer MSA sind:
• Unabhängigkeit / Entkopplung
• Einfaches Deployment
• Leichte Ersetzbarkeit
• Dezentralisierung
• Technologische Heterogenität
• „Do one thing well“
• Operate your own code
• vereinfachte, organisatorische Abbildung
23.02.17 EACG GmbH 5
Svc1
Persis
tenz
Logic
UI
Svc2
Persis
tenz
Logic
UI
SvcN
Pesist
enz
Logic
UI
Mögliche MSA-Struktur
Beispiel: Bestellung Konto Kunde
Einfache organisatorische Abbildung – Was bedeutet das?
23.02.17 EACG GmbH 6
Team Code App Deploy
Traditionell(Branching)MSA-Ansatz
Amazon.com Fakten
~11,6 sec
Mean time between deployments (weekday)
1.079
Max # of deployments in a single hour
~10.000 server
Avg # of hosts updated simultaneously
PLEASE NOTE: Amazon has several thousands of developers ww!!
Gut gemacht, erlauben Microservice-Architekturen durch unbedingte Nebenläufigkeit exorbitante Liefergeschwindigkeiten
Geschwindigkeitsvorteile lassen sich nur bei hinreichender
prozessualer Reife erschließen
Anforderungen müssen für die Menge an Teams sinnvoll gestaltet werden
• Verständnis eines möglichen/sinnvollen Domänenschnitts auf PM-Seite wichtiges Erfolgskriterium, um
Arbeitsvorrat vorausschauend zu erzeeugen und zu verteilen
• Abhängigkeiten entlang von Prozessen sind rechtzeitig zu identifizieren und sinnvoll aufzulösen
Bsp.: Arbeitsanweisung => Messvorgang => Sollwerte => Sollwertabweichungen => Korrekturen
• Guter Überblick über die Bedarfe damit rechtzeitig technologische Meilensteine (bspw. zentrale Capabilities)
identifiziert und adressiert werden können. Nicht alles lässt sich mal eben im Sprint lösen.
Automation des Entwicklungs- und Deployment-Prozesses muss hinreichend fortgeschritten sein
• Hinreichende Testabdeckung im automatisierten Testen
• Keine manuelle Interaktion nach Freigabe
• Geeignete Rollback-Mechanismen
Operations-Verantwortung im DEV-Team
• keine langen Übergabe-Protokolle, Installationsanleitungen oder Quality-Gates
• Herausforderung der arbeitsvertraglichen Gestaltung meistern
23.02.17 EACG GmbH 7
Anforderungen an organisatorische Implementierung sind hoch und stellenweise nicht mit regulatorischen Anforderungen
bedingungslos vereinbar, jedoch Voraussetzung, um Geschwindigkeit wirklich zu erreichen => Es prüfe, wer sich binden will!
Lose Kopplung gibt es nicht kostenlos – Anforderungen an
Service-Design
Wichtiges Komponenten, über die ein solide aufgebauter
Dienst verfügen sollte:
• SERCVICE CONNECTOR:
Um externe Dienste aufzurufen, bietet sich die Entkapselung der
Logging und Monitoring –Aufgaben sowie der
Versionskompatibilität mit Hilfe eines Connectors an
• REPOSITORIES:
Der Dienst sollte über seine eigenes Persistenz-Management
verfügen. Abbildung auf den Aufgabenträger ist dann fast beliebig.
ACHTUNG! Kann bei hoher Skalierung zum Engpass werden
• RESOURCES/ API:
Um Dienste nach Außen bereitzustellen, ist ein API (REST)
bereitzustellen. Ideal, wenn dieses hausinternen Best-Practices und
Versionierungsregeln folgt.
• UI-FRAGENTS:
Richtig entkoppelt wird es erst, wenn der Dienst selbst sein UI
bereitstellt. Hierzu sind sinnvolle Snippets und „Seiten“
bereitzustellen, welche sich in ein beliebiges UI einbinden lassen.
ACHTUNG! => Interaktion mit Rechten und Rollen klären!
• DOMAIN LOGIC:
Der eigentliche, fachliche Inhalt des Service.
23.02.17 EACG GmbH 8
Typical Service Structure
Domain Logic
Repositories
Serviceconnector
API
External
Services
External Storage
Service
ResourcesUI fragments
Microservice
Einfluss auf Front-End-Architektur verstehen
23.02.17 EACG GmbH 9
Monolith Self contained Thin Front end
Svc 1
UI
API
Business
Logic
Persistence
Svc 2
UI
API
Business
Logic
Persistence
UI
API
Business
Logic
Persistence
UI UI1 UI2
Svc 1
API
Business
Logic
Persis-
tence
Svc 2
API
Business
Logic
Persis-
tence
FE-Architektur benötigt eine dynamische Steuerung (Registry) um auf das Vorhandensein von Diensten reagieren zu können
sowie das Routing entsprechend der Verfügbarkeit einzelner Versionen zu organisieren.
Lösungsansatz von Zalando s. https://github.com/zalando/tailor
Authentifikation und Autorisierung benötigen einen
allgemeinhin akzeptierten und verstandenen Mechanismus
Authentifikation und Autorisierung sind der verteilten Intelligenz
entsprechend anzupassen und zu organisieren:
• Identifikation bleibt unverändert, kann ausgelagert werden
(bspw. Auth0)
• Autorisierung kann nicht mehr zentral erfolgen, da
Ausprägung der Rechte Service-Angelegenheit ist
• Übergreifendes Rollenkonzept als konzeptuelles Bindeglied
erforderlich
• Rollen als Claim-Bestandteil klären und Standard für die
Abbildung bereitstellen
• Claims in Tokens packen und den Requests mitgeben
• Gleicher Mechanismus wie für API-Tokens denkbar
• Gültigkeit der Tokens und SSO orchestrieren
23.02.17 EACG GmbH 10
Svc 3
UIAP
I
Business
Logic
Persistence
Svc 2
UIAP
I
Business
Logic
Persistence
Svc 1
UIAP
I
Business
Logic
Persistence
Svc n
UIAP
I
Business
Logic
Persistence
Autorisierung wandert in die Dienste, übergreifend sind nur noch die Benutzertypen/-gruppen.
Rechtzeitig übergreifendes Claims-Konzept bereitstellen und etablieren
Authentifikation-
Provider
Vielzahl Teilnehmer erfordert neue Lösungsansatz für die
Verteilung von Informationen
Transaktionen gestalten sich im verteilten Umfeld
schwierig:
• Bedarf an Konsistenz erkennen und klären
• Auswirkung der Abweichung und (max.) akzeptable
Dauer einer möglichen Abweichung bestimmen
• Ggf. Service-Design anpassen
• Oder Prinzip der EVENTUAL CONSISTENCY
anwenden
„EVENTUAL CONSISTENCY“ beschreibt die
Akzeptanz, dass zeitweise auch ein inkonsistenter
Zustand wieder-gegeben werden könnte.
23.02.17 EACG GmbH 11
Svc 2
UI
API
Business Logic
Persistence
Svc 1
UI
API
Business Logic
Persistence
Event Store
Event Log
Event
Bedarf an verteilten Transaktionen rechtzeitig erkennen, Eventstore bereithalten,
Konsistenzerfordernis beretwillig auf den Prüfstand stellen
Event Store zur Event-Synchronisation
Entscheidung für die zu nutzende Abstraktion frühzeitig
herbeiführen: Pure Cloud vs. Container
Vorteile:
• Eine technische Komplexität weniger
• Einfacheres Debugging
• Weniger Anforderungen an Entwickler
Vorteile:
• Geringer Overhead für mehr Abstraktion
• Infrastrukturen inzwischen verfügbar und erprobt
• Wenn richtig gemacht, sehr hilfreich, cool & fancy
23.02.17 EACG GmbH 12
Wir empfehlen grundsätzlich zu entscheiden, ob Container-basiert oder nur
cloud-basiert: Je feiner die Service-Granularität, desto Container!
Hardware
Virtualisierung
Operating System
Service
Hardware
Virtualisierung
Operating System
Container
Service
Container
Service
Virtualisierung
Operating System
Container
Service
Container
Service
Virtualisierung
Operating System
Service
Container-basiertes Deployment on CloudPure Cloud-basiertes Deployment
Schnelle und autarke Deployments benötigen eine
vollautomatisierte Tool-Chain
Werkzeuge für die Automation der Tool-Chain sind vielfältig und nicht trivial zu organisieren
=> Zeit nehmen und Verantwortung definieren!
Wohlüberlegte Zusammenstellung und abgestimmte Konfiguration sind Erfolgsgarant für effektive Deployments
Komplexität einzelnen Teams zu überlassen ist aus unserer Sicht nicht empfehlenswert
23.02.17 EACG GmbH 13
Code Deploy
AWS Elastic
Container Registry Elastic Container
Service
AWS Elastic
Beanstalk
Elastic Load
Balancing
Lege frühzeitig Wert auf eine automatisierte, vollintegrierte Tool-Chain.
Schneller lässt sich Geld nicht sparen!
AWS
CodeCommit
instances
Container
?
MSAs nutzen Grundelemente der SOA, gehen aber weit
darüber hinaus
SOA entstand mit dem Bedarf, bestehenden Anwendungen entlang eines komplexen Unternehmens zu verbinden
• Fokus auf Integration, bzw. Explikation von Objekten und Funktionen einzelner Anwendungen
• Ambition Fluss- bzw. Prozess-Intelligenz auf eine autarke Instanz zu übertragen, unabhängig von den
„Anwendungen“
• Verliert durch Microservcie zu keinem Zeitpunkt seine Berechtigung oder Bedeutung im Unternehmenskontext
Microservices sind vor allem geeignet, die Entwicklungsgeschwindigkeit erheblich zu erhöhen, wenn
• Organisatorische als auch prozessuale Bedingungen (Anforderungen, Teams, Test, Deployment) stimmen
• Domäne hinreichend bekannt ist, um einen sinnvollen Service-Schnitt zu antizipieren
• Und die Architektur sinnvoll ist, da hier wirtschaftlich differenziert werden soll (eCommerce => Shop, Bank => UI)
und Änderungsgeschwindigkeit ein Erfolgskriterium ist.
23.02.17 EACG GmbH 14
Micoservice-Architekturen sind ein geeignetes Muster, um bei der Differenzierung im Wettbewerb mit viel
Man-Power schnell und effektiv zu sein. MSA sind kein Garant für effektive oder performante Architekturen.
Reading List (personal suggestions)
• Scaling Gilt: from Monolithic Ruby Application to Distributed Scala
Micro-Services Architecture
https://www.infoq.com/presentations/scale-gilt
• Nike‘s Jounrey to Microservices
http://www.slideshare.net/AmazonWebServices/arc308-nikes-journey-
into-microservices-aws-reinvent-2014
• Building Products at SoundCloud—Part III: Microservices in Scala and
Finagle
https://developers.soundcloud.com/blog/building-products-at-
soundcloud-part-3-microservices-in-scala-and-finagle
• Zalando: From Monolith to Microservices
https://www.infoq.com/news/2016/02/Monolith-Microservices-Zalando
• IBM Redbooks: Best Practices for Microservices
https://www-01.ibm.com/marketing/iwm/dre/signup?source=mrs-form-
10410&S_PKG=ov53209
• Martin Fowler on Microservices (more Ressources)
https://martinfowler.com/articles/microservices.html
23.02.17 EACG GmbH 15
EACG GmbH – Enterprise Architecture Consulting Group
Taunustor 1 (TaunusTurm)
60310 Frankfurt am Main
T: +49 69 153 22 77 50
F: +49 69 153 22 77 51
W: https://www.eacg.de
Dipl.-Wirtsch.-Inf. Jan Thielscher, LL.M.
jan.thielscher@eacg.de

Mais conteúdo relacionado

Destaque

Authorization and Authentication in Microservice Environments
Authorization and Authentication in Microservice EnvironmentsAuthorization and Authentication in Microservice Environments
Authorization and Authentication in Microservice EnvironmentsLeanIX GmbH
 
Mesures de seguretat i higiene a la cuina
Mesures de seguretat i higiene a la cuinaMesures de seguretat i higiene a la cuina
Mesures de seguretat i higiene a la cuinaESPELOPEZCOLL
 
Informe de actividades
Informe de actividadesInforme de actividades
Informe de actividadesPSG Pilar
 
Ramon castilla.gonzalezmercedes
Ramon castilla.gonzalezmercedesRamon castilla.gonzalezmercedes
Ramon castilla.gonzalezmercedesgonzalezmercedes
 
Implicit classes - share the knowledge
Implicit classes  - share the knowledgeImplicit classes  - share the knowledge
Implicit classes - share the knowledgeJoão Caxaria
 
Una vida humana auténtica en la tierra
Una vida humana auténtica en la tierraUna vida humana auténtica en la tierra
Una vida humana auténtica en la tierraAura Aburto
 
Master`s Degree - Transcript
Master`s Degree - TranscriptMaster`s Degree - Transcript
Master`s Degree - TranscriptStanimir Penev
 
Adicción al internet
Adicción al internetAdicción al internet
Adicción al internetIsaac322
 
Elercicio práctico turismo cultural
Elercicio práctico turismo culturalElercicio práctico turismo cultural
Elercicio práctico turismo culturalnacholynx
 
Carta escrita en el 2070
Carta escrita en el 2070Carta escrita en el 2070
Carta escrita en el 2070Freddy Capa
 
Mis aficiones
Mis aficionesMis aficiones
Mis aficioneswetroyu
 
La piel de la cultura, a cerca del texto de Derrick Kerkchove
La piel de la cultura, a cerca del texto de Derrick KerkchoveLa piel de la cultura, a cerca del texto de Derrick Kerkchove
La piel de la cultura, a cerca del texto de Derrick KerkchoveAura Aburto
 
GUIDA ALLA MEDIAZIONE / CO+K ADR 2017
GUIDA ALLA MEDIAZIONE  /  CO+K ADR 2017GUIDA ALLA MEDIAZIONE  /  CO+K ADR 2017
GUIDA ALLA MEDIAZIONE / CO+K ADR 2017CO.E.RI. KOSMOS
 
Doenças sexuamente
Doenças sexuamenteDoenças sexuamente
Doenças sexuamentetayane06
 
Зеленая модернизация городов Запорожской области
Зеленая модернизация городов Запорожской областиЗеленая модернизация городов Запорожской области
Зеленая модернизация городов Запорожской областиЕСКО "Екологічні Системи"
 
Plan clase
Plan clase Plan clase
Plan clase mafoa
 

Destaque (18)

Authorization and Authentication in Microservice Environments
Authorization and Authentication in Microservice EnvironmentsAuthorization and Authentication in Microservice Environments
Authorization and Authentication in Microservice Environments
 
Mesures de seguretat i higiene a la cuina
Mesures de seguretat i higiene a la cuinaMesures de seguretat i higiene a la cuina
Mesures de seguretat i higiene a la cuina
 
Informe de actividades
Informe de actividadesInforme de actividades
Informe de actividades
 
Ramon castilla.gonzalezmercedes
Ramon castilla.gonzalezmercedesRamon castilla.gonzalezmercedes
Ramon castilla.gonzalezmercedes
 
Papeleria y anuncio publicitario
Papeleria y anuncio publicitarioPapeleria y anuncio publicitario
Papeleria y anuncio publicitario
 
Implicit classes - share the knowledge
Implicit classes  - share the knowledgeImplicit classes  - share the knowledge
Implicit classes - share the knowledge
 
Una vida humana auténtica en la tierra
Una vida humana auténtica en la tierraUna vida humana auténtica en la tierra
Una vida humana auténtica en la tierra
 
Master`s Degree - Transcript
Master`s Degree - TranscriptMaster`s Degree - Transcript
Master`s Degree - Transcript
 
Adicción al internet
Adicción al internetAdicción al internet
Adicción al internet
 
Elercicio práctico turismo cultural
Elercicio práctico turismo culturalElercicio práctico turismo cultural
Elercicio práctico turismo cultural
 
Carta escrita en el 2070
Carta escrita en el 2070Carta escrita en el 2070
Carta escrita en el 2070
 
Mis aficiones
Mis aficionesMis aficiones
Mis aficiones
 
La piel de la cultura, a cerca del texto de Derrick Kerkchove
La piel de la cultura, a cerca del texto de Derrick KerkchoveLa piel de la cultura, a cerca del texto de Derrick Kerkchove
La piel de la cultura, a cerca del texto de Derrick Kerkchove
 
GUIDA ALLA MEDIAZIONE / CO+K ADR 2017
GUIDA ALLA MEDIAZIONE  /  CO+K ADR 2017GUIDA ALLA MEDIAZIONE  /  CO+K ADR 2017
GUIDA ALLA MEDIAZIONE / CO+K ADR 2017
 
Doenças sexuamente
Doenças sexuamenteDoenças sexuamente
Doenças sexuamente
 
Gran mariscal ramón castilla
Gran mariscal ramón castillaGran mariscal ramón castilla
Gran mariscal ramón castilla
 
Зеленая модернизация городов Запорожской области
Зеленая модернизация городов Запорожской областиЗеленая модернизация городов Запорожской области
Зеленая модернизация городов Запорожской области
 
Plan clase
Plan clase Plan clase
Plan clase
 

Semelhante a Microservices - Was EAs zu Microservices wissen sollten

Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeKremer Consulting
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche1&1
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application FrameworkBATbern
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBBATbern
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformQAware GmbH
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsmatfsw
 
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​Peter Affolter
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS esentri AG
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der PraxisMichael Mirold
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionQAware GmbH
 
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!confluent
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice ArchitekturenLeo Lindhorst
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performanceglembotzky
 
Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...
Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...
Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...Peter Affolter
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 

Semelhante a Microservices - Was EAs zu Microservices wissen sollten (20)

Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application Framework
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBB
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der Praxis
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
 
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
 
Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...
Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...
Artikel Professional Computing: Mit SOA zu effizientem Business Process Manag...
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
OSLC in Aktion
OSLC in AktionOSLC in Aktion
OSLC in Aktion
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 

Microservices - Was EAs zu Microservices wissen sollten

  • 1. 23.02.17 EACG GmbH 1 EA or SOA strikes back? Jan Thielscher, EA Community Rhein Main, 21. Feb 2017 Was Enterprise Acrhitects zu Microservices wissen sollten
  • 2. Agenda 23.02.17 EACG GmbH 2 • EACG brief • Zentrale Elemente einer Service-orientierten Architektur (SOA) • Zentrale Elemente einer Micorservice-Architektur (MSA) • Ausgewählte Gestaltungsaspekte von MSA • Zusammenfassung
  • 3. For over 12 years EACG supports its customers in gaining competitive advantage from information Technology 23.02.17 Making IoT successful - some lessons 3 E A C G i s a p r o s p e r i n g A W S p a r t n e rE A C G S e r v i c e s Cloud Service Rating Open Source Risk Management E A C G i n n o v a t e sE A C G s e r v e s s t r o n g & u p c o m i n g b r a n d s
  • 4. SOA entstand primär getrieben aus Integrationsnotstand Grundidee: Lose Kopplung von bestehenden Systemen und deren Aktivierung für flexible Prozessgestatung Zentrale Gestaltungscharakteristika einer SOA: • Standards: Datenaustausch, Kommunikationsformen • Service Contract: Klar definiertes Interface mit spezifischer Leistung existiert, keine „Backdoors“ • Unabhängigkeit/Lose Kopplung: Consumer und Provider müssen einander nicht mehr kennen, Nutzung explizierter Transport & Connectivity-Infrastrukturen (ESB!) • Meta-Data: Schemata, Explikation, Repositories, alles wird exponiert und beschrieben • Policy-driven: Raum für nicht-funktionale Spezifika (Encryption, Protokolle, andere technische Charakteristika) • Dokumenten-basierter Datenaustausch: XML bzw. SOAP-basierter Austausch entkoppelt von Daten- Spezifika 23.02.17 EACG GmbH 4 Service Bus Repository Provider System2 Typische SOA-Struktur Provider Sys1 Consumer
  • 5. Microservice-Konzept entstand, um schnell viel zu erreichen Grundidee: Kleine Teams können kleine Aufgaben schneller lösen als große Teams große Aufgaben Zentrale Gestaltungscharakteristika einer Microservice-Architektur (MSA): • Services sind fokussiert auf eine kleine Aufgabe • Services sind (weitgehend) autonom Typische Vorteile einer MSA sind: • Unabhängigkeit / Entkopplung • Einfaches Deployment • Leichte Ersetzbarkeit • Dezentralisierung • Technologische Heterogenität • „Do one thing well“ • Operate your own code • vereinfachte, organisatorische Abbildung 23.02.17 EACG GmbH 5 Svc1 Persis tenz Logic UI Svc2 Persis tenz Logic UI SvcN Pesist enz Logic UI Mögliche MSA-Struktur Beispiel: Bestellung Konto Kunde
  • 6. Einfache organisatorische Abbildung – Was bedeutet das? 23.02.17 EACG GmbH 6 Team Code App Deploy Traditionell(Branching)MSA-Ansatz Amazon.com Fakten ~11,6 sec Mean time between deployments (weekday) 1.079 Max # of deployments in a single hour ~10.000 server Avg # of hosts updated simultaneously PLEASE NOTE: Amazon has several thousands of developers ww!! Gut gemacht, erlauben Microservice-Architekturen durch unbedingte Nebenläufigkeit exorbitante Liefergeschwindigkeiten
  • 7. Geschwindigkeitsvorteile lassen sich nur bei hinreichender prozessualer Reife erschließen Anforderungen müssen für die Menge an Teams sinnvoll gestaltet werden • Verständnis eines möglichen/sinnvollen Domänenschnitts auf PM-Seite wichtiges Erfolgskriterium, um Arbeitsvorrat vorausschauend zu erzeeugen und zu verteilen • Abhängigkeiten entlang von Prozessen sind rechtzeitig zu identifizieren und sinnvoll aufzulösen Bsp.: Arbeitsanweisung => Messvorgang => Sollwerte => Sollwertabweichungen => Korrekturen • Guter Überblick über die Bedarfe damit rechtzeitig technologische Meilensteine (bspw. zentrale Capabilities) identifiziert und adressiert werden können. Nicht alles lässt sich mal eben im Sprint lösen. Automation des Entwicklungs- und Deployment-Prozesses muss hinreichend fortgeschritten sein • Hinreichende Testabdeckung im automatisierten Testen • Keine manuelle Interaktion nach Freigabe • Geeignete Rollback-Mechanismen Operations-Verantwortung im DEV-Team • keine langen Übergabe-Protokolle, Installationsanleitungen oder Quality-Gates • Herausforderung der arbeitsvertraglichen Gestaltung meistern 23.02.17 EACG GmbH 7 Anforderungen an organisatorische Implementierung sind hoch und stellenweise nicht mit regulatorischen Anforderungen bedingungslos vereinbar, jedoch Voraussetzung, um Geschwindigkeit wirklich zu erreichen => Es prüfe, wer sich binden will!
  • 8. Lose Kopplung gibt es nicht kostenlos – Anforderungen an Service-Design Wichtiges Komponenten, über die ein solide aufgebauter Dienst verfügen sollte: • SERCVICE CONNECTOR: Um externe Dienste aufzurufen, bietet sich die Entkapselung der Logging und Monitoring –Aufgaben sowie der Versionskompatibilität mit Hilfe eines Connectors an • REPOSITORIES: Der Dienst sollte über seine eigenes Persistenz-Management verfügen. Abbildung auf den Aufgabenträger ist dann fast beliebig. ACHTUNG! Kann bei hoher Skalierung zum Engpass werden • RESOURCES/ API: Um Dienste nach Außen bereitzustellen, ist ein API (REST) bereitzustellen. Ideal, wenn dieses hausinternen Best-Practices und Versionierungsregeln folgt. • UI-FRAGENTS: Richtig entkoppelt wird es erst, wenn der Dienst selbst sein UI bereitstellt. Hierzu sind sinnvolle Snippets und „Seiten“ bereitzustellen, welche sich in ein beliebiges UI einbinden lassen. ACHTUNG! => Interaktion mit Rechten und Rollen klären! • DOMAIN LOGIC: Der eigentliche, fachliche Inhalt des Service. 23.02.17 EACG GmbH 8 Typical Service Structure Domain Logic Repositories Serviceconnector API External Services External Storage Service ResourcesUI fragments Microservice
  • 9. Einfluss auf Front-End-Architektur verstehen 23.02.17 EACG GmbH 9 Monolith Self contained Thin Front end Svc 1 UI API Business Logic Persistence Svc 2 UI API Business Logic Persistence UI API Business Logic Persistence UI UI1 UI2 Svc 1 API Business Logic Persis- tence Svc 2 API Business Logic Persis- tence FE-Architektur benötigt eine dynamische Steuerung (Registry) um auf das Vorhandensein von Diensten reagieren zu können sowie das Routing entsprechend der Verfügbarkeit einzelner Versionen zu organisieren. Lösungsansatz von Zalando s. https://github.com/zalando/tailor
  • 10. Authentifikation und Autorisierung benötigen einen allgemeinhin akzeptierten und verstandenen Mechanismus Authentifikation und Autorisierung sind der verteilten Intelligenz entsprechend anzupassen und zu organisieren: • Identifikation bleibt unverändert, kann ausgelagert werden (bspw. Auth0) • Autorisierung kann nicht mehr zentral erfolgen, da Ausprägung der Rechte Service-Angelegenheit ist • Übergreifendes Rollenkonzept als konzeptuelles Bindeglied erforderlich • Rollen als Claim-Bestandteil klären und Standard für die Abbildung bereitstellen • Claims in Tokens packen und den Requests mitgeben • Gleicher Mechanismus wie für API-Tokens denkbar • Gültigkeit der Tokens und SSO orchestrieren 23.02.17 EACG GmbH 10 Svc 3 UIAP I Business Logic Persistence Svc 2 UIAP I Business Logic Persistence Svc 1 UIAP I Business Logic Persistence Svc n UIAP I Business Logic Persistence Autorisierung wandert in die Dienste, übergreifend sind nur noch die Benutzertypen/-gruppen. Rechtzeitig übergreifendes Claims-Konzept bereitstellen und etablieren Authentifikation- Provider
  • 11. Vielzahl Teilnehmer erfordert neue Lösungsansatz für die Verteilung von Informationen Transaktionen gestalten sich im verteilten Umfeld schwierig: • Bedarf an Konsistenz erkennen und klären • Auswirkung der Abweichung und (max.) akzeptable Dauer einer möglichen Abweichung bestimmen • Ggf. Service-Design anpassen • Oder Prinzip der EVENTUAL CONSISTENCY anwenden „EVENTUAL CONSISTENCY“ beschreibt die Akzeptanz, dass zeitweise auch ein inkonsistenter Zustand wieder-gegeben werden könnte. 23.02.17 EACG GmbH 11 Svc 2 UI API Business Logic Persistence Svc 1 UI API Business Logic Persistence Event Store Event Log Event Bedarf an verteilten Transaktionen rechtzeitig erkennen, Eventstore bereithalten, Konsistenzerfordernis beretwillig auf den Prüfstand stellen Event Store zur Event-Synchronisation
  • 12. Entscheidung für die zu nutzende Abstraktion frühzeitig herbeiführen: Pure Cloud vs. Container Vorteile: • Eine technische Komplexität weniger • Einfacheres Debugging • Weniger Anforderungen an Entwickler Vorteile: • Geringer Overhead für mehr Abstraktion • Infrastrukturen inzwischen verfügbar und erprobt • Wenn richtig gemacht, sehr hilfreich, cool & fancy 23.02.17 EACG GmbH 12 Wir empfehlen grundsätzlich zu entscheiden, ob Container-basiert oder nur cloud-basiert: Je feiner die Service-Granularität, desto Container! Hardware Virtualisierung Operating System Service Hardware Virtualisierung Operating System Container Service Container Service Virtualisierung Operating System Container Service Container Service Virtualisierung Operating System Service Container-basiertes Deployment on CloudPure Cloud-basiertes Deployment
  • 13. Schnelle und autarke Deployments benötigen eine vollautomatisierte Tool-Chain Werkzeuge für die Automation der Tool-Chain sind vielfältig und nicht trivial zu organisieren => Zeit nehmen und Verantwortung definieren! Wohlüberlegte Zusammenstellung und abgestimmte Konfiguration sind Erfolgsgarant für effektive Deployments Komplexität einzelnen Teams zu überlassen ist aus unserer Sicht nicht empfehlenswert 23.02.17 EACG GmbH 13 Code Deploy AWS Elastic Container Registry Elastic Container Service AWS Elastic Beanstalk Elastic Load Balancing Lege frühzeitig Wert auf eine automatisierte, vollintegrierte Tool-Chain. Schneller lässt sich Geld nicht sparen! AWS CodeCommit instances Container ?
  • 14. MSAs nutzen Grundelemente der SOA, gehen aber weit darüber hinaus SOA entstand mit dem Bedarf, bestehenden Anwendungen entlang eines komplexen Unternehmens zu verbinden • Fokus auf Integration, bzw. Explikation von Objekten und Funktionen einzelner Anwendungen • Ambition Fluss- bzw. Prozess-Intelligenz auf eine autarke Instanz zu übertragen, unabhängig von den „Anwendungen“ • Verliert durch Microservcie zu keinem Zeitpunkt seine Berechtigung oder Bedeutung im Unternehmenskontext Microservices sind vor allem geeignet, die Entwicklungsgeschwindigkeit erheblich zu erhöhen, wenn • Organisatorische als auch prozessuale Bedingungen (Anforderungen, Teams, Test, Deployment) stimmen • Domäne hinreichend bekannt ist, um einen sinnvollen Service-Schnitt zu antizipieren • Und die Architektur sinnvoll ist, da hier wirtschaftlich differenziert werden soll (eCommerce => Shop, Bank => UI) und Änderungsgeschwindigkeit ein Erfolgskriterium ist. 23.02.17 EACG GmbH 14 Micoservice-Architekturen sind ein geeignetes Muster, um bei der Differenzierung im Wettbewerb mit viel Man-Power schnell und effektiv zu sein. MSA sind kein Garant für effektive oder performante Architekturen.
  • 15. Reading List (personal suggestions) • Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Services Architecture https://www.infoq.com/presentations/scale-gilt • Nike‘s Jounrey to Microservices http://www.slideshare.net/AmazonWebServices/arc308-nikes-journey- into-microservices-aws-reinvent-2014 • Building Products at SoundCloud—Part III: Microservices in Scala and Finagle https://developers.soundcloud.com/blog/building-products-at- soundcloud-part-3-microservices-in-scala-and-finagle • Zalando: From Monolith to Microservices https://www.infoq.com/news/2016/02/Monolith-Microservices-Zalando • IBM Redbooks: Best Practices for Microservices https://www-01.ibm.com/marketing/iwm/dre/signup?source=mrs-form- 10410&S_PKG=ov53209 • Martin Fowler on Microservices (more Ressources) https://martinfowler.com/articles/microservices.html 23.02.17 EACG GmbH 15
  • 16. EACG GmbH – Enterprise Architecture Consulting Group Taunustor 1 (TaunusTurm) 60310 Frankfurt am Main T: +49 69 153 22 77 50 F: +49 69 153 22 77 51 W: https://www.eacg.de Dipl.-Wirtsch.-Inf. Jan Thielscher, LL.M. jan.thielscher@eacg.de