Toggle navigation
Ivan's Wiki
Wiki Home
(current)
Submit
Index
Individual Coursework
All hope abandon ye who enters here
Notes on Microservices
Monolith is hard to work on:
Iterations are slow
Releases are hard (code changes from under you)
Different components of the system should have different performance targets:
Written in different languages
Run on different machines
Migration difficulty:
Maintain public API contracts
Microservices shift complexity into the network:
Who calls who?
Many moving parts to fulfill simple requests
Monzo:
1500 services
Should we start with Microservices? (it depends)
Cost of replacing one part is low
Monolith is more flexible in restructuring
Splitting:
Bounded Contexts:
From Domain Driven Design by Eric Evans
Idea of a context (a model of what we are trying to do)
Split the services based on what they do
Product teams (think THG)
Conway's Law:
Systems reflect the communication process between teams
Airbnb:
They kept a lot of their code themselves
Intercepted a call and redirected what it did
Routing events produced by the databases
Monorepo vs Multi-repo:
Every developer has all the code checked out
A lot more management overhead
Do not recompile all of the code
As always, it depends...
Strangler Pattern:
Write stuff "around" the existing system
Intercept requests and reroute them to new systems
Nginx proxy could do that for you
When to redactor a system and when to rewrite it?
Cloud Native Applications
A system where the cloud is the primary deployment system
Reasons:
Lots of services available
Scaling is easy
Dynamic scaling is easy (load in the morning, nothing for the rest of the day)
CapEX VS OpEX --> Less capital involvement
Spectrum:
IAAS -- infrastructure as a service
CoAAS -- Container as a service
PAAS -- platform as a service
FAAS -- function as a service
Containers: -
Plan
Sam Newman:
Building Microservices
Monolith to Microservices
Intro:
Microservices in modern world
What problem are they solving
Why they may be a worse choice for a company
Microservices should reflect internal company structure
Article on Monzo