DevOps: Common Terms and Getting Started

Leo Hart,

My last blog post described why DevOps is such a hot topic right now and why all companies, technology-focused or otherwise, need to adopt DevOps practices in order to remain competitive.

Given that context, I’d like to dive a bit deeper into the DevOps topic and get us aligned on some basic terminology. I’ll also give you some recommendations for getting started.

Navigating through buzzwords and silver bullets

DevOps can be an overwhelming topic. Many buzzwords, technologies, and techniques are associated with this term, which makes it difficult for the DevOps newcomer to know where to start.

The pinnacle of DevOps maturity involves a dramatic cultural change. Traditional software delivery and operational support walls are torn down, individuals and teams become multi-disciplined and there is an almost-obsessive focus on improving time-to-market, quality, and innovation. The realization of this change is similar in impact to the agile delivery transformations we all went through many years ago. In fact, DevOps is very much an extension of traditional agile practices, taking those methodologies’ focus on the define/dev/test cycle and extending it into the deployment, release, and monitoring phases of product management.

And, of course, there’s DevOps technology. There is so much DevOps-stamped technology out there with an equal number of vendors promising silver bullets to speed you on your DevOps way.

So where do we start?

At Pega we believe that the best way to start your DevOps transformation is to focus on some of the prescribed core techniques, namely:

  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment

While these three concepts don’t make up the entirety of DevOps practices, they are the core building blocks on which the larger cultural transformation is formed. They’re also a great way to reveal what additional cultural, organizational, or process changes you might need to make to fully achieve DevOps nirvana.

Let’s dig into these in more detail...

Continuous Integration

Continuous Integration, while the oldest of the three continuous practices, is often the most misunderstood and abused. Jez Humble, former ThoughtWorks team member and co-author of what has come to be known as a sort of DevOps bible (Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation) recognized this problem and has helped address it.

Since Continuous Delivery and Continuous Deployment are difficult to achieve without a healthy Continuous Integration practice in place, he created a simple “certification test” to help adopters understand their CI maturity. Martin Fowler, a former colleague of Jez’s and considered a modern thought leader in software development, documented Jez’s “certification test” on his Bliki website.

Continuous Integration Certification

Jez begins the certification test by asking the audience to raise their hands if they do Continuous Integration. Most in the audience raise their hands as they generally feel that they have this technique nailed. They feel that they are ready for more advanced DevOps practices like Continuous Delivery and Continuous Deployment.

Ah, but then he asks them to keep their hands up only if every developer on their team commits and pushes to a shared mainline at least once a day. “Shared mainline” in the case of Git generally refers to “shared master”. In the case of Subversion, “trunk". In the case of Pega, “base application rulesets".

Often, this question results in most of the hands going down.

Jez then asks them to keep their hands up only if each developer commit (or in the case of rules, “merge”) causes an automated build and test to be started. More hands drop. Finally, he tells them to keep their hands up only if failed builds are back to green within 10 minutes.

Few, if any hands remain raised after that last question. Those individuals are practicing true continuous integration.

I would personally add two additional criteria to the above test:

  • Your initial CI build takes no more than 10 minutes
  • Your CI build covers 75% or more of your code/rules base

The ability to unit test your system becomes very important here because unit tests are the best type of test for balancing speed and coverage. PegaUnit is the preferred unit test framework for testing rules. We’ll have a future blog post detailing the various types of testing involved in DevOps and Pega’s recommended approach and offering.

The takeaway? Ask yourself if your team is able to pass the Continuous Integration test. If not, you will want to focus on this practice before moving on to Continuous Delivery.

Continuous Delivery

Continuous Delivery is a practice in which teams aim to deliver software in very short cycles and take steps to ensure that their software can be released at any given time. Teams expand on their testing strategy, incorporating integration testing, UI testing, performance testing and any other automated or manual steps that are required to ensure that the application is ready to ship.

Continuous Deployment

Continuous Deployment takes Continuous Delivery one step further: you are not only always ready to ship, but you are also continuously shipping or deploying your changes to production. To achieve this degree of agility you need to fully automate your testing, validation and deployment strategy. Manual methods of certifying a system must be eliminated.

In summary

Hopefully, this information gives you some basic guidance about how to get started with DevOps. Don’t get overwhelmed with the tooling or culture topics. Instead, focus on the core three practices:

  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment

And the appropriate tooling and culture will reveal itself.

Pega has adopted a similar approach to tackling DevOps internally. In a later blog post, I’ll describe more about our DevOps strategy and what we’re doing to fast-track you as you move through your own DevOps transformation.

Tags

  • Topic: Agile
  • Challenge: Business Agility
  • Topic: Application Development

About the Author

Leo Hart is Vice President of Development Operations at Pega, where he is laser-focused on enabling DevOps transformation for both Pega and Pega’s customers. Leo previously spent 19 years at Fidelity Investments, serving in a number of agile/DevOps-minded software delivery roles, helping organizations achieve their vision of speed, quality, innovation and agility. When Leo isn’t working, he enjoys spending time with his family, cooking on his kamado grill and going for a run.