Skip to content

Instantly share code, notes, and snippets.

@Rishav-Git
Created February 2, 2018 04:52
Show Gist options
  • Save Rishav-Git/8f3ffab15aca6ecf38f49b7efa07bbff to your computer and use it in GitHub Desktop.
Save Rishav-Git/8f3ffab15aca6ecf38f49b7efa07bbff to your computer and use it in GitHub Desktop.
DevOps Tools

Continuous Development tools (Code)

Subversion(svn):

Subversion is a free/open source centralized version control system (CVCS). It uses central server to store all files and enable team collaboration. That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed.

Subversion can operate across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration. Progress can occur more quickly without a single conduit through which all modifications must occur. And because the work is versioned, you need not fear that quality is the trade-off for losing that conduit—if some incorrect change is made to the data, just undo that change.

Git:

Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files. As a distributed revision control system it is aimed at speed, data integrity, and support for distributed, non-linear workflows.

Difference between Subversion and Git:

 Git is much faster than Subversion

 Subversion allows you to check out just a subtree of a repository; Git requires you to clone the entire repository (including history) and create a working copy that mirrors at least a subset of the items under version control.

 Git's repositories are much smaller than Subversions (for the Mozilla project, 30x smaller)

 Git was designed to be fully distributed from the start, allowing each developer to have full local control

 Git branches are simpler and less resource heavy than Subversion's

 Git branches carry their entire history.

 Git provides better auditing of branch and merge events

 Git's repo file formats are simple, so repair is easy and corruption is rare.

 Backing up Subversion repositories centrally is potentially simpler - since you can choose to distributed folders within a repo in git

 Git repository clones act as full repository backups

 Subversion's UI is more mature than Git's

 Walking through versions is simpler in Subversion because it uses sequential revision numbers (1,2, 3, ...); Git uses unpredictable SHA-1 hashes. Walking backwards in Git is easy using the "^" syntax, but there is no easy way to walk forward.

Continuous Development tools(Build):

Ant with Ivy

Ant was the first among “modern” build tools. In many aspects it is similar to Make. It was released in 2000 and in a short period of time became the most popular build tool for Java projects. It has very low learning curve thus allowing anyone to start using it without any special preparation. It is based on procedural programming idea. After its initial release, it was improved with the ability to accept plug-ins. Major drawback was XML as the format to write build scripts. XML, being hierarchical in nature, is not a good fit for procedural programming approach Ant uses. Another problem with Ant is that its XML tends to become unmanageably big when used with all but very small projects. Later on, as dependency management over the network became a must, Ant adopted Apache Ivy.

Main benefit of Ant is its control of the build process.

Maven

Maven was released in 2004. Its goal was to improve upon some of the problems developers were facing when using Ant. Maven continues using XML as the format to write build specification. However, structure is diametrically different. While Ant requires developers to write all the commands that lead to the successful execution of some task, Maven relies on conventions and provides the available targets (goals) that can be invoked. As the additional, and probably most important addition, Maven introduced the ability to download dependencies over the network (later on adopted by Ant through Ivy). That in itself revolutionized the way we deliver software. However, Maven has its own problems. Dependencies management does not handle conflicts well between different versions of the same library (something Ivy is much better at). XML as the build configuration format is strictly structured and highly standardized. Customization of targets (goals) is hard. Since Maven is focused mostly on dependency management, complex, customized build scripts are actually harder to write in Maven than in Ant. Maven configuration written in XML continuous being big and cumbersome. On bigger projects it can have hundreds of lines of code without actually doing anything “extraordinary”. Main benefit from Maven is its life-cycle. As long as the project is based on certain standards, with Maven one can pass through the whole life cycle with relative ease. This comes at a cost of flexibility. In the meantime, the interest for DSLs (Domain Specific Languages) continued increasing. The idea is to have languages designed to solve problems belonging to a specific domain. In case of builds, one of the results of applying DSL is Gradle.

Gradle

Gradle combines good parts of both tools and builds on top of them with DSL and other improvements. It has Ant’s power and flexibility with Maven’s life-cycle and ease of use. The end result is a tool that was released in 2012 and gained a lot of attention in a short period of time. For example, Google adopted Gradle as the default build tool for the Android OS. Gradle does not use XML. Instead, it had its own DSL based on Groovy (one of JVM languages). As a result, Gradle build scripts tend to be much shorter and clearer than those written for Ant or Maven. The amount of boilerplate code is much smaller with Gradle since its DSL is designed to solve a specific problem: move software through its life cycle, from compilation through static analysis and testing until packaging and deployment. Initially, Gradle used Apache Ivy for its dependency management. Later own it moved to its own native dependency resolution engine. Gradle effort can be summed as “convention is good and so is flexibility”.

Continuous testing tools:

1. Selenium

Selenium is a testing framework to perform web application testing across various browsers and platforms like Windows, Mac, and Linux. Selenium helps the testers to write tests in various programming languages like Java, PHP, C#, Python, Groovy, Ruby, and Perl. It offers record and playback features to write tests without learning Selenium IDE. Selenium proudly supports some of the largest, yet well-known browser vendors who make sure they have Selenium as a native part of their browser. Selenium is undoubtedly the base for most of the other software testing tools in general.

2. TestingWhiz

TestingWhiz is a test automation tool with the code-less scripting by Cygnet Infotech, a CMMi Level 3 IT solutions provider. TestingWhiz tool’s Enterprise edition offers a complete package of various automated testing solutions like web testing, software testing, database testing, API testing, mobile app testing, regression test suite maintenance, optimization, and automation, and cross-browser testing.

TestingWhiz offers various important features like:

• Keyword-driven, data-driven testing, and distributed testing

• Record and playback test automation framework

• Object Eye Internal Recorder

• 290+ inbuilt testing commands in addition to in-built JavaScript

• Integration with bug tracking tools like Jira, Mantis, and FogBugz

• Integration with test management tools like HP Quality Center

• Risk-based testing

• Continuous Integration and Delivery in Agile cycles

3. HPE Unified Functional Testing (HP – UFT formerly QTP)

HP QuickTest Professional was renamed to HPE Unified Functional Testing. HPE UFT offers testing automation for functional and regression testing for the software applications. Visual Basic Scripting Edition scripting language is used by this tool to register the test processes and operates the various objects and controls in testing the applications.

QTP offers various features like:

• Integration with Mercury Business Process Testing and Mercury Quality Center

• Unique Smart Object Recognition

• Error handling mechanism

• Creation of parameters for objects, checkpoints, and data-driven tables

• Automated documentation

4. TestComplete

TestComplete is a functional testing platform that offers various solutions to automate testing for desktop, web, and mobile applications by SmartBear Software.

TestComplete offers the following features:

• GUI testing

• Scripting Language Support – JavaScript, Python, VBScript, JScript, DelphiScript, C++Script & C#Script

• Test visualizer

• Scripted testing

• Test recording and playback

5. Ranorex

Ranorex Studio offers various testing automation tools that cover testing all desktop, web, and mobile applications.

Ranorex offers following features:

• GUI recognition

• Reusable test codes

• Bug detection

• Integration with various tools

• Record and playback

6. Sahi

Sahi is a testing automation tool to automate web applications testing. The open source Sahi is written in Java and JavaScript programming languages.

Sahi provides following features:

• Performs multi-browser testing

• Supports ExtJS, ZK, Dojo, YUI, etc. frameworks

• Record and playback on browser testing

7. Watir

Watir is an open source testing tool made up of Ruby libraries to automate web application testing. It is pronounced as “water.”

Watir offers following features:

• Tests any language-based web application

• Cross-browser testing

• Compatible with business-driven development tools like RSpec, Cucumber, and Test/Unit

• Tests web page’s buttons, forms, links, and their responses

8. Tosca Testsuite

Tosca Testsuite by Tricentis uses model-based test automation to automate software testing.

Tosca Testsuite comes with following capabilities:

• Plan and design test case

• Test data provisioning

• Service virtualization network

• Tests mobile apps

• Integration management

• Risk coverage

9. Telerik TestStudio

Telerik TestStudio offers one solution to automate desktop, web, and mobile application testing including UI, load, and performance testing.

Telerik TestStudio offers various compatibilities like:

• Support of programming languages like HTML, AJAX, ASP.NET, JavaScript, Silverlight, WPF, and MVC

• Integration with Visual Basic Studio 2010 and 2012

• Record and playback

• Cross-browser testing

• Manual testing

• Integration with bug tracking tools

10. WatiN

WatiN is an open-source, C#-developed web application testing tool that was inspired by Watir. WatiN supports web application testing for .Net programming languages. It is licensed under Apache 2.0.

WatiN consists of following features:

• Supports HTML and AJAX website testing

• Integration with unit testing tools

• Automate browser testing on IE and Firefox

• Generates web page screenshots

• Native support for Page and Control model

11. Junit:

JUnit is a simple Unit/Regression Testing Framework used by Java developers to write repeatable tests that increase programming speed and improve the quality of code. JUnit test framework can be easily integrated with Eclipse, Ant, or Maven, and provides features such as Fixtures, Test suites, JUnit classes, and Test runners. JUnit has played a critical role in the development of test-driven development, and belongs to the family of unit testing frameworks collectively called xUnit (originated with SUnit).

Continuous Integration Tools:

Jenkins

Jenkins is an open-source CI tool written in Java. It originated as the fork of Hudson when the Oracle bought the Sun Microsystems. Jenkins is a cross-platform CI tool and it offers configuration both through GUI interface and console commands. What makes Jenkins very flexible is the feature extension through plugins. Jenkins plugin list is very comprehensive and you can easily add your own. Besides extensibility, Jenkins prides itself on distributing builds and test loads on multiple machines. It is published under MIT license so it is free to use and distribute. Cloudbees also offers hosted solution in the form of the Jenkins in the Cloud.

Availability: Free

Platform: Cross-platform

TeamCity

TeamCity is the mature CI server, coming from the labs of the JetBrains company. JetBrains has established authority in the software development world, and their tools like WebStorm and ReSharper are used by developers worldwide. TeamCity offers all the features in its free version, but it is limited to the 20 configurations and 3 build agents. Additional build agents and build configurations need to be purchased. You can find out pricing here. Out of the box, TeamCity works on many different platforms and has the support for wide variety of tools and frameworks. There are many publicly available plugins, developed both by JetBrains and third parties. Despite being the Java-based solution, TeamCity offers the best .NET support among the tools on this list. There are also different enterprise packages, that scale by the number of agents needed.

Availability: Free for 3 agents and 20 build configurations and paid for additional agents

Platform: Servlet container (On-premises)

Travis CI

Travis CI is one of the oldest hosted solutions out there and it has won the trust of many people. Although it’s mostly known for the hosted solution, it offers the on premise version too in a form of enterprise package. Travis CI is free for all open source projects hosted on the GitHub and for the first 100 builds otherwise. There are a few pricing plans you can choose from, the main difference being the number of concurrent builds you can run. Builds are configured using .travis.yml file which contains the build tasks that will be executed upon running the build. It supports a variety of different languages and a good documentation to back them up.

Availability: Free for open source plans and first 100 builds, paid plans for everything else

Platform: Hosted and On-premises

Go CD

Go is the newest Cruise Control incarnation from the ThoughtWorks company. Excluding the commercial support that ThoughtWorks offers, Go is free of charge. It is available for Windows, Mac, and various Linux distributions. What makes Go stand out from the crowd is the concept of pipelines which makes the modeling of the complex build workflows easy. On the pipeline concept, how it can help with Continuous Delivery and how it compares to Jenkins pipelines you can read here. It is designed from the scratch to support pipelines and eliminate build process bottlenecks with the parallel execution of the tasks.

Availability: Free with paid support

Platform: On-premises for Windows, Mac and some Linux distributions

Bamboo

Atlassian is the company focused on providing tools for software development teams and you might know them by their tools like JIRA and Bitbucket. Bamboo originally offered both cloud and On-premises solutions, but in the May 2016 the cloud version was discontinued in the favor of the Bitbucket pipelines (accessible through the left panel of your Bitbucket account). Being powered by Docker, Bitbucket Pipelines are very efficient and fast solution that is rapidly growing and becoming a worthy successor to the Bamboo Cloud. Bamboo is free to try for 30 days, and after that, there are two plans for small and growing teams. Being the Atlassian tool, it has the native support for JIRA and BitBucket and you can even import your Jenkins configurations into the Bamboo easily.

Availability: Paid with free trial

Platform: On-premises

GitLab CI

GitLab CI is an integral part of the open-source Rails project GitLab, which was brought to light by the company GitLab inc. GitLab is hosted on GitLab.com, a free hosted service and it provides detailed git repository management with features like access control, issue tracking, code reviews and much more. GitLab CI is fully integrated with GitLab and it can easily hook projects using the GitLab API. GitLab runners, that process builds are written in Go language and can run on Windows, Linux, OSX, FreeBSD, and Docker. The official Go runner can run multiple jobs concurrently and has inbuilt Docker support. Gitlab CI comes with both the open-source GitLab Community Edition and with the GitLab Enterprise Edition.

Availability: Free and paid with trial

Platform: Hosted (can be hosted for you on Gitlab.com)

CircleCI

Another cloud alternative that comes from the company with the same name. CircleCI currently only supports GitHub and the list of supported languages includes Java, Ruby/Rails, Python, Node.js, PHP, Haskell, and Skala. What separates CircleCI from the other tools is the way they offer services. The main pricing block for the CircleCI is the “container”. One container is free and you can build as many projects on it as you need. Once you start adding more containers (at a fixed price each) you can choose the level of parallelization that suits your needs. There are 5 levels of parallelization (1x, 4x, 8x, 12x and 16x). So, starting with the 16 containers, you can achieve maximum parallelization of 16x on one build. Or you can run 4 builds on 16 containers with 4x parallelization. It is up to you. And did I mention CircleCI supports Docker?

Availability: Free and paid with trial

Platform: Hosted

##Codeship

If you haven’t had enough hosted solutions up until now, here is another one. Codeship comes in two different versions: Basic and Pro. Basic version offers out-of-the-box Continuous Integration service but doesn’t have docker support and its main purpose is to build applications with common workflows through the UI. Pro version offers more flexibility and docker support. The basic version comes in several paid packages, where the more expensive ones have more parallelization power. In the pro version, you get to choose your instance type and the amount of parallelization up to 20x). It can get a bit pricey, but some teams may need that kind of power.

Availability: Free for 100 builds per month and paid for more than that

Platform: Hosted

Continuous Monitoring Tools:

1. Nagios:

Network Monitoring:

Nagios monitors the network of problems caused by overloaded data links or network connections, as well as monitoring routers, switches and more. Easily able to monitor availability, uptime and response time of every node on the network. Nagios can deliver the results in a variety of visual representations and reports.

More Info:

• Network monitoring software

• Network traffic monitoring

• Network analyzer

Server Monitoring:

Server monitoring is made easy in Nagios because of the flexibility to monitor your servers with both agent-based and agentless monitoring. With more than 500 different addons available to monitor your servers, the community at the Nagios have left no stone unturned.

More Info:

• Server Monitoring Software

• Windows Server Monitoring

• Linus Server monitoring

Application Monitoring:

Implementing effective application monitoring with Nagios allows your organization to quickly detect application service or process problems and take action to eliminate downtime for your application users. Nagios provides tools for monitoring of applications and application state- including Windows applications, Linux applications, Unix applications and web applications.

More Info:

• Application monitoring tools.

• Web application monitoring.

• Application Log Monitoring.

2. Zabbix:

Zabbix is an enterprise open source monitoring software for networks and applications. It is designed to monitor and track the status of various network services, servers and other network hardwares.

Zabbix uses MySQL, PostgreSQL, SQLite, Oracle or IBM DB2 to store data. Its backend is written in C and the web front end is written in PHP. Zabbix offers several monitoring options:

• Simple checks can verify the availability and responsiveness of standard services such as SMTP or HTTP without installing any software on the monitored host.

• A Zabbix agent can also be installed on UNIX or Windows hosts to monitor statistics such as CPU load, network utilization, disk space, etc.

• As an alternative to installing an agent on hosts, Zabbix includes support for monitoring via SNMP, TCP and ICMP checks, as well as over IPMI, JMX, SSH, Telnet and using custom parameters. Zabbix supports a variety of near-real-time notification mechanism, including XMPP.

3. Sensu:

Sensu is an infrastructure and application monitoring and telemetry solution. Sensu provides a framework for monitoring infrastructure, service & application health, and business KPIs. Sensu is specifically designed to solve monitoring challenges introduced by modern infrastructure platforms with a mix of static, dynamic, and ephemeral infrastructure at scale (i.e. public, private, and hybrid clouds). Sensu allows organizations to compose comprehensive monitoring & telemetry solutions to meet unique business requirements. By providing a platform to build upon, Sensu enables you to focus on what to monitor and measure, rather than how. Sensu is installed on your organizations infrastructure – it is not a Software-as-a-Service (SaaS) solution – which means Sensu gives you full control over the availability of your monitoring solution.

Sensu is a comprehensive infrastructure and application monitoring solution that provides the following benefits:

• Monitor servers, services, application health, and business KPIs

Sensu is an infrastructure and application monitoring & telemetry solution.

• Send alerts and notifications

Sensu integrates with the tools and services your organization is already using to do things like send emails, PagerDuty alerts, Slack, HipChat, IRC notifications, and many more.

• Dynamic client registration & de-registration

When servers are provisioned, they automatically register themselves with Sensu, so there’s no need to manually add or configure new servers.

• A simple yet extensible model for monitoring

Sensu provides a sophisticated, yet simple to understand solution for executing service checks and processing events at scale. Service checks provide status and telemetry data, and event handlers process results. Hundreds of plugins are available for monitoring the tools and services you’re already using. Plugins have a very simple specification, and can be written in any programming language.

• Built for mission-critical applications and multi-tiered networks

Sensu’s use of a secure transport protects your infrastructure from exposure and makes it possible for Sensu to traverse complex network topologies, including those that use NAT and VPNs, and span public networks. Sensu provides a secure m onitoring solution trusted by international banking institutions, government agencies, Fortune 100 organizations, and many more.

• Designed for automation

Sensu exposes 100% of its configuration as JSON files, which makes it extremely automation–friendly (e.g. it was designed to work with tools like Chef, Puppet, and Ansible).

• Open source software with commercial support

Sensu is an open-source software (OSS) project, made freely available under a permissive MIT License(the source code is publicly available on GitHub). Sensu Enterprise is based on Sensu Core (the OSS version of Sensu) which makes added-value features, commercial support, training, and many other benefits available under the Sensu License.

Continuous Deployment Tools:

1. ElectricFlow

ElectricCloud’s ElectricFlow is a platform that helps develop software, deliver it, and maintain it with regular updates. ElectricFlow helps model, automate, and track cloud-native, container, and legacy application deployments with ease.

Key Features:

• Build and deploy microservices

• View release status and milestone dates

• Automate and track cloud-native, container, and legacy application deployments

2. PDQ Deploy

PDQ Deploy offers the ability to remotely install software or patches to Windows systems. Pre-built ready-to-deploy packages are available for applications such as Adobe Flash, Java, Firefox, and more for all computers.

Key Features:

• Customize installs

• Installs to multiple computers simultaneously

• Real-time status monitoring

3. Octopus Deploy

Octopus Deploy is an automated system designed to simplify deployment of ASP.NET applications, Windows Services, and databases. It enables software developers to automate application deployments, whether on-premises or in the cloud.

Key Features:

• Dashboard showing deployment statuses

• Installation and set up completed quickly

• Automatic deployments for virtual machines on site or in cloud services

4. Ansible Tower

Red Hat’s Ansible Tower is a large-scale software system that automates software provisioning, configuration management, and software deployment. It can help scale IT automation, manage complex deployments, and speed productivity.

Key Features:

• Visual dashboard includes statuses, job activity, and job snapshots

• Playbooks allow multiple workflows to be chained together

• API and command line interface tools

• Role-based access control

• Job scheduling

• Integrated notifications

• Graphical inventory management

5. Chef

Chef manages infrastructure across servers. The server infrastructure is treated as software code, and Chef deploys updates, manages testing, and manages versions. Chef can be used to manage any number of servers by turning infrastructure into code that’s flexible, human-readable, versionable, and testable.

Key Features: • Manage data centers and cloud environments as one infrastructure

• Migrate workloads to the cloud quickly

• Cloud agnostic — promises integration with any provider

6. AWS CodeDeploy

AWS CodeDeploy is a service from Amazon Web Services that automates code deployments to any instance. It works with any platform, language, and application. AWS CodeDeploy makes it easier to rapidly release new features, helps avoid downtime during application deployment, and handles the complexity of updating applications. AWS CodeDeploy can automate software deployments.

Key Features:

• Automated and repeatable deployments

• Centralized control

• Applications still accessible during deployments

7. Codeship

Codeship is a continuous integration and delivery platform. It automatically tests and deploys any coding change when the code repository is updated.

Key Features:

• Docker support

• Parallel deployments and testing

• Debugging via SSH access and command line interface

8. AppVeyor

AppVeyor is a continuous integration and delivery cloud service for Windows and .NET tools with automatic testing.

Key Features:

• No setup or maintenance required

• Developer-friendly build configs using UI or YAML

• Fast builds on dedicated hardware with SSD drives

• Multi-branch builds

• Staff and community support

• Pay-as-you-go pricing

9. Bamboo

Atlassian’s Bamboo is a continuous integration server that automates release management for applications and general software, allowing teams to establish a streamlined pipeline of build delivery. It ties automated builds, testing, and releases into an integrated workflow. Mobile developers can deploy their apps back to the Apple Store or Google Play automatically.

Key Features:

• Language agnostic integration with many platforms

• Dedicated agents focus on specific build projects

• Full reporting of upcoming code changes and issues

10. CircleCI

CircleCI is a continuous integration and delivery platform that supports Ruby on Rails, Sinatra, Node, Python, PHP, Java, and Clojure. It can automate the software development process using continuous integration and continuous delivery.

Key Features:

• Fully customizable build environments

• Customizable custom dashboard

• Integration with AWS, Heroku, Google Cloud, and others

• Debugging with SSH or local builds

11. Travis CI

Travis CI is an open-source continuous integration service that automates testing and deploys code in GitHub projects.

Key Features:

• Linux, Mac, and iOS support

• Watch tests as they run

• Notifications via email, Hipchat, or Slack

• Wide selection of programming languages supported

• Linux, Mac and iOS support

• API and command line interface available

12. Distelli

Distelli is a set of software deployment tools that specialize in Kubernetes Clusters but can be used with any cloud service or physical server.

Key Features:

• Automate builds for Docker images

• Automate software deployment

• Push software to multiple clouds

13. Jenkins

Jenkins offers continuous delivery and continuous delivery tools in an open-source automation server. Plugin structure supports building, deploying, and automating software projects. Jenkins can easily distribute work across multiple machines, helping drive builds, tests, and deployments across multiple platforms faster.

Key Features:

• Hundreds of plugins available

• Continuous Integration and Continuous Delivery

• Easy installation and configuration

• Installation packages available for Windows, Mac OS X, and other Unix-like operating systems

• Web interface offers easy configuration and error checks

14. Codenvy

Codenvy is a developer workspace that runs behind the firewall and can deploy software to a data center or any cloud. Teams can develop code with portable Docker runtimes.

Key Features:

• Supports Docker environments

• Share workspaces with users on any OS

• Develop with desktop editor or browser IDE

• Define resource limits for teams

15. Deploybot

DeployBot is an automated software deployment app that deploys code from GIT repositories to anywhere. Deployments can be triggered automatically or manually, and code can be executed or compiled on servers during the deployment, using pre-defined or completely custom Docker containers.

Key Features:

• API hosted on DeployBot subdomain dedicated to each customer

• Pre-defined or custom Docker containers available

• Ability to rollback problematic releases

• Trigger a deployment when code is ready

16. UrbanCode Deploy

IBM’s UrbanCode Deploy is an application release automation tool that automates software deployment to local and cloud-based environments. The software allows seamless deployments to distributed data centers, cloud, and virtualized environments as often as needed — on demand or on schedule.

Key Features:

• Automated deployments

• Processes can be built by drag-and-drop interface

• Enterprise level security and scalability

17. TeamCity

JetBrains’ TeamCity is a continuous integration and software deployment server with Docker images for servers and agents. It offers a wide range of developer-oriented features to take team performance to the next level. Special additional functionality can be added from over 100 ready-to-use plugins.

Key Features:

• Start within minutes from installation

• Support for third-party tools without plugins or modifications

• Comprehensive version control system

• Customization and extension of the server

18. Buildbot

Buildbot is a job scheduling platform that can be used to automate software builds, tests, and releases. It can automate all stages of software development. Each Buildbot installation has one or more masters and a collection of workers. The masters monitor source-code repositories for changes, coordinate the activities of the workers, and report results to users and developers. Workers run on a variety of operating systems.

Key Features:

• Parallel execution across multiple platforms

• Open source platform

• Compatible with all major operating systems

19. GoCD

ThoughtWorks’ GoCD is an open source continuous delivery tool that handles continuous integration, testing, and software deployment. It replaces the commercial product Cruise.

Key Features:

• Embedded database is scalable with a PostgreSQL addon

• Enterprise tool plugins

• Access to the GoCD development team

• Notifications for all bug fixes and security patches

• Full support with all pricing tiers

20. Microsoft Team Foundation Server

Microsoft Team Foundation Server is a set of collaborative software development tools to share code and ship software. It integrates with an existing IDE or editor, enabling cross-functional teams to work effectively on software projects of all sizes.

Key Features:

• Version control

• Integrates with Agile processes

• Works with any programming language or IDE

• Automate and track deployments

21. Automic

Automic from CA Technologies applies software development and continuous integration tools to back-end systems. This allows software development to happen in an Agile and stable environment.

Key Features:

• Automate continuous delivery and release management

• Full stack delivery

• Plugin Marketplace to help customize tools

• Provision Siebel servers and patches

22. RapidDeploy

MidVision’s RapidDeploy is a software deployment and release automation tool built for DevOps teams and enterprise continuous delivery. It consistently delivers high-volume deployments that allow organizations to speed release cycles without compromising quality.

Key Features:

• Automate processes without writing code

• Graphical interface that manages tasks

• Release pipelines allow users to manage multiple projects and targets

23. JuJu

Canonical’s JuJu automates cloud infrastructure and deploys application architectures. The tool uses Charms, collections of scripts, to simplify configuration, management, maintenance, deployment, and scalability.

Key Features:

• Deploy to all major cloud providers or private hardware

• Scales on demand

• Open source operations code

• Works with Kubernetes or Instant Hadoop with Spark

24. Rancher

Rancher is an open source software that deploys and manage Docker containers and Kubernetes in production on any infrastructure. With Rancher, you can manage all aspects of running containers in development and production environments.

Key Features:

• Deploy and run containers in any infrastructure

• Container deployment and operations automation

• Modular infrastructure services

• Rich set of tools

• Role based access control

25. Drone.io

Drone.io is a continuous integration and deployment service in the cloud designed to automatically build, test, and deploy your code without human assistance.

Key Features:

• Integrates seamlessly with Github, Bitbucket, Heroku, and more

• Open source

• Add functionality with plugins

• Notifications via email, Hipchat, and Slack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment