DevOps is the amalgamation of the term Developers and Operators. It implies programmers working with operators and testers to automate the IT processes involved in your business. However, there’s always a dilemma on how to begin, what exactly to automate, and where it could lead to.
This blog gives you highlights how to get started with DevOps as an activity, along with actual technologies and processes to adopt. The DevOps best practices suggested can lead to faster builds, faster deploys, faster recovery, faster notification of errors, faster server builds and faster notification of errors.
Most of the examples below assume software designed for a web browser. People building Windows and native mobile applications are probably not going to pursue continuous delivery, but they might still get value by building, testing and deploying more often than what the team is doing now.
Here are some DevOps best practices to keep in mind.
It all starts with mean time to recovery
The traditional measure for improvement was mean time between failures, or MTBF. Trying to fail less often is a fine approach in general. But as we tend to increase the uptime, it can lead to higher project cost. At some point, the price increase gets so high that it doesn’t get worth the investment. DevOps teams look at the price of uptime differently. Instead of trying to fail less often, they try to recover more quickly. The algebra runs something like this:
Risk Exposure equals (number of users exposed to problem) multiplied by (how terrible the problem is).
The number of users is actually correlated with time, so if the team can identify and fix the problem in one-tenth of the time, they have five times less risk exposure. This idea canbetter yet be applied to every step of the development process and can also be fixed cheaply.
Build and verify a build
How long does it take to create a build, deploy it to a staging environment, check it for problems and mark it ready for production?
Even though the build server here is the easy part, getting it to move to staging automatically can be a problem.
There are many teams that have legacy systems where a slight change can have unpredictable consquences. In such a case, they have a “regression test process” to find problems. While An automated regression check can take an hour to build, manual processes can take weeks or months. However, there can be cases where the team can see a massive improvement by manually writing better code with fewer errors. Adding to it, switching to a more effective method of human testing, such as sampling is much more adjusted to risk.
Deploy to production
Once the deploy decision is made, you may be wondering how long it could take to actually get on production? A few legacy systems can have a hard requirements for this. It may include- systems to be turned off, files to be copied by FTP and coordination to happen on multiple machines. These simple tasks can yet even be scripted, automated and done by the technical staff at the push of the button, instead of requiring a separate ticket and technical expertise. This might not be the best approach. The team can instead start with some percentage of the deploy, or develop a new architecture to make the deployment seamless.
Notice and notify
Here the question to be asked is :
Once a bug escapes to production, how long does it take to be found?
This is something that needs to be measured by looking at the latest serious bugs at that time when the builds were deployed and reported. These DevOps practices has some common elements. For instance, the bugs can involve long delays of page loads or 500 or 404 errors on the server. On this issue, most teams pursuing DevOps add real-time monitoring through dashboards with the help of email alerts of problems, monitoring server health or report problems.
The fix process
Here the question is: Once the bug is found, how long does it take to get a fix ready to build?
This is often a human process. In classic Scrum, the bug would be added to next sprint’s backlog, which can take a maximum of 2 weeks. To improve MTTR, you need to take a look at the elements of the loop and find the simplest of them all to solve- with less effort. It’s advisable not to give up on the mean time between failures.
It can be tempting to “buy and install” DevOps by simply plugging in automated builds, use virtualized servers and monitoring and call it done. This approach can reduce recovery time and encourage teams to do a great many deploys quickly. But subsequently, those deploys can require a lot of fixes.
To really utilize DevOps best practices, you need to notice the pattern of the recent failures in production. Our team can guide you in the next step of improvement (higher time between failures or lower time to recovery), bottleneck in the process, and where the team could have the most improvement for the least effort.
We discuss what is possible with the technical team in broad strokes, communicate the vision, and come up with a full proof strategy and execution.
Talk to an expert
Struggling with DevOps? Need technical help?
With our DevOps consulting services & agile practices, we deliver the highest quality products and automate workflows through rapid and incremental iterations. Handle risks, expedite deployment, jack up efficiency, and undergo an organization-wide cultural shift.