SlideShare a Scribd company logo
1 of 47
Download to read offline
in a Microservices Architecture
Dennis van der Stelt
Software Architect
v a n d e r s t e l t
2
Your presenter
Dennis van der Stelt
http://dennis.bloggingabout.net/
Software Architect
About Dennis
Innovative software architect
Almost 20 years of experience in development of
distributed systems. Has a continuous drive to
learn and improve knowledge in different
architectural styles, including quality in software
development. Highly motivated to share his
knowledge via articles, presentations and his blog.
Awards
NServiceBus Champ
Typemock MVP
Certified Trainer
Professional Services
Provides coaching & training
• Presentations
• Software & Architecture audits
• SOA & Microservices advice
• Unit Testing training
• NServiceBus training
Presentations
October 15th at Blaak Selectie / Betabit
Reliable systems using messaging
v a n d e r s t e l t
3
Agenda
In a polyglot architectural landscape with a lot of business logic, data
and information, how can we build solid loosely coupled systems?
Let’s have a look at the differences
between those opposites
Monolithic vs Microservices
Dividing your system’s business
logic over logical boundaries
Service Boundaries
Why duplicating data is a bad
practice, but replicating data is
perfectly fine
Replicating vs Duplicating
v a n d e r s t e l t
Monolithic application
Wikipedia : large, powerful, and
intractably indivisible and uniform.
A monolithic application is build and
deployed as a single unit.
WordPress is a successful & scalable
monolithic application used by millions!
Monolith is therefor not by default a
badly designed system
4
v a n d e r s t e l t
5
Microservices
a software architectural style for complex
applications of small, independent processes.
services are small, highly decoupled and
focus on a single task
communicate via language agnostic APIs
boundaries are explicit
services are autonomous
share schema & contract, not classes
compatibility is based on policy
v a n d e r s t e l t
Monolithic application 6
single deployment unit
v a n d e r s t e l t
Microservices 7
multiple deployable services
v a n d e r s t e l t
Authentication
8
Coupling
OSS
ViewModel
Change
Product
Database
Razor
v a n d e r s t e l t
9
First law
“My First Law of Distributed Object Design: Don't distribute your objects”
Martin Fowler in Patterns of Enterprise Application Architecture
v a n d e r s t e l t
10
Monolithic application problems
Problem Analysis
of all monolithic systems are build
with high time constraints, resulting
in big balls of mud in which no
developer can find their way.
42%
Maintenance
The coupling makes it hard to change anything
Documentation
Cost to add new features
Building the 100th feature as fast as the 1st
Project Ownership
v a n d e r s t e l t
Monolithic application 11
v a n d e r s t e l t
12
v a n d e r s t e l t
13
Microservices
“don't even consider microservices unless you have a system that's too complex to manage as a monolith”
Martin Fowler
BOUNDED CONTEXTDividing your system’s business logic over logical boundaries
v a n d e r s t e l t
15
Microservices architecture
Deployment
Don’t necessarily need to
separately deploy every
single service
Bounded Context
Define boundaries around
logical business processes
Monitoring
Document message flows
and monitor them with
great tools
Messaging
Asynchronous communication
via messaging &
publish/subscribe
v a n d e r s t e l t
Any organization that designs a system will produce a design whose structure is a
copy of the organization's communication structure.
“
”Conway’s law – 1968
v a n d e r s t e l t
Service boundaries 17
Shipping
FinanceSales
Marketing
v a n d e r s t e l t
Deployment 18
Shipping
FinanceSales
Marketing
SQL
SQL
{ }
v a n d e r s t e l t
Architectural style 19
Shipping
FinanceSales
Marketing
CQRS
Event Sourcing
CRUD
there is no
top level
architecture
v a n d e r s t e l t
Coupling aspects 20
SpatialTemporalPlatform
v a n d e r s t e l t
21
-Alan Kay-
Creator of SmallTalk, Adjunct Professor at MIT & University of California
At Utah sometime after Nov 66 when, influenced by Sketchpad, Simula, the design for the ARPAnet, the Burroughs B5000, and my
background in Biology and Mathematics, I thought of an architecture for programming. It was probably in 1967 when someone asked me
what I was doing, and I said: "It's object-oriented programming".
v a n d e r s t e l t
22
v a n d e r s t e l t
Messaging
23
Shipping
FinanceSales
Marketing
SQL
v a n d e r s t e l t
Messaging
24
Shipping
FinanceSales
Marketing
SQL
v a n d e r s t e l t
Messaging
25
Shipping
FinanceSales
Marketing
SQL
Publish / Subscribe
v a n d e r s t e l t
26
Messaging
Handle business events through
Inversion of communication
by supplementing SOA with EDA
“
”
v a n d e r s t e l t
27
Resume
Service Boundaries
Try to see if your organizational communication
structure can be the model for your logical service
boundaries.
Messaging
Avoid RPC style communication between services.
Use messaging with an event driven architecture.
Deployment
Don’t necessarily see every microservice as a
deployable unit. Do keep an eye out for coupling.
Avoid joins in your database between entities.
DUPLICATION vs REPLICATIONWhy you shouldn’t duplicate, but replicate data
v a n d e r s t e l t
29
Do not duplicate
across service boundaries
You can share…
some information
Publish / Subscribe
to notify in advance
v a n d e r s t e l t
30
Duplicating data
What event just took place
business process related
events that other services
require to properly function
and take action on
Status changes Identifiers Date Time Info
Who was the subject
the triggered event has a
specific subject in our domain
When does the status expire
when status updates expire or
are no longer relevant at a
point in time, we provide
expiration information
v a n d e r s t e l t
Sales
Messaging 31
Taxi
Customers
TaxiRequested
TaxiRequested
RequestTaxi
v a n d e r s t e l t
Sales
Messaging 32
Taxi
TaxiRequested
RequestTaxi
Finance
TaxiAssigned
Customers
v a n d e r s t e l t
Sales
Messaging 33
Taxi
RequestCancelled
Finance
RequestCancelled
CancelRequest
v a n d e r s t e l t
34
Replicating vs Duplicating data
So duplication of
data is not good But what about this
replicating data?
v a n d e r s t e l t
35
Replicating vs Duplicating data
So duplication of
data is not good But what about this
replicating data?
Replicating within a
service boundary is okay
for performance or
connectivity issues
v a n d e r s t e l t
36
Replicating data options
Performance optimization
Suitable for all categories business
and personal presentation
In memory cache
Prepare for optimal querying
Prepare data for querying, for example
into a specific readmodel / viewmodel
Resolve latency issues
Replicating data across physical machines
does not break service boundaries
Resolve network issues
Different sites across the globe, or
a moving site without connection,
like a large container ship
Viewmodels
Different machines
Different sites
v a n d e r s t e l t
37
Composite UI; little micro views
Sales
Lists requests made by
customer
Customer
Displays customer
information such as name
and current location
Taxi
Shows where taxi drivers
are and at what time they
arrive at your location
Finance
Displays status of all
financial transactions and
outstanding bills
IMPLEMENTINGinto your own system
39
Implementation
Find edge cases
New features that are added (not
integrated) into your system
Publish messages to it
Start using messaging and
publish/subscribe for communication
Add small databases
Do not integrate into your big ball of
mud database; keep it seperate
Pay attention to logical boundaries
A service is the technical authority of
a specific business capability
MONITORINGyour services
v a n d e r s t e l t
41
Monitoring
v a n d e r s t e l t
42
Monitoring
v a n d e r s t e l t
43
Monitoring
v a n d e r s t e l t
44
Resume; how we build microservices
Define Boundaries
Define boundaries of your services. Your organizational
structure may help. Do not duplicate data across services.
Share status changes, identifiers and date-times.
Implement
Implement your microservices that handle a single task.
Use publish/subscribe to notify other services with status
changes.
Composite UI
Everything from data up until the user interface should
belong in a service, resulting in a composite ui that
retrieves data based on the mentioned identifiers.
Deploy
Deploy your microservices, but not necessarily as single
units. A possibility is a deployment unit per service
boundary.
v a n d e r s t e l t
45
Microservices can be hard to build, deploy &
monitor. Get help from people with experience
Think about temporal coupling between services
and how to solve this, possibly with messaging
Do not duplicate data between services, as at some
point business logic will follow
Conclusion
v a n d e r s t e l t
46
v a n d e r s t e l t
48
Contact Me
Address
Rotterdam, The Netherlands
Email
dennis@bloggingabout.net
Twitter
@dvdstelt
Website
http://dennis.bloggingabout.net
Thank you for your time…

More Related Content

Viewers also liked

StormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, DublinStormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, DublinStormMQ
 
Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!Debasish Patra
 
C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf
C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris WolfC* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf
C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris WolfDataStax Academy
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesRob Davies
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupRoy Russo
 
Open Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptxOpen Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptxOpenStack Foundation
 
IPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration AnalysisIPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration AnalysisJesus Rodriguez
 
Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the CloudRob Davies
 
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the CloudCassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the CloudDataStax
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)Red Hat Developers
 
Summer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantSummer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantWSO2
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyCharles Moulliard
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticityHarish Ganesan
 
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec..."Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...New Relic
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...SnapLogic
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesApcera
 
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafkamarius_bogoevici
 
Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaLászló-Róbert Albert
 

Viewers also liked (20)

StormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, DublinStormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, Dublin
 
Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!
 
C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf
C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris WolfC* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf
C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users Group
 
Open Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptxOpen Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptx
 
IPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration AnalysisIPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration Analysis
 
Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
 
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the CloudCassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
Summer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantSummer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is important
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric Technology
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
 
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec..."Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
 
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafka
 
Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with Kafka
 

Similar to Een andere kijk op Microservices

Rethink! How Digital Transformation disrupts Enterprise Architecture
Rethink! How Digital Transformation disrupts Enterprise ArchitectureRethink! How Digital Transformation disrupts Enterprise Architecture
Rethink! How Digital Transformation disrupts Enterprise ArchitectureLeanIX GmbH
 
Why Data Virtualization? An Introduction
Why Data Virtualization? An IntroductionWhy Data Virtualization? An Introduction
Why Data Virtualization? An IntroductionDenodo
 
Data-Centric Business Transformation Using Knowledge Graphs
Data-Centric Business Transformation Using Knowledge GraphsData-Centric Business Transformation Using Knowledge Graphs
Data-Centric Business Transformation Using Knowledge GraphsAlan Morrison
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary SoftwareYun Zhi Lin
 
Modern Architectures: Keynote - Using Fabrics to Weave Success in the Cloud
Modern Architectures: Keynote - Using Fabrics to Weave Success in the CloudModern Architectures: Keynote - Using Fabrics to Weave Success in the Cloud
Modern Architectures: Keynote - Using Fabrics to Weave Success in the CloudDreamforce
 
Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...
Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...
Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...Michael Coté
 
Data virtualization an introduction
Data virtualization an introductionData virtualization an introduction
Data virtualization an introductionDenodo
 
Big data analytics enterprise and cloud computing
Big data analytics enterprise and cloud computingBig data analytics enterprise and cloud computing
Big data analytics enterprise and cloud computingCloud Credential Council
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise ArchitectureWSO2
 
A Successful Data Strategy for Insurers in Volatile Times (EMEA)
A Successful Data Strategy for Insurers in Volatile Times (EMEA)A Successful Data Strategy for Insurers in Volatile Times (EMEA)
A Successful Data Strategy for Insurers in Volatile Times (EMEA)Denodo
 
A Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsA Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsAngelo Agatino Nicolosi
 
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential_e
 
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?Denodo
 
Highway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup BerlinHighway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup BerlinChristian Deger
 
A Successful Data Strategy for Insurers in Volatile Times (ASEAN)
A Successful Data Strategy for Insurers in Volatile Times (ASEAN)A Successful Data Strategy for Insurers in Volatile Times (ASEAN)
A Successful Data Strategy for Insurers in Volatile Times (ASEAN)Denodo
 
The Essentials Of Project Management
The Essentials Of Project ManagementThe Essentials Of Project Management
The Essentials Of Project ManagementLaura Arrigo
 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAconfluent
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Solace
 
Financial services 2.0 Innovation, Disruption, Automation and Trust
Financial services 2.0 Innovation, Disruption, Automation and TrustFinancial services 2.0 Innovation, Disruption, Automation and Trust
Financial services 2.0 Innovation, Disruption, Automation and TrustBob Bonomo
 

Similar to Een andere kijk op Microservices (20)

Rethink! How Digital Transformation disrupts Enterprise Architecture
Rethink! How Digital Transformation disrupts Enterprise ArchitectureRethink! How Digital Transformation disrupts Enterprise Architecture
Rethink! How Digital Transformation disrupts Enterprise Architecture
 
Microevent
MicroeventMicroevent
Microevent
 
Why Data Virtualization? An Introduction
Why Data Virtualization? An IntroductionWhy Data Virtualization? An Introduction
Why Data Virtualization? An Introduction
 
Data-Centric Business Transformation Using Knowledge Graphs
Data-Centric Business Transformation Using Knowledge GraphsData-Centric Business Transformation Using Knowledge Graphs
Data-Centric Business Transformation Using Knowledge Graphs
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary Software
 
Modern Architectures: Keynote - Using Fabrics to Weave Success in the Cloud
Modern Architectures: Keynote - Using Fabrics to Weave Success in the CloudModern Architectures: Keynote - Using Fabrics to Weave Success in the Cloud
Modern Architectures: Keynote - Using Fabrics to Weave Success in the Cloud
 
Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...
Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...
Rethinking enterprise architecture for DevOps, Agile, and cloud native organi...
 
Data virtualization an introduction
Data virtualization an introductionData virtualization an introduction
Data virtualization an introduction
 
Big data analytics enterprise and cloud computing
Big data analytics enterprise and cloud computingBig data analytics enterprise and cloud computing
Big data analytics enterprise and cloud computing
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise Architecture
 
A Successful Data Strategy for Insurers in Volatile Times (EMEA)
A Successful Data Strategy for Insurers in Volatile Times (EMEA)A Successful Data Strategy for Insurers in Volatile Times (EMEA)
A Successful Data Strategy for Insurers in Volatile Times (EMEA)
 
A Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsA Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial Institutions
 
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
 
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
 
Highway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup BerlinHighway to heaven - Microservices Meetup Berlin
Highway to heaven - Microservices Meetup Berlin
 
A Successful Data Strategy for Insurers in Volatile Times (ASEAN)
A Successful Data Strategy for Insurers in Volatile Times (ASEAN)A Successful Data Strategy for Insurers in Volatile Times (ASEAN)
A Successful Data Strategy for Insurers in Volatile Times (ASEAN)
 
The Essentials Of Project Management
The Essentials Of Project ManagementThe Essentials Of Project Management
The Essentials Of Project Management
 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVA
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
 
Financial services 2.0 Innovation, Disruption, Automation and Trust
Financial services 2.0 Innovation, Disruption, Automation and TrustFinancial services 2.0 Innovation, Disruption, Automation and Trust
Financial services 2.0 Innovation, Disruption, Automation and Trust
 

More from Dennis van der Stelt (11)

Change your architecture during deployment
Change your architecture during deploymentChange your architecture during deployment
Change your architecture during deployment
 
Dealing with eventual consistency
Dealing with eventual consistencyDealing with eventual consistency
Dealing with eventual consistency
 
Dealing with eventual consistency
Dealing with eventual consistencyDealing with eventual consistency
Dealing with eventual consistency
 
Death of the batch job
Death of the batch jobDeath of the batch job
Death of the batch job
 
Silverlight & WCF RIA
Silverlight & WCF RIASilverlight & WCF RIA
Silverlight & WCF RIA
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
AppFabric Velocity
AppFabric VelocityAppFabric Velocity
AppFabric Velocity
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
SOLID Principles part 2
SOLID Principles part 2SOLID Principles part 2
SOLID Principles part 2
 
SOLID Principles part 1
SOLID Principles part 1SOLID Principles part 1
SOLID Principles part 1
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Een andere kijk op Microservices

  • 1. in a Microservices Architecture Dennis van der Stelt Software Architect
  • 2. v a n d e r s t e l t 2 Your presenter Dennis van der Stelt http://dennis.bloggingabout.net/ Software Architect About Dennis Innovative software architect Almost 20 years of experience in development of distributed systems. Has a continuous drive to learn and improve knowledge in different architectural styles, including quality in software development. Highly motivated to share his knowledge via articles, presentations and his blog. Awards NServiceBus Champ Typemock MVP Certified Trainer Professional Services Provides coaching & training • Presentations • Software & Architecture audits • SOA & Microservices advice • Unit Testing training • NServiceBus training Presentations October 15th at Blaak Selectie / Betabit Reliable systems using messaging
  • 3. v a n d e r s t e l t 3 Agenda In a polyglot architectural landscape with a lot of business logic, data and information, how can we build solid loosely coupled systems? Let’s have a look at the differences between those opposites Monolithic vs Microservices Dividing your system’s business logic over logical boundaries Service Boundaries Why duplicating data is a bad practice, but replicating data is perfectly fine Replicating vs Duplicating
  • 4. v a n d e r s t e l t Monolithic application Wikipedia : large, powerful, and intractably indivisible and uniform. A monolithic application is build and deployed as a single unit. WordPress is a successful & scalable monolithic application used by millions! Monolith is therefor not by default a badly designed system 4
  • 5. v a n d e r s t e l t 5 Microservices a software architectural style for complex applications of small, independent processes. services are small, highly decoupled and focus on a single task communicate via language agnostic APIs boundaries are explicit services are autonomous share schema & contract, not classes compatibility is based on policy
  • 6. v a n d e r s t e l t Monolithic application 6 single deployment unit
  • 7. v a n d e r s t e l t Microservices 7 multiple deployable services
  • 8. v a n d e r s t e l t Authentication 8 Coupling OSS ViewModel Change Product Database Razor
  • 9. v a n d e r s t e l t 9 First law “My First Law of Distributed Object Design: Don't distribute your objects” Martin Fowler in Patterns of Enterprise Application Architecture
  • 10. v a n d e r s t e l t 10 Monolithic application problems Problem Analysis of all monolithic systems are build with high time constraints, resulting in big balls of mud in which no developer can find their way. 42% Maintenance The coupling makes it hard to change anything Documentation Cost to add new features Building the 100th feature as fast as the 1st Project Ownership
  • 11. v a n d e r s t e l t Monolithic application 11
  • 12. v a n d e r s t e l t 12
  • 13. v a n d e r s t e l t 13 Microservices “don't even consider microservices unless you have a system that's too complex to manage as a monolith” Martin Fowler
  • 14. BOUNDED CONTEXTDividing your system’s business logic over logical boundaries
  • 15. v a n d e r s t e l t 15 Microservices architecture Deployment Don’t necessarily need to separately deploy every single service Bounded Context Define boundaries around logical business processes Monitoring Document message flows and monitor them with great tools Messaging Asynchronous communication via messaging & publish/subscribe
  • 16. v a n d e r s t e l t Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure. “ ”Conway’s law – 1968
  • 17. v a n d e r s t e l t Service boundaries 17 Shipping FinanceSales Marketing
  • 18. v a n d e r s t e l t Deployment 18 Shipping FinanceSales Marketing SQL SQL { }
  • 19. v a n d e r s t e l t Architectural style 19 Shipping FinanceSales Marketing CQRS Event Sourcing CRUD there is no top level architecture
  • 20. v a n d e r s t e l t Coupling aspects 20 SpatialTemporalPlatform
  • 21. v a n d e r s t e l t 21 -Alan Kay- Creator of SmallTalk, Adjunct Professor at MIT & University of California At Utah sometime after Nov 66 when, influenced by Sketchpad, Simula, the design for the ARPAnet, the Burroughs B5000, and my background in Biology and Mathematics, I thought of an architecture for programming. It was probably in 1967 when someone asked me what I was doing, and I said: "It's object-oriented programming".
  • 22. v a n d e r s t e l t 22
  • 23. v a n d e r s t e l t Messaging 23 Shipping FinanceSales Marketing SQL
  • 24. v a n d e r s t e l t Messaging 24 Shipping FinanceSales Marketing SQL
  • 25. v a n d e r s t e l t Messaging 25 Shipping FinanceSales Marketing SQL Publish / Subscribe
  • 26. v a n d e r s t e l t 26 Messaging Handle business events through Inversion of communication by supplementing SOA with EDA “ ”
  • 27. v a n d e r s t e l t 27 Resume Service Boundaries Try to see if your organizational communication structure can be the model for your logical service boundaries. Messaging Avoid RPC style communication between services. Use messaging with an event driven architecture. Deployment Don’t necessarily see every microservice as a deployable unit. Do keep an eye out for coupling. Avoid joins in your database between entities.
  • 28. DUPLICATION vs REPLICATIONWhy you shouldn’t duplicate, but replicate data
  • 29. v a n d e r s t e l t 29 Do not duplicate across service boundaries You can share… some information Publish / Subscribe to notify in advance
  • 30. v a n d e r s t e l t 30 Duplicating data What event just took place business process related events that other services require to properly function and take action on Status changes Identifiers Date Time Info Who was the subject the triggered event has a specific subject in our domain When does the status expire when status updates expire or are no longer relevant at a point in time, we provide expiration information
  • 31. v a n d e r s t e l t Sales Messaging 31 Taxi Customers TaxiRequested TaxiRequested RequestTaxi
  • 32. v a n d e r s t e l t Sales Messaging 32 Taxi TaxiRequested RequestTaxi Finance TaxiAssigned Customers
  • 33. v a n d e r s t e l t Sales Messaging 33 Taxi RequestCancelled Finance RequestCancelled CancelRequest
  • 34. v a n d e r s t e l t 34 Replicating vs Duplicating data So duplication of data is not good But what about this replicating data?
  • 35. v a n d e r s t e l t 35 Replicating vs Duplicating data So duplication of data is not good But what about this replicating data? Replicating within a service boundary is okay for performance or connectivity issues
  • 36. v a n d e r s t e l t 36 Replicating data options Performance optimization Suitable for all categories business and personal presentation In memory cache Prepare for optimal querying Prepare data for querying, for example into a specific readmodel / viewmodel Resolve latency issues Replicating data across physical machines does not break service boundaries Resolve network issues Different sites across the globe, or a moving site without connection, like a large container ship Viewmodels Different machines Different sites
  • 37. v a n d e r s t e l t 37 Composite UI; little micro views Sales Lists requests made by customer Customer Displays customer information such as name and current location Taxi Shows where taxi drivers are and at what time they arrive at your location Finance Displays status of all financial transactions and outstanding bills
  • 39. 39 Implementation Find edge cases New features that are added (not integrated) into your system Publish messages to it Start using messaging and publish/subscribe for communication Add small databases Do not integrate into your big ball of mud database; keep it seperate Pay attention to logical boundaries A service is the technical authority of a specific business capability
  • 41. v a n d e r s t e l t 41 Monitoring
  • 42. v a n d e r s t e l t 42 Monitoring
  • 43. v a n d e r s t e l t 43 Monitoring
  • 44. v a n d e r s t e l t 44 Resume; how we build microservices Define Boundaries Define boundaries of your services. Your organizational structure may help. Do not duplicate data across services. Share status changes, identifiers and date-times. Implement Implement your microservices that handle a single task. Use publish/subscribe to notify other services with status changes. Composite UI Everything from data up until the user interface should belong in a service, resulting in a composite ui that retrieves data based on the mentioned identifiers. Deploy Deploy your microservices, but not necessarily as single units. A possibility is a deployment unit per service boundary.
  • 45. v a n d e r s t e l t 45 Microservices can be hard to build, deploy & monitor. Get help from people with experience Think about temporal coupling between services and how to solve this, possibly with messaging Do not duplicate data between services, as at some point business logic will follow Conclusion
  • 46. v a n d e r s t e l t 46
  • 47. v a n d e r s t e l t 48 Contact Me Address Rotterdam, The Netherlands Email dennis@bloggingabout.net Twitter @dvdstelt Website http://dennis.bloggingabout.net Thank you for your time…