axe driven into a log
PHOTO: Dan Edwards

The merging of development and operations (DevOps) has introduced us to a whole new perspective regarding software development, from best practices such as continuous integration (CI) and continuous delivery (CD) to an entirely different cultural philosophy. As a result we've seen an array of DevOps tools come into the mix to help enterprises meet the needs of these new practices and cultural requirements.

Here are the top DevOps tools, in no particular order, sourced from G2 Crowd’s compiled list of “popular continuous delivery and source code management tools used by DevOps professionals”.

1. Jenkins

Jenkins is an open software automation server that can be utilized as a CI platform or as a CD hub for any project. It also monitors the execution of repeatable jobs including jobs run by "cron" and scaling software applications. Furthermore, Jenkins can be distributed to work across multiple machines so users can develop builds, run tests and deploy across multiple platforms.

Plus, Jenkins can be extended thanks to its plugin architecture. There are hundreds of plugins available via the update center, enabling users to integrate Jenkins with a multitude of CI and CD tools.

2. CircleCI

Used by the likes of Facebook and Dollar Shave Club, CircleCI is a CI platform that helps to automate your pipeline run from commit to deploy. Users can define and orchestrate workflows for each stage of development, including build, test and deploy, to attain a complete oversight of the development process via its dashboard interface. Users can also configure resources such as computing power and memory to best fit the requirements for each specific build.

CircleCI supports any language that builds on both Linux and macOS, including Javascript, C++, PHP, Ruby, .NET and Python.

Related Article: 7 Key Principles for a Successful DevOps Culture

3. Microsoft Team Foundation Server

Microsoft Team Foundation Server is an enterprise-grade server that allows teams to share code, track work and ship software using integrated software delivery tools that are hosted on-premises.

The tool has been developed to be used for each stage of development, from ideation to application release. Users are able to work with any language including Java, HTML5, C# and Python, as well as tools of their choice such as Visual Studio, Xcode, Eclipse or any other IDE or code editor.

It also allows you to integrate code repositories and enable custom agile processes, including Kanban, scrum and dashboards.

4. Sourcetree

Sourcetree provides a graphical user interface that helps users visualize and access their Git repositories on a single interface. The objective of this particular tool is to help developers focus on writing code, removing the need to make of use of command line access to a Git repository, improving productivity as a result. Users can create detailed branch diagrams to help track the team’s overall progress.

The tool works with both Git and Mercurial.

Related Article: Agile vs DevOps: What's the Difference?

5. AWS CloudFormation

AWS CloudFormation enables users to model and provision all cloud infrastructure resources by using a text file. Users can then upload this text file into AWS CloudFormation, which goes on to become the “single source of truth” for your infrastructure. In doing so, you can standardize your infrastructure components throughout your organization, enabling faster troubleshooting and compliance.

The tool provisions your resources in a safe, secure and repeatable manner, enabling you to develop and redevelop your infrastructure without any manual input or custom scripts.

6. GitLab

GitLab provides a single application that covers the entire DevOps lifecycle. The creators behind GitLab claims the tool can increase the speed of the software cycle by 200%. It comes with Cycle Analytics, which provides detailed analytics on how fast your software lifecycle is performing and pinpoints any areas in your software’s lifecycle that can be optimized. You can track and review areas in your cycle to ensure they meet compliance requirements, as well.

GitLab also features multiple authorization mechanisms including Okta, OmniAuth, LDAP and CAS.

7. Codeship

Codeship provides hosted CI, CD and deployment for your web applications. The tool comes with a selection of CI dependencies pre-installed, ready-for-use, and you can easily configure both CI and CD via its user-friendly interface.

Codeship can readily connect with GitHub, BitBucket and GitLab and you can set up deployments to common endpoint through its 1-click-deployment integration.

8. GitHub

GitHub is a web-based development platform where users can access either a public or private code repository. Users can collaborate with other developers on GitHub to create and review code.

GitHub can be extended via apps available on the GitHub Marketplace or by integrating your preferred tools such as Slack and CircleCI via API.

You can also protect your code repository by limiting access by implementing protected branches and setting granular permissions and authentication through SAML/SSO.

9. Bitbucket

Bitbucket is a web-based Git code management software that provides teams with a single interface where they can plan projects, collaborate and develop code, test and run deployment.

Bitbucket comes with a built-in CD and a fast feedback loop to allow for quicker product improvement releases and code review among team members. Workflows can also be utilized for better oversight of the entire development process, and these workflows can be protected with a 2-step verification.

10. Apache Maven

Apache Maven is an open-source project management and comprehension tool that has been specially designed for software development. The tool has been developed based on the concept of a project object model (POM). Maven can help users manage a project’s development, reporting and documentation from a central piece of information.

Maven can be extended via custom-built plugins or via core Maven plugins.

11. Git

Git is free open-source configuration management (SCM) software. It is designed to handle both small and large-scale projects. Features include branching and merging, staging areas and multiple workflow management.

12. PyCharm

PyCharm is an integrated development environment (IDEA) for Python developers. It comes equipped with features that help developers deal with large code bases, including code navigation, automatic refactoring, smart code completion, code inspections and immediate error highlighting.