What is DevOps ?

You don’t have access to this lesson
Please register or sign in to access the course content.

What is DevOps and where did It come from?

DevOps is a combination of “development” and “operations”. Patrick Debois came up with the term “DevOps” first time in 2009. The term “DevOps” typically refers to the professional movement of the collaborative working relationship between Development and IT Operations, resulting in the fast flow of planned work(high deployment rates). And also increases the reliability, stability, resilience, and security of the production environment. DevOps, a combination of Development and Operations, is typically the value stream that is between the business (where requirements are defined) and the customer (where value is delivered). By not using a DevOps approach, teams may find that projects end up late, and not as efficient overall. So DevOps is all about:

  1. Culture
  2. Automation
  3. Monitoring Metrics
  4. Sharing

What are the principles of DevOps?

DevOps is more than just development and operations teams working together. It’s more than tools and practices. It’s a cultural shift, a mindset, where teams adopt new ways of working. A DevOps culture means developers get closer to the user by a better understanding of user requirements and needs. Operation teams get involved in the development process and add maintenance requirements and customer needs.

Some of the key principles of DevOps:

  1. Collaboration
  2. Automation
  3. Continuous Improvement
  4. End to End Responsibility
  5. Customer-Centric Action
  6. Create with the End in Mind.

Collaboration

The key principle of DevOps is collaboration, where the developer team and operations team come together into a functional team that collaborates, shares feedback, and works together throughout the software development and deployment lifecycle.

Automation

Another essential practice of DevOps is to automate the software development lifecycle as much as possible. This results in more time to write code and develop new features for developers. CI/CD pipeline is automation that helps to reduce human errors and increase team productivity and efficiency of products. In addition to automating the CI and CD pipelines, operations must automate server setup and configuration. True automation requires all servers performing the same functions (web server, database server, etc) to run the same version of all required software. Servers must share the exact configuration in the same reproducible ways.

Continuous Improvement

It is the practice of focusing on experimentation, optimizing for cost and speed, and minimizing bugs/errors. It is tied to continuous delivery. It allows DevOps teams to continuously push and update systems and bring more customer value. The team can improve the systems by tracking some of the **Key Performance Indicators(KPI)**:

  1. Frequency of deployments
  2. The Frequency of failed deployments
  3. Mean time to recovery (MTTR)
  4. Mean time to discovery (MTTD)
  5. Lead time
  6. Uptime
  7. Customer complaint Volume
  8. Service performance

Customer-Centric Action

Short feedback with customers and end-users to develop products and services centered around user needs is very important. DevOps practices enable rapid collection of feedback and response to feedback through the use of live monitoring. As a result, further improvements in the system will be easier.

Create with the End in Mind

DevOps team should have an understanding of the product from creation to implementation. All team members need to share the engineering mindset that is required actually to envision and realize those products.

What is the value of DevOps?

The benefits that organizations get from adopting DevOps: –

Faster time to market (reduced cycle times, and higher deploy rates)

High deploy rates also enable rapid and constant experimentation. It means: how quickly the organization can go from an idea to value being delivered to the customer and how many experiments can the organization be doing simultaneously.

Increased quality (higher availability, higher change success rate, fewer failures, etc)

Increased effectiveness (increased time spent on value adding activities, increased amount of value being delivered to the customer)

DevOps LifeCycle

Now, you know why DevOps and what is it. Further, let’s talk about the DevOps Lifecycle which will give you more clarity on why DevOps. It can be divided into six different phases:

  1. Source Code Management (Plan and Code )

    This is a phase where the software development team and business owners discuss project goals and create a plan. This stage covers everything that happens before the developers start writing code and the coding process with proper development environments. Developers design and code the application using application-specific requirements tools and also SCM tools like Git or Subversion to host the source code.
  2. Continuous Build and Test

    Once the developers finish the tasks, they commit their code to the repository and use building tools like Gradle, Marven, etc. are used to combine and build the complete application from different repositories. Here exists, a series of end-to-end automated processes to build the application. Then the application is tested using automation testing tools or other to ensure software quality. If any build or tests fail, the developer is notified to resolve the issue.
  3. Continuous Integration

    When testing is done, new features are integrated automatically into the codebase of different environments like DEV, UAT, STAGE, PROD, etc.
  4. Continuous Deployment

    After building the application, it is packaged and deployed to the production server from the development server. Operation teams perform tasks, such as configuring servers, and provisioning infrastructures with the required resources.
  5. Continuous Monitoring

    Monitoring plays a vital part in DevOps as it allows teams or organizations to identify the issues of specific releases. In this customer feedback is monitored by collecting data and providing analytics on customer behavior, performance, errors, and more.
  6. Product Release

    In the end, after all the phases are completed and the software meets the user’s requirements, It is released into the market. There are several tools and processes that can automate the release process to make releases reliable with no outage window.