on microservices and monoliths
TRANSCRIPT
on µservices and monolithsHosted by
Let’s meet our speakers
Barak Shechter - Director of Architecture at Calypso Technology. He has focused
his career in software architecture for big data and cloud applications--specializing
in how to build resilient, fault tolerant distributed systems.
Daniel Rolnick - Chief Technology Officer of ShopKeep. He has been building
SaaS based software for the past 16 years with a focus on decreasing release
cycles for the past 8 years.
John Eckhart - Business Technology Officer at Yodle/Web.com. He primarily
seeks to keep Barak and Daniel on their toes and may have designed some of the
things they will talk about. ;-)
Quick Poll
● How often are your teams releasing software today?
● Does your team:
○ practice continuous integration?
○ have a release train?
○ practice continuous delivery?
● Have you heard of the terms: bulkheading or decoupling?
Are Microservices Good?
● Pros
○ Smaller computational units improve testability
○ Smaller changes are easier to release
○ Fewer dependencies means smaller machines
○ Granular deployable components are independently scalable
● Cons
○ Significant overhead to large scale micro-services organizations
○ Cognitive load for complex service architectures brings challenges
Are Monoliths Bad?
● Pros
○ A well architected Monolith has a lower cognitive load
○ Existing development tools make monoliths easy to deal with
● Cons
○ Monoliths can grow too large to develop locally
○ Complex testing requirements may make it difficult to push out small changes
○ Release trains are more complex
Architectural Paradigms
100 systems surveyed for patterns on decoupling.
Top 5 answers on the board
Hands on your buzzers
It’s time to play: The Feud
Let’s Play The Feud - How do you like to decouple?
Let me see.... Sharding
SHARDING
10
Sharding
Application
DB
Sharding
Some Router
Application
DB
Shard 1
Sharding
Some Router
Application
DB
Shard 1
Sharding
Some Router
Application
DB
Shard 2
Application
DB
Shard 1
Sharding
Some Router
Application
DB
Shard 2
Application
DB
Shared
DB
Back to the Board
SHARDING
10
Let me see.... Messaging
SHARDING
40
MESSAGING
Messaging
Application
Logical
Unit
DB
Messaging
Application
Logical
Unit
DB
Logical
UnitMessage Bus
Messaging
Application
DB
Logical
UnitMessage Bus
Logical
Unit
Messaging
Application
DB
Logical
UnitMessage Bus
Logical
Unit
DB
Two Down. Three to Go.
SHARDING
40
MESSAGING
Let me see.... Streams
SHARDING
50
MESSAGING
STREAMS
Stream Processing
Application
Logical
UnitMessage Bus
DB
Stream Processing
ApplicationMessage Bus
DB
Logical
Unit
Stream Processing
ApplicationMessage Bus
DB
Stream Processing
ApplicationMessage Bus
DB DB
Two answers left on the board
SHARDING
50
MESSAGING
STREAMS
Let me see.... Services
SHARDING
70
MESSAGING
STREAMS
SERVICES
Services
Application
Services
Application
Logical Unit 3 Logical Unit 4
Logical Unit 2Logical Unit 1
Services
Application
Logical Unit 3 Logical Unit 4
Unit 2 Call
RouterLogical Unit 1 Logical Unit 2
Services
Application
Logical Unit 3 Logical Unit 4
Unit 2 Call
RouterLogical Unit 1 Logical Unit 2
Logical Unit 2.1
Services
Application
Logical Unit 3 Logical Unit 4
Unit 2 Call
RouterLogical Unit 1
Logical Unit 2.1
One Answer Remaining
SHARDING
70
MESSAGING
STREAMS
SERVICES
Let me see.... Contracts
SHARDING
100
MESSAGING
STREAMS
SERVICES
CONTRACTS
Contracts
Contracts
Questions