SlideShare a Scribd company logo
1 of 55
Microservices – a shift in modern
application architecture
Microservices with Microsoft
Alex Thissen
Agenda
• Struggle of modern applications and architectures
• Introducing Microservices architecture
• Moving away from monoliths
• Change in architecture
• Complexity for simplicity
• Characteristics of a Microservices architecture
• Designing and hosting Microservices
Where is MSA in hype cycle?
Current forces
What’s next in modern application architectures?
Valued business drivers
Better
• Resilient
• Technology choice
Cheaper
• Test effort
• Cost of maintaining
Faster
• Change
• Deployment
• Execution
About monoliths
SOA and Continuous delivery
Trends in software development
Platform as a
Service
Autonomous
teams
Continous
Delivery
Agile
Organization
Reactive
Manifesto
Modern application architecture
requirements
• Mobile first
• Low bandwidth resilient
• Resilient to failure
• Highly scalable
• 24x7x365
• High frequency of feature delivery
Scalable
Agile
Available
(24x7)
Efficient
Microservices Architecture (MSA)
Latest trends in architecture
Objectives: Scalability, Agility, Availability, Efficiency
The many definitions of microservices
- Small and
focused on doing
one thing well
- Autonomous
“Loosely coupled service
oriented architecture with
bounded contexts”
Adrian Cockcroft (Netflix)
“SOA done right”
Anonymous
“… services are independently deployable and scalable,
each service also provides a firm module boundary, even
allowing for different services to be written in different
programming languages.”
Martin Fowler (Thoughtworks)
Size matters (not)
• It’s not about lines of code used
• Small enough to
• Be handled by a single team
• Not feel “big”
Services as a network of independent parts
Microservices architecture
Every service is independent
• Can have its own technology stack
• Maintains its own state
• Is delivered independent of other parts of the system
• Everything is highly automated
• Each Microservice has its own team
• Both delivery and operations are their responsibility (DevOps)
Relation between number of services and
complexity
Effect of complexity on system qualities
Chosen strategy
Obtain simplicity by adding complexity
Benefits
Heterogeneous
technology
landscape
Resilience
against failure
Selective
scaling
Deployment of
smaller pieces
with lower risk
Alignment with
organization
• Ownership with
teams
Composability
Replaceability
Microservices Architecture characteristics
• Organized around business capabilities
• Products not Projects
• Decentralized data management
• Decentralized governance
• Componentization via Services
• Design for Failure
• Infrastructure automation
• Evolutionary Design
Source: http://martinfowler.com/articles/microservices.html
• Organized by logical cohesion
• Teams own layers spanning domains
• Unified technology choice
From horizontal to vertical
Change your approach to vertical partitions
• Modeled after organization’s domains
• Owned by team
• Top to bottom
• Isolated from each other as much as possible
Achieving your goals
Apply Microservices’ principles and practices:
• Low coupling and high cohesion
• Asynchronous over synchronous
• Choreography over orchestration
Low coupling
Components are
completely
insensitive to changes
and errors in other
components.
No
Coupling Error and changes
seldom propagate
errors and changes to
dependent
components
Low
Coupling Errors and changes in
one component
almost always
propagate to other
components
High
Coupling
Measurement of dependency between two components
Expressed as sensitivity towards propagation of changes and errors
High cohesion
Degree to which parts of a module belong together
Levels:
Coincidental
cohesion
(worst)
• random
Logical
cohesion
• same in nature
Temporal
cohesion
• executed at a
particular time
Procedural
cohesion
• part of fixed
execution
sequence
Informational
cohesion
• operating on
the same data
Sequential
cohesion
• Output of one
is used as input
by another
Functional
cohesion
(best)
• contributing to
a single task
Hands-on
Design your own Microservices
How to find autonomous systems?
• Grouping all synergistic business functions together into one system
• aka Autonomous Business Capability (ABC)
“Two business functions A, B are synergistic if and only if, from
the business perspective, A is not useful without B and B is not
useful without A.”
• Functions without synergy go into different systems
Example – Home Finance System
Deposit
Funds
Setup
Payment
Reminder
Create
New
Budget
Cancel
Payment
Reminder
Withdraw
Funds
Write
Check
Add
Expense
List
Expense
Source: Roger Session’s – Simple Architecture for Complex Enterprises
Deposit
Funds
Setup
Payment
Reminder
Create
New
Budget
Withdraw
Funds
Cancel
Payment
Reminder
Write
Check
Add
Expense
List
Expense
Source: Roger Session’s – Simple Architecture for Complex Enterprises
Applying synergistic partitioning to
Home Finance System
Frontend integration
Freedom of choice
Social ProductReport
Graph DocumentBlob
Bounded contexts
Which Service owns this page?
None!
Composition is key!
Example:
otto.de
Example Microservices architecture - otto.de
• 11 verticals
• Autonomous
teams around a
component
• Independently
deployable
• Own data
storage
Source: http://ottodev.files.wordpress.com/2013/11/teile-und-herrsche-
kleine-systeme-fc3bcr-groc39fe-architekturen.pdf
Example Microservices architecture - otto.de
• Each with own UI (on website)
• Well defined interfaces
• No shared code or state
• REST interfaces for each vertical
• Pull based data replication
• Front end integration
(JavaScript/Edge Side Includes)
How to implement inter-system
dependencies?
Event Driven Architecture
• Systems keep their own state
• Events are used to notify changes
• Systems use events to replicate data
• Each service will have its own database
• Downsides:
• Latency in data changes
• No central control of business logic
• Challenge to reconcile in case of disaster
Why are event driven architectures relevant?
• Increased use of asynchronous notifications
• Mobile push based notifications, Twitter, Whatsapp, et cetera
• Increased application of asynchronous languages and frameworks
• Javascript, node.js, AJAX, C# async and await, Signal R
• Increased need for fast, robust and scalable systems
• Reactive Manifesto
• Increased need for systems agility
• Faster, more frequent changes
Cross-service coupling
• Smart endpoints, dumb pipes
• No intelligent middleware
• Technologies to look at:
• Queues (Azure, MSMQ, WebSphereMQ , ...)
• Service Bus (NServiceBus, Azure ServiceBus, Azure EventHub, ...)
• Language neutral data serialization
(Google Protocol buffers, Apache Thrift, AMQP)
Designed for failure
• Services can and will fail: prepare!
• Do not rely on another service’s
availability
• Introduce features in your app to deal
with it
• Test under stress and
with failing services
Circuit Breaker Pattern
Handle faults that may take a variable amount of time to rectify when
connecting to a
• remote service or resource.
• This pattern can improve the
stability and resiliency of an
application.
Circuit Breaker Pattern
• Fails immediately after a
number of (slow) failures
• Careful rampup after cool-
down period
• Works together with
Retry Pattern
Retry Pattern
Enable an application to handle temporary failures when connecting to
a service or network resource by transparently retrying the operation in
the expectation that the failure is transient. This pattern can improve
the stability of the application.
Command and Query Responsibility
Segregation
• Traditional CRUD
• Mismatch between read and write representations
• Contention of database
• Solution: Segregate operations for reading and writing
• CRUD approach:
• Updates directly against
datastore
• No recorded history
Solution:
Handle operations on data by
events which are recorded in
append-only database
Event sourcing
Hosting Microservices
Services up and running
OS
Virtual
machines
PaaS
Container
runtimes
Hosting your services
Host
Application
container
Micro
Service
Micro
Service
Host
Micro
Service
Micro
Service
Micro
Service
Micro
Service
Host
Micro
Service
Host
Micro
Service
Host
Micro
Service
Host
Micro
Service
Hosting in
application
container
High density
hosting
One service
per host
App
A
Virtual Machines and Containers
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
VM
Container
Containers are isolated,
but share OS kernel and, where
appropriate, bins/libraries
Guest
OS
Guest
OS
…result is significantly faster
deployment, much less overhead,
easier migration, faster restart
Problems and solutions
• Rolling upgrades
• Availability guarantees
• Scale out architecture
• Resource governance
• Density
• Packaging and deployment
• Policy enforcement
• Granular versioning
• Stateful workloads
• Leader election
Mesos
Kubernetes
Zookeeper
Redis
Raven
MongoDB
Yarn
Fleet
Hadoop
Containers
Public Cloud Hosted CloudsPrivate cloud
Lifecycle
Mgmt
Independent
Scaling
Independent
Updates
Always On
Availability
Resource
Efficient Stateful
Microservice-based applications
The Microservice premium
Is a Microservice architecture a
good choice for the system you're
working on?
Source: http://martinfowler.com/articles/microservices.html
It depends!
Summary
• Microservices is the new hot thing
• Still maturing, lot to be learned and
discovered
• Might not be for everybody
• Think of a strategy to implement your
Microservices
• Migrate gradually
• Evaluate specialized hosting platforms and
frameworks and technologies
http://www.xpirit.com
Leading IT specialists in
Microsoft Application Lifecycle Management,
Cloud, Enterprise Mobility & Security style

More Related Content

What's hot

ArchitectNow - Designing Cloud-Native apps in Microsoft Azure
ArchitectNow  -  Designing Cloud-Native apps in Microsoft AzureArchitectNow  -  Designing Cloud-Native apps in Microsoft Azure
ArchitectNow - Designing Cloud-Native apps in Microsoft AzureKevin Grossnicklaus
 
Azure Application Architecture Guide
Azure Application Architecture GuideAzure Application Architecture Guide
Azure Application Architecture GuideMasashi Narumoto
 
Engage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryEngage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryJared Roberts
 
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...WSO2
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2Masashi Narumoto
 
Service fabric overview
Service fabric overviewService fabric overview
Service fabric overviewHimanshu Desai
 
Modeling microservices using DDD
Modeling microservices using DDDModeling microservices using DDD
Modeling microservices using DDDMasashi Narumoto
 
Azure reference architectures
Azure reference architecturesAzure reference architectures
Azure reference architecturesMasashi Narumoto
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureTapio Rautonen
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Engineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud ProvidersEngineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud ProvidersTechcello
 
High Level Overview of Windows Azure - EPC Group
High Level Overview of Windows Azure - EPC GroupHigh Level Overview of Windows Azure - EPC Group
High Level Overview of Windows Azure - EPC GroupEPC Group
 
What is reactive
What is reactiveWhat is reactive
What is reactiveLightbend
 
Introduction To .Net Compact Framework and SQL Server CE Development
Introduction To .Net Compact Framework and SQL Server CE DevelopmentIntroduction To .Net Compact Framework and SQL Server CE Development
Introduction To .Net Compact Framework and SQL Server CE Developmentchristopherfairbairn
 
Building a serverless app
Building a serverless appBuilding a serverless app
Building a serverless appVinay Krishna
 
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...David J Rosenthal
 
The Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsThe Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsSimware
 
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
Kafka Summit SF 2017 - Running Kafka for Maximum PainKafka Summit SF 2017 - Running Kafka for Maximum Pain
Kafka Summit SF 2017 - Running Kafka for Maximum Painconfluent
 

What's hot (20)

ArchitectNow - Designing Cloud-Native apps in Microsoft Azure
ArchitectNow  -  Designing Cloud-Native apps in Microsoft AzureArchitectNow  -  Designing Cloud-Native apps in Microsoft Azure
ArchitectNow - Designing Cloud-Native apps in Microsoft Azure
 
Azure Application Architecture Guide
Azure Application Architecture GuideAzure Application Architecture Guide
Azure Application Architecture Guide
 
Engage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation StoryEngage 2018 - What About the Apps? A Domino Modernisation Story
Engage 2018 - What About the Apps? A Domino Modernisation Story
 
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
 
Designing microservices
Designing microservicesDesigning microservices
Designing microservices
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2
 
Windows Azure introduction
Windows Azure introductionWindows Azure introduction
Windows Azure introduction
 
Service fabric overview
Service fabric overviewService fabric overview
Service fabric overview
 
Modeling microservices using DDD
Modeling microservices using DDDModeling microservices using DDD
Modeling microservices using DDD
 
Azure reference architectures
Azure reference architecturesAzure reference architectures
Azure reference architectures
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Engineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud ProvidersEngineering and Operational Services for Cloud Providers
Engineering and Operational Services for Cloud Providers
 
High Level Overview of Windows Azure - EPC Group
High Level Overview of Windows Azure - EPC GroupHigh Level Overview of Windows Azure - EPC Group
High Level Overview of Windows Azure - EPC Group
 
What is reactive
What is reactiveWhat is reactive
What is reactive
 
Introduction To .Net Compact Framework and SQL Server CE Development
Introduction To .Net Compact Framework and SQL Server CE DevelopmentIntroduction To .Net Compact Framework and SQL Server CE Development
Introduction To .Net Compact Framework and SQL Server CE Development
 
Building a serverless app
Building a serverless appBuilding a serverless app
Building a serverless app
 
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
 
The Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsThe Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systems
 
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
Kafka Summit SF 2017 - Running Kafka for Maximum PainKafka Summit SF 2017 - Running Kafka for Maximum Pain
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
 

Similar to Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microservices

Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeAlex Thissen
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles Nilay Shrivastava
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Exploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeExploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeAlex Thissen
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices M A Hossain Tonu
 
#ATAGTR2020 Presentation - Microservices – Explored
#ATAGTR2020 Presentation - Microservices – Explored#ATAGTR2020 Presentation - Microservices – Explored
#ATAGTR2020 Presentation - Microservices – ExploredAgile Testing Alliance
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.PLovababu
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay Kumar Uppal
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1Amin Arab
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMohammedShahid562503
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 

Similar to Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microservices (20)

Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Microservices
MicroservicesMicroservices
Microservices
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Exploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeExploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft Landscape
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
#ATAGTR2020 Presentation - Microservices – Explored
#ATAGTR2020 Presentation - Microservices – Explored#ATAGTR2020 Presentation - Microservices – Explored
#ATAGTR2020 Presentation - Microservices – Explored
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 

Recently uploaded

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 

Recently uploaded (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
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...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microservices

  • 1. Microservices – a shift in modern application architecture Microservices with Microsoft Alex Thissen
  • 2. Agenda • Struggle of modern applications and architectures • Introducing Microservices architecture • Moving away from monoliths • Change in architecture • Complexity for simplicity • Characteristics of a Microservices architecture • Designing and hosting Microservices
  • 3. Where is MSA in hype cycle?
  • 4. Current forces What’s next in modern application architectures?
  • 5. Valued business drivers Better • Resilient • Technology choice Cheaper • Test effort • Cost of maintaining Faster • Change • Deployment • Execution
  • 8. Trends in software development Platform as a Service Autonomous teams Continous Delivery Agile Organization Reactive Manifesto
  • 9. Modern application architecture requirements • Mobile first • Low bandwidth resilient • Resilient to failure • Highly scalable • 24x7x365 • High frequency of feature delivery Scalable Agile Available (24x7) Efficient
  • 10. Microservices Architecture (MSA) Latest trends in architecture Objectives: Scalability, Agility, Availability, Efficiency
  • 11. The many definitions of microservices - Small and focused on doing one thing well - Autonomous “Loosely coupled service oriented architecture with bounded contexts” Adrian Cockcroft (Netflix) “SOA done right” Anonymous “… services are independently deployable and scalable, each service also provides a firm module boundary, even allowing for different services to be written in different programming languages.” Martin Fowler (Thoughtworks)
  • 12. Size matters (not) • It’s not about lines of code used • Small enough to • Be handled by a single team • Not feel “big”
  • 13. Services as a network of independent parts
  • 15. Every service is independent • Can have its own technology stack • Maintains its own state • Is delivered independent of other parts of the system • Everything is highly automated • Each Microservice has its own team • Both delivery and operations are their responsibility (DevOps)
  • 16. Relation between number of services and complexity
  • 17. Effect of complexity on system qualities
  • 18. Chosen strategy Obtain simplicity by adding complexity
  • 19. Benefits Heterogeneous technology landscape Resilience against failure Selective scaling Deployment of smaller pieces with lower risk Alignment with organization • Ownership with teams Composability Replaceability
  • 20. Microservices Architecture characteristics • Organized around business capabilities • Products not Projects • Decentralized data management • Decentralized governance • Componentization via Services • Design for Failure • Infrastructure automation • Evolutionary Design Source: http://martinfowler.com/articles/microservices.html
  • 21. • Organized by logical cohesion • Teams own layers spanning domains • Unified technology choice From horizontal to vertical Change your approach to vertical partitions • Modeled after organization’s domains • Owned by team • Top to bottom • Isolated from each other as much as possible
  • 22. Achieving your goals Apply Microservices’ principles and practices: • Low coupling and high cohesion • Asynchronous over synchronous • Choreography over orchestration
  • 23. Low coupling Components are completely insensitive to changes and errors in other components. No Coupling Error and changes seldom propagate errors and changes to dependent components Low Coupling Errors and changes in one component almost always propagate to other components High Coupling Measurement of dependency between two components Expressed as sensitivity towards propagation of changes and errors
  • 24. High cohesion Degree to which parts of a module belong together Levels: Coincidental cohesion (worst) • random Logical cohesion • same in nature Temporal cohesion • executed at a particular time Procedural cohesion • part of fixed execution sequence Informational cohesion • operating on the same data Sequential cohesion • Output of one is used as input by another Functional cohesion (best) • contributing to a single task
  • 25. Hands-on Design your own Microservices
  • 26. How to find autonomous systems? • Grouping all synergistic business functions together into one system • aka Autonomous Business Capability (ABC) “Two business functions A, B are synergistic if and only if, from the business perspective, A is not useful without B and B is not useful without A.” • Functions without synergy go into different systems
  • 27. Example – Home Finance System Deposit Funds Setup Payment Reminder Create New Budget Cancel Payment Reminder Withdraw Funds Write Check Add Expense List Expense Source: Roger Session’s – Simple Architecture for Complex Enterprises
  • 28. Deposit Funds Setup Payment Reminder Create New Budget Withdraw Funds Cancel Payment Reminder Write Check Add Expense List Expense Source: Roger Session’s – Simple Architecture for Complex Enterprises Applying synergistic partitioning to Home Finance System
  • 29. Frontend integration Freedom of choice Social ProductReport Graph DocumentBlob
  • 31. Which Service owns this page?
  • 32. None!
  • 35. Example Microservices architecture - otto.de • 11 verticals • Autonomous teams around a component • Independently deployable • Own data storage Source: http://ottodev.files.wordpress.com/2013/11/teile-und-herrsche- kleine-systeme-fc3bcr-groc39fe-architekturen.pdf
  • 36. Example Microservices architecture - otto.de • Each with own UI (on website) • Well defined interfaces • No shared code or state • REST interfaces for each vertical • Pull based data replication • Front end integration (JavaScript/Edge Side Includes)
  • 37. How to implement inter-system dependencies?
  • 38. Event Driven Architecture • Systems keep their own state • Events are used to notify changes • Systems use events to replicate data • Each service will have its own database • Downsides: • Latency in data changes • No central control of business logic • Challenge to reconcile in case of disaster
  • 39. Why are event driven architectures relevant? • Increased use of asynchronous notifications • Mobile push based notifications, Twitter, Whatsapp, et cetera • Increased application of asynchronous languages and frameworks • Javascript, node.js, AJAX, C# async and await, Signal R • Increased need for fast, robust and scalable systems • Reactive Manifesto • Increased need for systems agility • Faster, more frequent changes
  • 40. Cross-service coupling • Smart endpoints, dumb pipes • No intelligent middleware • Technologies to look at: • Queues (Azure, MSMQ, WebSphereMQ , ...) • Service Bus (NServiceBus, Azure ServiceBus, Azure EventHub, ...) • Language neutral data serialization (Google Protocol buffers, Apache Thrift, AMQP)
  • 41. Designed for failure • Services can and will fail: prepare! • Do not rely on another service’s availability • Introduce features in your app to deal with it • Test under stress and with failing services
  • 42. Circuit Breaker Pattern Handle faults that may take a variable amount of time to rectify when connecting to a • remote service or resource. • This pattern can improve the stability and resiliency of an application.
  • 43. Circuit Breaker Pattern • Fails immediately after a number of (slow) failures • Careful rampup after cool- down period • Works together with Retry Pattern
  • 44. Retry Pattern Enable an application to handle temporary failures when connecting to a service or network resource by transparently retrying the operation in the expectation that the failure is transient. This pattern can improve the stability of the application.
  • 45. Command and Query Responsibility Segregation • Traditional CRUD • Mismatch between read and write representations • Contention of database • Solution: Segregate operations for reading and writing
  • 46. • CRUD approach: • Updates directly against datastore • No recorded history Solution: Handle operations on data by events which are recorded in append-only database Event sourcing
  • 48. Services up and running OS Virtual machines PaaS Container runtimes
  • 50. App A Virtual Machines and Containers Hypervisor (Type 2) Host OS Server Guest OS Bins/ Libs App A’ Guest OS Bins/ Libs App B Guest OS Bins/ Libs AppA’ Host OS Server Bins/Libs AppA Bins/Libs AppB AppB’ AppB’ AppB’ VM Container Containers are isolated, but share OS kernel and, where appropriate, bins/libraries Guest OS Guest OS …result is significantly faster deployment, much less overhead, easier migration, faster restart
  • 51. Problems and solutions • Rolling upgrades • Availability guarantees • Scale out architecture • Resource governance • Density • Packaging and deployment • Policy enforcement • Granular versioning • Stateful workloads • Leader election Mesos Kubernetes Zookeeper Redis Raven MongoDB Yarn Fleet Hadoop Containers
  • 52. Public Cloud Hosted CloudsPrivate cloud Lifecycle Mgmt Independent Scaling Independent Updates Always On Availability Resource Efficient Stateful Microservice-based applications
  • 53. The Microservice premium Is a Microservice architecture a good choice for the system you're working on? Source: http://martinfowler.com/articles/microservices.html It depends!
  • 54. Summary • Microservices is the new hot thing • Still maturing, lot to be learned and discovered • Might not be for everybody • Think of a strategy to implement your Microservices • Migrate gradually • Evaluate specialized hosting platforms and frameworks and technologies
  • 55. http://www.xpirit.com Leading IT specialists in Microsoft Application Lifecycle Management, Cloud, Enterprise Mobility & Security style