DevOps is no longer a buzzword. It has evolved big time since many of us thought it was just a catchy-word in recent times. DevOps is more than a set of tools or automation and has become a necessity for any IT company. In laymen’s terms, it is a never-ending process of continual improvement.

Since today a lot of people perceiving different meanings on DevOps. In this article, I have explained, What is DevOps? and Why it matters to business and best practices followed in an IT organization to achieve DevOps culture.

Below is the google trend that was shown for the term DevOps for the last 5 years till 2020 and its popularity is kept growing upwards.

DevOps Google Trends for 2020
DevOps Google Trends for 2020

Is DevOps a Technology ?


Instead of emphasizing what is DevOps, I would like to highlight the most common misunderstanding about DevOps in the IT industry.

DevOps is Not

  • Toolset.
  • Automation
  • Team
  • Body of knowledge.
  • a Role.
  • Just Automation
  • Innovative Framework
  • Silo Entity.

Define DevOps?


From my perspective, there is no point-in-time answer to the question “What is DevOps?”.

There is nothing like a “DevOps Engineer” or a “DevOps Team” because it is not a thing. However everyone in the industry now got used to the term “DevOps engineer” and as long as you understand the DevOps philosophy, these titles don’t matter much.

Source: Devopscube.com

In my perspective, DevOps is nothing but Culture, Principle, and Process streamlining the software development and deployment lifecycle management from Source Code -> Build -> QA -> Test -> Release -> Operate -> Monitor and Maintenance.

Dev vs Ops?


In today’s world software delivery is the heart of today’s top technology trends say it can be anything .. ex: Big data, IoT, Cloud, Social Business, Touch commerce. So in order to get a product from “Ideation” to “Realization”, we need applications to be delivered quickly and frequently to production.  

So to give a better insight into the above terms, we have look back to our traditional approach towards software delivery. Years back DevOps didn’t exist, Application development was following the Traditional model. For example, Dev team on one hand who will be writing code, fix bugs and raise build/deploy request to Ops team. The Ops team is responsible for Collaborate, Build, Deploy the source code from Dev to Production and Setup monitoring, maintain the infrastructure and operate.

So the challenge here is to get the source code to production it was taking several hours and even months to get the product released to the customer in traditional release management.

To address this problem, and to increase the collaboration between developers and operations DevOps came in to picture. Then the philosophy has changed from “Dev and Ops” to “DevOps” which brought DevOps mindset, practice, and culture which helped to resolve the issues between different stakeholders and improves collaboration and communication between different teams and play an important role in automating the delivery process more frequently and certainly to serve clients in better ways.

What is Devops – Example


In the Traditional model, Developers worked individually (isolated) and delivered pieces of work ( with simulated test cases) and when something goofs up in component integration or testing then developers will try to fix it or they will log it as an open bug and proceed with the release activities.

In the DevOps model, when the developer check-in to the source code repository, the code will be tested multiple times manually/automatically and followed by Performance load scenarios against the new code similar to production traffic (If your prod env servers serving 10,000 TPS then the same will be tested for every release in the staging or Pre-production environment) and propagate automatically to respective environments (Dev, QA, UAT, Staging, Production). Again this process will be different from organization to organization.

What is DevOps Engineer Salary?


According to Hired interview data, DevOps Engineers earn an average annual salary of$146,567. The salaries of candidates in this role range from a low of $90,000 to a high of $210,000, with a median salary of $147,000.

Below is the small infographic with the DevOps Engineer Salaries by region. DevOps Engineers are highest in demand in SF Bay AreaNew York, and London.

DevOps engineer salary by hired.com

Foundational definitions of DevOps


The following are the foundational definitions commonly used across the industry which will give you a better insight into DevOps.

Continuous Integration

is the practice of being able to take a controlled version of source code from feature level branches to release level branches more frequently on a regular interval or using polling source control or at least daily or hourly into a single application, and then typically running an automated suite of tests on the resulting application.

Continuous Testing

is the process of having a manual or automated test suite on every hour or day basis to make sure the code quality quite often with the release level branches.

Continuous Delivery

is the practice of ensuring source code is always in a deployable state. This means deployable entity ( new features, bug fixes, configuration changes .. etc) are always ready in an environment with appropriate approval process (Dev Signoff, Qa Sign Off, Load test signoff, DR Testing, Prod rollout … etc ) so that new changes released to customers quickly in a sustainable way and production-ready.

Continuous Deployment

is a logical next step after continuous delivery: it is the practice in which all changes will be deployed in a production environment automatically. Unlike Continuous Delivery, there is no manual approval step before releasing it into production.

How will an organization benefit from DevOps?


DevOps has become a universally chosen culture because it allows for better collaboration and more efficiency across the entire software development and deployment lifecycle. Of course, we require the cultural change should happen for a company to be successful with DevOps. Below are some of the Business benefits and Technical benefits of DevOps in bullet points.

Technical Benefits

  1. Speed (Frequent and Faster product delivery in a short span of time.)
  2. Rapid Delivery
  3. Reliability
  4. Greater collaboration between teams (Dev/Ops/Business)  
  5. Scale
  6. Continuous Integration/Testing/Delivery/Deployment
  7. Automation.
  8. Security

Business benefits

  1. Enhanced customer experience. (ability to react and adapt in an agile way)
  2. Increased capacity to innovate (capacity to innovate the business with lean principles)
  3. Faster time to value (goal of DevOps is to deliver this (any) value faster and more efficiently)
  4. Efficiency
  5. Stability through feedback at the source.

Main key objectives of DevOps


The main purpose of DevOps is to make the delivery flow more efficient by developing and automating the continuous delivery pipeline. Below are some of the key objectives to delivering this (any) value faster and more efficiently

  1. Faster delivery of Environments.
  2. Faster feedback loops.
  3. Fewer failure rates of new releases.
  4. Stable environments.
  5. Control of quality.
  6. It helps to avoid ad-hoc work and failures.
  7. Handles release failure without losing live data.
  8. Maintain SLA inconsistent way.
  9. Continuous monitoring of applications and infrastructure.
  10. Version control of applications and infrastructure code.
  11. Rollback and Rollout.
  12. Automated config management.
  13. Deployment Automation
  14. Automated Testing workflows.
  15. Automated Application Workloads deployment.
  16. Automated Code Coverage workflows.
  17. Security.
  18. Cross-functional teams

Conclusion


The word ‘DevOps’ is a portmanteau of two words ‘development’ and ‘operations’ and it promotes collaboration, communication, and feedback between different teams such as Dev team, QA Team, DevOps Team, Automation Team.

Without further ado let’s move to part 2 – DevOps Lifecycle and Best practices.

This post is the first in a series that will be in five parts which will cover more info about DevOps

  1. Part 2: Lifecycle of DevOps
  2. Part 3: How do you implement DevOps in an Organization
  3. Part 4: Learn DevOps Tools List Cheat Sheet
  4. Part 5: DevOps Roles and Responsibilities.
  5. Part 6: Conclusion & Key takeaways
  6. How to shift my career to DevOps engineer?
  7. Learn DevSecOps Security

Related Online Courses

1. Online Courses – Mastering DevOps

What you’ll get from it: This course provides proper insight into DevOps fundamentals and its real-time application.

2. DevOps Books –  DevOps For Dummies

What you’ll get from it: This book provides a roadmap for adopting the management and technology tools, as well as the culture changes, needed to dive head-first into DevOps.

Udemy Offers 2020