Hey, first read the DevOps Principles (The goals of DevOps) → The DevOps Transformation – Part 1
Ok, let’s continue on our DevOps Journey…
3. DevOps Practices (The ways of DevOps)
Now that we have built our foundation we can work on some practices for a successful DevOps adoption. I’m a big fan of “The CAMS Model” for DevOps practices:
The CAMS Model
CAMS is an acronym describing the core values of the DevOps Movement: Culture, Automation, Measurement, and Sharing. It was coined by Damon Edwards and John Willis at DevOpsDays Mountainview 2010
- CAMS – Culture
- CAMS – Automation
- CAMS – Measurement
- CAMS – Sharing
Culture (The Most important)
DevOps is mostly about breaking down barriers between teams. An enormous amount of time is wasted with tickets sitting in queues, or individuals writing handoff documentation for the person sitting right next to them. In pathological organizations, it is unsafe to ask other people questions or to look for help outside of official channels. In healthy organizations, such behaviour is rewarded and supported with inquiry into why existing processes fail. Fostering a safe environment for innovation and productivity is a key challenge for leadership and directly opposes our tribal managerial instincts.
- Lean comes from Lean Manufacturing and is a set of principles for achieving quality, speed & customer alignment (same as what we’re trying to do with agile development).
- Use lean principles to enable higher cycle frequency
- Eliminate Waste.
- Deliver Fast
- Build Quality In
- Create Knowledge
- Optimise the Whole
- Defer Commitment
- Cross-functional teams
- Service Ownership
- Hack Events / Game Days
- Technical Debt grooming
- Destructive testing
Perhaps the most visible aspect of DevOps. Many people focus on productivity gain (output per worker per hour) as the main reason to adopt DevOps. However, is used not just to save time, but also prevent defects, create consistency, and enable self-service.
- Why Automate, because we need to move fast left-to-right flow of work from Development to Operations to the customer (The First Way – System Thinking).
- Hiring more people isn’t scalable.
- Humans are error-prone.
- With automation, the team gets faster results, more repeatable and more consistent.
- Examples of automation
- Continuous Integration / Delivery / Deployment pipeline.
- Infrastructure as Code – Configuration management.
- Orchestration Engine.
- Testing, Integrity, Security
How can you have continuous improvement without the ability to measure improvement? How do you know if an automation task is worthwhile? Basing decisions on data, rather than instinct, leads to a blameless path of improvement. Data should be transparent, accessible to all, meaningful, and able to be visualized in an ad hoc manner
- Why Measure? The best way to know if we are getting better is by measuring what we do.
- Let’s not rely on gut feel, let measure what we are doing so we know if we are getting better or worse. If we have data. let’s look at data.
- Technical examples:
- Information Radiators.
- Monitoring with Instrumentation platform.
- Process measurement (cycle time, MTTR, and so on)
- Code/Config quality, CI Quality, Deployment improvements
- Business examples:
- How many people signed up today.
- How many who signups converted to paying customers.
- How much revenue did we make today?
- What is the operating cost?
- How many call centre tickets are coming in
- How much support room activity is there
- Technical examples:
- Developers are responsible for defining what to measure and operation is responsible to monitor
Key the success of DevOps at any organization is sharing the tools, discoveries, and lessons. By finding people with similar needs across the organization, new opportunities to collaborate can be discovered, duplicate work can be eliminated, and a powerful sense of engagement can be created among the staff. Outside the organization, sharing tools and code with people in the community helps get new features implemented in open-source software quickly. Conference participation leaves staff feeling energized and informed about new ways to innovate.
- This is about what you did.
- We don’t want to have local optimisation (the first way) we want to think globally, therefore, we need to give everybody visibility of what we are doing.
- For example, give visibility to the product owner of what the team is doing throughout the whole project development.
- This allows the team to get feedback earlier from the project owner and other teams.
- This is why you did it.
- Transparency is about having everybody working towards the same goal.
- Alignment with other team and the organisation, towards the same goal.
- Knowledge Transfer
- Share knowledge among all the different people who are working on something.
- Cross-function team helps achieve that.
- Collectively we are smarter.
- Daily Standup.
- Retrospectives, Learning reviews.
- Documentation, code documentation, etc.
- Brown Bags, Tech Talks, Internal Conferences.
The next part goes into detail on DevOps Principles (The goals of DevOps) → The DevOps Transformation – Part 3 (and final)
 Gene Kim. The DevOps Handbook. IT Revolution Press.
 The Phoenix Project, 5th Anniversary Edition
 Jez Humble, David Farley. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
 DevOps dictionary CAMS
 DevOps Agile