Download presentation
Presentation is loading. Please wait.
Published byRoberta Townsend Modified over 9 years ago
1
Breaking Up Is Hard To Do From Monolith to Microservices
2
Jake Stevenson Technical Director — Improving Enterprises Systems Architecture, Software Development, Team Mentorship, DevOps Automation Theater Major
3
Monolithic Application Architecture Self-Contained and Independent from other applications Usually layered UI Business Logic Data
4
Microservices Architecture Small, Independant Applications Integration Logic Ties it Together Message Brokers RESTFull Services Presentation Layer Needs to Cross Applications
5
What's Wrong with Monoliths? Risk when Refactoring and Changing Deployment Time And Risk Hard to scale your Team IDE slowdown Friction when Updating Technologies
6
Story Time!
7
Quick look at code
8
Early times Had an idea and executed with agility YAGNI Smooth to Launch
9
Text CleanAir4You.com CleanAir4You.com Architecture CleanAir4You.com Monolith Organized By Areas
10
Tour the Monolith Divided into areas loosely related to bounded contexts Services for those context called directly from the controllers Unit tests (not shown) are also monolithic
11
Pain Starts New Developers Hired Merge conflicts start hitting Regression mistakes hurt Deployment brings the whole site down
12
Story Time!
13
Time to look at code
14
Developer learns about messaging patterns Plans to break up the application start CQRS ideas introduced (simple bus) Solution size explodes -- Seperate projects for bounded contexts
15
Messaging Pattern Simple Approach — Events vs Commands Events inform that something happened Commands tell someone to do something Simple bus to wire up handlers to these
16
More Growth - More Pain Hired More team members -- split into multiple teams Backlog growing faster -- success makes business want more Still more code conflicts More communication needs Deployment more painfull Longer builds Longer unit testsl
17
Time to Bite The Bullet Ensure Bounded Contexts are Sound Decide How to communicate -- APIs, Messaging and Contracts Write a new Solution Generate a new Database -- Migrate data
18
Ensuring Sound Bounded Contexts Who owns the data? Overlaps in ownership cause consistency concerns
19
Communications Patterns Shared Database Tables RESTFull/SOAP APIs Message Bus
20
Solutions and Builds One solution per micro service Nuget to distribute contracts
21
Who owns the Data Shared is easier to start, but will bite you Transactions across bounded contexts suck Eventual Consistency is Key
22
Strategies for Eventual Consistency Identify what’s really needed for the context of the action Do you care if they’ve billed before you create the account? Do you care if the account is created before you’ve billed? Is it acceptable to go back and let them know the bill failed?
23
Code Demo
24
Text CleanAir4You.com CleanAir4You.com Architecture CleanAir4You.com Now With Microservices!
25
Rabbit and NServicebus
26
Downfalls Deployment/IT complexity Source code explosion Data scatter -- Reporting considered it's own microservice Debugging Intersections
27
And now for the hard stuff!
28
What about the UI?
29
Code Demo
30
Text CleanAir4You.com CleanAir4You.com Architecture CleanAir4You.com With UI Composition
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.