This page looks best with JavaScript enabled

What Is DevOps

 ·  β˜• 4 min read

1. Overview

DevOps (a portmanteau of Development and Operations) is a culture and a movement that values communication and collaboration between software developers (Dev) and IT operations staff (Ops). By automating the processes of “software delivery” and “architecture change,” it makes building, testing, and releasing software faster, more frequent, and more reliable.

DevOps combines a social system with a technical system.

2. Background

Traditional software organizations set development, IT operations, and quality assurance up as separate departments, and how to adopt a new development methodology (such as agile software development) in that environment is an important topic. Under the old way of working, development and deployment did not need IT support or deep cross-departmental support from QA; today, however, it requires extremely close multi-department collaboration.

DevOps considers more than software deployment β€” it is a set of processes and methods aimed at the communication and collaboration problems between these departments.

Enterprises that need to deliver frequently may be more in need of a general understanding of DevOps. Flickr developed its own DevOps capability to support its business departments’ requirement to “deploy 10 times a day” β€” if an organization is to produce applications facing many kinds of users with diverse functionality, its deployment cycle will inevitably be very short. This capability is also called continuous deployment, and it is often associated with the lean startup methodology. Since 2009, related working groups, professional organizations, and blogs have sprung up rapidly.

3. How DevOps Differs from Agile

Relative to the waterfall development model, one basic principle of the agile development process is to deliver minimally viable software at a faster cadence. In agile’s goals, the most obvious one is that at the end of each Sprint iteration cycle there is deliverable functionality.

Agile is greatly beneficial for development to regain business trust, but it has no intention of shutting IT operations out; DevOps enables the IT organization as a whole to regain business trust. DevOps and agile software development complement each other, because DevOps expands and refines the continuous integration and release process, thus ensuring that code is usable in production and actually delivers value to customers.

DevOps does not just create a workflow oriented toward IT operations; when code has been developed but cannot be deployed to production, these deployments pile up in front of IT operations, customers are thereby unable to enjoy any value, and worse, deployments often cause interruptions to the IT environment and service unavailability. DevOps has an inherent genetic component of cultural change, because it revolutionizes the workflow and traditional metrics between development and IT operations.

4. Why DevOps Exploded

DevOps was proposed in 2009. But it only began to receive attention and be practiced in the last two years. This is because DevOps needs a lot of foundational technology as support. The explosion of container technology in 2013, the microservices architecture proposed in 2014, and the spread of cloud computing all strongly boosted the practice of DevOps.

5. Opportunities and Challenges

5.1 Application Areas

  • Extend development into production β€” including extending continuous integration and release functionality into production, integrating QA and information security into the whole workflow, and ensuring that code and environments can be deployed directly in production.
  • Add production feedback into development β€” including establishing a complete timeline of development and IT operations events to help resolve incidents, bringing development into blameless production retrospectives, enabling development to be self-service as much as possible, and at the same time creating information indicators to show how local decisions affect global goals.
  • Embed development into IT operations β€” including having development invest in the whole production issue-handling chain, allocating development resources for production issue management, and helping pay down technical debt; development also provides cross-training for IT operations, increasing IT operations’ ability to handle problems and thereby reducing the number of escalated issues.
  • Embed IT operations into development β€” including embedding and liaising IT operations resources into development, helping development create reusable user stories for IT operations (deployment, management of production code, etc.), and defining some non-functional requirements that can be shared by all projects.

5.2 Developers: A Jack of All Trades, Master of None

Humans can wield only limited knowledge. Switching between tasks is undoubtedly expensive. Forcing developers to take on the roles of other specialists means they will:

  • not spend their time on development
  • need to keep up with an extremely vast domain of knowledge
  • become overwhelmed

5.3 The Advantages Enterprises Gain

  • Products reach the market quickly, shortening development cycle time and increasing deployment frequency
  • Improved quality, improved availability, higher change success rate, fewer failures
  • Improved organizational effectiveness, spending time on value-adding activities, reducing waste, and delivering more value to customers

But DevOps is proposed with the aim of eliminating the barriers between developers and system operations engineers, and whether it succeeds depends on the enterprise’s culture and flexibility.


WeChat Official Account
WRITTEN BY
WeChat Official Account