Generally, an approach to operations in IT industry is clearly defined. Service Delivery Life Cycle (SDLC) is followed wherein the development team develops a code, testing team tests it and the operations team manages the entire service delivery chain. These teams mostly remain isolated from each other and do not collaborate effectively. Such gaps often result in a delay in Service Delivery (SD) or make the SDLC very time-consuming. An integrated approach is the best way to increase communication, collaboration, integration among the teams and speed up the SD. DevOps proposes the same.
What is DevOps?
DevOps, a term coined in 2009, is the combination of development and operations (Dev+Ops). It is a culture, a practice or an approach that aims to integrate the development, Quality Assurance (QA), billing, operation and all other functions of an IT organisation together rather than considering them as different entities. DevOps is the combination of Values, Principles, Methods, Practices and Tools that an organisation should adopt in order to shorten its SD, increase deployment frequency, release stable software versions and ultimately achieve business objectives.
Note: A separate team altogether is not created for DevOps but communication and collaboration among different teams is enhanced under the DevOps practice in order to increase productivity. DevOps is not a software to automate processes but a software engineering culture that helps in integration.
As shown in the following image DevOps is a culture, an intersection of various teams in an organization.
There are multiple tools available to enable cross-functioning in an organisation. The basic chain followed is:
- Code: Tools for versions control, source code management, etc. Example: Git, Mercurial, Bazaar, etc.
- Build: Continuous integration (merging all developer working copies to a file) tools. Example: Jenkins, TeamCity, CodeShip, etc.
- Test: Continuous testing (Executed automated testing regularly) tools. Example: IBM Rational Test Workbench, Parasoft, SmartBear, etc.
- Package: Package repository tools. Example: DockerHub, Nuget, Nexus, etc.
- Release: Change management, release automation tools. Example: HP Service anywhere, WhatFix, Rocket Aldon, etc.
- Configure: Infrastructure configuration and management tools. Example: Chef, Puppet, Ansible, etc.
- Monitor: Application performance monitoring, end user experience tools. Example:Nagios, New Relic APM, AppDynamics, ExtraHop, etc.
What are the advantages of adopting DevOps?
DevOps can be very helpful to organisations and system administrators alike. The benefits of DevOps are:
- Continuous software delivery
- Less complexity to manage
- Quick resolution of problems
- Increase in the productivity of the teams
- Increase in employee engagement
- Greater professional development opportunities
- Faster delivery of features
- More stable operating environments
- Improved communication and collaboration
- More time to innovate (rather than fix/maintain)
- Apache versus NGINX – Which Open Source Web Server Software you should choose - April 30, 2018
- Understanding OpenStack - April 30, 2018
- Here is everything you need to know about BlockChain - April 17, 2018