DevOps integrates development and operations teams to improve collaboration and productivity by automating all sorts of processes. There are situations where this may not be appropriate. Similar to any other domain or solution, one size does not fit all.
DevOps Teams: Why Does Automation Matter?
Before talking about the “dark side” (downsides) of DevOps let’s see what and why DevOps teams automate. A DevOps team automates processes including code testing, workflows and infrastructure. Automated testing is essential to catch defects before the product is released which would be difficult to rectify if a DevOps team worked with manual testing. Humans would have to carefully check and compare code and results to each other.
Automated workflow is a great help to a DevOps team. It assist them to direct documents and tasks to the responsible users for further operation. By automating workflows (which could be done via BPM (Business Process Management) or any other approach) DevOps teams gain greater transparency. They can better monitor, evaluate and maintain tasks and processes in real time.
Automated infrastructure (also known as configuration management) enables DevOps team to script the environment including installing an operating system or configuring software communication. Since authorized team members have the right to alter the script, it brings agility to development and operations.
Software written in small chucks by the DevOps teams is integrated, tested and monitored as well as deployed usually in a matter of hours, contrary to large chunks of software written and tested over weeks or months. Software written in small chunks enables DevOps teams to increase the speed and frequency of deployment and to respond quicker to market needs.
The Dark Side – Why you might want to think twice about adopting DevOps:
- DevOps can run on any platform, including the mainframe but it should not be in PHP or Ruby programming language.
- DevOps might be expensive if you only have a few releases a year or if you want to use it for fixing minor bugs.
- Developers cannot think about writing code only. Developers should also think about how their development (product/application) will run as a non-functional requirement.
- Development and operation should work together and they should solve and close tickets within a short period of time rather than weeks or months.
- Before you start automating your process, you should standardize and optimize.
Successful DevOps Approach: Measure the Right Thing
Faster deployment and resolving the conflict between operations and development is one of the main reasons for implementing DevOps but we need to set up KPIs to measure in order to be successful. KPIs vary from company to company, but may include the following:
- Business Success KPIs (conversion rates, Average revenue per user, Acquisition costs)
- Customer experience KPIs (Response times of transactions, Frequency of transactions, User growth rates, A/B test results)
- Application Performance (Availability, Application response time, Database response time, Resource use, Database query times)
- Speed (Lead time for changes, Frequency of code releases, Mean time to resolution)
- Quality (Deployment success rate, error rates, number of bugs)
Check out our DevOps Guide: Implementing Continuous Integration & Delivery that clears up the myths about DevOps, providing you with clear information about the basics of DevOps and its benefits.