The advantages of DevOps in practice

The advantages of DevOps in practice

in Netzwoche 08/2019 – author: Markus Speth.

DevOps stands for a new culture and approach in the collaboration of traditionally separated departments. Development (software development) and Operations (IT operations) are pulling together to increase software quality and availability and thus customer satisfaction.

In a world where software is becoming increasingly important, the success of a business depends more and more on how quickly software can be developed and deployed. Technology is evolving rapidly, is accessible to everyone, and international development teams are on call waiting to get the next assignment – so how can you stand out from the competition? The decisive factor today is how well a company knows its target group and how it satisfies customer needs better and faster than the competition through rapid iteration. DevOps can be an enabler for this.

What is DevOps?

DevOps is a dazzling term, but often just as vague as “cloud” or “container”. Everybody understands something different, and in some cases, DevOps is already used inflationary or only for marketing purposes. However, the majority agree that DevOps has arrived in the mainstream. Fundamentally, DevOps is an artificial word made out of “development”, i.e. software development, and “operations”, i.e. IT operations or system administration. DevOps stands symbolically for a new culture of collaborative departments that historically have pursued rather different goals: software development must be agile, creative and at the cutting edge of technological development in order to be able to constantly deliver new features. In contrast, IT operations is geared towards stability, security and reliability. DevOps now tries to unite exactly this apparent contradiction between agility and stability. As a logical further development of agile software development, DevOps aims to include the entire value chain in an interdisciplinary way. DevOps should break up existing silo thinking.

(illustration ©️ Daniel Stori – thank you very much)

DevOps consists of processes, tools and cultural components, whereby it primarily depends on the people. A DevOps culture must be lived. DevOps cannot be “bought” by using tools, introducing new processes or hiring a DevOps engineer. DevOps is the interdisciplinary cooperation, not only of Dev and Ops, but of all parties involved in the product life cycle such as Product Owner, Scrum Master, Testing and Security. The entire organization must contribute to this. It is not possible to establish a DevOps culture in a company without committed people who break out of the “sysadmin vs. coder” thinking pattern. This requires leaders who promote cooperation and collaboration between the teams. The management must share the ideas and set an example. DevOps is a philosophy or holistic approach – not a methodology nor a management framework that can simply be put over an existing organization.

Who benefits from DevOps?

DevOps affects all sectors and is not limited to software development. Many traditional industries today support their core business with software: no matter if banks, insurance companies, retail or industrial sector – digitization does not stop at any industry. If the customer is happy, so is the team, the individual employee and ultimately the company. In the end, everyone benefits from DevOps.

A DevOps culture that focuses on collaboration and automation not only ensures consistency and predictability and faster code delivery while increasing code quality. Problem solving also benefits from DevOps. Bugs and failures are not prevented by DevOps, but with a collaborative and solution-oriented DevOps team and a mature level of automation, troubleshooting and problem solving becomes many times more efficient and faster, reducing the cost of a failure. DevOps stands for the lean concept of Continuous Improvement and a conscious and active feedback culture. Mistakes may be made in order to continuously improve cooperation and processes. The software development and IT operations departments are jointly responsible for the application.

DevOps in practice

In practice, a functioning DevOps organization is characterized by frequent and fast release cycles, automated deployments (including automatic rollbacks if required), continuous integration and automated testing. The ideal picture is a fully automated pipeline without the need for manual intervention. It is also important that the management gives the teams the authority to make decisions autonomously without having to wait for a “go”. A practical example is self-service: The developer can create a development or test environment him or herself if required, without having to wait for the IT administration. The biggest obstacle to team collaboration is often the deadlocked approach and the “power of habit”. In such cases, it takes a lot of persuasion and time before a DevOps culture can become a commonplace. One only has to imagine how a company must also change culturally so that it can evolve from a few software releases per year to daily or even hourly releases through the use of continuous delivery. Software delivery cycles are getting shorter and shorter through Continuous Integration / Continuous Delivery (CI/CD) as production pipelines can increasingly be scaled through microservices and cloud native environments. Ideally, errors are detected before they go into production. The earlier an error is found and corrected in the chain, the cheaper it is to correct it. DevOps principles and automation make this possible, for example by using several test environments.

Today’s most successful product companies like Netflix deploy their applications several hundred to thousand times a day. Failures cannot be prevented, but can be scheduled in to continuously learn from them. Netflix has significantly increased the stability and robustness of its service through the use of chaos engineering, i.e. the deliberate and accidental termination of servers and processes in production as well. Server failure is taken for granted and built into the DNA of the service. Without a mature and comprehensive DevOps mentality throughout the entire organization, it would be impossible to deliver software at this speed and quality. Software companies are also on the rise in Switzerland, which are constantly improving their applications and placing their customers in the foreground through a lived DevOps practice. For example, Sherpany with their software for management and board meetings or Amazee.io, who have developed Lagoon, a modern docker build and deployment system for Kubernetes and OpenShift.

Conclusion

In contrast to Agile, DevOps goes beyond the development part and focuses on the entire value chain: DevOps teams are responsible for a product throughout its entire lifecycle. DevOps helps to scale while remaining flexible and offers a number of quantifiable benefits such as shorter development cycles, increased deployment frequency and faster time-to-market.

But DevOps is not just there to accelerate software development by increasing the level of automation and efficiency and agility. DevOps can be an enabler of an organization’s cultural change and improve overall collaboration, work climate and motivation. DevOps stands for collaboration, flexibility, agility and concentration on a joint business success: satisfied users, market-driven products and long-term motivated and loyal employees.

Want to learn more about DevOps?

We have conducted a study of the state of DevOps in Switzerland which will be published soon.

If you or your organization would like to learn more about DevOps and would like to find out whether there is still room for improvement in your current application architecture, VSHN offers a DevOps workshop to find out.