A look at DevOps tools landscape

https://devup.co/a-look-at-devops-tools-landscape-7220099c6b81

Project Management (PM)

Project management tools are used to plan and manage tasks related to the project. In some cases these tools are also used to track bugs, change requests etc. There are various think camps trying to find out the best ways to manage projects and hence many of these tools are implemented based on their own ideologies, for example Agile, Kanban etc. You just need to find out the ideology that suits you best and then start with corresponding tool.
Here are few of the most common PM tools: JiraAsanaTaigaTrelloBasecampPivotal Tracker. If you’re looking for more, checkout this long list of PM tools.

Source Code Management (SCM)

SCM tools handle versioning of source code files and help developers collaborate easily over source code. Some of the most common names are GitHubGitLabBitBucketSubVersion. If you’re looking for more, checkout this ultimate list of SCM tools.

Continuous Integration (CI)

Once you have a stable source code versioning mechanism, you’d probably want to make sure the code is of good quality and can be deployed whenever required. This is, the software should work as intended at any instance. This is one of the Agile principles too. CI tools help you achieve this by automatically building and testing the source code from SCM and reporting the results.
Some of the most common tools in this category are JenkinsTravisCICircleCICodeShip. If you’re looking for more, check out this list.

Continuous Delivery (CD)

Even if you make sure the code is working as expected, you can’t deliver the source code to your customers/users. You need a mechanism to build the code into some kind of executable bundled with all the dependencies. This is where CD tools come in.
Common CD tools include AntMaven from Apache, GradleGruntnpm, and so on. You may note here that CD tools need to interact directly with the source code and hence these tools are language specific. Though there are language agnostic CD tools too.

Code Review

Code debt management and peer review are very important aspects of software development. Some of the famous tools in this category are SonarQubeCodeClimateBliss. You can find a comprehensive list of code review tools here.

Containerization

Till now we covered some of the conventional tools and techniques that are being followed for years if not decades. But recent shift in the way infrastructure is managed has led to several new tools and ideologies, most popular among them is containers. Containers help teams easily deploy, test, and manage their code. It is almost like assigning your application a separate room on a computer. With this, the dependency on infrastructure has gone down and the deployment process has become fast.
The way this has developed till now is that the moment you hear the word container, you think of Docker. But there are several other players in this field, prominent among them are rktLXD. There is even a standardization initiative to make sure these containers from different vendors play well with each other.

Automation

Earlier, as soon as we saw a repetitive task, we made sure there was a script triggered to do that task automatically. Now, with DevOps at center stage, the process remains the same, the tools have changed though. When your infrastructure is decentralized and cloud-based and you’re dealing with frequent deployments of largely identical services across largely identical servers, having a way to automate the configuration and maintenance of everything is a large boon.
Some of the most popular automation tools are AnsibleChef, and Puppet. You can read more on pros and cons of these tools here.

Orchestration

Orchestration is the automated arrangement, coordination, and management of computer systems, middleware and services. The goal of orchestration is not just to automatically execute a service, but also to streamline, optimize the processes for even greater gains in deployment velocity. There are several tools in this field like KubernetesCoreOSApache MesosDC/OS.
Most of these help you run containers at scale, i.e. without worrying about stuff like memory, interconnectivity, failed nodes, processing power etc.

Logging & Monitoring

Final components of the DevOps landscape that we’ll see in this post are logging.
Though sometimes ignored, Logging not only helps you keep a track of your software performance, it also helps you debug issues with great accuracy. While monitoring helps you check and make sure everything is up and running. Some of the well known logging and monitoring tools include LogstashFluentdTakipiNagios. Check out this list of logging tools here.

As we build Devup, a platform to integrate software development tools, we want to make sure our assumptions are correct. We’re running a short survey to find issues with current software development methodologies. Go ahead, fill it, it won’t take more than 2 minutes!

1 Comments

Thank You

Previous Post Next Post