DevOps, which is a software development strategy, bridges the gap between the developers and operations team or teams responsible for the deployment, using which organizations can release small features very quickly and incorporate the feedback that they receive very quickly into their application. To achieve automation at various stages are Puppet, Jenkins, GIT, Chef, Docker, Selenium, and AWS, which help in achieving continuous development, continuous integration, continuous testing, continuous deployment, and continuous monitoring, which expedites and actualizes the DevOps process apart from culturally accepting it to deliver quality software to the customer at a very fast pace.
The version control system for source code management is enabled by Git and GitHub
- Plug-ins for server automation built for developing CI/CD pipelines are enabled by Jenkins
- Selenium enables automated testing
- Docker is the platform for software containerization
- Kubernetes is the tool for container Orchestration
- Puppet enables configuration management and deployment used for deploying, configuring, and managing services.
- Chef enables configuration management and deployment and is used in more complex infrastructure with less effort and is an open-source integration framework supporting Linux and Unix variants and Windows.
- Ansible also enables configuration management and deployment.
- Nagios enables continuous monitoring and is an open-source computer system and network monitoring application tool used for troubleshooting.
The various stages into which these tools are categorized by DevOps are as follows:
- Eclipse, Jira, Git, and Subversion are used for code development
- Maven, Gradle, and Ant are used for code build
- Puppet, Chef, Ansible, and RANCID are used for configuration management
- Selenium and JUnit are used for testing
- Jenkins, Maven, and Ant are used for testing and building systems
- Bamboo, Jenkins, and Hudson are used for release
- Capistrano, SaltStack, Ansible, Chef, Puppet, Docker, and Vacrant are used for application deployment
- ActiveMQ, RabbitMQ, Memcache enable Queues, Caches, and so on.
- New Relic, Nagios, Graphite, Ganglia, Cacti, PagerDuty, Splunk, and Sensu are used for monitoring, alerting, and trending
- PaperTrail, Logstash, Loggly, and Splunk enable logging
- Monit, Runit, Supervisor, and God are process supervisors
- Snorby Threat Stack, Tripwire, and Snort are used for security
- Multihost SSH Wrapper and Code Climate are miscellaneous tools
Which one is your preferred tool? Tell us know in the comments section.
Top comments (1)
I'd add tools for continuous integration (CI) A CI pipeline can run all tests within a project automatically, and provide immediate feedback if there's any failures. This has given me more confidence in the software I write, and has resulted in better quality code written.
Also tools to schedule or monitor deployment. Eg: tools to block or schedule code merges.