DevOps !! What is it?
Have you been hearing a lot about DevOps but don’t know what DevOps is or what does a DevOps engineer do, read to get some idea.
In layman terms, a DevOps engineer is someone who helps to speed up the software delivery process by bridging a gap between development and deployment.
How does DevOps engineer help?
In the traditional software development process developers write code for months, once done the code is shared with QA team for testing. QA team after testing and passing the code hand it over to deployment team to deploy. There is mostly a disconnect between the development, testing and deployment teams.
Bug fixing can be either done by deployment team or the code is send back to developer for bug fixing, which results in code going through the three phases again. This results in delays.
DevOps model removes the isolation between developer, QA and deployment teams, mostly merging them into a single team enabling engineers to write, test and deploy their code.
Role of DevOps Engineer!
DevOps is something new, neither is the DevOps engineer. It is a collection of engineers like infrastructure engineers, build automation engineer, test engineer, software engineer etc.
Different organization define different roles for DevOps engineers. Some consider a DevOps engineer as someone who will automate the infrastructure and maintain it while some other consider them to span across the delivery chain.
Functions of DevOps Engineer
Two most important functions of a DevOps engineer are automation and CI (continuous integration).
AUTOMATION
Automation involves automation of infrastructure maintenance and new deployments. Consider this, if a linux engineer is asked to pull up some data from all the servers in test environment, he will waste a lot of time if he performs it manually. If he automates the process he can use the free time to work on more important issues or trouble shoot or automate.
DevOps engineer can automate a lot of manual tasks, like server configuration, managing web servers, database backups etc. There are tools to automate software provisioning, configuration management, and application deployment across a large number of nodes in a scalable fashion. This is where the configuration management tools such as Chef, Puppet, and Ansible come into handy in the DevOps world.
CONTINUOUS INTEGRATION
Another import aspect about DevOps is Continuous Integration (CI) which is a software development practice, CI allows developers to continuously update changes to a single repository, from where automated builds and tests are made.
A continuous Integration system usually involves a tool that keeps monitoring your version control system. Whenever a change to version control system is detected, the system would automatically build and test your application. If the build or test is not green, the system immediately notifies the developers to fix the issue right away.
Developers can improve their productivity as they are freed from manual tasks, that are now done in an automated manner in CI. There are different products and tools which can help you implement Continuous Integration in your organization. The most popular one is Jenkins which is rebranded from the Hudson project of Sun. There are some other hosted CI products such as CircleCI and Travis CI which is completely hosted in the cloud.
To Conclude
The role that DevOps engineers play is to bridge the gap between software development and operation team to increase the rate of software delivery.