In the previous articles, I have written the theory of DevOps transformation, Which has been followed in any organizations that are Currently delivering quality software. DevOps transformation it’s not just only in five level, In order to sustain in the DevOps culture, we need to practice it.
There are the key concepts in DevOps, Which can be followed to practice the DevOps to Make it as a BAU Process. the concepts are,
- Configuration Management
- Continuous integration
- Continuous delivery
- Continuous Testing
- continuous deployment
- Performance Monitoring.
When I wanted to learn about DevOps, The first book that I wanted to Refer is The Phoenix Project: A Novel about IT, DevOps and Helping Your Business Win by Gene Kim, Kevin Behr, George Spafford.
In that book, the very eye-catching Topic that discusses “how frequent and effective way the industries are producing the product”.
Many industries are developing the product either it is consumable or non-consumable, the manufacturing process is completely automated and fast delivery on the market.
Configuration management :
Configuration management is the management of infrastructure configuration. It Emphasizes the encapsulation of configuration as code. The configuration management Define environment server, network, Computer resources to be set ready for the software deployment. It is something like getting ready the whole infrastructure or tools for the fast delivery of my product.
For Eg: In the potato chips production industry, The complete production machines are ready In order to continuously deliver the potato chip on the market.
the same way We need to ensure that the infrastructure and respective Resources are ready in the form of a code so whenever there is a new infrastructure is required it is very simple to create or configure the infrastructure by executing that script/code.
Continuous integration (CI):
Continuous integration is the process of automating the code build and unit testing, this process ensures the quality code has been checked into code repository tools. This process also encourages the developers to share their code & unit test case scenarios on the repository tool for easy integration of code in Master branch in order to perform complete validation.
The real-time example, it is the same process of how the potatoes are cleaned and placed on the tray for the next continuous process.
The same way, continuous integration work when we do automated build & test which make easy integration with codes that already committed by other developers in the branch or master node in the repository tools. Since each change committed to the repository tool and fine integration, the master branch looks well organized with codes to deliver the software as the product.
The benefits of making every change committed into the master branch, the automated build will presume automated unit test and provide the immediate feedback to the developer about bugs. Due to this, the bug fix process became very easy and provide consistent code quality.
Continuous delivery (CD):
Continuous delivery is the process of establishing the single pipeline from code built to production deployment. It is an automated pipeline Starts from the build, test, configure and production deployment. The process of continuous delivery emphasizes continuous improvement.
The continuous delivery provides the benefits of lower risk of bugs, faster delivery of the product, higher quality on the product due to continuous improvement, reduce the cost as the complete automation evolved in the CD pipeline.
Continuous testing is the process of synchronizing the Automated testing in the pipeline of continuous deployment to achieve the Business goal.
Continuous testing ensures test early, test faster, test often and automate the test. This process benefits from integration testing, regression testing, and acceptance testing.
Continuous deployment is the process of wrapping continuous integration, continuous delivery & continuous testing. The process always looks like continuous delivery but it has slight changes in the approval process before the code deployed into production. If our automated continuous delivery pipeline is well streamlined, then we can introduce the auto-approval for the code goes into production, meaning the next level of deployment in CD (continuous deployment). The difference between continuous delivery and continuous deployment has been explained in simple for https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff
Performance monitoring is the process of continuous learning from the production to improve & scale the business.
The goal of this process is to achieve High availability by minimizing the time to defects or time to mitigate bypass through each and every defect that identified in the performance monitor process to the development team for further retrofit the issue in the test environment and provide the fix. Another word “test in production” happening before it is reported by the users.
When we put the process of performance monitoring in the DevOps cycle, we will get the feedback about reliability, quality, and safety. There are many forms of performing the monitoring, which we will discuss in the upcoming articles.
Among the key concepts of DevOps, security/compliance are not negligible. There is another process called DevSecOPs which talks about security as Code. As the security process in place, it will ensure that the customer data or privacy of customer information are not left behind.
With DevSecOps, we provide the Insights about security to the developer when the code is in developing stage. Penetration testing should not only the stage to verify the security in code, rather DevSecOps process introduce before the code build happen.
Each and every process are key concepts in DevOps, which can happen with tools in place to achieve the best practice of DevOps.