Dev Ops for Development and Operation

Definition

The DevOps ideals extend agile development practices by further streamlining the movement of software change thru the build, validate, and deploy and delivery stages, while empowering cross-functional teams with full ownership of software applications – from design thru production support.

Goals of Dev Ops

Goal of Dev Ops is to Improve collaboration between all stakeholders from planning through delivery and automation of the delivery process in order to:

• Improve deployment frequency

• Achieve faster time to market

• Lower failure rate of new releases

• Shorten lead time between fixes

• Improve mean time to recovery

DevOps Lifecycle

• Continuous Development

• Continuous Integration

• Continuous Testing

• Continuous Monitoring

• Virtualization and Containerization

 

These stages are the building blocks to achieve DevOps as a whole.

DevOps focuses heavily on establishing a collaborative culture and improving efficiency through automation with DevOps tools.

Dev and Ops must break down the silos and collaborate with one another, share responsibility for maintaining the system that runs the software, and prepare the software to run on the system with increased quality feedback and delivery automation.

DevOps Tools

-- Build automation Tools - Maven , gradle

-- Configuration Tools - Puppet, Chef, Ansible, Cfengine, Saltstack

-- Continuous Integration Tools - Jenkins, Travis, TeamCity

-- Continuous Monitoring Tools - GenIos, Nagio, Sonarqube, HP Fortify, Coverity

-- Containerization Tools: Vagrant, Docker

-- Virtualization Tools: Amazon EC2, VMWare, Microsoft Hyper-V

-- Testing Tools – Junit, selenium, Appium, Jasmin, karma & Cucumber

-- Version Control Tools. – CVS , Sub version, Git

-- performance testing Tools- JMeter.

-- Isssue and Bug Tracking Tool : JIRA

Test Automation

DevOps testing focuses on automated testing within your build pipeline to ensure that by the time that you have a deployable build, you are confident it is ready to be deployed. continuous delivery need an extensive automated testing strategy. Popular tools are Selenium and Water.

Continuous Integration

Jenkins is open source tool for continuous integration and build automation written in java. It is used to manually, periodically or automatically build software development projects. Jenkins can be used by team of different sizes for various projects.

The main function of Jenkins is used to execute predefined steps such as compile java code, build war.

Some of the steps executed by Jenkins are:

• Build the project with help of maven or gradle.

• Run the test automatically and generate test report.

• Execute any shell script.

• Execute any batch file.