Development practices that combine software development and operations to shorten the development life cycle, more commonly referred to as DevOps, is a business model that has revolutionised the way companies work for a few years now, in the pursuit of business efficiencies and benefit to our end-users.
Successful deployment of DevOps at scale improves business performance through increased agility, enabling you to deliver new features to your customers much quicker than a siloed approach ever did. In our experience, however, many businesses struggle to run robust DevOps successfully at scale. Scaling DevOps to create a presence which is fully integrated into your development process can be a challenging prospect – but it doesn’t need to be a daunting one.
In our series of top DevOps tips, we’ll look at the best practice you can deploy to help your business achieve its wider business growth aims. Take the time to think about what your current DevOps capabilities are, how you do things, as well as where you ideally want to be. A capability assessment can really help here. It will reveal problem areas or bottlenecks within your delivery pipeline that are slowing down the speed at which you can release code or issues affecting the quality and security of the code you are producing. By thinking about your current situation against the following criteria, you’ll be able to develop a roadmap towards the successful deployment of the DevOps business model at scale. Here are some key considerations to think about.
Everyone should be using a form of version control by now, but this is more about the strategy you’re using. Are you using some sort of branching strategy or are you using a trunk-based strategy? Does your strategy help in shipping features quickly or are you held back with unnecessary complexity and merge hell?
Are your deployments fully automated and are they triggered automatically or manually?
Think about your approach for deploying code through your environment. Is it fully automated? What is the frequency with which you can trigger deployment through the lower environments?
Assess what tests are covered automatically as part of the standard build deployment process. Do these go beyond regression and unit testing to include security and performance tests?
Assuming you capture metrics, logs and data, how is this fed back into the team? Can they view the status of every environment?
Look at the three pillars of observability – logs, metrics, and tracing. Do you have the correct level of coverage with your monitoring; are you solely reactive to faults or are you able to detect issues before they impact customers? Often the challenges that your team is facing mesh directly into some of these areas of weakness. If you think about these criteria, it will often help reveal what the real problem areas are and which need the most work. Look out for the ones causing the greatest delays in the delivery of your product and new features to the client. Once you’ve identified them, you can create a roadmap of initiatives to implement which will improve your DevOps capabilities and enable successful DevOps at scale.
In our next article, we’ll take a look at some DevOps best practice, revealing how culture and team structure can impact the successful deployment of your DevOps business model.
In the meantime, here’s some recommended reading to help you along the way.
6point6 has a wealth of knowledge and experience in helping organisations to scale their DevOps capabilities.