Bob Ivkovic, Principal of IT Architects
July 15, 2020
As the name DevOps implies, it is a combination of “Development” and “Operations”. DevOps has become a popular organizational structure and trend for delivering rapid software deployments within the enterprise. And the best thing about DevOps, it provides both business and IT advantages. While the business may view IT as bureaucratic and not always flexible when it comes to delivering solutions to meet business demand, management has deployed DevOps in order to align its IT function to the business needs of the organization while it best serves its customers.
From an IT perspective, DevOps has been an effective enabler of communication between the software development team and those managing production environments. In essence, DevOps merges software delivery with application support. As one DevOps expert explained, “DevOps is an ethos centered around integration and communication between software developers and IT professionals who manage production operations.” It has allowed companies to emphasizes the importance of communication and collaboration between development and production IT professionals while automating the deployment of software and infrastructure changes.
A Little DevOps History
In the age of constant security vulnerabilities and shifting security protocols, DevOps has been able to provide the infrastructure and application platforms to take care of all the non-functional requirements of its business systems, including performance, scalability, high availability, disaster recovery, security, and the list goes on. So why does DevOps matter? It’s all about rapidly delivering software and security updates internally and to customers. And this is what all organizations want and desperately need. Since implementing DevOps requires a change in corporate culture, it affects the entire organization. Management has come to realize that the benefits have far exceeded the difficulty of a culture shift in companies that have adopted DevOps. DevOps gained traction about a decade ago, and it was the big players like Amazon, Walmart, and Adobe who were the first on the DevOps bandwagon. Management has to understand that DevOps is not a switch that can simply be turned on, rather it requires careful and gradual implementation so as to not disrupt the functioning of its organization.
IT researchers claim that DevOps is an outcome of Agile Infrastructure. It started in the IT department and expanded across the enterprise. It has gained a lot of fanfare through IT articles, academic white papers, technology conferences, IT interest groups, and social media focused on IT. While innovative technology companies like Amazon, Adobe, and Netflix have been early adopters of DevOps, it also enjoys popularity in the retail space with Target, Walmart, and Nordstrom implementing its development and operational model.
The Key Goal of DevOps
The goal of DevOps is basically to establish an environment where building, testing, and deploying software can take place rapidly, frequently, and reliably. This allows an organization to achieve its goals quicker, allowing for a faster turnaround in the deployment of new features, updated configurations, security patches, bug fixes, etc. It turns out that DevOps has been embraced by many startups since there are fewer people to run the show making these shops “lean” and “mean” (i.e. efficient and effective). These are environments where programmers are responsible for the deployment of production environments and support of users. Although DevOps is considered to be a resource management strategy for larger organizations, it has also been less effective as a result of management bureaucracy and multi-level management hierarchies.
DevOps had also gained popularity because it encompasses IT trends such as Agile development, continuous integration, and continuous delivery. In fact, DevOps has been instrumental in knocking down the walls that divide development, operations, support, and management teams. Although there is no silver bullet that can fix all development and operations problems in an organization, DevOps has proven to increase communication and collaboration.
The 5 Stages of DevOps Maturity
In order to achieve maturity in DevOps, companies must build the proper foundation for their DevOps deployment. As organizations introduce new technologies, it is critical that effective testing and deployment patterns are reused and resources put in place with the right tools and formal processes. The five stages of maturing DevOps are outlined below.
1. Normalize the technology stack
This is the first stage of the process, where organizations adopt true Agile methods and are implementing proper infrastructure controls as they seek to provide continuous integration and delivery. This is also where redundant technologies are eliminated, and the stack is normalized using a standard set of ground-breaking and enabling technologies.
2. Standardize and reduce variability
Both development and operation teams work together to reduce variance. They work together to ensure that technology is further consolidated to a single OS or OS family, reduce process complexity, and explore collaboration opportunities early in the process.
3. Expand DevOps practices
Now that there is a DevOps foundation, organizations must eliminate any discrepancies created by previous changes. For example, the output of the application development team must match that of the deployment function to be truly effective. Furthermore, bureaucratic processes must be eliminated so that individual contributors can do work without approval from outside support teams and changes can be made without obstacles and wait time.
4. Automate infrastructure delivery
By automating infrastructure delivery, the discrepancy between development output and operational delivery times is narrowed. Thus, this gets everyone, business and IT, on the same page. When system configurations, security set-up, and provisioning are automated, DevOps can deliver faster, while targetting its operation for self-service.
5. Provide self-service capabilities
Many of the self-service capabilities that define DevOps deployments are created in the fourth stage, but they are further realized and more resources are made available in the fifth stage. In this final stage of DevOps maturity, application developers can deploy testing and production environments on their own, and success metrics are clearly visible to the project team and business.
The Power of DevOps
DevOps has become a sort of a superhero by making the entire software lifecycle faster, from code commit to production deployment. Large IT departments with a mature DevOps workflow can deploy software 200 times more frequently than low-performing IT departments. That’s a figure that was thrown out to me by a DevOps expert but I believe it after working in large organizations with a mature DevOps capability. Furthermore, these organizations have a 20 to 30 times faster recovery time, and three times lower rates of change failure, while spending less than half of their time addressing security issues, as well as a quarter less time on unplanned work. These are ballpark statistics but we’ll let the big IT magazine editors give you the real numbers.
While the concept of continuous delivery, which is under the realm of DevOps, may be counterintuitive for some IT folks, the end goal of frequent software deployments is to make the process routine and transparent, rather than a disruptive major rollout or time-consuming release management function. It’s important that an organization adopt a DevOps communication culture if they are to benefit. For the consumer side of the equation, DevOps allows for a significantly reduced time to market, allowing organizations to deliver new features, software configurations, and security patches to customers more quickly and efficiently. And don’t forget, DevOps can also increase job satisfaction among the IT group. It’s not so much about reducing cost as it’s about increasing speed, which is more likely to be a successful long-term strategy.
Although DevOps has the benefit of the business and IT alignment, it takes time to evolve and mature a DevOps service within an organization. The success to implement DevOps depends on the existing IT infrastructure and corporate structure of an organization. Companies with cloud infrastructure and Agile development practices are light years ahead of those who still live in the Stone Age of IT.
Mr. Bob Ivkovic is a Principal with IT Architects in Calgary, Alberta. IT Architects (www.itarchitects.ca) is an information consulting firm specializing in business process optimization, system evolution planning, and the deployment of leading-edge technologies. If you require further information, Bob can be reached at email@example.com or 403-630-1126.