DevOps – Get Onboard or Get Left Behind
How to Approach Software Development & Operations as they evolve
Since the term “DevOps” was introduced in a talk on “Agile Infrastructure” in 2008, it is a concept that has been promoted in the software industry. Although there is some disagreement as to the exact meaning of DevOps it can best be defined as:
DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.
The advantages of merging of these functions can be many and significant. But it does depart from the traditional software development, test and release structure and has not been without controversy. Much of this has been political between team responsibilities and the view by some software engineers that this merger of roles leads to job losses.
Traditionally, the development and operations of new software products has been done by two distinct teams with varying skill sets. DevOps looks to merge these teams to ensure a more seamless customer experience looking more like this.
Under the DevOps model, development and operations teams are no longer “siloed” and now work in a merged structure. The teams also work across the entire application lifecycle from development and test to deployment and operations. This leads to the expanded development of skills across all engineers as the range of activity increases. These teams use practices to automate processes speeding what have historically been manual and slow processes.
The main benefits of DevOps are:
- Speed – Moving at higher velocity allows teams to innovate for customers faster, adapt to changing markets and increase efficiency at driving business results.
- Rapid Delivery – By increasing the frequency and pace of releases, this offers the opportunity to improve the product faster.
- Reliability – Ensuring the quality of updates and changes will increase the product reliability. By using practices like continuous integration and continuous delivery to test each change, product reliability will go up.
- Scale – The automation and consistency that DevOps offers will help in scaling the infrastructure and service more reliably.
- Collaboration – DevOps will aid in building more effective teams as the “cradle to grave” approach emphasizes ownership and accountability. Gone will be the days of passing problems onto the next team.
- Security – The DevOps model can increase security by automating compliance policies and fine-grained controls. Blending development and operations offers an opportunity to quickly identify and understand security issues.
With all the above benefits, it would seem that all software companies would be rushing to deploy DevOps but as with most changes there are some challenges that include:
- Culture: this collaborative culture will not develop by itself
- Test Automation: continuous testing cannot be ignored
- Legacy Systems: Getting rid of old systems overnight will not happen – plans for coexistence will be needed
- App Complexity: Consider application architecture changes early
- Managing Environments: Use of cloud sandboxes and other tools may be needed to automate complex DevOps environments
- Skillset: Teams will need training to effectively implement DevOps
- Budget: DevOps can offer longer term cost advantages but integration and operational complexity will need to be factored into the short term
- Organizational Buy In: Top to Bottom commitment will be needed
Despite these challenges, the trend towards deploying DevOps seems to be on the rise. There is just too much benefit to the increase in the development and deployment velocity. This speed enables companies to better react to customer needs and to quickly and efficiently launch, troubleshoot and fix new software products.
At nine we are not only an infrastructure operator but a “go-to” partner in the DevOps Consulting Services space. If you need help implementing your DevOps strategy, we are ready to help and have the experience to ensure success.