In the field of IT and software development, DevOps implementation is gaining significant popularity. This article takes a quick look at the important concepts of DevOps and the phases of its life cycle. It also maps the relevant open source tools, and finally, highlights how it can bring value to the IT industry.
The word DevOps is a combination of development and operations. DevOps is not software — not a tool, not a product and not a programming language, but an approach whereby the development and operations teams work together, instead of waiting for the other to finish tasks, to enable continuous delivery of value to end users. This software development methodology improves the collaboration between the development and the operations teams using various automation tools. These tools are implemented during different phases, which are a part of the DevOps life cycle.
DevOps is gaining popularity
DevOps is gaining popularity because it bridges the gap between developers and the supporting operations team. The DevOps approach aims at:
- Delivering high-quality software in a shorter development life cycle.
- Deployment in frequent cycles.
- Reducing the time to move into production, from conceptualising an idea.
- Accelerating application delivery across enterprise portfolios.
- Enabling rapid building and delivery of products.
- Delivering applications and services at high velocity.
Various stages in the DevOps life cycle
An understanding of DevOps is incomplete without having knowledge of its life cycle. The various phases that comprise the DevOps life cycle are highlighted in Figure 1 and described below.
- Continuous development: The first phase of the DevOps life cycle involves ‘planning’ and ‘coding’ of the software. Planning includes activities like designing the blueprint of the module, and identifying the resources and the algorithm to be used. Once the plan is finalised, the developers code the application and maintain it using popular tools like Git, Gradle and Maven.
- Continuous testing: To catch any error and ensure the reliability of the software, the developed modules are continuously tested for bugs. In this phase, testing tools like Selenium (Se), TestNG, JUnit, etc, are used.
- Continuous integration: This phase is the heart of the DevOps life cycle in which code supporting new functionality in the Git repository is continuously reflected using the Jenkins tool.
- Continuous deployment: The deployed applications are consistently improved by collecting end user experiences from the obtained results of the software. Popular tools that are used for the deployment stage are Ansible, Puppet and Docker.
- Continuous monitoring: This is the stage when the performance of the deployed product is monitored. In this phase, the production server is continuously monitored for all kinds of activities that happen on it, and the log files are generated. Nagios is a popular tool for this phase.
Careful implementation of these five phases of the DevOps life cycle helps an IT organisation to achieve its business objectives. Various tools that contribute to the DevOps life cycle are highlighted in Figure 2.
The pros and cons of adopting DevOps
The pros and cons that should be considered when adopting DevOps are listed here.
- It facilitates faster code deployment into production.
- Ensures the release of quality products.
- It helps in reducing the chances of software failures.
- Enables continuous delivery of software with stable features.
- Helps in identifying bugs at an early stage of development due to better communication between the development and operations teams.
- Implementation of DevOps also increases the organisation’s opportunities for innovation and research.
- It takes time for users to adjust to the frequent changes that are made.
- Lack of a separate plan for consistent upgradation may lead to severe shortfalls with respect to security.
- IT companies need to hire experts who have an in-depth understanding of development, testing, monitoring and deployment tools, and that can be a challenge.
With technology evolving very rapidly, IT companies that do not adopt DevOps may find it difficult to compete in the market. The adoption of the DevOps model is inevitable, because it bridges the gap between the developer and operations teams