To achieve faster application delivery and stable environments, the right tools must be used in DevOps environments. There is no single tool that fits all your needs such as server provisioning, configuration management, automated builds, code deployments, and monitoring. Many factors determine the use of a particular tool in your infrastructure.
In this article, we will look into core tools which can be used in a typical Devops environment.
Version Control Tools:
Git - An awesome tool to version your source code and collaborate.
Terraform - A tool used in building, changing, and versioning the infrastructure across platforms.
Build Orchestration/Continuous Integration Tools:
Jenkins - It is an open-source, lightweight CI tool written in Java, with high extensibility and a fast release cycle.
Buildbot - An open-source framework for automating software build, test and release process.
CruiseControl - A CI server written in
#Ruby with a focus on simplicity & being easy to hack
Gradle - A project automation tool that builds upon the concepts of Apache Ant and Apache Maven.
Otto - successor to Vagrant is single solution to develop, deploy application with firstclass support to microservices.
Rex - An agent less orchestration tool written in simple perl.
TeamCity - A feature packed CI tool with out-of-the-box support for java, ruby .Net, & many other languages.
GoCD - release management tool,build from ground up with pipelines in mind & makes easy to model complex deployment work-flow.
Semaphore - A hosted continuous integration and deployment service for open source and private projects.
Containerization Platform Tools:
Docker - Uses LXC to create and manage native, sandboxed virtual containers. Build, Ship, Run.
Vagrant - It is a cross platform tool to create, boot, configure and destroy development environments.
Kubernetes - An opensource system for managing containerized applications providing deployment & scaling of apps.
rkt - CLI for running app containers on Linux. rkt is designed to be composable, secure, and fas.
Deis - Open Source Application Platform For Public and Private Clouds. Its built on Docker & CoreOs.
CoreOs - Lightweight OS that support containers out of the box. Can be used as base OS to run your own PaaS
Vagrant-lxc - Vagrant plugin that allows it to control and provision Linux Containers as an alternative to the built in VirtualBox provider for Linux host.
Cloud Platforms:
AWS - A cloud computing platform offering ready to use web services which are loosely coupled.
Openstack - An open source, massively salable cloud operating system used for building private & public cloud.
Jcloud - Apache jclouds, an open source multi-cloud toolkit for the Java platform, apps are portable across clouds.
Configuration Management Tools - Infrastructure-as-a-Code
Chef - Configuration management tool which uses a pure-Ruby, DSL for writing system configuration recipes.
Ansible - An agent-less orchestration engine that can automate application and systems.
CfEngine - First of its kind. Configuration Management tool, automates large scale, complex infrastructure.
Consul - Makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface.
SaltStack - Configuration Management software, delivers fast,scalable event-driven infrastructure automation & predictive cloud orchestration.
ConDep - An opensource infrastructure configuration & deployment DSL specifically targeted (not limited) to Windows platform.
Package Management Tools:
Fig - A package management tool, similar to APT, language agnostic, faster and works well with both executable and libraries.
Chocolatey - It is apt-get for windows. Can install packages & dependencies over CLI.
Fpm - Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
pip Python installation of package manager
yum Yum Package Manager. Yum is an automatic updater and package installer/remover for rpm systems.
apt- Advanced Package Tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian, Ubuntu, and related Linux distributions
dnf - DNF is a software package manager that installs, updates, and removes packages on RPM-based Linux distributions.
Distributed Memory Caching System:
Memcached - An open-source high performance, distributed memory object caching system.
Cloud Monitoring Tools:
Snort - An open-source IPS. It provides real-time traffic analysis and packet logging for DevOps engineers.
RabbitMQ - RabbitMQ is a queuing tool for DevOps engineers. Supports a large no. of development platforms.
Collectd - Demon to collect system performance statistics periodically & provides tons of plugins to analyze values.
Logstash - A data pipeline that helps you process logs and other event data from a variety of systems.
Log.io - A Real-time log monitoring in your browser. Broadcasting logs to the web clients.
Ganglia - A salable distributed monitoring system for high-performance computing systems such as clusters & grids.
Icinga - A monitoring system checking hosts & services you specify & notifying when things go wrong & they recover.
Beats - An open source collectors for log files, infrastructure metrics, and other important types of data agitation.
Sensu - A simple & scalable monitoring framework which is designed for cloud.
Zabbix - An opensource, enterprise-class network monitoring framework.
Flynn - An open source PaaS platform built on Docker awesomely manages deploying, scaling your applications.
SumoLogic - Centralized Log Analysis tool, which scale to any data volume and query performance.
Cloud Reporting Tools:
Graphite - A visualization tool for statistics. One can create customizable reports and dashboards.
Grafana - An open source feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB.
Logster - Utility for reading logs & generating metrics to configurable outputs. Graphite, CloudWatch, Nagios & stdout.
Sysdig - An open-source, system level exploration: capture system state & activity in linux instance save, filter & analyze.
Cloud Networking Tools:
Weave - a virtual network that connects Docker containers deployed across multiple hosts & enables automatic discovery.
Zookeeper - A centralized service for maintaining configuration information, naming, providing group services etc.
Etcd - A highly-available key value store for shared configuration and service discovery.
Serf - A lightweight & decentralized solution for cluster membership, failure detection & orchestration
Vaurien - A Chaos Monkey for TCP conn. Randomly disconnects/stalls TCP connections in app to test tolerance and HA.
Virtual Images Creation Tools:
Packer - A tool for creating identical machine images for multiple platforms from a single source configuration
Foreman - A complete lifecycle management tool for physical and virtual servers.
Veewee - A tool for easily & repeatedly building custom Vagrant base boxes, KVMs, & virtual machine images.
Cloud Libraries:
Berkshelf - Cookbook source manager for chef, similar to a bundler for ruby.
Cloud Jobs Scheduler:
Rundeck - A cross-platform opensource software, helps automate ad-hoc & routine procedures in data-center or cloud environment.
Nomad - A Hashicorp product; is a cluster manager & scheduler designed for microservices and batch workloads.
Simian Army - A tool for testing & promoting infrastructure tolerance & high availability.
Test Kitchen - A test harness tool to execute your configured code on one or more platforms in isolation.
Cloud Security Tools:
Opsbot - A pluggable, configurable bot for improving communication in operations.
Drone - A Continuous Integration platform built on Docker, written in Go.
Slaughter - A perl tool for automating configuration maintenance & management of large number of systems.
Credmgr - Securely manage privileged account credentials via Shamir secret sharing. Its like one passwd for DevOps.
Cloud Intrastructure Management Tool:
Pagerduty - A tool which would help us to increase the uptime of our apps, services, and infrastructure.
Fabric - A command-line tool for streamlining use of SSH for application deployment or systems administration tasks.
Heroku - Platform as a service (PaaS) that enables developers to build and run applications entirely in the cloud.
FAI Fully Automatic Installer - Tool for mass unattained deployments of
#Linux.
Rudder - An easy to use, web-driven, role-based solution for IT Infrastructure Automation.
StackStorm - Event-driven automation used for auto-healing, security responses, troubleshooting, complex deployments.
Eucalyptus - An open source software for building AWS - compatible private and hybrid clouds.
Bento - A project that encapsulates Packer templates for building Vagrant base boxes.
Sequencer - Open-Source Software that can ping, power off and power on your whole cluster.
Opskelaton - Bootstrap DevOps infra with some opinionated defaults(vagrant chef puppet) standard development guidelines.
Overcast - CLI for ease to spinup configure & manage clusters without learning curve or complexity of existing management tools.
Sunzi - Shell-based provisioning tool which does not try to do anything else. Has no dependency other than shell.
Djangy - An open source cloud hosting service for Python/Django web apps. Its like Heroku for Python/Django.
VMFest - a PalletOps project turns VirtualBox into light-weight cloud provider. Useful in developing cloud automation.
Cloud Provisioning Tools:
Mcollective - A framework for building server orchestration or parallel job execution systems.
Kickstart - Uses bash scripts to provision machines over ssh, with no client installation on the target.
Deployment Tools:
Capistrano - A remote server automation and deployment tool written in Ruby.
Asgard - A netflix web interface tool for AWS Cloud Management and application deployment.
OSV - An operating System for lightweight virtual machines, designed for ground up to run single application, similar to CoreOS.
Dokku - Docker powered mini-Heroku, a smallest PaaS implementation you’ve ever seen around 100 lines of Bash.
Poni - Systems management tool for defining, deploying and verifying complex multi-node computer systems.
Loom - Does stuff Puppet doesn’t do well or at all bootstrapping machines deploying code & installing reusable modules.
Tsuru - An extensible and open source Platform as a Service; that uses Docker to make deploys simple & fast.
BuildMaster - An automated deployment tool. It combines features to manage and automate processes primarily related to continuous integration, database change scripts, and production deployments.
Deploykit - Collection of Ruby daemons flying in close formation. AKA our startling message-based deploy environment.
Awsbox - A featherweight DYI PaaS on top of awscloud EC2 for deploying node apps.
Orc - A model driven orchestration tool for the deployment of application clusters written in Ruby.
Brooklyn - Focused on deployment & post deployment life-cycle management, aware of network typologies integrates with clouds.
Mina - Deployment tool, lets you build and run scripts to manage your app deployments on servers via SSH.
Juju - An orchestration tool allows software to be quickly deployed, integrated & scaled public/private/hybrid cloud.
Installers Repository Management Tools:
Artifactory - JFrog’s opensource binary repository management product with support for Apache Maven artifacts.
Pulp - A platform for managing repositories of content, such as software packages.
Analytics Tools:
Kibana - an opensource (Apache Licensed), browser-based analytics and search dashboard for Elasticsearch.
Cloud Message Server:
CMB(Cloud Message Bus) - A highly available, horizontally scalable queuing & notification service compatible to AWS SQS, SNS.
Code Review Tool:
Barkeep - Code review tool for git projects, focused on code reviewing, can support both pre & post-commit workflows.
Code Editing Tool:
Sublime-Text - Sublime Text is a cross-platform source code editor with a Python application programming interface (API). It natively supports many programming languages and markup languages, and its functionality can be extended by users with plugins, typically community-built.