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
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 Tiende Meetup: Microservices

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
 
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
 
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
 
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
 
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
 
Web3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningWeb3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningLars Smeets
 
Nobel Cloud Services
Nobel Cloud ServicesNobel Cloud Services
Nobel Cloud ServicesPiet van Vugt
 
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
 
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
 
Waarom software ontwikkelen in cordys
Waarom software ontwikkelen in cordysWaarom software ontwikkelen in cordys
Waarom software ontwikkelen in cordysdkkro
 
Open Source COINS API server
Open Source COINS API server Open Source COINS API server
Open Source COINS API server Léon Berlo
 
Csn magazine 02
Csn magazine 02Csn magazine 02
Csn magazine 02CSN Groep
 
New features cognos10.2
New features cognos10.2New features cognos10.2
New features cognos10.2Jan van Otten
 

Similar to Tiende Meetup: Microservices (20)

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
 
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
 
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
 
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
 
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
 
Web3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningWeb3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke Dienstverlening
 
Nobel Cloud Services
Nobel Cloud ServicesNobel Cloud Services
Nobel Cloud Services
 
111450
111450111450
111450
 
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
 
Cloud computing overzicht
Cloud computing overzichtCloud computing overzicht
Cloud computing overzicht
 
Interaction Design Jungle Rating
Interaction Design Jungle RatingInteraction Design Jungle Rating
Interaction Design Jungle Rating
 
Cloud computing lunchsessie (v2)
Cloud computing lunchsessie (v2)Cloud computing lunchsessie (v2)
Cloud computing lunchsessie (v2)
 
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
 
Waarom software ontwikkelen in cordys
Waarom software ontwikkelen in cordysWaarom software ontwikkelen in cordys
Waarom software ontwikkelen in cordys
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Open Source COINS API server
Open Source COINS API server Open Source COINS API server
Open Source COINS API server
 
Csn magazine 02
Csn magazine 02Csn magazine 02
Csn magazine 02
 
New features cognos10.2
New features cognos10.2New features cognos10.2
New features cognos10.2
 

More from Bas van Oudenaarde

More from Bas van Oudenaarde (6)

Streaming etl in practice with postgre sql, apache kafka, and ksql mic
Streaming etl in practice with postgre sql, apache kafka, and ksql micStreaming etl in practice with postgre sql, apache kafka, and ksql mic
Streaming etl in practice with postgre sql, apache kafka, and ksql mic
 
Data Driven
Data DrivenData Driven
Data Driven
 
Smart Mapper
Smart MapperSmart Mapper
Smart Mapper
 
12e Spin Meetup Rubix Cloud & Containers
12e Spin Meetup Rubix Cloud & Containers12e Spin Meetup Rubix Cloud & Containers
12e Spin Meetup Rubix Cloud & Containers
 
DevOps Tooling event Amazic
DevOps Tooling event AmazicDevOps Tooling event Amazic
DevOps Tooling event Amazic
 
Mongodb lab
Mongodb labMongodb lab
Mongodb lab
 

Tiende Meetup: Microservices