https://www.udacity.com/course/intro-to-devops--ud611
Classical process organization divides team into groups according to their responsibilities (biz, dev, qa, ops). Building walls between those groups forces sequential communication: one team finishes their part then passes result to the next team. And no matter how efficient is the process within single group, this could lead to higher latency when reacting to bugs or changes.
Agile Manifesto (2001) focuses on devs and misses ops. Agile process (nothing about ops here):
- plan
- code
- test (automate and get feedback early)
Ops-aware process (automate everything (CI&CD), get feedback from all stages):
- plan
- code
- test (automate and get feedback early)
- release (automate and get feedback early)
- deploy (automate and get feedback early)
- operate (+ monitoring)
CAMS
- Culture: People over processes over tools (from Agile Manifesto)
- Automation
- Measurement
- Sharing: shared view on current state, shared responsibility, shared benifits
Solving the Environment Problem
- golden image
- same base OS + configuration management
- combined approach