SlideShare uma empresa Scribd logo
1 de 69
Baixar para ler offline
Microservices:
Architecture for Agile
Software Development
Eberhard Wolff
Fellow, innoQ
@ewolff
http://microservices-buch.de/
Code
Microservice
Definition
Server
 Server
Microservices:
Definition
>  Small
>  Independent deployment units
>  Any technology
>  Any infrastructure
>  UI + Logic
Micro
Service
Micro
Service
Components Collaborate
Micro
Service
Micro
Service
Link
Data Replication
REST
Messaging
Online Shop
Order
Catalog
Search
Billing
Customer
HTML /
HTTP
Online Shop
Elasticsearch
Spring Batch
Oracle
Spring MVC
MongoDB
Order
Catalog
Search
Billing
Agility
Agile Manifesto
>  Individuals and Interaction
>  Over processes and tools
>  Working Software
>  Over comprehensive documentation
>  Customer Collaboration
>  Over contract negotation
>  Responding to change
>  Over following a plan
Agile Manifesto:
Individuals and
Interactions
Software Architecture
& Individuals
Software Architecture
& Individuals
Unrelated?
Does Your
Architecture Take
Individuals Into
Account?
Conway‘s Law
Architecture
copies
communication structures
of the organization
Conway‘s Law: Impact
Architecture
and
communication structures
in the organization
are the same thing.
Conway’s Law as a
Limit
>  Organization drives architecture
>  I.e. GUI, logic & database team
>  Three technical artifacts
GUI
Logic
DB
E Commerce
Shop
Change
Order
Process!
time
DB
Team Sprint
Logic
Team Sprint
GUI
Team Sprint
3 sprints
Deployment Monolith
Deployment Monolith
Stories
Technical Coordination
Coordinating Releases
Order
 Billing
 Search
Order
 Search
Billing
Team for each business feature
Let architecture drive the organization
Deployment Monolith
+ Conway’s Law
Deployment Monolith
Stories
Technical Coordination
Coordinating Releases
StoriesStories
Order Billing Search
Microservices +
Conway’s Law
>  Let architecture drive the organization
>  Team for each Microservice
>  Team responsible for business features
>  Ideal: Independent features
Order
 Billing
 Search
Order
 Search
Billing
Team can deploy without integration
Changes can be deployed independently & quickly
Strong & enforced modularization 
Technology stack per Microservice
One or many Microservices per Team
Synergy Microservices / Conway’s Law
Microservices
Microservice
Stories
Technical
Coordination
Microservice
Stories
Technical
Coordination
Microservice
Stories
Technical
Coordination
Order Billing Search
Release Release Release
How to scale agile?
Use a process to scale
agile?
Individuals & interaction
over
processes and tools
Define architecture
to limit
communication
needs
One team can build and
deploy features
independently!
Team must be responsible
for a sensible set of
functionality
Less Technical
Coordination
Agile Manifesto:
Working Software
Scrum
>  PSI
>  Potentially shippable increment
>  Why?
Principles behind the
Agile Manifesto
Our highest priority is
to satisfy the customer
through early and
continuous delivery
of valuable software.
Potentially
Shippable
Increment
Continuous
Delivery
Monolith
ECommerce
System
3rd party
systems
Database
Continuous Delivery:
Build Pipeline
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
ECommerce
System
Build Pipeline:
Complex Infrastructure
>  Huge database
>  3rd party integration
Build Pipeline:
Slow Feedback
>  Slow feedback
>  Test everything for each commit
>  Huge deployment unit
>  Deployment slow
Monolith:
Deployment
>  Huge deployment
>  Risky
>  Hard to mitigate risk
>  Blue / Green: Create a separate
environment
>  Canary: Deploy to one server first
Microservices
ECommerce
System
3rd party
systems
Database
Order
Catalog
Billing
Search
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
Order
Billing
Customer
Build Pipeline for
Microservices
>  Independent deployment
>  Build pipeline per Microservice
>  Small
>  Easier to set up
>  Less features (3rd party systems)
>  Faster Feedback: Less tests
Microservice:
Deployment
>  Small deployment
>  Less risky
>  Other Microservices resilient to failing
microservice
>  Easy to create new environments
>  E.g. for Blue / Green or Canary
Quick Deployments
Time
Size & Risk
Manual
Deployment
Pipeline
Continuous
Delivery
Pipeline
Monolith
Microservices
Potentially shippable
increment?
SHIP!!!
Agile Manifesto:
Customer
Collaboration
Customer
Collaboration &
Architecture?
Customer
Collaboration &
Architecture?
Not sure.
Microservices &
Departments
StoriesStories Stories
Customer Billing
Order
Process
Product
Owner
Product
Owner
Product
Owner
Department Department Department
Microservices &
Departments
>  Ideal: One team per department
>  Ideal: Change local to one team /
Microservice
>  Otherwise: Coordination needed
Customer should own
Microservice
Agile Manifesto:
Responding to change
Monoliths
>  Architecture rot
>  …not maintainable any more
>  …and can’t be rewritten / replaced
Deployment Monolith
>  Cyclic dependency
>  …because the IDE suggested some class
>  Might not even be noticed
Module
Class
Module
Class
Class Class
Microservices
>  Need to use the API
>  Different team
>  More effort - will think about it
>  Rot less likely
Microservice
Class
Microservice
Class
Class Class
Global Refactorings?
>  Move code from service to service
>  Might be a port to a different language
>  Separate in a new service
>  Harder than in a Deployment Monolith
Microservices
>  Small
>  Easy to change
>  Architectural problems in Microservice unlikely
>  Can be replaced
Microservice
Class
Class
Microservices
– Easy to Recylce
Conclusion
Conclusion:
Microservices & Agility
>  Individuals over tools
>  Architecture drives organization
>  Scale by architecture not process
>  Working software
>  Actually ship software
>  Continuous Delivery
Conclusion:
Microservices & Agility
>  Customer collaboration
>  Customer should own services
>  i.e. organization beyond the project =
architecture
Conclusion:
Microservices & Agility
>  Responding to change
>  Individual Microservices small
>  Easy to change
>  …and replace
>  Unwanted dependencies won’t sneak in
>  But: Global refactoring hard, too
Meta-Conclusion
How To Think About
Architecture
>  Process has an impact on architecture
>  Software architecture & organization are the
same
>  Build recyclable software!
Microservice > Agile
Achitecture
Strong Modularization
Scaled Agile Architecture
Sustainable development
speed
 Replaceable Services
Continuous Delivery
Choose best technology
for job!
Handle Legacy more efficient
Independent Scaling
Robustness
Microservice Training
>  Stefan Tilkov / Eberhard Wolff
>  Frankfurt / Main
>  26.-27.10.2015
>  https://www.innoq.com/de/trainings/
microservices-training/

Mais conteúdo relacionado

Mais procurados

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
Angelos Kapsimanis
 

Mais procurados (20)

Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabric
 
Microservices with Azure Service Fabric
Microservices with Azure Service FabricMicroservices with Azure Service Fabric
Microservices with Azure Service Fabric
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
 
[WSO2Con EU 2017] Resilience Patterns with Ballerina
[WSO2Con EU 2017] Resilience Patterns with Ballerina[WSO2Con EU 2017] Resilience Patterns with Ballerina
[WSO2Con EU 2017] Resilience Patterns with Ballerina
 
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
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample application
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
 
Azure Service Fabric
Azure Service FabricAzure Service Fabric
Azure Service Fabric
 

Semelhante a Microservices: Architecture for Agile Software Development

A journey from monolith to micro services
A journey from monolith to micro servicesA journey from monolith to micro services
A journey from monolith to micro services
Pravin Mishra
 

Semelhante a Microservices: Architecture for Agile Software Development (20)

Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
A journey from monolith to micro services
A journey from monolith to micro servicesA journey from monolith to micro services
A journey from monolith to micro services
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Modern Microservices Architecture with Docker
Modern Microservices Architecture with DockerModern Microservices Architecture with Docker
Modern Microservices Architecture with Docker
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To Microservices
 
Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices
MicroservicesMicroservices
Microservices
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWS
 
#MicrosoftGraph Community call - automating your digital workplace provisioni...
#MicrosoftGraph Community call - automating your digital workplace provisioni...#MicrosoftGraph Community call - automating your digital workplace provisioni...
#MicrosoftGraph Community call - automating your digital workplace provisioni...
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Designing loosely coupled services
Designing loosely coupled servicesDesigning loosely coupled services
Designing loosely coupled services
 
Ncrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureNcrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architecture
 

Mais de Eberhard Wolff

Mais de Eberhard Wolff (15)

Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
REST vs. Messaging For Microservices
REST vs. Messaging For MicroservicesREST vs. Messaging For Microservices
REST vs. Messaging For Microservices
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?
 
Legacy Sins
Legacy SinsLegacy Sins
Legacy Sins
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
 

Último

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
vu2urc
 

Último (20)

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
 
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...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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?
 

Microservices: Architecture for Agile Software Development