What's the Key to Continuous Delivery? (Hint: It's Not What You Think)
If you want to release a change that's just a single line of code, how long would it take you? How do you know if everything is working — or if customers are starting to notice bugs or other issues?
Monitoring continuous delivery is important for monolithic or cloud systems. But it's especially important for mixed systems, where the interoperability of the two creates additional complexities — and additional space for problems.
As with so many other aspects of DevOps, there’s more than one way to do continuous delivery (or its twin, continuous integration). Not surprisingly, this means there are competing arguments for what to do in CD and how to make it effective.
Atlassian, one of the larger names in DevOps software, says about CD:
The recent emphasis on continuous integration, built-in testing, constant monitoring, and analytics feedback all point toward an overall trend in the software industry: increasing the ability to react.
So which is it? Testing, monitoring, or analytics feedback?
There's many different approaches to continuous delivery, but the basic idea is that once development is complete, the code and new functionality is pushed to production, essentially testing it against end-users. This makes it necessary to monitor performance and functionality after deployment so that in the event of a bug, updates can be rolled back quickly and with little impact.
The one thing that all continuous delivery methods have in common is the need for a strong monitoring solution. Without it, shipping code would be done in the dark. You wouldn't expect NASA to launch a shuttle without continuously monitoring it. With servers and applications, if you're not monitoring the frontend and backend, you're not getting the full picture of your deliveries.
There's so much to monitor, such as CPU load and disk space of your servers on the backend to 5xx errors on the front end. It can be daunting and overwhelming, and what tends to happen is DevOps practitioners end up not setting up the right alerts to trigger when anomalies strike.
Fortunately, there are better monitoring solutions out there, ones that can help you set up automatic alerts and which don't take all day (or, in the case of some open-source monitoring solutions, all week). Look for artificial intelligence powering cloud monitoring tools for your CD. With AI, your alerts will be smarter, triggered faster, and in most cases, you'll avoid the dreaded false positives that can make monitoring such a pain.
So, how do you ensure the tests were successful? Monitoring. It's the key. We'll finish with an analogy, from engineer to engineer.
Remember the space shuttle above? NASA's Mission Control Center is responsible for monitoring everything in its flight. (Deploying a space shuttle or satellite is arguably a huge "delivery" of sorts). NASA takes monitoring their systems so seriously that they actually have two control centers. There's one in Florida at the launch site (the Kennedy Space Center) for checking everything leading up to and during launch, and another center in Houston (the Lyndon B. Johnson Space Center) for everything in orbit or beyond.
The Lyndon B. Johnson Control Center in Houston, Texas
Double up on your monitoring to be on the safe side, just like NASA. You won't regret it.