Customers of business enterprises want them to respond to their changing needs appropriately and quickly. However, various limitations have been preventing business enterprises from responding to such customer requirements quickly. One of the most glaring limitations have been the isolated ways different departments worked. DevOps now enables enterprises to respond to dynamic requirements by removing the silos within organizations. Roles are merged and people are now required to be cross-functional. Organizations are now able to roll out products and services incrementally and more frequently. Since teams are becoming more cross-functional, there is less of interdependence now. Various studies have found that DevOps is going to become an important force to reckon with in the future. Considering the principles of DevOps, it has been a disruptive force. However, it will be a while before DevOps becomes a common practice because of legacy practices, resistance, adoption issues and reskilling time.
What is DevOps?
DevOps is a combination of different philosophies, practices and tools that enables business enterprises to respond to frequently changing market requirements. Earlier, various departments would mostly work in isolation with minimal communication or coordination. That resulted in a lot of problems such as failure to respond to sudden changes in requirements. DevOps philosophy requires its practitioners to be cross-functional. For example, a software developer may be expected to know software testing skills. Change in perspective results in better quality deliverables and a clearer understanding of market dynamics. DevOps requires its practitioners to acquire diverse skills which widens perspective and helps in getting a quality job done.
DevOps is shortened from Development and Operations meaning both development and operations personnel work together or acquire cross-disciplinary skills. However, the scope of the roles should not be restricted to software developers and IT support people only. In fact, the scope should include all roles having a stake at software development. The Ops can include systems engineers, system administrators, operations staff, release engineers, DBAs, network engineers, security professionals, and various other sub disciplines and job titles.
History of DevOps
The IT industry knew the problems arising out of the lack of coordination between the development and operations for a long time. They also knew that the key to better software delivery was better coordination. Yet, for a long time, there was no concrete effort. It seemed that software delivery, it was assumed, was destined to fail. Such was the resignation. The first concrete efforts were first noticed in 2008 when Patrick Debois, a software consultant, tried to find out the reasons behind the problems the IT industry suffered and the solutions. Debois found cross-disciplinary roles and the removal of silos were the best solutions. In 2009, at the O’Reilly Velocity Conference was held that discussed the problems of lack of coordination and integration between roles and pitched for DevOps. Gradually, the idea began to gain popularity as more conferences were held across the world. In a study conducted in 2014 by Puppet Labs, IT Revolution Press and ThoughtWorks, 16% of the respondents claimed they were part of DevOps in their organisations.
DevOps is not a tool or technology or language. It is a combination of philosophy, tools and practices that enables organizations respond to dynamic market requirements at a higher velocity than those who do not adopt DevOps. The philosophy allows organizations to evolve and improve their products and services at a faster rate.
One defining feature of DevOps model is the merging of roles. There are no more silos in organizations and employees are required to acquire cross-functional skills and work together throughout a project lifecycle. Along the way, they pick up new skills that may not be related directly to their specializations.
According to the DevOps principles, emphasis is given on frequent delivery of software. To do that, all constraints such as silos, dependence, slow and manual processes must be removed. The customer provides feedback on the software which is incorporated and another build is released and so on.
Processes that are manual and slow are automated. Teams use technology stack and tools that not only help them operate and evolve applications quickly but also develop the ability to be independently able to use the tools.
Why is this Important?
Let us try to gauge the importance of DevOps with the help of an example. A popular ecommerce marketplace works on the business to customer (B2C) model. Its website and portals must have zero downtime and issues, if any, must be fixed immediately. The marketplace launches grand offers on Christmas Eve and expects huge response. On the D-day, some important web services fail to function triggering chaos. In such a situation, do you think the traditional model of software development will work? In such a situation, action on war footing is needed. This provides a strong case for automating slow and manual processes, removing or reducing dependencies on specialized roles by acquiring cross-disciplinary skills and rapid response.
The relationship between the business and it’s customers have been changing, especially for the B2C businesses. Such businesses are required to constantly interact with their customers through various interfaces such as CRM, IVRS and portals. Increasing competition now compels the B2C enterprises such as telecommunications services providers and online marketplaces to continuously improve their offerings. Customer expectations have increased. The entry of mobile and social media adds to the pressure. Such businesses cannot afford to ignore the reality by refusing to change the ways they operate. They need to find ways to respond to changing dynamics appropriately. DevOps provides an opportunity to transition to agile ways of working.
The case study is on how Netflix implemented DevOps and reaped the benefits.
The entire Netflix system is hosted on the Amazon Web Services (AWS). The content is distributed across various devices. The expectation is the content must be distributed seamlessly and without interruption. To do this, Netflix decided to acclimatise their engineers to various chaotic and crisis situations such as long downtime, Web services failure or crash. A series of tools under the heading Chaos Monkey was introduced. The main idea behind the tools was to create a planned disruption to the operations and get the engineers solve the problem. For example, the Chaos Monkey tool randomly disables production instances and engineers must solve the problem. However, it is always kept in mind that the customer is not impacted.
The main benefits of the practice are
- Alertness and preparedness for crisis situations.
- Development of know-how for crisis situations.
- Teams are conditioned to acquire cross-functional skills to solve complex problems.
Netflix engineers, as a result of the simulated chaos, are used to handling chaos. When a real-time chaos or crisis occurs, it is properly and swiftly handled.
Does DevOps sound the death knell of traditional software development practices? It is not an easy question to answer. DevOps is still in its early stages. It is still being weighed. Of course, there are case studies that point to its benefits over traditional software development practices. Practically, it will take some time because dismantling practices that have taken years to build up is quite a task. Right now, however, DevOps does seem a concept that merits attention. One area, however, where DevOps is being accepted much faster is the startups and the Internet organizations that have originally been based on lean and agile practices.