SlideShare a Scribd company logo
1 of 39
Download to read offline
Crowd Designing µ-Services
Architecture
Bas van Oudenaarde, 12 oct 2016
Petje op Petje af
Stelling/vraag,
vooraf stukje theorie/praktijk,
of achteraf
eerste
Microservices
in gebruik
Geen
Vraag: Zijn microservices een onderdeel in de huidige stack?
Doel:
Samen de randvoorwaarden & architectuur-schets
neerzetten voor een volgende microservice
implementatie aan de hand van praktische
praktijk-cases
( Designing van een microservices
architectuur is een Team sport )
Trends…
Petje op Petje af
Agile werken?
?
Petje op Petje af
Architectuur-vorm?
“DevOps triangle of succes”
Infra as Codeµ Services architecture
Conways Law
"Any organization that designs a system (defined more broadly here than
just information systems) will inevitably produce a design whose structure
is a copy of the organization's communication structure." Conway, 1968
Conways Law…
Trends, Agile Teams -> microservices architectuur
Omgekeerd geldt dit niet! Architectuur -> Teams
Petje op Petje af
Polyglot Stacks; Agile Teams
Company-wide
Development stack
Team keuze
Petje op Petje af
Domain (ownership):
Object shared tussen
applicatie/componenten
no-shared object
DDD of MDD: Bounded Context
Belangrijke stap: Full-Stack Teams en ownership business domain
Petje op Petje af
µServices met SOA platform?
• Doel: snelheid behouden / flexibel / schaalbaar
• Systeem is de gehele architectuur
µServices met SOA platform?
Hoe schalen met Tibco platform?
Multi-stack?
Hoe schaalt (state-fullness) bv database?
Vergeet Canonical Data Models; schaalt niet / slow / lastig in DDD context
( https://www.innoq.com/en/blog/thoughts-on-a-canonical-data-model/
https://www.linkedin.com/pulse/canonical-data-model-world-microservices-robert-zakrzewski )
Application-layer
messaging-layer
‘Middleware’-layer
distributed
key-value store
OS
infra-layer
Voorbeeld: Java-Stack, gehele stack orchestrating:
Messaging: bv. mqtt /
µServices µServicesµServices
Application - messaging distributed
configuration mngt distributed
µServices
Schalen van messaging & config tussen verschillende nodes
Application-layer
distributed
key-value store
OS
infra-layer
Voorbeeld: Java-Stack, gehele stack orchestrating:
µServices
Interfacing
Proces
Domain
Services
Backend / Integration
Agent / Swarm based: verantwoordelijk
voor eigen Lifecycle (decentraal)
CoreOS
AWS / on Prem
docker
Agent / Swarm based:
• Service discovery ( Consul / NGinx)
• Bootstrapping -> Reactive !
• Life cycle mngt -> scaling, health
Interfa
ProcesDomai
ServicBacke
Interfa
ProcesDomai
ServicBacke
Interfa
ProcesDomai
ServicBacke
Application - messaging distributed
CDM een must in ESB
Wat moeten we met CDM ?
One for All
CDM niet nodig met Bounded Context?
Macro-Micro:
In discussie marco-micro verwarring
macro-level: Integratie context, hoe
beweging in te zetten naar µ Services
Monoliet:
• DDD: Bounded Context / Root aggregates
• Modulair opgebouwd, modulair te bouwen
• Wel in 1 repo (vaak)
• Goed opletten vanwege interne API koppeling;
meer ‘regelen’ qua afspraken dus…
Meer onafhankelijk, snelheid en ownership -> µ Services
Petje op Petje af
Source Repo’s
Petje op Petje af
Network as a Service?( SDx)
infra provisionbaar
testbaar
“De
Petje op Petje af
Infra as Code?
Handmatig?
semi-automatisch
wel scripts
geen version control
Geen testen
“De
Petje op Petje af
Services Versioning policies?
no versioning
versioning
concept
(auto numbering)
Services Versioning policies?…
• Handig voor multi-team communicatie / planning
• Lazy Developers -> automatisch versioning
• Lazy Developers -> Geen meta-flags
bv 1.0-SNAPSHOT
• Lazy Developers -> Geen feature-branches, lastig branches; feature-
toggles ook lastig; forward model
Petje op Petje af
Versioning-context?
versioning, strak in
relaties
geen expliciete versies
in services
Kijk meer in geheel
(stofwolk)
6
Stel	UPK	bestaat	uit	4	services:	A,	B,	C,	D
A
C D
B15 6
7 50
Label:	upk	1
A
C D
B15 5
7 49
A
C D
B15 6
7 302
Label:	upk	2
Time
Regression
Test	failed
Regression
Test	passed
Target	Label	
upk 1
Petje op Petje af
Schieten we te ver
door? nano-services
meer services, minder
afhankelijkheden
Run-time depedencies?
Let op: geen compile time decencies, alle componenten bouwen syntactisch los van elkaar
A
C D
B
A:	10,11,12,13,14,15,…
B:	3,4,5,6…
C:	1,2…
D:	300,301,302,…
15 6
2 302
A
C D
B
relaties
omgeving
μService:
Continuous Delivery Context
Petje op Petje af
Libraries gebruik?
DRY,gebruik libs
blijven services compatible
indien Libs versies omhoog gaan
en niet direct in alle services
meegaan
Geen shared libs
• Nightly build fix alle nieuwe libs in alle µ componenten
• Geen versioning
• n-1 beleid
• Fout in Software Architectuur
Libraries gebruik…
Wrapping up…
“DevOps triangle of succes”
Infra as Codeµ Services architecture
http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
On Prem vs Cloud
Op naar µ Biertje?

More Related Content

Similar to Crowd Designing Microservices Architecture

Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatiemenfey
 
Cloud: Frisse lucht of gebakken lucht ?
Cloud: Frisse lucht of gebakken lucht ?Cloud: Frisse lucht of gebakken lucht ?
Cloud: Frisse lucht of gebakken lucht ?B.A.
 
(Applicatie-)migratie naar de Cloud
(Applicatie-)migratie naar de Cloud(Applicatie-)migratie naar de Cloud
(Applicatie-)migratie naar de CloudArno Flapper
 
Application lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijkApplication lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijkHenk Beekhuis
 
Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010Karin Zwiggelaar
 
Web3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningWeb3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningLars Smeets
 
Platform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloudPlatform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloudBart Zuidgeest
 
Nobel Cloud Services
Nobel Cloud ServicesNobel Cloud Services
Nobel Cloud ServicesPiet van Vugt
 
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1Ruud Ramakers
 
Hoe wordt ik een succesvolle saa s leverancier, 10 tips, s4c
Hoe wordt ik een succesvolle saa s leverancier, 10 tips, s4cHoe wordt ik een succesvolle saa s leverancier, 10 tips, s4c
Hoe wordt ik een succesvolle saa s leverancier, 10 tips, s4cRuud Ramakers
 
Open Source COINS API server
Open Source COINS API server Open Source COINS API server
Open Source COINS API server Léon Berlo
 
SamenSpel voor Buurt Praktijk Team
SamenSpel voor Buurt Praktijk TeamSamenSpel voor Buurt Praktijk Team
SamenSpel voor Buurt Praktijk TeamOhyoon Kwon
 
Cloud computing en de toekomst van de IT-afdeling
Cloud computing en de toekomst van de IT-afdelingCloud computing en de toekomst van de IT-afdeling
Cloud computing en de toekomst van de IT-afdelingPascal van Eck
 
Presentatie Gemeente Terneuzen samenwerking met IBM ~1841203
Presentatie Gemeente Terneuzen samenwerking met IBM  ~1841203Presentatie Gemeente Terneuzen samenwerking met IBM  ~1841203
Presentatie Gemeente Terneuzen samenwerking met IBM ~1841203RuudKonig
 
Architecture as a Service
Architecture as a ServiceArchitecture as a Service
Architecture as a ServiceRemco de Boer
 

Similar to Crowd Designing Microservices Architecture (20)

Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatie
 
Cloud: Frisse lucht of gebakken lucht ?
Cloud: Frisse lucht of gebakken lucht ?Cloud: Frisse lucht of gebakken lucht ?
Cloud: Frisse lucht of gebakken lucht ?
 
Mdot 4a broker introductie
Mdot 4a broker introductie Mdot 4a broker introductie
Mdot 4a broker introductie
 
(Applicatie-)migratie naar de Cloud
(Applicatie-)migratie naar de Cloud(Applicatie-)migratie naar de Cloud
(Applicatie-)migratie naar de Cloud
 
Application lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijkApplication lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijk
 
Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010
 
111450
111450111450
111450
 
Web3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningWeb3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke Dienstverlening
 
Platform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloudPlatform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloud
 
Nobel Cloud Services
Nobel Cloud ServicesNobel Cloud Services
Nobel Cloud Services
 
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1
 
Hoe wordt ik een succesvolle saa s leverancier, 10 tips, s4c
Hoe wordt ik een succesvolle saa s leverancier, 10 tips, s4cHoe wordt ik een succesvolle saa s leverancier, 10 tips, s4c
Hoe wordt ik een succesvolle saa s leverancier, 10 tips, s4c
 
Open Source COINS API server
Open Source COINS API server Open Source COINS API server
Open Source COINS API server
 
Interaction Design Jungle Rating
Interaction Design Jungle RatingInteraction Design Jungle Rating
Interaction Design Jungle Rating
 
Cloud computing overzicht
Cloud computing overzichtCloud computing overzicht
Cloud computing overzicht
 
SamenSpel voor Buurt Praktijk Team
SamenSpel voor Buurt Praktijk TeamSamenSpel voor Buurt Praktijk Team
SamenSpel voor Buurt Praktijk Team
 
Cloud computing en de toekomst van de IT-afdeling
Cloud computing en de toekomst van de IT-afdelingCloud computing en de toekomst van de IT-afdeling
Cloud computing en de toekomst van de IT-afdeling
 
Presentatie Gemeente Terneuzen samenwerking met IBM ~1841203
Presentatie Gemeente Terneuzen samenwerking met IBM  ~1841203Presentatie Gemeente Terneuzen samenwerking met IBM  ~1841203
Presentatie Gemeente Terneuzen samenwerking met IBM ~1841203
 
Cloud computing lunchsessie (v2)
Cloud computing lunchsessie (v2)Cloud computing lunchsessie (v2)
Cloud computing lunchsessie (v2)
 
Architecture as a Service
Architecture as a ServiceArchitecture as a Service
Architecture as a Service
 

More from RubiX BV

Reactive Streams - László van den Hoek
Reactive Streams - László van den HoekReactive Streams - László van den Hoek
Reactive Streams - László van den HoekRubiX BV
 
Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)
Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)
Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)RubiX BV
 
Meetup hip 18 april 2017
Meetup hip 18 april 2017Meetup hip 18 april 2017
Meetup hip 18 april 2017RubiX BV
 
Rubix - Serverless architecture
Rubix - Serverless architectureRubix - Serverless architecture
Rubix - Serverless architectureRubiX BV
 
Microservices - an integration perspective
Microservices - an integration perspectiveMicroservices - an integration perspective
Microservices - an integration perspectiveRubiX BV
 
RubiX ID - Big Data - Ruben Middeljans, Stephan Vos
RubiX ID - Big Data - Ruben Middeljans, Stephan VosRubiX ID - Big Data - Ruben Middeljans, Stephan Vos
RubiX ID - Big Data - Ruben Middeljans, Stephan VosRubiX BV
 
RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...
RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...
RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...RubiX BV
 
RubiX ID - SOA Governance - Wouter de Vries
RubiX ID - SOA Governance - Wouter de VriesRubiX ID - SOA Governance - Wouter de Vries
RubiX ID - SOA Governance - Wouter de VriesRubiX BV
 
RubiX ID - SOA Security - Ingrid Cox
RubiX ID - SOA Security - Ingrid CoxRubiX ID - SOA Security - Ingrid Cox
RubiX ID - SOA Security - Ingrid CoxRubiX BV
 
RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...
RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...
RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...RubiX BV
 
RubiX ID - API management - Pim Gaemers
RubiX ID - API management - Pim GaemersRubiX ID - API management - Pim Gaemers
RubiX ID - API management - Pim GaemersRubiX BV
 

More from RubiX BV (11)

Reactive Streams - László van den Hoek
Reactive Streams - László van den HoekReactive Streams - László van den Hoek
Reactive Streams - László van den Hoek
 
Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)
Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)
Reactive programming - Dirk Janssen (presentation 13th SPIN Meetup)
 
Meetup hip 18 april 2017
Meetup hip 18 april 2017Meetup hip 18 april 2017
Meetup hip 18 april 2017
 
Rubix - Serverless architecture
Rubix - Serverless architectureRubix - Serverless architecture
Rubix - Serverless architecture
 
Microservices - an integration perspective
Microservices - an integration perspectiveMicroservices - an integration perspective
Microservices - an integration perspective
 
RubiX ID - Big Data - Ruben Middeljans, Stephan Vos
RubiX ID - Big Data - Ruben Middeljans, Stephan VosRubiX ID - Big Data - Ruben Middeljans, Stephan Vos
RubiX ID - Big Data - Ruben Middeljans, Stephan Vos
 
RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...
RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...
RubiX ID - Continuous Integration & Continuous Delivery - Roel van den Berg, ...
 
RubiX ID - SOA Governance - Wouter de Vries
RubiX ID - SOA Governance - Wouter de VriesRubiX ID - SOA Governance - Wouter de Vries
RubiX ID - SOA Governance - Wouter de Vries
 
RubiX ID - SOA Security - Ingrid Cox
RubiX ID - SOA Security - Ingrid CoxRubiX ID - SOA Security - Ingrid Cox
RubiX ID - SOA Security - Ingrid Cox
 
RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...
RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...
RubiX ID - Tibco business works™ 6 in de praktijk - Bart de Koning en Marcel ...
 
RubiX ID - API management - Pim Gaemers
RubiX ID - API management - Pim GaemersRubiX ID - API management - Pim Gaemers
RubiX ID - API management - Pim Gaemers
 

Crowd Designing Microservices Architecture