Guide to Evaluating Tools for Agile DevOps

Apr 9, 2020, 5:53pm EDT
Top DevOps Tools that can transform your business evaluated by Inventive-IT

Overview

Without tools, it’s hard to automate. Without automation, DevOps is more dream than reality. Thus, tooling is a critical part of making the transition.

There are more important parts of DevOps than tools, but tools are very much necessary. Choosing the right tools is, therefore, critical to DevOps success.

There are a variety of tools that support a DevOps transformation, whether it’s using a tool at the bottom level of daily operation or tying together the many other tools into a complete operation.

This Whitepaper provides a summary of the use cases for the tools used in DevOps.

Planning & Collaboration Tools:

Scrum and Kanban are a form of Agile software methodologies. Agile software development is an approach under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customers and end users.

Image of Jira Tool Logo
JIRA is the tracker for teams planning and building great products. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity.

Image of Invision Tool Logo
For creating a rich interactive application prototyping.

Image of Confluence Tool Logo
Confluence is your team workspace where knowledge and collaboration meet to achieve great things.

Image of Slack Tool Logo
Keep conversations organised in Slack, the smart alternative to email.

SCM & Code Review Tools:

  • Software changes over time. This shouldn’t surprise anyone interested in DevOps. With experience in creating software comes the realization that an ability to track history and jump around to different versions of the source code is indispensable.

  • There are many options available for software version control. Because of its embrace of open source, distributed nature, high performance, and remarkable support for multiple workflows, Git has emerged as the de facto standard.
Image of Bitbucket Tool Logo
Image of Gerrit Review Tool Logo

Continuous Integration Tools:

  • A dedicated build server can trigger builds for every commit that gets pushed to the canonical repository.

  • This means that every time there’s an update to the source code, it’s integrated into a build that’s ready for automated testing, manual testing, acceptance testing, and possibly even immediate deployment to production.

  • Teams that work in isolation tend to have problems when they try to integrate. Continuous integration means integrating work early and often so issues get addressed as quickly and effectively as possible

Image of Bamboo Tool Logo
Image of Circleci Tool Logo

Continuous Deployment Tools:

Spinnaker was built to be multi cloud so there is a strong case for using it to deploy to cloud services like AWS and FCP but the way Kubernetes was built makes it a perfect fit for spinnaker.

Image of Spinakker Tool Logo

Pros

  • It provides deployment pipelH2ines, easy rollbacks and scaling (right from the
  • console)
  • Open Source

  • It integrates seamlessly with email, Slack, and Hipchat thus making pipeline notification a breeze

  • You get to use it for all types of Kubernetes resources not limited to deployments.

  • It supports Helm Charts

  • It handles blue/green and canary deployments and ships with support for any CI tool and cloud provider.

  • It will monitor your Kubernetes app’s (and cluster’s) health.

Cons

  • Only supports the Continuous Delivery (CD) phase of a DevOps cycle.

  • Normalized taxonomy does not apply across cloud providers. For example, an Amazon ECS cluster does not map to any core Spinnaker concept. So these need tobe set up separately, thus diminishing the value that Spinnaker can provide.

  • Cloud providers differ in how they deploy and manage applications, thus eventually users need to get down to individually understanding each provider.

  • Spinnaker does not support OpenStack.

  • Only available in Self-hosted and managed option. No Cloud version of Spinnaker.

  • steeper learning curve – Pipeline expression language uses a custom syntax, which entails a learning curve for users. Moreover, some string manipulation and other expression evaluation requires use of java code within the expression language. Nested expressions are not supported in Pipeline expression logic, this can be a limitation in some scenarios.

Continuous Deployment:

Octopus Deploy

DevOps teams use Octopus to automate even the most complicated deployments. Octopus comes with over 300+ deployment steps, and support for deployment patterns like Canary, Blue/Green and rolling deployments.

Image of Octopus Deploy Tool Logo

GitLab
GitLab’s Integrated CD solutions allows you to ship code with zero touch be it on one or one thousands server. deployments can be automated to multiple environments like staging and production, and the system just know what to do without being told - even for more advanced patterns like canary deployments

Image of Gitlab Tool Logo

Unit Test Framework tools:
  • Developers use unit test frameworks most frequently to write small tests with limited scope that execute extremely quickly.

  • This is primarily to drive fast feedback during the development process. Such tests are adept at catching regressions too.

  • These tools are beneficial for other types of tests as well and have useful features for selecting which tests run in which contexts.

  • Unit test frameworks exist for close to every language known.


Image of Jasmine Tool Logo
Image of Junit Tool Logo


Browser Automation Tools : Selenium

  • Browser automation tools are useful for testing as a user would, from end to end in the system via the user interface.

  • Such tests are usually the slowest of all automated tests. However, they have the greatest scope and are the most complete in the problems they can identify.

  • They are also more susceptible to false positives and are relatively hard to maintain for these reasons, they’re necessary but should be a minority of the automated tests written by a team.


Image of Selenium Tool Logo


Application Monitoring Tools:

identifying issues (performance, regression, or otherwise) and fixing them quickly as part of a team’s iteration.

Key things to consider:

  • Programming language support

  • Cloud support (Azure, AWS, Heroku, etc)

  • SaaS vs On-premise

  • Pricing

  • Ease of use

  • Support for Kubernetes Monitoring.

  • AI Power Analytics

  • Based on the above, Inventive-IT recommends:

Image of New Relic Tool Logo
Image of Dynatrace Tool Logo

Infrastructure Monitoring Tools:

The other side of the coin to application performance monitoring is infrastructure monitoring.

There are many, many tools for this, including SaaS solutions such as Prometheus and DataDog.
Image of Prometheus Tool Logo

Pros:

  • De-facto standard for Kubernetes data aggregation.

  • Great Visualization

  • Powerful query language support to

  • Open Source

Cons:

  • Need configuration. Not as easy to deploy as Data Dog.

Image of Datadog Tool Logo

Pros:

  • Easy setup

  • Powerful integrations like with New Relic to provide Application performance monitoring.

  • Great Visualization


Cons:

  • Cost: $15 per node per month.

Logs Monitoring Tools:

Analysing logs is a crucial part of the iterative improvement cycle and is a critical part of system troubleshooting, debugging, and security incident response.

Popular log analysis tools include:

Image of Splunk Tool Logo

Pros:

  • Integrates very well with APM products like New-Relic, Dynatrace.

  • Fast consolidations of logs to be able to search data and find insights.

Cons:

  • It’s a proprietary software with price tag. It is a bit costly.

  • Complexity of setting it up and maintaining it. It has relatively steep learning curve and can take time to get going properly and manage on an ongoing basis.

Image of Elx Tool Logo

Pros:

  • It’s an open source so it is free.

  • Integrates very well with APM products like New-Relic, Dynatrace.


Cons:

  • Hidden cost involve with infrastructure.

    ELK = Elasticsearch, Logstash & Kibana

  • Elasticsearch - a no sql database which uses Lucene search engine.

  • Logstash – It is a transportation pipeline used to populate Elasticsearch with data

  • Kibana – It is a dashboard working on top of Elasticsearch and provide data analysis through visualizations and dashboards.

In Conclusion

As you tell from reading this Whitepaper, there are a wide array of available tools that can be used for DevOps.

Inventive-IT offers free assessments to review your tech stack for DevOps to identify which tools would be best for your organization.

Please book your assessment with one of team members to see which tools will assist you in reaching your organizational goals.

Schedule your Assessment Today