In the previous post we’ve seen Introduction to DevOps in brief, In this post we’re going to go one step ahead and learn about the Lifecycle of DevOps.
This won’t be very indepth and for beginners, you can watch out my new posts for in depth posts.
DevOps Lifecycle involves 5 steps which we are going to look in depth
- Continuous Development
- Continuous Testing
- Continuous Integration
- Continuous Deployment
- Continuous Monitoring
Before we look into devOps Lifecycle we need to understand below figure which is Infinity Lifecycle.
Once the Planning is done, Developers start coding and build and testing phase is done, once all test cases is passed next step is integration and deployment. After which monitoring phase starts if any bugs or issues come it again goes to planning and this lifecycle never ends hence called Infinity.
So now let’s get into depth of DevOps Lifecycle
1. Continuous Development
As shown in the above image, this phase is the combination of Planning and coding, Planning refers to sprint planning where we define the goal of the sprint and deliverables. A sprint can be of 2/3 weeks depends on the program and management. Every sprint a new feature is release and this continuous till the development.
Development tools for Continuous Development – Git and Github is vastly used tool, Git is a tool and Github is a repository. Other tools are SVN.
2. CONTINUOUS Testing
As the name suggests Continuous Testing, this is the phase where developed software goes through multiple testing to make sure the quality of the product is upto the mark.
This is also to ensure that no new bugs are introduced with the new commits on the code.
For this tools such as Selenium, JUnit, XCTest are used and Docker containers are used to simulate the test environments.
3. CONTINUOUS INTEGRATION
Continuous Integration is the process of Automated Build and Automated Test i.e. developer integrate code into a share repository several times a day where each integration can be verified by automated build and test.
CI helps to remove complete old fashioned code integration and test which can be quite long if you get some merge conflicts, thus with CI you can say goodbye to old long and tense integration.
With CI system focuses more on catching bugs, debugging and creation of new features.
CI tools: Jenkins
4. CONTINUOUS DEPLOYMENT
Continuous Deployment is related to CI and refers to keep application deployable at any time. So basically CI helps us to create the build which is tested, with Continuous Deployment we can deploy the build on QA, Test or production environment. So basically when we configure this, as soon as developer commit the code, it get tested and deployed on respective environment.
Continuous Deployment is a combination of Configuration management and containerization.
Since this focuses on basics, ill not go in depth of any of the topics but ill make one tutorial which will focus on Continuous Deployment, Continuous Delivery, Configuration Management and Containerization.
Tools which are used here are Chef, Puppet etc
5. Continuous Monitoring
Continuous Monitoring is nothing but monitoring the system and its performance.Tools which are used in that are, New Relic, Nagios etc
Let me know in comment section if you have any queries!