SlideShare a Scribd company logo
Grokking Microservices
in 5 Minutes
Comparing and contrasting monolithic systems
to Lego pieces at the 50,000 foot view.
Andrew Siemer | Developer Springboard
andrew@developerspringboard.com
@asiemer
Andrew Siemer
http://about.me/andrewsiemer
ASP Insider
MS v-TSP (Azure)
Azure Advisor Program
Father of 6. Jack of all trades, master of some.
• How to achieve your
DREAM career
• Discover
• Refine
• Establish
• Advance
• Master
DeveloperSpringboard.com
@devspringboard
Azure Austin
Meetup
An hour of deep dive by technical
leaders with a slant on all things Azure!
API Management, DocumentDB, Search,
Distributed Systems, Microservices
meetup.com/azureaustin
Clear Measure
Workshops
Day long, Clear Measure led, fingers on
keyboards, learn by doing
CQRS, DDD, Event Sourcing, Distributed
Systems, Micro Services
meetup.com/clear-measure-workshop
Introduction
• Monolithic vs. Microservices
• Microservice Cons
• How to do Microservices
Monolithic
vs.
Microservices
Monolithic vs. Microservices
Monolithic
• Deploy the world
• Dev slows as complexity grows
• Large test surface
• No code ownership
• Reusability forces design choices
• Many layers of features creates
tighter coupling
Microservices
• Deploy pieces
• New feature, new service
• Small test surface
• Specific code ownership
• Choose technology that fits best
• Loose coupling based around
contracts
Monolithic vs. Microservices
Monolithic
• One data access to rule them all
• Transactionality, consistency,
data storage, designed up front
• Feature’s have presence in each
layer of the application
• All features live in the same
repository, versioned together
• Code complexity to manage
Microservices
• One data access per service
• Pick what fits each service at the
time you build it
• Each layer of the service lives
with the feature
• Each service lives in its own
repository, versioned on its own
• No code complexity to manage
Microservice
Cons
First rule of distributed systems
Don’t! Don’t build distributed software unless you know you absolutely need too.
The complexity of the development story, the management story, and the system
level communication story goes up. Only do this if you know the system will either
be complex, needs to scale, or both.
Complexity vs. Productivity
From:
http://martinfowler.com/bliki/MicroservicePremium.html
Cons
• Deployments require automation
• Logging and monitoring must be centralized
• Governance required for technology adoption
• Learning curve to get it right can be steep
• Lack of design around resiliency can cause cascading failures
How to do
Microservices
Rules for Microservcies
• Each service has a single responsibility
• One code repository per service
• How small? Small enough to fit in your head at one time!
• Common code can be shared as a library and treated like you would
an open source dependency
• Every service runs in its own process (vm, container)
• DDD applied: Domains in different bounded contexts should be
distinct
• Its therefore ok to have duplication!
• Conway’s Law
Conway’s Law
“organizations which design systems ... are constrained to produce designs which
are copies of the communication structures of these organizations”
Rules for Microservices
• Each service can choose its own technology (careful here)
• Always resort to building a new service first
• If the new service is small enough, refactor it into another service as needed
• Splitting services later is harder
• A service should control it’s world
• Separate data store per service
• Separate UI components provided by the service
Data Strategies
A service should store and maintain its own data
• Foreign keys to other systems might be stored as a REST URI
• If you need external data, call a service over keeping your own copy
• Don’t fear data redundancy
• Replication of data is ok if you need it
UI Strategies
A service should provide its own UI components
• When possible, a service serves the entire page
• Services agree on CSS naming conventions
• Centralize shared components such as menu, styles, common
resources
• UI composition only allowed on the client (SPA)
• Create a composite view of UI fragments when embedding data from
many services
Security Strategies
Security context is spread over many services
• Services: authentication, login, authorization, administration
• OAuth2 is great for distributed systems
• Can use a shared cookie across services
Communication Strategies
Everything is allowed, but you should establish one standard
• REST works everywhere…but can be slower
• Strive for loose coupling
• No logic in the communication channel
• NO ESB like BizTalk
• Asynch messaging is great
• Design for resiliency
Testing Strategies
Tests should be on the behalf of the consumer not the producer
• Integration tests are good enough, services are small
• Dependencies should be mocked, only test your service
• Consumers of your service writes tests
• Contribute tests to a test pool which your service must pass
Deployment Strategies
With hundreds of services everything must be automated
• Continuous delivery
• Use deployment pipelines
• Automate everything
Questions?
Andrew Siemer – Developer Springboard
andrewsiemer@gmail.com
(512) 387-1976
@asiemer

More Related Content

PPTX
A lap around azure function proxy
ODP
Testing strategies for micro services - Ketan Soni, Jesal Mistry, ThoughtWorks
PPTX
The Hitchhiker’s Guide to Hybrid Connectivity
PPTX
ASP.NET MVC - Latest & Greatest So Far
PDF
How to Build Front-End Web Apps that Scale - FutureJS
PPTX
Azure API Apps
PDF
BizTalk Server Extensibility
PPTX
GAB 2017 - Logic Apps and Azure Functions
A lap around azure function proxy
Testing strategies for micro services - Ketan Soni, Jesal Mistry, ThoughtWorks
The Hitchhiker’s Guide to Hybrid Connectivity
ASP.NET MVC - Latest & Greatest So Far
How to Build Front-End Web Apps that Scale - FutureJS
Azure API Apps
BizTalk Server Extensibility
GAB 2017 - Logic Apps and Azure Functions

What's hot (20)

PPTX
Azure Web Apps Advanced Security
PPTX
Integration Monday - Logic App Patterns
PPTX
Overview of azure microservices and the impact on integration
PPTX
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
PPTX
Serverless CQRS in Azure!
PDF
AWS Api Gateway by Łukasz Marchewka Scalacc
PPTX
Serverless
PPTX
App Services - Connecting the dots of Web Mobile and Integration_published
PPTX
What's Better than Microservices? Serverless Microservices.
PPTX
Azure Dev/Test Labs
PPTX
What to look for in an integration platform
PDF
Azure security guidelines for developers
PPTX
Azure functions serverless
PPTX
Hybrid Integration with SAP
PPTX
Application Insights for Integration Developers
PPTX
Building Real time Application with Azure SignalR Service
PDF
APIdays Singapore 2019 - API Gateway in a Nutshell, Allan Chua, Solution and ...
PDF
Ben Kehoe - Serverless Architecture for the Internet of Things
PPTX
Azure Functions - Introduction
PDF
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Azure Web Apps Advanced Security
Integration Monday - Logic App Patterns
Overview of azure microservices and the impact on integration
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Serverless CQRS in Azure!
AWS Api Gateway by Łukasz Marchewka Scalacc
Serverless
App Services - Connecting the dots of Web Mobile and Integration_published
What's Better than Microservices? Serverless Microservices.
Azure Dev/Test Labs
What to look for in an integration platform
Azure security guidelines for developers
Azure functions serverless
Hybrid Integration with SAP
Application Insights for Integration Developers
Building Real time Application with Azure SignalR Service
APIdays Singapore 2019 - API Gateway in a Nutshell, Allan Chua, Solution and ...
Ben Kehoe - Serverless Architecture for the Internet of Things
Azure Functions - Introduction
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Ad

Viewers also liked (20)

PPT
Appistry Lightening Talk from CloudCamp Federal @ FOSE
PPT
4 hadoop for-the-disillusioned
PDF
Lightening Talk @Symfony Conference 2016
PDF
Microservices Manchester: Lightning Talk - The Hidden Cost of Technology By J...
PDF
Event-Driven Architecture
PPTX
Making your API behave like a big boy
PDF
MSA: Quando a gestão encontra a arquitetura
PDF
Coaching & desenvolvimento de times
PDF
DevOps: The IT Revolution Era
PDF
Microservices, soa e o melhor das filas
PDF
Microservices from dream to reality in an hour - Dr. Holly Cummins
PDF
Come ti smantello un'app monolitica in microservices
PDF
Microservices meetup
PDF
Trends in development distributed systems
PDF
Dev opsdaykeynote
PDF
Microservices. The good the bad and the ugly
PPTX
How Spotify Does Test Automation - Kristian Karl
PPTX
Elastically scalable architectures with microservices. The end of the monolith?
PDF
Datomic - Lidando com dados de maneira versionada
PDF
Microservices reativos usando a stack do Netflix na AWS
Appistry Lightening Talk from CloudCamp Federal @ FOSE
4 hadoop for-the-disillusioned
Lightening Talk @Symfony Conference 2016
Microservices Manchester: Lightning Talk - The Hidden Cost of Technology By J...
Event-Driven Architecture
Making your API behave like a big boy
MSA: Quando a gestão encontra a arquitetura
Coaching & desenvolvimento de times
DevOps: The IT Revolution Era
Microservices, soa e o melhor das filas
Microservices from dream to reality in an hour - Dr. Holly Cummins
Come ti smantello un'app monolitica in microservices
Microservices meetup
Trends in development distributed systems
Dev opsdaykeynote
Microservices. The good the bad and the ugly
How Spotify Does Test Automation - Kristian Karl
Elastically scalable architectures with microservices. The end of the monolith?
Datomic - Lidando com dados de maneira versionada
Microservices reativos usando a stack do Netflix na AWS
Ad

Similar to Grokking microservices in 5 minutes (20)

PPTX
Introduction To Microservices
PPTX
The 7 deadly sins of micro services
PPTX
Iot cloud service v2.0
PPTX
Introduction to Microservices
PPTX
Exploring microservices in a Microsoft landscape
PPTX
A Microservice Journey
PPTX
Microservice intro
PDF
QCon 2015 - Microservices Track Notes
PDF
Microservice Architecture
PPTX
Microservices: Yes or not?
PPTX
Pros & Cons of Microservices Architecture
PDF
Microservices Journey NYC
PPTX
The 7 deadly sins of micro services
PDF
Understanding Microservices
PDF
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
PPTX
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
PDF
SOA to Microservices
PPTX
Software Architectures, Week 3 - Microservice-based Architectures
PDF
Microservices for Enterprises
PPTX
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Introduction To Microservices
The 7 deadly sins of micro services
Iot cloud service v2.0
Introduction to Microservices
Exploring microservices in a Microsoft landscape
A Microservice Journey
Microservice intro
QCon 2015 - Microservices Track Notes
Microservice Architecture
Microservices: Yes or not?
Pros & Cons of Microservices Architecture
Microservices Journey NYC
The 7 deadly sins of micro services
Understanding Microservices
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
SOA to Microservices
Software Architectures, Week 3 - Microservice-based Architectures
Microservices for Enterprises
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...

More from Andrew Siemer (9)

PDF
20 tips for website performance
PDF
Microservices pros and cons - houston tech fest
PPTX
Microservices pros and cons dark
PPTX
Microservices pros and cons
PPTX
Reigniting the Volusion platform
PPTX
Load testing with Visual Studio and Azure - Andrew Siemer
PPTX
Test driving Azure Search and DocumentDB
PPTX
A tale of two clouds
PPTX
Introduction to CQRS - command and query responsibility segregation
20 tips for website performance
Microservices pros and cons - houston tech fest
Microservices pros and cons dark
Microservices pros and cons
Reigniting the Volusion platform
Load testing with Visual Studio and Azure - Andrew Siemer
Test driving Azure Search and DocumentDB
A tale of two clouds
Introduction to CQRS - command and query responsibility segregation

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Electronic commerce courselecture one. Pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
KodekX | Application Modernization Development
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Spectral efficient network and resource selection model in 5G networks
Electronic commerce courselecture one. Pdf
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
NewMind AI Monthly Chronicles - July 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Per capita expenditure prediction using model stacking based on satellite ima...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Grokking microservices in 5 minutes

  • 1. Grokking Microservices in 5 Minutes Comparing and contrasting monolithic systems to Lego pieces at the 50,000 foot view. Andrew Siemer | Developer Springboard andrew@developerspringboard.com @asiemer
  • 2. Andrew Siemer http://about.me/andrewsiemer ASP Insider MS v-TSP (Azure) Azure Advisor Program Father of 6. Jack of all trades, master of some.
  • 3. • How to achieve your DREAM career • Discover • Refine • Establish • Advance • Master DeveloperSpringboard.com @devspringboard
  • 4. Azure Austin Meetup An hour of deep dive by technical leaders with a slant on all things Azure! API Management, DocumentDB, Search, Distributed Systems, Microservices meetup.com/azureaustin
  • 5. Clear Measure Workshops Day long, Clear Measure led, fingers on keyboards, learn by doing CQRS, DDD, Event Sourcing, Distributed Systems, Micro Services meetup.com/clear-measure-workshop
  • 6. Introduction • Monolithic vs. Microservices • Microservice Cons • How to do Microservices
  • 8. Monolithic vs. Microservices Monolithic • Deploy the world • Dev slows as complexity grows • Large test surface • No code ownership • Reusability forces design choices • Many layers of features creates tighter coupling Microservices • Deploy pieces • New feature, new service • Small test surface • Specific code ownership • Choose technology that fits best • Loose coupling based around contracts
  • 9. Monolithic vs. Microservices Monolithic • One data access to rule them all • Transactionality, consistency, data storage, designed up front • Feature’s have presence in each layer of the application • All features live in the same repository, versioned together • Code complexity to manage Microservices • One data access per service • Pick what fits each service at the time you build it • Each layer of the service lives with the feature • Each service lives in its own repository, versioned on its own • No code complexity to manage
  • 11. First rule of distributed systems Don’t! Don’t build distributed software unless you know you absolutely need too. The complexity of the development story, the management story, and the system level communication story goes up. Only do this if you know the system will either be complex, needs to scale, or both.
  • 13. Cons • Deployments require automation • Logging and monitoring must be centralized • Governance required for technology adoption • Learning curve to get it right can be steep • Lack of design around resiliency can cause cascading failures
  • 15. Rules for Microservcies • Each service has a single responsibility • One code repository per service • How small? Small enough to fit in your head at one time! • Common code can be shared as a library and treated like you would an open source dependency • Every service runs in its own process (vm, container) • DDD applied: Domains in different bounded contexts should be distinct • Its therefore ok to have duplication! • Conway’s Law
  • 16. Conway’s Law “organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”
  • 17. Rules for Microservices • Each service can choose its own technology (careful here) • Always resort to building a new service first • If the new service is small enough, refactor it into another service as needed • Splitting services later is harder • A service should control it’s world • Separate data store per service • Separate UI components provided by the service
  • 18. Data Strategies A service should store and maintain its own data • Foreign keys to other systems might be stored as a REST URI • If you need external data, call a service over keeping your own copy • Don’t fear data redundancy • Replication of data is ok if you need it
  • 19. UI Strategies A service should provide its own UI components • When possible, a service serves the entire page • Services agree on CSS naming conventions • Centralize shared components such as menu, styles, common resources • UI composition only allowed on the client (SPA) • Create a composite view of UI fragments when embedding data from many services
  • 20. Security Strategies Security context is spread over many services • Services: authentication, login, authorization, administration • OAuth2 is great for distributed systems • Can use a shared cookie across services
  • 21. Communication Strategies Everything is allowed, but you should establish one standard • REST works everywhere…but can be slower • Strive for loose coupling • No logic in the communication channel • NO ESB like BizTalk • Asynch messaging is great • Design for resiliency
  • 22. Testing Strategies Tests should be on the behalf of the consumer not the producer • Integration tests are good enough, services are small • Dependencies should be mocked, only test your service • Consumers of your service writes tests • Contribute tests to a test pool which your service must pass
  • 23. Deployment Strategies With hundreds of services everything must be automated • Continuous delivery • Use deployment pipelines • Automate everything
  • 24. Questions? Andrew Siemer – Developer Springboard andrewsiemer@gmail.com (512) 387-1976 @asiemer

Editor's Notes

  • #2: Comparing and contrasting monolithic systems and microservices. Some downsides to microservices How to build microservices
  • #3: I am Andrew Siemer, an ASP Insider, Microsoft VTSP, Azure advisor, sustainable farmer/rancher, father of 6, and general jack of all trades – master of some! I enjoy living in my country – “the united state of TEXAS!” – ‘MERICA, obstacle racing, cowboying, and playing with my monsters
  • #4: Developer Springboard is full of career advice and interesting stories. We try to break down the career process into consumable chunks to help our users build a logical path towards their DREAM career. Come join the conversation and level up your career. DeveloperSpringboard.com
  • #5: If you are in Austin, come see us at the AzureAustin meetup every third Wednesday. Check meetup.com/azureaustin We discuss everything Azure!
  • #6: If you are in Austin come join us at “Clear Measure Workshops”. We strive to tackle tough or new topics with fingers on keyboards. No more than 20 minutes of presentation and slides. Then we break into small groups to learn by doing. Lunch is provided. Bring your laptops. Check meetup.com/clear-measure-workshops
  • #7: In this presentation we will compare and contrast monolithic systems to microservices. We will then take a look at some of the down sides to microservices. And then we will discuss some strategies for building microservices.
  • #9: Deploy everything - or just what changes Patterns to deal with code complexity which adds more complexity – or no code complexity to manage at all Large test surface, never knowing impacts of change – or very small test surface No code ownership from team with shared code base – very specific code ownership – sense of pride Up front designs usually push technical limitations where inappropriate – or choose technology as you need it Tight coupling is very easy – or no coupling by design
  • #10: Up front data access design forced on all features – vs choosing what is best as needed Feature’s have presence spread throughout code – vs having all code for a feature in one place All code is versioned together – vs having each service versioned by itself
  • #14: Pushing out code complexity forces deployment complexity to grow Important that management story is always thought about for hundreds of services Technology adoption must be monitored so that every service doesn’t make a new choice Learning curve is steep compared to what everyone already knows (ntier) Resiliency for service dependencies must be top of mind to keep cascading failures away
  • #16: Single responsibility principle applies to service One code repository enforces physical boundary for each service Small enough should fit in your head Shared libraries should be delivered and managed like an open source project One service to one process to limit service failure replication Duplication is ok to ensure each service just does one thing well
  • #17: A product isn’t the same thing depending on the department you are speaking with at the time Marketing: What can I say about this product to sell it? How can I show this product to make people want it? Inventory: What shelf does that product sit on? How many do I have left? Do I have room for the soon to arrive shipment? Accounting: How much did that product cost? How much did I sell it for?
  • #18: Services are technology independent. Should always build a new service first. Then see if it fits an existing service. Merging in is easy. Refactoring out is hard. A service should control its entire world, state, and UI
  • #19: A service should the source of truth for its data
  • #20: A service should control how it represents its data Its ok to centralize design choices across services (menus, styles, common resources)
  • #21: Security is composed of many services and shared across many other services Authentication / Login Authorization Profile administration OAuth2 works great for distributed systems Shared cookies can work too
  • #22: Having a common form of communication is best REST is great…touch slow Loose coupling No logic in the channel! Asynch messaging internally is preferred Design for resiliency, fail gracefully and in a controlled manner No cascading failures!
  • #23: Test surface is small Integration tests are usually good enough on the team Consumer based tests as part of the deployment pipeline Shared test pool which your service must pass Tests written by consumers to test their expected results – not your planned behaviors
  • #24: Automate everything Deployment pipelines are a must