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 – design , development to production support.
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
• Continuous Development
• Continuous Integration
• Continuous Testing
• Continuous Monitoring
• Virtualization and Containerization
These are the process steps followed to achieve DevOps as a whole.
DevOps follow on establishing a collaborative culture and improving efficiency through tools and automation
Dev and Ops must break down the work in isolation attitude 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 enhanced quality feedback and automated delivery.
-- 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
DevOps testing focuses on automated testing in build pipeline to ensure that you have a build ready to be deployed. continuous delivery need an extensive automated testing strategy. Popular tools are Selenium and Water.
Jenkins is an continuous integration and build automation tool written in java. It is used for automated build software development projects. Jenkins can be used by team of varied sizes and for different projects.
Jenkins is used to execute predefined steps such as compile and build war.
Some of the steps executed by Jenkins are:
• project Build will be done with the help of maven or gradle.
• automated run, test and generate test report.
• Execute any shell script.
• Execute any batch file.