Wednesday 23 December 2015

What is Devops?

Literally, Devops means Development + Operations. Though it is a very wide term. In today's world, many definitions and interpretations of Devops are floating. In traditional world, we used to call it SCM, Build & Release, testing, Support. And a lot of these activities used to be manual, not a standard process for each application build, deployment. Development team performs build on there individual machines, then handover RN to deployment team, with lead time for build.

With Devops, focus is on automation with standardizing the process for build on a central server on a standard process. Even Docker can be used for build (Docker is an advanced concept, will cover in future blogs).

Devops involves Continuous Integration and Continuous Deployment. As developer checks in the code, code should build automatically, then unit tests should fire automatically. If build or unit test breaks, it should stop there and then with notification to developers distribution list (DL) and mention check-in which broke the build, error details, developer name etc. If build, unit test completes successfully, check unit test code coverage, perform static code analysis, and publish results. And once build chain mentioned above passes successfully, build package gets automatically deployed to deployment server, followed by automated regression or functional test suite.

Devops is more of a mindset change, it gives more power in hands of developers, they can visualize there code status in complete continuous integration, automated deployment lifecycle. It also provides framework to move away from traditional waterfall approach to agile approach. A lot of tools are available to assist you to move towards devops. Remember, tools are just enablers.