DevOps: Understanding the DevOps Process and Principles

DevOps offers Maintainability, Predictability, Greater quality cost efficiency and time to market. Agile process focuses on functional and non-functional readiness while DevOps focuses on that IT infrastructure aspects. DevOps life cycle includes Development, Testing, Integration, Deployment, and Monitoring. I am trying to look back at the typical model of software management.
In a typical Software development cycle, we do the following tasks:
  • Doing some HLD, LLD, blah, blah, blah.
  • Set up a Version Control System (VCS) to maintain the code base.
  • The developer implements code on their local machine.
  • Run unit tests on that implementation.
  • Commit the code into the Version Control System.
  • Developer sends a ticket to the infrastructure team to build and deploy the code in a QA environment.
  • Infrastructure team deploys the code into the test environment.
  • QA tests the code according to test cases and scripts.
  • Then QA raises a ticket to the infrastructure team to deploy the code in an SIT environment.
  • Infrastructure team deploys the code into SIT environment.
  • QA does the integration testing.
  • If all the previous steps are successful, we are ready to deploy to production.
  • We set up a meeting with the client and set a fixed date for deployment.
  • The infrastructure team gets ready to deploy the product to production.
  • The infrastructure team completes the deployment and sends a status report to the team about the deployment.
  • In production, if any post-production bugs are reported, we follow the same steps again.
What I understood from those steps are:
  1. Many cross-functional teams are involved in the cycle.
  2. Developers need an environment to work seamlessly in.
  3. As per the previous project model (waterfall), a product will be delivered to production a long time after requirements are gathered.
So, according to the Pre-DevOps days, the Main points are:
Infrastructure:
Infrastructure is another pain point. In a typical project, I have seen developers working in VDI. Not only that, the biggest problem is that developers work on Windows, but the production or SIT environments run on Linux. So the developer's machine is not a replica of the production server. When a developer is not confident about their code, silly things can happen.
Suppose you have a property file where you mention the path where you need to place your uploaded files, as the developer system is different from production. The developer set this path to local home, which is Windows home, but forgot to revert it when he/she commited the files.
Production Release:
Another problem is a waterfall approach takes a long time to release a project /product to the clients. So it can happen when you think about the project functionality that is a unique idea but delays to release the product, another competitor thinks and releases the idea before you. So you are in a losing spiral just to maintain the process.
Due to these pain points, DevOps rises and tries to rescue us from this apocalypse.
DevOps is a culture which promotes Continuous Delivery. Or I can say it promote a delivery pipeline concept where everything, from a commit to a production release should be in a pipeline with full automation, no human intervention needed.
There is a subtle difference between Continuous Integration, Continuous Deployment, and Continuous Delivery.
 For More Information about DevOps Online Training ClickHere
 Contact us at +91-9989971070/online@visualpath.in


Comments