20170831_srecon17_1.1
20170831_srecon17_1.1
- Deployment in age of MicroServices
- 0 - Agenda
- 1 - Type of changes
- 2 - Why change ?
- 3 - What can go wrong ?
- 4 - Best practices
- 5 - Naming
Deployment in age of MicroServices
0 - Agenda
- Type of changes
- Why changes
- What can go wrong
- Best practices
- Naming
1 - Type of changes
various kind of changes
* Client
* Server
* Static config
* Dynamic config
And various time to recovery
* Minutes,
* Hours,
* Days,
* …
2 - Why change ?
Reliabilty:
“Safest thing to do is NOT CHANGE ANY THING !
On the contrary:
A boat in an harbor is safe,
But that’s not what boat are built for
-> Not rewarding to not change anything
-> No new feature, no business development
-> No optiomizations
-> No evolutions
....
3 - What can go wrong ?
Lots of business relativ issues:
* Direct revenu loss
* User-confidence loss
* Pay-users complains
* …
4 - Best practices
The optimal rollout is:
* Staged
* Progressive with metrics monitoring
* Revertable
* Transparent (No 1 man knowledge, no truk man, …)
* Automtic
* Well understood by everyone
Detect badness as early as possible:
* High quality tests
* Build often
* A/B Testing
* Automate to reduce human errors
* “Hold back”, make changes funel complete (locked from changes till the end of the release)
* Deploy often
* Make it easy to rollback
* Backward compatibility
5 - Naming
Consistant naming scheme:
Everybody needs to have the same word for the same thing
* Stages
* Actions
* App name
Examples
Server name binary release Machines load-balancing ...