The DevOps life-cycle is the various stages that are involving in the DevOps ecosystem. DevOps ecosystem is the environment with the right tools and technologies implemented to practice the DevOps culture in software development. We have huge number of tools and technology that are implementing the DevOps practice in the market and identifying all of them are very difficult. In this article, we will discuss about the various tools and technologies that are involving in the various stages of DevOps ecosystem.
Stages in DevOps Life-Cycle
First, we will discuss the various steps/stages that are involved in the DevOps life-Cycle. They are,
DevOps life-cycle starts with Planning stage where Feature, Story and Backlogs creations and documentation of the same will take place. In the Development Stage, feature development and implementation will take place. The Second stage is the Build stage, where, gathering the code and objects together and integrating it with the system configuration will take place. Next comes the Package stage, Where, the Built file will be stored and maintained in the artifact for the versioning.
In the Testing stage, the package will be deployed and tested with the automated framework or manual test process. Next stage is the Release stage, the Tested packages will be released to the servers and other endpoints. In the Configure stage, Destination servers will be configured as per the system requirements. The final stage is the Monitor stage, Where, Deployed stages are monitored continuously and reports will be sent to the respective stages for the reference for changes.
As we already discussed we have many tools and technology that implements the DevOps in every stage of DevOps Life-Cycle. Let us see the List of tools that are used in stage by stage.
Tools in Planning and Development stage
Refer article – Introduction To Version Control Systems for a better understanding of version control system. The Issue Tracking system will be useful to plan, assign and manage the task of the software development process.
By integrating the Issue Tracking System and Version Control System, we can automate most of the development and planning process and make its system driven. This will enable capturing the metrics directly from the tools.
Tools in Build Stage
The Build is the process of creating an application program that can be released. In the build process, relevant source code and supporting files are gathered. After collecting the code and supporting files, build process will create the package or executable file.
Typical Build process steps are.
- Getting the code from the source code management tool
- Compiling the code and resolve the dependencies.
- Executing the unit tests.
- Compiling the package if the above steps are succeeded.
- Storing and presenting the build logs.
- Hooking with the next DevOps process.
Tools in Package Stage
Right after creating the package out of the build process, it should be stored in a place called artifact repository. Build process will run multiple times in a small span of time as we are building the code in the various environment often and it will create multiple artifacts which are very hard to manage. Artifact management tools will help us in managing the artifacts with proper versioning and taglines.
Some points to select the right Artifact management tools are.
- Predictability and release stability
- Dependency management and clean config
- Identifying efficient builds
- Allows to audit and control over the packages
- Allows to promote and de-promote (Rollback) environment
Tools in Testing stage
Testing in DevOps is the process of testing the software using an automation tool mentioned above to find the bugs, issues, and defects. In Automated testing process, test scripts will be executed in testing tools and test results are generated automatically.
Some typical steps of automated software testing are.
- Create Test Cases to Automate
- Continuous Testing
- Distribute the testing load into multiple nodes
- Create test data efficiently
- Generate report automatically
Tools in Release and Configuration
Release management entails planning, scheduling, and controlling a software build through different stages and environments. The configuration is the operational activity in software development where the servers and the platform infrastructure are created, configured and managed using DevOps tools. Underline Release activities are:
- Planning – Defining the context and scope of the release and preparing release sheet.
- Build – gathering the packages and configuration files that are required for release
- Deployment – Deploying into the target system like production server
- Verification – Verifying the Release with the BRD or the other documents that are created in the planning stage of DevOps lifecycle
- Closure– Floating the report and sending notification across the team with the release notes.
Some underline activities in Configuration in DevOps Life-cycle are.
- Planning – Creating the configuration management system which includes the selection of right tools
- Tracking – Tracking the configuration changes often
- Managing – Managing the configuration files and supporting scripts including credentials management and security
- Reporting – Reporting each and every event done by configuration management to the team
Tools in Monitoring stage
Monitoring is about keeping an eye on the application performance, infrastructure, database, and other services. Monitoring will capture the metrics and report it back to the DevOps ecosystem. This feedback mechanism helps the DevOps ecosystem to auto-heal or self heal the infrastructure and predict the possible impacts.
Tools in Integration
Integration is a development practice that integrates not only the code but all other stages and components of the DevOps ecosystem and reports frequently By integrating regularly, we can detect the errors quickly, and locate them more easily.
We will discuss more on the DevOps life-cycle in
Experienced DevSecOps Practitioner, Tech Blogger, Expertise in Designing Solutions in Public and Private Cloud. Opensource Community Contributor.