DevOps Principles - The CAMS Model

DevOps Principles - The CAMS Model

Understand the DevOps CAMS Model which engineers use at top companies

To ensure DevOps practices leading to effective outcome, Damon Edwards created CAMS Model, which stands for Culture, Automation, Measurement and Sharing. The CAMS Model provides the set of value system which is used by many DevOps engineers.

image.png

Culture

Team culture should promote reaching out to anyone in the team or group for open discussion, and we follow the priority of People over Process over Tool, also shown in below diagram, which simply states first priority are the people, they should decide based on their knowledge & skills what process & tools to be used & not the other way around, for example some find one fancy tool to do one job better which not everyone is familiar about, we should not / avoid that tool because even though that tool does certain job well but the support around that tool gets compromised or there gets learning curve in place for tool's usage.

image.png

Automation

We must have a thought on how much automation is required & whether the automation will solve the problem or will create more. For example, if we are creating automation to spin up the infrastructure to run our application that first should check if the infrastructure is already provisioned or not otherwise every time we run the automation we end up creating new infrastructure in other words here automation should be idempotent.

image.png

Measurement

We should measure the various metrics which will help us improve the business & scale of the application, It's not just about infra measurement, business measure, client activity and other pointers, recovery time, cycle time are obvious but it's important to measure and incentivise it. In short, if you care about it then measure it, otherwise you're just pretending that you care about it.

image.png

Sharing

Sharing the goal, responsibilities, ownership & having a feedback loop is very important to improve, otherwise we will be directionless. Sharing the mistakes, learning & experiences to entire team will reduce the delivery time for applications.

image.png

Feel free to share your thoughts & questions in comments and follow me to understand technical concepts in simple words.