The CALMS model in DevOps
A high-level overview
Reading through most DevOps blog posts, you normally come across a recurring term, the CALMS model. So let’s have a look at what this acronym means and why we should care about it.
What is the CALMS model?
CALMS is an acronym that stands for Culture — Automation — Lean — Measurement — Sharing. Let’s see a bit about these concepts.
Culture
Culture is an integral part of DevOps. Let’s look at a Google definition.
Culture is the characteristics and knowledge of a particular group of people, encompassing language, religion, cuisine, social habits, music, and arts
In this context, it means the standards of working that have become the norm in any organization. When software teams adopt a DevOps culture, they abide by DevOps principles to ship changes to production faster and avoid keep the production environment free from errors.
Automation
This involves automating away, as much as possible, the steps involved in moving code from the dev environment to prod. This is achieved by using configuration files to set up infrastructure as opposed to doing it manually, writing scripts to perform tasks, etc. Through automation, you can reduce human error and increase speed. Let automation do repetitive tasks. This will maximize the availability for people to focus on tasks that require thought.
Automation is a major enabler of DevOps as it is highly desirable to automate provisioning, release management, and anything else that is possible. Continuous build, integration, and delivery are also enablers of DevOps.
Lean
DevOps is about good development practices that continually deliver product features (Agile) effectively with minimal wasted efforts (Lean) which are overseen by good governance controls (Information Technology Service Management, or ITSM). According to cacm.acm.org,
“The core idea behind lean is maximizing customer value while minimizing waste,” states The Lean Enterprise Institute.20 The Institute goes on to state that “Simply put, lean means creating more value for customers with fewer resources.”
From the above, we can see that lean aims to minimize wastage of physical and intellectual resources while giving the customers what they want.
If a survey is conducted and the company finds out that the customers need a red button, following the lean principle, all development on the blue button should stop and all efforts focused on getting that red button into production as fast as possible.
Measurement
Knowing the state of your resources and applications is important in any organization. This is where measurement comes in. But what do we measure?
Measure EVERYTHING! Continuous improvement requires an empirical process. Expose your data and be transparent so that you can inspect and adapt. Data-driven metrics help organizations make smart decisions. Work smart.
Simple answer. EVERYTHING!. Getting as much information about the environment is important to take proactive and corrective steps when the application goes down. Popular metrics tools include Nagios, Prometheus, ELK, etc
Sharing
Communication is very important to the success of DevOps teams. No team can successfully implement DevOps if they are siloed from other teams in the organization. Sharing is a large part of how DevOps organizations grow fast. Team members learning from other member’s experiences and teams learning from other team’s experiences within the organization is how an organization can mature. Growth comes from both successful and failed small experiments. A sharing organization is a growing organization.
Now that you understand the CALMS Model, you are ready to head on your DevOps journey. DevOps isn’t all about tooling but the application of these principles for rapid and continuous application deployment. Happy automation✌️
Other resources
Ok, so I guess that will be all for now, but watch this space for more DevOps-related posts. You can reach out to me on Github or send me an email at utibeabasiumanah6@gmail.com. Thanks for reading✌️
Please leave a comment if you have any thoughts about the topic — I am open to learning and knowledge explorations.