Search

Top Devops Tools You Must Know

In the last decade for most of the enterprises, the term DevOps has transformed from just a buzzword to a way of working. The concept of DevOps originated in 2008 following a discussion on agile infrastructure by Patrick Debois and Andrew Clay Shafer. The idea started to gain momentum in 2009 after the first DevOpsDays in Belgium. What initially began as a practice to bring more efficiency in software infrastructure management, is now evolved into a continuous feedback model which has redefined every aspect of software development from requirement engineering to deployment. With this change, evolved new frameworks, practices and tools rooted in the core values of lean and agile. This paper discusses in detail the various tools that evolved during the DevOps movement. Readers would get a comprehensive understanding of what and where to apply these tools in their day to day DevOps journey.1. What is DevOps?DevOps is a culture where active collaboration between development, operations, and business teams are achieved. It’s not all about tools and DevOps in an organisation is to create value to end customer respecting human all team members. Tools are only aids to build this culture. DevOps increases organizations capability to deliver high-quality products or services at a swift pace. It automates all processes starting from build to deployment phase of an application. There are many tools available in the market to help us achieve this.2. What are the DevOps tools?DevOps tools are categorized into following categories:a. Collaboration Tools :DevOps teams rely on regular feedback and constant communication. Hence traditional email communication mechanism becomes less effective. Thus DevOps teams rely on more integrated collaboration suites that help in continuous communication and feedback loops. Some of these new generation collaboration tools include Slack, Teams, CA Flowdock etc.1. SlackSlack is a messaging tool for the teams providing a common place for all communications. We can set different channels for different kinds of work. Voice and video call options are also available with Slack. Atlassian and Slack have created a partnership and will be discontinuing other collaboration tools like Hipchat and Stride and will provide migration to Slack.Availability: Free version with limited features are available for users.For more details click here  2. CA FlowdockCA Flowdock is yet another collaboration tool from CA Technologies. It brings all conversations, chats, work items, etc to one place making it easier to prioritize work and solve problems.Availability: CA Flowdock is free for up to 5 member teams and free for non-profit organizations and student projects.Learn more about CA Flowdock here.     3. TeamsTeams is a unified communication platform by Microsoft. Teams combine workplace chats, video meetings, file storage, and application integration. The service also integrates with the company's existing Office 365 productivity suite and features extensions to integrate with non-Microsoft products and features.Availability: Teams is free for a small number of users.Learn more about Teams here.SL NoTool NameProsConsAvailability1.SlackIntuitiveSaaS productGood integration with other toolsThe video conferencing feature is not as great as its competitorsFreemium2.CA FlowdockEasy to configureIntegration with tools beyond CA tools is to be improvedFreemium for small users3.TeamOne stop shop -  Integrates file sharing, messaging, meetings, and other tools.Still early and could be a little buggyFreemium for small usersb. Top Application Life Management and Issue Tracking ToolsALM and planning tools help team members to plan their iterations by constantly getting feedback from the customers and prioritizing them. This helps to achieve visualisation of the works in hand, share plans, and track the progress. These tools make sure that all the team members are heard and addressed. Customer feedback is taken seriously and increases the responsiveness within the team. The tools enable teams to identify and track dependencies. It helps teams to plan their releases and sprints in a systematic way. Issue tracking tools enable features like auto triaging and assignment. Some of the tools are:1. JIRAJIRA is an issue tracking and project management tool from Atlassian. It could be used by small or large companies. Kanban and scrum boards which are simple and flexible are available with JIRA. It’s not free software.Availability: The pricing varies with the number of users.Learn more about JIRA here.  2. Mantis Bug TrackerMantis BT is an open source web-based issue tracker. It’s simple to use dashboard, helps to assign issues to developers and keep track of the issue progress. It is empowered with a built-in time tracking mechanism that helps the user to analyse the time spent by a developer on an issue.Availability: Paid version is available.For more details click here.3. TrelloTrello is a free project collaboration tool. It helps to manage projects with it’s simple and easy to work for boards. All tasks are defined as individual cards. These cards can be moved around helping the teams to visualise the work in progress.Click here for more information.4. CollabNet VersionOneCollabNet VersionOne is agile management  It helps in collaboration between teams at all levels to have a unified vision for software delivery.For more details about CollabNet VersionOne click here.  5. RallyRally is formerly known as CA Agile Central. It provides a platform to plan, track, prioritize work collaboratively. Thus improving visibility.Click here for more details.  6. OpsGenieOpsGenie is an incident management tool that helps to determine who should respond to events. It’s from Atlassian. It also helps in defining collaboration methods like video conferences etc. It’s free for small teams up to 5 users.Availability: Paid version is available which varies with the number of users and add on features.Learn more about OpsGenie here.7. Pivotal TrackerPivotal Tracker is an agile project management tool. Pivotal tracker helps to create public and private projects. Private projects are accessible only to the collaborators and it's the default setting. Public projects are available via URL in read-only mode. Edit permissions are given only to an invitee to the project. Open source software development process makes use of public projects.Availability: Pivotal Tracker for two projects,2GB of file storage, and a total of three collaborators. An upgrade from this could be only in the paid version.For more details click here.8. Azure BoardAzure Board is a tracking tool from Microsoft Azure. It helps to track and plan your projects via kanban boards, team dashboards etc. It supports all agile methodologies. Built-in analytics provide information about project progress and status.Availability: Azure Board is free for up to 5 users and unlimited stakeholders.Click here to know more about Azure Board.  9. TasktopTasktop is a stream management tool to integrate and synchronize development and operations tools together. It helps in tracking tasks across different task tracking systems.Availability: Tasktop is not a free tool but paid.Learn more about Tasktop here.10. KanboardKanboard is an open-source project used for project management. It is known for its super easy installations, great visualisation of the project tasks and drag and drops feature for project management.Availability: Free version of Kanboard is available.Click here for more details about Kanboard.SL NoTool NameProsConsAvailability1JIRAWidely  usedEnterprise-gradeLearning curveComplex to configurePaid2Mantis Bug TrackerFree and good communityPaid Hosting option availableNeed experts to configureGood for defects and simple projectsFree & open source3.TrelloEasy to useEasy to configureNot ideal for large teams /programsFreemium4CollabNet VersionOneWidely  usedEnterprise-gradeRich featuresLearning curveLess intuitivePai5RallyEnterprise-gradeEasy to set upLess intuitive and complex to learnPaid6OpsGenieRich features for issue tracking and on-call managementFeatures are limited to issue trackingFreemium7Pivotal TrackerRich feature set for trackingIntuitive and easy to use  Integrability with other toolsFreemium8Azure BoardIntegrates well with Microsoft toolchainLacks richness in feature set  in comparison with other enterprise-grade tools in the same segmentPaid9TasktopGood for Value Stream ManagementIntegrability with other toolsPaid10KanboardSimple to useLimited feature setNot ideal for large teams/programsFree & open sourcec. Cloud /iaas/paas/serverless toolsCloud along with Infrastructure as service and platform as service produces a platform for developing, testing and deployment of applications. Using such features DevOps reduces the much latency overload in acquiring and accessing assets. All private and public clouds provide support to DevOps tooling and thus reducing the cost spent for on-premises systems.Some of the platforms are1. AWSAmazon Web Services (AWS) is a cloud services platform, offering to compute power, database storage, content delivery, and other cloud-related functionalities.Availability: AWS is an on-demand cloud computing platform where we are charged on as you go basis.Learn more about AWS here.2. AWS LambdaLambda is a serverless computing platform from Amazon Web Services (AWS). It is a service that manages the computing resources and runs code in response to events.Availability: We are charged only on the computing time.Learn more about AWS Lambda here.3. AzureMicrosoft Azure is an enterprise-grade cloud computing service that helps in managing applications through Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS).Click here to learn more about Azure.4. Google Cloud PlatformGoogle Cloud Platform, offered by Google, is a suite of cloud computing services. Platform as service, Infrastructure as a service, and serverless computing are provided by GCP.Click here to learn more about Google Cloud Platform.5. IBM cloudIBM Cloud is a suite of cloud computing services from IBM. It also provides infrastructure as a service (IaaS) and platform as a service (PaaS).Availability: Lite version of IBM Cloud is free and allows one instance per plan.Click here to learn more about IBM Cloud.6. OpenStackOpenStack is a free and open-source software platform for cloud computing, mostly deployed as infrastructure-as-a-service, whereby all virtual servers and other resources are made available to customers. It’s written in python.Learn more about OpenStack here.7. Cloud FoundryCloud Foundry is an open source cloud platform that helps to develop cloud applications. It’s from Pivotal.Learn more about Cloud Foundry here.8. HerokuHeroku is a  platform as a service cloud environment. Thus help developers to work entirely on cloud.Availability: Free version is available with limited features.Learn more about Heroku here.9. OpenWhiskApache OpenWhisk is an open source, distributed Serverless platform. OpenWhisk manages the infrastructure, servers and scaling using Docker containers.Click here for more details about OpenWhisk.SL NoTool NameProsConsAvailability1.AWSEnterprise-ready providerComplex cost structurePay as you go2.AWS LambdaServerless computingReduced operational costsLimit on concurrent executions after which causing Denial Of ServiceCharged for computing time3.AzureIntegrates better with many Microsoft toolsServices provided still needs to be improvedPay for resources used4.Google Cloud PlatformScalableBetter load balancingServerless computingCurrently, GCP has fewer services and features compared to AWS or AzurePay as you go5.IBM CloudEasy setupConsistent performanceDifficulty in scalingFree Lite version6.OpenStackMassive scalabilityEasy implementationComplex configurationsFreemium7.Cloud FoundrySupports on-premises and multi-cloud deploymentGreat privacy and securityLess feature set compared to AWS or AzurePaid8.HerokuAdvanced Continuous Integration PlatformHighly scalableLess reconfigurabilityFreemium9.OpenWhiskOpen event provider systemServerless computingNot efficient for long running applicationsPaid as per computing timed. Top Source control managementSource control management as practice stores and tracks the application and infrastructure code. Even delivery pipelines for an application is nowadays stored in source code repositories. Some of the tools are GitHub, Bit Bucket, Subversion, Mercurial, Rational ClearCase.1. GitHubGitHub is a popular repository hosting service using Git. Git is a  free and open source system. It’s of the ease with which it performs branching and merge operations. It’s a distributed version control system that adds to its preferences.Click here for more details.  2. MercurialMercurial is a free distributed version control system. It is very easy to learn compared to Git but the branching feature of Git is more widely loved. Big and small projects could be handled in Mercurial.Click here for more details.3. BitbucketBitbucket is a repository hosting service from Atlassian. It could be used to store source code using  Mercurial or Git revision control systems. It’s free for teams with a maximum of 5 users. The paid version is available for bigger teams.Learn more about Bit Bucket here.4. Rational ClearCaseRational ClearCase is a source control management tool from IBM. It helps in the parallel development of software. Software artefacts whether it be source code or design documents etc could be managed by ClearCase. Enterprise version is available for ClearCase.Learn more about ClearCase here.5. SubversionSubversion is a version control system from Apache. It’s a free tool and open source.It helps to track down all the changes done to files and directories.Click here to learn more about Subversion.  6. JFrog ArtifactoryArtifactory is an artefact repository management tool from JFrog. It’s a paid tool. It primarily stores binary files which are typically the product of our build process.Click here to learn more about Artifactory.SL NoTool NameProsConsAvailability1.GitHubEasy to navigate user interfaceDifficult to learnFree2.MercurialCannot rewrite commit historySlower network operationsFree3.BitbucketSupports Git and MercurialDifficult integration with other toolsFreemium4Rational ClearCaseIntegrates with Microsoft Visual StudioNot suitable for projects with a big code baseDifficult to work withPaid5.SubversionEasy to learn even for non-technical usersSlower because of centralised version control systemFree6.ArtifactorySupports many languages and toolsEasy to useExpensivePaide. Top Package managersPackage managers build or package code with all metadatas like software’s name, purpose, version and all dependencies needed by the software to function correctly. It lessens the burden of manual installs especially in big enterprises where we need to install big software. Some of the tools available are1. MavenMaven is an open-source build automation tool from Apache used mainly for Java applications. Main features are it provides easy and uniform builds. It also keeps aside a parallel space for test code.Learn more details about Maven here.  2. GradleGradle is also an open source build tool from Apache. It is built on Groovy domain-specific language. It is more like a combination of Ant and Maven.Learn more about Gradle here . 3. MSBuildMicrosoft Build automation tool is a free and open source mainly for  C++ and .NET applications. Visual Studio makes use of MSBuild to build its applications.Learn more about MSBuild here.  SL NoTool NameProsConsAvailability1.MavenAll dependencies are downloaded automaticallyBetter suited for java projectsComplex to work withLarge learning curveFree2.GradleCan write build script ourselvesPoor integration with eclipseFree3.MSBuildGreat community supportMainly for .NET applications onlyFreef. Continuous IntegrationIn continuous integration, a code is checked into the source code repository whenever a developer finishes a requirement or user story. Continuous Integration tools enable teams to build software application automatically in a decided time. Thus reducing the time elapsed in a manual build. Some of the popular tools available are   1. GitLab CIGitLab CI is an integrated part of GitLab, GitLab offers a continuous integration service.Availability: A free version is available with limited features.Learn more about GitLab CI here.  2. SemaphoreSemaphore is the fastest hosted continuous integration and delivery solution as claimed by its developers.Availability: Open source projects can use Semaphore for free in its full capacity, free use for private projects is limited to 100 builds per month.Learn more about Semaphore here.3. Circle CICircle CI's continuous integration and delivery platform make it easy for teams of all sizes to rapidly build and release quality software at scale. It is built for Linux servers and automates build, test and deployment processes.Availability: Circle CI has a free version available for a single container.Click here for more details about Circle CI.4. JenkinsJenkins is an open-source continuous integration tool written in Java. Jenkins is a fork by the core developers of Hudson after a dispute with Oracle. Jenkins is the most widely used CI tool. Availability: Both free and enterprise versions are available.Click here for more details about Jenkins.5. HudsonHudson is a continuous integration tool written in Java that runs in a servlet container such as Apache Tomcat or GlassFish.Click here for more details about Hudson.   6. CruiseControlCruiseControl is an open source continuous integration tool and extensible framework for facilitating a continuous build process. Distributed under a BSD-style license.Learn more about CruiseControl here.  7. BambooBamboo is a continuous integration (CI) server produced by Atlassian. Bamboo ties automated builds, tests, and releases together in a single workflow.Availability: Licensed version is available at a starting price of $10.Learn more about Bamboo here.8. Team Foundation BuildTeam Foundation Build (TFB) is part of the Team Foundation system and provides the functionality of a public build lab. With TFB, build managers can synchronize sources and compile.Click here to know more about Team Foundation Build9. GumpApache Gump is an open-source continuous integration tool, designed with the overarching aim of ensuring that projects are compatible at both the API level and regarding.Learn more about Gump here.10. Travis CITravis CI is an open-source distributed continuous integration (CI) service used to build and test projects hosted on GitHub. Open source projects can freely avail Travis CI.Availability: Travis CI is free for first 100 builds but after which it is priced.Learn more about Travis CI here.11. TeamCityTeamCity is an open-source CI platform from Jet Brains. It’s known for easy user interface and support for Microsoft stack.Availability: Free version of TeamCity is available with the limited feature set.Click here to know more about TeamCity.  12. Puppet PipelinesPuppet Pipelines makes software delivery easy and unites silos of automation across Dev and Ops teams. It automates your application builds and deployments.The community edition of Puppet Pipelines is available free of cost for up to three users.Click here for more details about Puppet Pipelines.  SL NoTool NameProsConsAvailability1.GitLab CIEasy to configureSource control and continuous integration in one placeNeed GitLab integrationFreemium2.Semaphore CISimple and to the pointLess user base and community supportFreemium3.CircleCIEasy to useLess known in the community4.JenkinsUses plugin model to integrate with several DevOps toolsGreater community supportCumbersome groovy syntaxesFreemium5.HudsonJenkins forked from Hudson so has all basic features of JenkinsNo much development of new features taking placeLess community supportOpen source6.CruiseControlGoes well with .NET applicationsDifficult setupOpen source7.BambooA lot of tasks available as a built-in option and not as pluginsGoes well with Atlassian products like Bitbucket and JIRAOnly paid option availablePaid8.Team Foundation BuildWorks smoothly with .NET applicationsIntuitive easy to installInteroperability with other stacks is a challengePaid9.GumpIntegrates well with Apache tools like MavenLess plugin supportOpen source10.Travis CIEasy to set up and configureSupports most technological stacks using Node, Ruby, etcDoesn’t  support BitbucketFreemium11.TeamCityGreat user interfaceEasy to learnCommunity support is good but not greatFreemium12.Puppet PipelinesEasy setup and installationPlugin availabilityFreemiumg. Top Continuous Delivery and Deployment toolsContinuous deployment tools automate the delivery pipeline of application development, thus reducing the wastage of time caused by transfer between different teams like development and release teams. Few of the most popular deployment tools used by DevOps teams are1. ChefChef is a tool used to manage and develop infrastructure. It could be used for application deployment also. It is an open-source tool but with an enterprise version available. Chef uses a  domain-specific language based on ruby to define and configure infrastructure. Chef allows high flexibility and typically preferred by developers. It has a higher learning curve compared to other tools in this space. Chef is known to be the most preferred tool for large scale, complex enterprise systems.Availability: Chef is free for up to a limited number of nodes which is five nodes now after which it’s priced.Learn more about Chef here.2. PuppetPuppet is another configuration management tool to define infrastructure as code. Puppet is an enterprise-grade tool. Puppet uses a more declarative language and hence makes it easier to work with. It’s preferred by operations teams as it doesn’t require programming skills.Learn more about Puppet here.3. Octopus DeployOctopus Deploy is a release management server from XebiaLabs. It’s used mainly for .NET applications and windows services. It’s a paid deployment as a service.Click here for more about Octopus Deploy.4. SpinnakerSpinnaker is an open source free release platform that increases the number of good-quality releases. This platform helps in deployment across multi-cloud providers like AWS EC2, Google Kubernetes Engine etc.Learn more about Spinnaker here.  5. GoCDGoCD is a free and open source server that helps in continuous delivery. It helps in creating a continuous delivery pipeline in cloud environments like Docker, AWS etc.Learn more about GoCD here.  6. UrbanCode DeployUrbanCode Deploy or uDeploy is a tool used to automate application deployment from IBM. It’s a licensed version and available as hosted services also.Click here to know more about UrbanCode Deploy.  7. XebiaLabs XL DeployXL Deploy is a release automation tool for any environment. It is a licensed version by XebiaLabs.Click here to know more about XL Deploy.8. AnsibleAnsible is an open source configuration management tool and application deployment tool. In comparison with Chef, Ansible works with a decentralised agentless architecture and hence it’s easy to get started with Ansible.Availability: CLI based Ansible is free for no limit on nodes.Learn more about Ansible here.  9. SaltStackSaltStack is an open-source configuration management software written in Python. It enables teams to craft  "Infrastructure as Code".SaltStack in comparison with Ansible is quickly scalable but enforces teams to learn python.Learn more about SaltStack here.  SL NoTool NameProsConsAvailability1.ChefGreat documentation availableHard to learnNeed programming skillsFreemium2.PuppetProgramming skills are not a mustNot much suitable for applications where updates are frequentPaid3.Octopus DeployEasy configurationIntegrates smoothly with TeamCityA quick and flexible deployment pipelineLess community support especially for non-Microsoft applicationsPaid4.SpinnakerGreatly preferred for cloud-based deploymentsLess community supportOpen source5.GoCDBetter suitable for end-to-end Continuous delivery pipeline where great visualisation needed.Less cost efficientA Steep learning curve with a confusing user interfaceOpen source6.UrbanCode DeploySimple and easy to useSlower deploymentsPaid7.XL DeployA large number of plugins availableLesser visibility for the deployment processPaid8.AnsibleSimpler installationEasy to useGUI is not that greatNo support for windowsOpen source9.SaltStackQuickly scalableUnderdeveloped GUIOpen sourceh. Testing automationTesting automation tools are used in close proximity to continuous integration and deployment tools. It helps in performing repetitive tasks unable to perform by manual tests. The automated test gives a more clear picture of the health of the software product without any bias.1. Unit testingUnit testing tools help to test a single unit or component of the software. Thus detecting the errors earlier and fixing. And, Unit testing also helps in smooth integration.2. Integration testingIntegration testing tools help validate every integration that happens in the integration phase. Only successful build of the code move to the next stage.3. End-to-end testingIn end-to-end testing, the entire system or application is checked from start to finish. The tools generate the reports which can be used to verify whether the new change is causing  any unexpected behavior from the entire system4. Performance testingPerformance testing tools analyse the system in an expected workload. The tools measure the responsiveness of the system, scalability, and stability. Tools also provide details on where the system is failing and where the system needs improvement.5. Infrastructure testing and auditingInfrastructure testing plays a very important part as an error in the infrastructure code can even alter the production environment creating unseen repercussions. Ensuring the compliance of an organisation is an integral part of such tools keeping security in mind.i. Other Popular DevOps toolsSome of the popular tools used are1. SeleniumSelenium is a free and open source testing framework for web applications. It’s a suite of four tools Selenium WebDriver, Selenium RC or Remote   Selenium IDE And Selenium-Grid.Learn more about Selenium here.2. CucumberCucumber is an open source testing tool. It’s the best choice for behavior driven development popularly known as BDD as it tests business readable requirements. Free and enterprise version of Cucumber is available.Click here for more details about Cucumber.3. InSpecInSpec is a free and open source testing framework from Chef. InSpec tests infrastructure. It’s also a compliance framework.Click here to know more about InSpec.  4. KarmaKarma is a free test runner created for testing, applications made with Angular CLI. It’s from the AngularJS team.Learn more about Karma here.5. Jasmine  Jasmine is an open source testing framework. It is used mainly for JavaScript applications. It’s used for behavior driven development also.Click here to learn more about Jasmine.6. UFTUFT or Unified Functional Testing is a test automation tool for web, desktop, mobile   Micro Focus. There is a 60-day free trial version available but after which it’s not a free tool.Learn more about UFT here.  7. SoapUISoapUI is an open-source testing tool for web applications. It’s the market leader in API testing. It’s a licensed tool.Click here to know more about Soap UI.  8. JMeterJMeter is an open source load testing tool from Apache. It helps in analyzing the performance of services mainly for web applications. It’s a free test suite.Learn more about JMeter here. SL NoTool NameProsConsAvailability1.SeleniumWide range of languages supportedEasy integration with Jenkins, MavenDifficult to useNo support officiallyOpen source2.CucumberGreat documentationSupports Behavior-driven developmentSlow compared to other testing toolsOpen source3.InSpecHighly flexible and can be used cross any Infra As code framework.Need to know the scripting languageOpen source4.KarmaEasy debuggingLesser user baseOpen source5.JasmineDifficult to debugEasy to set up and useOpen source6.UFTEasily integrated with continuous integration DevOps toolsLess compatibility with different operating systems ExpensivePaid7.SoapUIUser-friendlyPlugin availability is lessOpen source8.JMeterEasy installation Great user-friendly interfaceHigher learning curve Doesn’t support javascriptOpen source9. DockerDocker is a platform for working with containers, from Docker, Inc.Docker is an open source and available as free and enterprise version. Containers help to develop applications and package it with its dependencies and libraries, thus ensuring the application runs in any environment. Docker containers are like virtual machines but share the same OS resources like file system etc.It has less overhead unlike VM 's. The building block of a container is an image which is the executable package including libraries, dependencies, environment variables etc needed to run the application. Running instance of an image is a container.Learn more about Docker here.10. KubernetesKubernetes is an open source production grade container orchestration tool. It helps in managing multiple containers in an application. Kubernetes is the market leader in this category. It is often compared with Docker Swarm which is the native clustering method for docker.  Click here to know more about Kubernetes.  11. OpenShiftOpenShift from Red Hat is a group of containerization software. OpenShift Container Platform is the major software in the group that provides a platform as a service built around Docker containers. These docker containers are managed for experimenting by an individual a free version is available for one project.Learn more about OpenShift here.  SL NoTool NameProsConsAvailability1.DockerContainers are lightweight compared to virtual machinesSecurity is a concernOpen source2.KubernetesHighly scalableWork better with CI/CD pipelinesLess user-friendlyOpen source3.OpenShiftGreat community supportOnly supports Red Hat Enterprise LinuxFreemiumj. Release orchestrationRelease orchestration tools are used to achieve automation of the application release process. Some of the popular tools are Xebialabs XL release, Plutora Release, AWS Codepipeline, CACD Director, OpenMake, Spinnaker, HashiCorp Vault, SonarQube, BlackDuck, Signal Sciences, Checkmarx SAST.k. ContainerologyContainerology tools help to run an application on the virtual environment as a package with all dependencies. It avoids the situation “it doesn’t work in my system”.Some of the tools are:l. Monitoring ToolsMonitoring tools help to pinpoint and track issues and verify the health of the system. This enables fast recovery of the system with minimum or no human interventions.Popular tools are:1. PrometheusPrometheus is an open source monitoring tool from SoundCloud.Its mainly used with systems using microservices as it has a multi-dimensional data collection feature. It uses a flexible query language PromQL.All Prometheus server is standalone and doesn’t depend on network storage helping us to understand the defect especially during outages. Collected data through the multi-dimensional collection feature may not be too detailed and having complete information. So it is not suitable for systems where 100% accuracy is required.Click here for more details about Prometheus.2. SplunkSplunk as a monitoring tool is used across application management, security, compliance, web analytics etc. Splunk tools listen and store data, index the same and correlate the captured real-time data in a searchable repository from which it can generate useful graphs, reports, alerts, and various other visualizations. One can create and configure relevant dashboards based on various visualizations/ graphs.  Learn more about Splunk here.3. NagiosNagios is an open source and free tool to monitor services, applications and infrastructure. It’s known for its auto-discovery feature. Its user interface is a bit difficult for beginnersLearn more about Nagios here.  4. ZabbixSimilar to Nagios, Zabbix is an enterprise open source monitoring solution. Compared to Nagios, Zabbix is user-friendly and is comparatively easy to configure. The main disadvantage is that it doesn’t support plugins.Learn more about Zabbix here.5. ZenossZenoss is a free, open-source tool used for services and network monitoring. It is written in Python language.Click here to know more about Zenoss.6. ELK Stack"ELK" is the acronym for three free open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine based on Java. Logstash is a server‑side data processing platform with the ability to clean, transform data and send it to Elasticsearch.Kibana is a virtualization tool that helps to visualize data with charts and graphs in Elasticsearch.The Elastic Stack is the next evolution of the ELK Stack.Learn more about ELK Stack here.SL NoTool NameProsConsAvailability1.PrometheusEasy to useEasy integration with other DevOps toolsBad user interfaceOpen source2.NagiosNumber of plugins available in the marketDifficult configurations needed to make the system stableOpen source3.ZabbixEasy configuration based on a web-based user interfaceNon-availability of pluginsOpen source4.ZenossGreat community supportLimitation on the number of devices monitoredOpen source5.ELK StackEasy to installHighly customisableDifficult to configureOpen source6SplunkEasy to installUser-friendlyEasy to configure  simple graphsFor complex configurations, the learning curve is a bit steepPaidm. AnalyticsAnalytics tools give a clear picture of what is happening in the team, be it code development or team interaction, code coverage and efficiency etc. Some tools used are XebiaLabs XL Impact,New Relic,Dynatrace,Datadog,AppDynamics, ElasticSearch .Bonus Information3. Why is DevOps needed?DevOps helps to remove silos in organisations and enable the creation of cross-functional teams, thus reducing reliance on any one person or team during the delivery process. Frequent communication between teams improves the confidence and efficiency of the team members. Through automation, DevOps team increase their productivity making satisfied customers. According to State of DevOps report 2016 “Teams that practice DevOps deploy 30x more frequently, have 60x fewer failures, and recover 160x faster“. It also provides better work environments with increased trust, better management of issues reducing unplanned works.4. How to implement DevOps?The “DevOps Handbook” defines the “Three Ways: The principles of underpinning DevOps” as a way to implement DevOps in large enterprises. In this session, we will detail these three ways and three core pillars.The First Way: Systems ThinkingThe First Way emphasizes the need for global optimisation as opposed to local optimisation, hence the focus is on optimising all business value streams enabled by IT.The Second Way: Amplify feedback loopsThe Second Way is about discovering and injecting right feedback loops so that necessary corrections can be made before it’s too late.The Third Way: Culture of Experimentation and learningThe third way is all about creating the right culture that fosters two things, continual experimentation and learning from failures. It emphasises the understanding that repetition and practice make teams perfect.While the three ways focus on the key principles, we also have three pillars which are keys to any successful DevOps adoption.The three pillars of any DevOps adoption are,Culture and PeopleTools and TechnologyProcesses and practices4.1 Important DevOps practicesa. Continuous IntegrationContinuous integration is a software engineering practice where software development team members frequently merge and build their code changes. The key benefit is to detect and fix code merge conflicts and integration bugs in the early stages of software development. Hence reducing the cost to detect and fix the issues.b. Continuous DeliveryContinuous delivery is a software engineering practice in which changes are automatically built, tested, and made release ready to production. In order to get into a continuous delivery state, it is very crucial to define a test strategy. The main goal is to identify functional and non-functional defects at a much earlier stage thus reducing the cost to fix defects. It also enables teams to come up with working software as defined in the agile manifesto. Continuous delivery as a practice depends on continuous integration and test automation. Hence it is crucial that teams need to ensure that they practice continuous integration along with test automation religiously, to effectively practice continuous delivery.c. Continuous DeploymentContinuous deployment is a software engineering practice in which codes committed by the developers are automatically built, tested and deployed to production. Continuous deployment as a practice, require that teams have already adopted continuous integration and continuous delivery approach. The primary advantage of this practice is reducing time-to-market and early feedback from users.d. Continuous TestingContinuous Testing can be defined as a software testing practice that involves a process of testing early, testing often and test automation. The primary goal of Continuous Testing is to shift left the test phase as much as possible to identify defects and reduce the cost of fixing.e. MicroservicesMicroservices architecture helps to create an application as a set of small services independent of each other. Any language could be used to create microservices and typically an HTTP based API is used to interact between services. Microservices as a design approach helps to achieve fewer risk deployments and enables continuous delivery.f. Infrastructure as codeInfrastructure as a code is an engineering practice in which infrastructure is developed and managed through code. Thus creating a consistent, reproducible and versioned infrastructure. Since the infrastructure is implemented as the code it’s easy for the team members to update and change it. Infrastructure as a code no more considers scaling as a major problem.g. Policy as codePolicy as a code is a software engineering practice where compliance rules or policies of the organisation could be monitored and verified. Policy as code enables organizations to enforce the compliance rules more strictly and helps to bring the non-compliant resource into compliance mode. This practice gained importance during the DevSecOps movement.h. Continuous Monitoring and LoggingMonitoring and logging as a best practice to help organizations to analyse the products’ end user experience. This helps the software teams to get to know about the root cause of the defects and latencies in the software development process. More transparency into the actions performed by the team members causes increased responsibility among the teams causing increased performance.i. Communication and collaborationEffective communication and collaboration are one of the key values emphasised by DevOps.Devops tools in the field of communication and collaborations bring together collective responsibility for the products delivered.   5. How to choose the right DevOps tools?Today the DevOps market is overcrowded with tools across different stages of software development life cycle. As enterprises, it's extremely crucial to select the right tools in order to get maximum benefit. Saying so choosing the right tool is an extremely difficult and time-consuming process given the spectrum of tools available today. Hence enterprises should have a five-point strategy towards deciding the right tools. Five point strategy would include dimensions likeAbility to integrateScalabilitySecurityTechnical know howReliability5.1. Ability to integrateThe ability to integrate is extremely crucial and is one of the fundamental requirements while checking out tools. Certain tools integrate smoothly with a particular technology stack in comparison with others. Hence it is vital for the DevOps architect to compare different tools on the basis of integration ability and ensure that tool that is been selected seamlessly integrates with the team’s technology stack. Another aspect that needs to be considered is how a particular tool integrates with other tools that are selected in the ecosystem. For eg., you would want your continuous integration system to constantly talk to the reporting system and alert prediction system in a smooth way. Hence integration between tools also becomes a very important factor while choosing tools.5.2. ScalabilityScalability is the second most important factor in choosing the right tools. Based on the need for scalability an enterprise might choose an enterprise version over a community version. Scalability also is a key factor why certain companies go for SaaS-based products. SaaS-based products are easily scalable and hence without any overhead, it can be adopted across large enterprises.5.3. SecurityThese days a lot of enterprises are emphasising on the need for security in the DevOps tooling space. Hence enterprise versions by various tooling companies have taken special care towards addressing these security-related issues. Thus enterprise versions are comparatively more preferred in comparison with that of open source solutions. Saying so this doesn't mean that all open source DevOps tools have security vulnerabilities. Certain open source DevOps tools fair much better than available enterprise versions5.4. Technical know howThis people dimension is one of the factors that is typically overlooked by enterprises. Knowing the skill levels and capability of team members is a key towards choosing the right tool. Often the tools available in the market wouldn't work out of the box and would need a substantial level of customisation to smoothly integrate with existing systems and workflows. Also, certain tools require a certain specific skill set towards configuration and customisation. Typical eg. is Chef, which is chosen by developers who are comfortable in ruby language whereas Puppet is preferred by system admins as it does not require much of programming skills.5.5. ReliabilityLast but not the least, reliability is extremely crucial for any successful tool adoption. Most of the tools available in the market, both enterprise and open source needs to be checked using this quality wheel. Tools should be reliable even during large scale and complex operational conditions. ConclusionIn this paper, we discussed the what, why, and how of DevOps.We also deep dived into various tool categories and tools available across the spectrum in today's DevOps market. Tools are definitely the key ingredients in successful DevOps adoption but saying so a lot of companies only invest in tool part without focusing on cultural and people dimensions. In order for tools to bear fruit its vital that the people operating and analysing the tools/data understand and realise the true spirit of DevOps. To conclude, would like to resonate with the wise words “yes, we need all the tools that can help us, but just tools will not help us get there!”.
Top Devops Tools You Must Know
Anju
Rated 4.5/5 based on 6 customer reviews
Anju

Anju M Dominic

Blog Author

Anju M Dominic is the Principal consultant and co-founder of QuadraLogics, a boutique consulting firm. She is also a professional corporate trainer and passionate conference speaker who specialises in DevOps practices and tools. In her tenure in the industry, she specialised in designing and developing applications in  Pharma and Telecom domains.

Posts by Anju M Dominic

Top Devops Tools You Must Know

In the last decade for most of the enterprises, the term DevOps has transformed from just a buzzword to a way of working. The concept of DevOps originated in 2008 following a discussion on agile infrastructure by Patrick Debois and Andrew Clay Shafer. The idea started to gain momentum in 2009 after the first DevOpsDays in Belgium. What initially began as a practice to bring more efficiency in software infrastructure management, is now evolved into a continuous feedback model which has redefined every aspect of software development from requirement engineering to deployment. With this change, evolved new frameworks, practices and tools rooted in the core values of lean and agile. This paper discusses in detail the various tools that evolved during the DevOps movement. Readers would get a comprehensive understanding of what and where to apply these tools in their day to day DevOps journey.1. What is DevOps?DevOps is a culture where active collaboration between development, operations, and business teams are achieved. It’s not all about tools and DevOps in an organisation is to create value to end customer respecting human all team members. Tools are only aids to build this culture. DevOps increases organizations capability to deliver high-quality products or services at a swift pace. It automates all processes starting from build to deployment phase of an application. There are many tools available in the market to help us achieve this.2. What are the DevOps tools?DevOps tools are categorized into following categories:a. Collaboration Tools :DevOps teams rely on regular feedback and constant communication. Hence traditional email communication mechanism becomes less effective. Thus DevOps teams rely on more integrated collaboration suites that help in continuous communication and feedback loops. Some of these new generation collaboration tools include Slack, Teams, CA Flowdock etc.1. SlackSlack is a messaging tool for the teams providing a common place for all communications. We can set different channels for different kinds of work. Voice and video call options are also available with Slack. Atlassian and Slack have created a partnership and will be discontinuing other collaboration tools like Hipchat and Stride and will provide migration to Slack.Availability: Free version with limited features are available for users.For more details click here  2. CA FlowdockCA Flowdock is yet another collaboration tool from CA Technologies. It brings all conversations, chats, work items, etc to one place making it easier to prioritize work and solve problems.Availability: CA Flowdock is free for up to 5 member teams and free for non-profit organizations and student projects.Learn more about CA Flowdock here.     3. TeamsTeams is a unified communication platform by Microsoft. Teams combine workplace chats, video meetings, file storage, and application integration. The service also integrates with the company's existing Office 365 productivity suite and features extensions to integrate with non-Microsoft products and features.Availability: Teams is free for a small number of users.Learn more about Teams here.SL NoTool NameProsConsAvailability1.SlackIntuitiveSaaS productGood integration with other toolsThe video conferencing feature is not as great as its competitorsFreemium2.CA FlowdockEasy to configureIntegration with tools beyond CA tools is to be improvedFreemium for small users3.TeamOne stop shop -  Integrates file sharing, messaging, meetings, and other tools.Still early and could be a little buggyFreemium for small usersb. Top Application Life Management and Issue Tracking ToolsALM and planning tools help team members to plan their iterations by constantly getting feedback from the customers and prioritizing them. This helps to achieve visualisation of the works in hand, share plans, and track the progress. These tools make sure that all the team members are heard and addressed. Customer feedback is taken seriously and increases the responsiveness within the team. The tools enable teams to identify and track dependencies. It helps teams to plan their releases and sprints in a systematic way. Issue tracking tools enable features like auto triaging and assignment. Some of the tools are:1. JIRAJIRA is an issue tracking and project management tool from Atlassian. It could be used by small or large companies. Kanban and scrum boards which are simple and flexible are available with JIRA. It’s not free software.Availability: The pricing varies with the number of users.Learn more about JIRA here.  2. Mantis Bug TrackerMantis BT is an open source web-based issue tracker. It’s simple to use dashboard, helps to assign issues to developers and keep track of the issue progress. It is empowered with a built-in time tracking mechanism that helps the user to analyse the time spent by a developer on an issue.Availability: Paid version is available.For more details click here.3. TrelloTrello is a free project collaboration tool. It helps to manage projects with it’s simple and easy to work for boards. All tasks are defined as individual cards. These cards can be moved around helping the teams to visualise the work in progress.Click here for more information.4. CollabNet VersionOneCollabNet VersionOne is agile management  It helps in collaboration between teams at all levels to have a unified vision for software delivery.For more details about CollabNet VersionOne click here.  5. RallyRally is formerly known as CA Agile Central. It provides a platform to plan, track, prioritize work collaboratively. Thus improving visibility.Click here for more details.  6. OpsGenieOpsGenie is an incident management tool that helps to determine who should respond to events. It’s from Atlassian. It also helps in defining collaboration methods like video conferences etc. It’s free for small teams up to 5 users.Availability: Paid version is available which varies with the number of users and add on features.Learn more about OpsGenie here.7. Pivotal TrackerPivotal Tracker is an agile project management tool. Pivotal tracker helps to create public and private projects. Private projects are accessible only to the collaborators and it's the default setting. Public projects are available via URL in read-only mode. Edit permissions are given only to an invitee to the project. Open source software development process makes use of public projects.Availability: Pivotal Tracker for two projects,2GB of file storage, and a total of three collaborators. An upgrade from this could be only in the paid version.For more details click here.8. Azure BoardAzure Board is a tracking tool from Microsoft Azure. It helps to track and plan your projects via kanban boards, team dashboards etc. It supports all agile methodologies. Built-in analytics provide information about project progress and status.Availability: Azure Board is free for up to 5 users and unlimited stakeholders.Click here to know more about Azure Board.  9. TasktopTasktop is a stream management tool to integrate and synchronize development and operations tools together. It helps in tracking tasks across different task tracking systems.Availability: Tasktop is not a free tool but paid.Learn more about Tasktop here.10. KanboardKanboard is an open-source project used for project management. It is known for its super easy installations, great visualisation of the project tasks and drag and drops feature for project management.Availability: Free version of Kanboard is available.Click here for more details about Kanboard.SL NoTool NameProsConsAvailability1JIRAWidely  usedEnterprise-gradeLearning curveComplex to configurePaid2Mantis Bug TrackerFree and good communityPaid Hosting option availableNeed experts to configureGood for defects and simple projectsFree & open source3.TrelloEasy to useEasy to configureNot ideal for large teams /programsFreemium4CollabNet VersionOneWidely  usedEnterprise-gradeRich featuresLearning curveLess intuitivePai5RallyEnterprise-gradeEasy to set upLess intuitive and complex to learnPaid6OpsGenieRich features for issue tracking and on-call managementFeatures are limited to issue trackingFreemium7Pivotal TrackerRich feature set for trackingIntuitive and easy to use  Integrability with other toolsFreemium8Azure BoardIntegrates well with Microsoft toolchainLacks richness in feature set  in comparison with other enterprise-grade tools in the same segmentPaid9TasktopGood for Value Stream ManagementIntegrability with other toolsPaid10KanboardSimple to useLimited feature setNot ideal for large teams/programsFree & open sourcec. Cloud /iaas/paas/serverless toolsCloud along with Infrastructure as service and platform as service produces a platform for developing, testing and deployment of applications. Using such features DevOps reduces the much latency overload in acquiring and accessing assets. All private and public clouds provide support to DevOps tooling and thus reducing the cost spent for on-premises systems.Some of the platforms are1. AWSAmazon Web Services (AWS) is a cloud services platform, offering to compute power, database storage, content delivery, and other cloud-related functionalities.Availability: AWS is an on-demand cloud computing platform where we are charged on as you go basis.Learn more about AWS here.2. AWS LambdaLambda is a serverless computing platform from Amazon Web Services (AWS). It is a service that manages the computing resources and runs code in response to events.Availability: We are charged only on the computing time.Learn more about AWS Lambda here.3. AzureMicrosoft Azure is an enterprise-grade cloud computing service that helps in managing applications through Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS).Click here to learn more about Azure.4. Google Cloud PlatformGoogle Cloud Platform, offered by Google, is a suite of cloud computing services. Platform as service, Infrastructure as a service, and serverless computing are provided by GCP.Click here to learn more about Google Cloud Platform.5. IBM cloudIBM Cloud is a suite of cloud computing services from IBM. It also provides infrastructure as a service (IaaS) and platform as a service (PaaS).Availability: Lite version of IBM Cloud is free and allows one instance per plan.Click here to learn more about IBM Cloud.6. OpenStackOpenStack is a free and open-source software platform for cloud computing, mostly deployed as infrastructure-as-a-service, whereby all virtual servers and other resources are made available to customers. It’s written in python.Learn more about OpenStack here.7. Cloud FoundryCloud Foundry is an open source cloud platform that helps to develop cloud applications. It’s from Pivotal.Learn more about Cloud Foundry here.8. HerokuHeroku is a  platform as a service cloud environment. Thus help developers to work entirely on cloud.Availability: Free version is available with limited features.Learn more about Heroku here.9. OpenWhiskApache OpenWhisk is an open source, distributed Serverless platform. OpenWhisk manages the infrastructure, servers and scaling using Docker containers.Click here for more details about OpenWhisk.SL NoTool NameProsConsAvailability1.AWSEnterprise-ready providerComplex cost structurePay as you go2.AWS LambdaServerless computingReduced operational costsLimit on concurrent executions after which causing Denial Of ServiceCharged for computing time3.AzureIntegrates better with many Microsoft toolsServices provided still needs to be improvedPay for resources used4.Google Cloud PlatformScalableBetter load balancingServerless computingCurrently, GCP has fewer services and features compared to AWS or AzurePay as you go5.IBM CloudEasy setupConsistent performanceDifficulty in scalingFree Lite version6.OpenStackMassive scalabilityEasy implementationComplex configurationsFreemium7.Cloud FoundrySupports on-premises and multi-cloud deploymentGreat privacy and securityLess feature set compared to AWS or AzurePaid8.HerokuAdvanced Continuous Integration PlatformHighly scalableLess reconfigurabilityFreemium9.OpenWhiskOpen event provider systemServerless computingNot efficient for long running applicationsPaid as per computing timed. Top Source control managementSource control management as practice stores and tracks the application and infrastructure code. Even delivery pipelines for an application is nowadays stored in source code repositories. Some of the tools are GitHub, Bit Bucket, Subversion, Mercurial, Rational ClearCase.1. GitHubGitHub is a popular repository hosting service using Git. Git is a  free and open source system. It’s of the ease with which it performs branching and merge operations. It’s a distributed version control system that adds to its preferences.Click here for more details.  2. MercurialMercurial is a free distributed version control system. It is very easy to learn compared to Git but the branching feature of Git is more widely loved. Big and small projects could be handled in Mercurial.Click here for more details.3. BitbucketBitbucket is a repository hosting service from Atlassian. It could be used to store source code using  Mercurial or Git revision control systems. It’s free for teams with a maximum of 5 users. The paid version is available for bigger teams.Learn more about Bit Bucket here.4. Rational ClearCaseRational ClearCase is a source control management tool from IBM. It helps in the parallel development of software. Software artefacts whether it be source code or design documents etc could be managed by ClearCase. Enterprise version is available for ClearCase.Learn more about ClearCase here.5. SubversionSubversion is a version control system from Apache. It’s a free tool and open source.It helps to track down all the changes done to files and directories.Click here to learn more about Subversion.  6. JFrog ArtifactoryArtifactory is an artefact repository management tool from JFrog. It’s a paid tool. It primarily stores binary files which are typically the product of our build process.Click here to learn more about Artifactory.SL NoTool NameProsConsAvailability1.GitHubEasy to navigate user interfaceDifficult to learnFree2.MercurialCannot rewrite commit historySlower network operationsFree3.BitbucketSupports Git and MercurialDifficult integration with other toolsFreemium4Rational ClearCaseIntegrates with Microsoft Visual StudioNot suitable for projects with a big code baseDifficult to work withPaid5.SubversionEasy to learn even for non-technical usersSlower because of centralised version control systemFree6.ArtifactorySupports many languages and toolsEasy to useExpensivePaide. Top Package managersPackage managers build or package code with all metadatas like software’s name, purpose, version and all dependencies needed by the software to function correctly. It lessens the burden of manual installs especially in big enterprises where we need to install big software. Some of the tools available are1. MavenMaven is an open-source build automation tool from Apache used mainly for Java applications. Main features are it provides easy and uniform builds. It also keeps aside a parallel space for test code.Learn more details about Maven here.  2. GradleGradle is also an open source build tool from Apache. It is built on Groovy domain-specific language. It is more like a combination of Ant and Maven.Learn more about Gradle here . 3. MSBuildMicrosoft Build automation tool is a free and open source mainly for  C++ and .NET applications. Visual Studio makes use of MSBuild to build its applications.Learn more about MSBuild here.  SL NoTool NameProsConsAvailability1.MavenAll dependencies are downloaded automaticallyBetter suited for java projectsComplex to work withLarge learning curveFree2.GradleCan write build script ourselvesPoor integration with eclipseFree3.MSBuildGreat community supportMainly for .NET applications onlyFreef. Continuous IntegrationIn continuous integration, a code is checked into the source code repository whenever a developer finishes a requirement or user story. Continuous Integration tools enable teams to build software application automatically in a decided time. Thus reducing the time elapsed in a manual build. Some of the popular tools available are   1. GitLab CIGitLab CI is an integrated part of GitLab, GitLab offers a continuous integration service.Availability: A free version is available with limited features.Learn more about GitLab CI here.  2. SemaphoreSemaphore is the fastest hosted continuous integration and delivery solution as claimed by its developers.Availability: Open source projects can use Semaphore for free in its full capacity, free use for private projects is limited to 100 builds per month.Learn more about Semaphore here.3. Circle CICircle CI's continuous integration and delivery platform make it easy for teams of all sizes to rapidly build and release quality software at scale. It is built for Linux servers and automates build, test and deployment processes.Availability: Circle CI has a free version available for a single container.Click here for more details about Circle CI.4. JenkinsJenkins is an open-source continuous integration tool written in Java. Jenkins is a fork by the core developers of Hudson after a dispute with Oracle. Jenkins is the most widely used CI tool. Availability: Both free and enterprise versions are available.Click here for more details about Jenkins.5. HudsonHudson is a continuous integration tool written in Java that runs in a servlet container such as Apache Tomcat or GlassFish.Click here for more details about Hudson.   6. CruiseControlCruiseControl is an open source continuous integration tool and extensible framework for facilitating a continuous build process. Distributed under a BSD-style license.Learn more about CruiseControl here.  7. BambooBamboo is a continuous integration (CI) server produced by Atlassian. Bamboo ties automated builds, tests, and releases together in a single workflow.Availability: Licensed version is available at a starting price of $10.Learn more about Bamboo here.8. Team Foundation BuildTeam Foundation Build (TFB) is part of the Team Foundation system and provides the functionality of a public build lab. With TFB, build managers can synchronize sources and compile.Click here to know more about Team Foundation Build9. GumpApache Gump is an open-source continuous integration tool, designed with the overarching aim of ensuring that projects are compatible at both the API level and regarding.Learn more about Gump here.10. Travis CITravis CI is an open-source distributed continuous integration (CI) service used to build and test projects hosted on GitHub. Open source projects can freely avail Travis CI.Availability: Travis CI is free for first 100 builds but after which it is priced.Learn more about Travis CI here.11. TeamCityTeamCity is an open-source CI platform from Jet Brains. It’s known for easy user interface and support for Microsoft stack.Availability: Free version of TeamCity is available with the limited feature set.Click here to know more about TeamCity.  12. Puppet PipelinesPuppet Pipelines makes software delivery easy and unites silos of automation across Dev and Ops teams. It automates your application builds and deployments.The community edition of Puppet Pipelines is available free of cost for up to three users.Click here for more details about Puppet Pipelines.  SL NoTool NameProsConsAvailability1.GitLab CIEasy to configureSource control and continuous integration in one placeNeed GitLab integrationFreemium2.Semaphore CISimple and to the pointLess user base and community supportFreemium3.CircleCIEasy to useLess known in the community4.JenkinsUses plugin model to integrate with several DevOps toolsGreater community supportCumbersome groovy syntaxesFreemium5.HudsonJenkins forked from Hudson so has all basic features of JenkinsNo much development of new features taking placeLess community supportOpen source6.CruiseControlGoes well with .NET applicationsDifficult setupOpen source7.BambooA lot of tasks available as a built-in option and not as pluginsGoes well with Atlassian products like Bitbucket and JIRAOnly paid option availablePaid8.Team Foundation BuildWorks smoothly with .NET applicationsIntuitive easy to installInteroperability with other stacks is a challengePaid9.GumpIntegrates well with Apache tools like MavenLess plugin supportOpen source10.Travis CIEasy to set up and configureSupports most technological stacks using Node, Ruby, etcDoesn’t  support BitbucketFreemium11.TeamCityGreat user interfaceEasy to learnCommunity support is good but not greatFreemium12.Puppet PipelinesEasy setup and installationPlugin availabilityFreemiumg. Top Continuous Delivery and Deployment toolsContinuous deployment tools automate the delivery pipeline of application development, thus reducing the wastage of time caused by transfer between different teams like development and release teams. Few of the most popular deployment tools used by DevOps teams are1. ChefChef is a tool used to manage and develop infrastructure. It could be used for application deployment also. It is an open-source tool but with an enterprise version available. Chef uses a  domain-specific language based on ruby to define and configure infrastructure. Chef allows high flexibility and typically preferred by developers. It has a higher learning curve compared to other tools in this space. Chef is known to be the most preferred tool for large scale, complex enterprise systems.Availability: Chef is free for up to a limited number of nodes which is five nodes now after which it’s priced.Learn more about Chef here.2. PuppetPuppet is another configuration management tool to define infrastructure as code. Puppet is an enterprise-grade tool. Puppet uses a more declarative language and hence makes it easier to work with. It’s preferred by operations teams as it doesn’t require programming skills.Learn more about Puppet here.3. Octopus DeployOctopus Deploy is a release management server from XebiaLabs. It’s used mainly for .NET applications and windows services. It’s a paid deployment as a service.Click here for more about Octopus Deploy.4. SpinnakerSpinnaker is an open source free release platform that increases the number of good-quality releases. This platform helps in deployment across multi-cloud providers like AWS EC2, Google Kubernetes Engine etc.Learn more about Spinnaker here.  5. GoCDGoCD is a free and open source server that helps in continuous delivery. It helps in creating a continuous delivery pipeline in cloud environments like Docker, AWS etc.Learn more about GoCD here.  6. UrbanCode DeployUrbanCode Deploy or uDeploy is a tool used to automate application deployment from IBM. It’s a licensed version and available as hosted services also.Click here to know more about UrbanCode Deploy.  7. XebiaLabs XL DeployXL Deploy is a release automation tool for any environment. It is a licensed version by XebiaLabs.Click here to know more about XL Deploy.8. AnsibleAnsible is an open source configuration management tool and application deployment tool. In comparison with Chef, Ansible works with a decentralised agentless architecture and hence it’s easy to get started with Ansible.Availability: CLI based Ansible is free for no limit on nodes.Learn more about Ansible here.  9. SaltStackSaltStack is an open-source configuration management software written in Python. It enables teams to craft  "Infrastructure as Code".SaltStack in comparison with Ansible is quickly scalable but enforces teams to learn python.Learn more about SaltStack here.  SL NoTool NameProsConsAvailability1.ChefGreat documentation availableHard to learnNeed programming skillsFreemium2.PuppetProgramming skills are not a mustNot much suitable for applications where updates are frequentPaid3.Octopus DeployEasy configurationIntegrates smoothly with TeamCityA quick and flexible deployment pipelineLess community support especially for non-Microsoft applicationsPaid4.SpinnakerGreatly preferred for cloud-based deploymentsLess community supportOpen source5.GoCDBetter suitable for end-to-end Continuous delivery pipeline where great visualisation needed.Less cost efficientA Steep learning curve with a confusing user interfaceOpen source6.UrbanCode DeploySimple and easy to useSlower deploymentsPaid7.XL DeployA large number of plugins availableLesser visibility for the deployment processPaid8.AnsibleSimpler installationEasy to useGUI is not that greatNo support for windowsOpen source9.SaltStackQuickly scalableUnderdeveloped GUIOpen sourceh. Testing automationTesting automation tools are used in close proximity to continuous integration and deployment tools. It helps in performing repetitive tasks unable to perform by manual tests. The automated test gives a more clear picture of the health of the software product without any bias.1. Unit testingUnit testing tools help to test a single unit or component of the software. Thus detecting the errors earlier and fixing. And, Unit testing also helps in smooth integration.2. Integration testingIntegration testing tools help validate every integration that happens in the integration phase. Only successful build of the code move to the next stage.3. End-to-end testingIn end-to-end testing, the entire system or application is checked from start to finish. The tools generate the reports which can be used to verify whether the new change is causing  any unexpected behavior from the entire system4. Performance testingPerformance testing tools analyse the system in an expected workload. The tools measure the responsiveness of the system, scalability, and stability. Tools also provide details on where the system is failing and where the system needs improvement.5. Infrastructure testing and auditingInfrastructure testing plays a very important part as an error in the infrastructure code can even alter the production environment creating unseen repercussions. Ensuring the compliance of an organisation is an integral part of such tools keeping security in mind.i. Other Popular DevOps toolsSome of the popular tools used are1. SeleniumSelenium is a free and open source testing framework for web applications. It’s a suite of four tools Selenium WebDriver, Selenium RC or Remote   Selenium IDE And Selenium-Grid.Learn more about Selenium here.2. CucumberCucumber is an open source testing tool. It’s the best choice for behavior driven development popularly known as BDD as it tests business readable requirements. Free and enterprise version of Cucumber is available.Click here for more details about Cucumber.3. InSpecInSpec is a free and open source testing framework from Chef. InSpec tests infrastructure. It’s also a compliance framework.Click here to know more about InSpec.  4. KarmaKarma is a free test runner created for testing, applications made with Angular CLI. It’s from the AngularJS team.Learn more about Karma here.5. Jasmine  Jasmine is an open source testing framework. It is used mainly for JavaScript applications. It’s used for behavior driven development also.Click here to learn more about Jasmine.6. UFTUFT or Unified Functional Testing is a test automation tool for web, desktop, mobile   Micro Focus. There is a 60-day free trial version available but after which it’s not a free tool.Learn more about UFT here.  7. SoapUISoapUI is an open-source testing tool for web applications. It’s the market leader in API testing. It’s a licensed tool.Click here to know more about Soap UI.  8. JMeterJMeter is an open source load testing tool from Apache. It helps in analyzing the performance of services mainly for web applications. It’s a free test suite.Learn more about JMeter here. SL NoTool NameProsConsAvailability1.SeleniumWide range of languages supportedEasy integration with Jenkins, MavenDifficult to useNo support officiallyOpen source2.CucumberGreat documentationSupports Behavior-driven developmentSlow compared to other testing toolsOpen source3.InSpecHighly flexible and can be used cross any Infra As code framework.Need to know the scripting languageOpen source4.KarmaEasy debuggingLesser user baseOpen source5.JasmineDifficult to debugEasy to set up and useOpen source6.UFTEasily integrated with continuous integration DevOps toolsLess compatibility with different operating systems ExpensivePaid7.SoapUIUser-friendlyPlugin availability is lessOpen source8.JMeterEasy installation Great user-friendly interfaceHigher learning curve Doesn’t support javascriptOpen source9. DockerDocker is a platform for working with containers, from Docker, Inc.Docker is an open source and available as free and enterprise version. Containers help to develop applications and package it with its dependencies and libraries, thus ensuring the application runs in any environment. Docker containers are like virtual machines but share the same OS resources like file system etc.It has less overhead unlike VM 's. The building block of a container is an image which is the executable package including libraries, dependencies, environment variables etc needed to run the application. Running instance of an image is a container.Learn more about Docker here.10. KubernetesKubernetes is an open source production grade container orchestration tool. It helps in managing multiple containers in an application. Kubernetes is the market leader in this category. It is often compared with Docker Swarm which is the native clustering method for docker.  Click here to know more about Kubernetes.  11. OpenShiftOpenShift from Red Hat is a group of containerization software. OpenShift Container Platform is the major software in the group that provides a platform as a service built around Docker containers. These docker containers are managed for experimenting by an individual a free version is available for one project.Learn more about OpenShift here.  SL NoTool NameProsConsAvailability1.DockerContainers are lightweight compared to virtual machinesSecurity is a concernOpen source2.KubernetesHighly scalableWork better with CI/CD pipelinesLess user-friendlyOpen source3.OpenShiftGreat community supportOnly supports Red Hat Enterprise LinuxFreemiumj. Release orchestrationRelease orchestration tools are used to achieve automation of the application release process. Some of the popular tools are Xebialabs XL release, Plutora Release, AWS Codepipeline, CACD Director, OpenMake, Spinnaker, HashiCorp Vault, SonarQube, BlackDuck, Signal Sciences, Checkmarx SAST.k. ContainerologyContainerology tools help to run an application on the virtual environment as a package with all dependencies. It avoids the situation “it doesn’t work in my system”.Some of the tools are:l. Monitoring ToolsMonitoring tools help to pinpoint and track issues and verify the health of the system. This enables fast recovery of the system with minimum or no human interventions.Popular tools are:1. PrometheusPrometheus is an open source monitoring tool from SoundCloud.Its mainly used with systems using microservices as it has a multi-dimensional data collection feature. It uses a flexible query language PromQL.All Prometheus server is standalone and doesn’t depend on network storage helping us to understand the defect especially during outages. Collected data through the multi-dimensional collection feature may not be too detailed and having complete information. So it is not suitable for systems where 100% accuracy is required.Click here for more details about Prometheus.2. SplunkSplunk as a monitoring tool is used across application management, security, compliance, web analytics etc. Splunk tools listen and store data, index the same and correlate the captured real-time data in a searchable repository from which it can generate useful graphs, reports, alerts, and various other visualizations. One can create and configure relevant dashboards based on various visualizations/ graphs.  Learn more about Splunk here.3. NagiosNagios is an open source and free tool to monitor services, applications and infrastructure. It’s known for its auto-discovery feature. Its user interface is a bit difficult for beginnersLearn more about Nagios here.  4. ZabbixSimilar to Nagios, Zabbix is an enterprise open source monitoring solution. Compared to Nagios, Zabbix is user-friendly and is comparatively easy to configure. The main disadvantage is that it doesn’t support plugins.Learn more about Zabbix here.5. ZenossZenoss is a free, open-source tool used for services and network monitoring. It is written in Python language.Click here to know more about Zenoss.6. ELK Stack"ELK" is the acronym for three free open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine based on Java. Logstash is a server‑side data processing platform with the ability to clean, transform data and send it to Elasticsearch.Kibana is a virtualization tool that helps to visualize data with charts and graphs in Elasticsearch.The Elastic Stack is the next evolution of the ELK Stack.Learn more about ELK Stack here.SL NoTool NameProsConsAvailability1.PrometheusEasy to useEasy integration with other DevOps toolsBad user interfaceOpen source2.NagiosNumber of plugins available in the marketDifficult configurations needed to make the system stableOpen source3.ZabbixEasy configuration based on a web-based user interfaceNon-availability of pluginsOpen source4.ZenossGreat community supportLimitation on the number of devices monitoredOpen source5.ELK StackEasy to installHighly customisableDifficult to configureOpen source6SplunkEasy to installUser-friendlyEasy to configure  simple graphsFor complex configurations, the learning curve is a bit steepPaidm. AnalyticsAnalytics tools give a clear picture of what is happening in the team, be it code development or team interaction, code coverage and efficiency etc. Some tools used are XebiaLabs XL Impact,New Relic,Dynatrace,Datadog,AppDynamics, ElasticSearch .Bonus Information3. Why is DevOps needed?DevOps helps to remove silos in organisations and enable the creation of cross-functional teams, thus reducing reliance on any one person or team during the delivery process. Frequent communication between teams improves the confidence and efficiency of the team members. Through automation, DevOps team increase their productivity making satisfied customers. According to State of DevOps report 2016 “Teams that practice DevOps deploy 30x more frequently, have 60x fewer failures, and recover 160x faster“. It also provides better work environments with increased trust, better management of issues reducing unplanned works.4. How to implement DevOps?The “DevOps Handbook” defines the “Three Ways: The principles of underpinning DevOps” as a way to implement DevOps in large enterprises. In this session, we will detail these three ways and three core pillars.The First Way: Systems ThinkingThe First Way emphasizes the need for global optimisation as opposed to local optimisation, hence the focus is on optimising all business value streams enabled by IT.The Second Way: Amplify feedback loopsThe Second Way is about discovering and injecting right feedback loops so that necessary corrections can be made before it’s too late.The Third Way: Culture of Experimentation and learningThe third way is all about creating the right culture that fosters two things, continual experimentation and learning from failures. It emphasises the understanding that repetition and practice make teams perfect.While the three ways focus on the key principles, we also have three pillars which are keys to any successful DevOps adoption.The three pillars of any DevOps adoption are,Culture and PeopleTools and TechnologyProcesses and practices4.1 Important DevOps practicesa. Continuous IntegrationContinuous integration is a software engineering practice where software development team members frequently merge and build their code changes. The key benefit is to detect and fix code merge conflicts and integration bugs in the early stages of software development. Hence reducing the cost to detect and fix the issues.b. Continuous DeliveryContinuous delivery is a software engineering practice in which changes are automatically built, tested, and made release ready to production. In order to get into a continuous delivery state, it is very crucial to define a test strategy. The main goal is to identify functional and non-functional defects at a much earlier stage thus reducing the cost to fix defects. It also enables teams to come up with working software as defined in the agile manifesto. Continuous delivery as a practice depends on continuous integration and test automation. Hence it is crucial that teams need to ensure that they practice continuous integration along with test automation religiously, to effectively practice continuous delivery.c. Continuous DeploymentContinuous deployment is a software engineering practice in which codes committed by the developers are automatically built, tested and deployed to production. Continuous deployment as a practice, require that teams have already adopted continuous integration and continuous delivery approach. The primary advantage of this practice is reducing time-to-market and early feedback from users.d. Continuous TestingContinuous Testing can be defined as a software testing practice that involves a process of testing early, testing often and test automation. The primary goal of Continuous Testing is to shift left the test phase as much as possible to identify defects and reduce the cost of fixing.e. MicroservicesMicroservices architecture helps to create an application as a set of small services independent of each other. Any language could be used to create microservices and typically an HTTP based API is used to interact between services. Microservices as a design approach helps to achieve fewer risk deployments and enables continuous delivery.f. Infrastructure as codeInfrastructure as a code is an engineering practice in which infrastructure is developed and managed through code. Thus creating a consistent, reproducible and versioned infrastructure. Since the infrastructure is implemented as the code it’s easy for the team members to update and change it. Infrastructure as a code no more considers scaling as a major problem.g. Policy as codePolicy as a code is a software engineering practice where compliance rules or policies of the organisation could be monitored and verified. Policy as code enables organizations to enforce the compliance rules more strictly and helps to bring the non-compliant resource into compliance mode. This practice gained importance during the DevSecOps movement.h. Continuous Monitoring and LoggingMonitoring and logging as a best practice to help organizations to analyse the products’ end user experience. This helps the software teams to get to know about the root cause of the defects and latencies in the software development process. More transparency into the actions performed by the team members causes increased responsibility among the teams causing increased performance.i. Communication and collaborationEffective communication and collaboration are one of the key values emphasised by DevOps.Devops tools in the field of communication and collaborations bring together collective responsibility for the products delivered.   5. How to choose the right DevOps tools?Today the DevOps market is overcrowded with tools across different stages of software development life cycle. As enterprises, it's extremely crucial to select the right tools in order to get maximum benefit. Saying so choosing the right tool is an extremely difficult and time-consuming process given the spectrum of tools available today. Hence enterprises should have a five-point strategy towards deciding the right tools. Five point strategy would include dimensions likeAbility to integrateScalabilitySecurityTechnical know howReliability5.1. Ability to integrateThe ability to integrate is extremely crucial and is one of the fundamental requirements while checking out tools. Certain tools integrate smoothly with a particular technology stack in comparison with others. Hence it is vital for the DevOps architect to compare different tools on the basis of integration ability and ensure that tool that is been selected seamlessly integrates with the team’s technology stack. Another aspect that needs to be considered is how a particular tool integrates with other tools that are selected in the ecosystem. For eg., you would want your continuous integration system to constantly talk to the reporting system and alert prediction system in a smooth way. Hence integration between tools also becomes a very important factor while choosing tools.5.2. ScalabilityScalability is the second most important factor in choosing the right tools. Based on the need for scalability an enterprise might choose an enterprise version over a community version. Scalability also is a key factor why certain companies go for SaaS-based products. SaaS-based products are easily scalable and hence without any overhead, it can be adopted across large enterprises.5.3. SecurityThese days a lot of enterprises are emphasising on the need for security in the DevOps tooling space. Hence enterprise versions by various tooling companies have taken special care towards addressing these security-related issues. Thus enterprise versions are comparatively more preferred in comparison with that of open source solutions. Saying so this doesn't mean that all open source DevOps tools have security vulnerabilities. Certain open source DevOps tools fair much better than available enterprise versions5.4. Technical know howThis people dimension is one of the factors that is typically overlooked by enterprises. Knowing the skill levels and capability of team members is a key towards choosing the right tool. Often the tools available in the market wouldn't work out of the box and would need a substantial level of customisation to smoothly integrate with existing systems and workflows. Also, certain tools require a certain specific skill set towards configuration and customisation. Typical eg. is Chef, which is chosen by developers who are comfortable in ruby language whereas Puppet is preferred by system admins as it does not require much of programming skills.5.5. ReliabilityLast but not the least, reliability is extremely crucial for any successful tool adoption. Most of the tools available in the market, both enterprise and open source needs to be checked using this quality wheel. Tools should be reliable even during large scale and complex operational conditions. ConclusionIn this paper, we discussed the what, why, and how of DevOps.We also deep dived into various tool categories and tools available across the spectrum in today's DevOps market. Tools are definitely the key ingredients in successful DevOps adoption but saying so a lot of companies only invest in tool part without focusing on cultural and people dimensions. In order for tools to bear fruit its vital that the people operating and analysing the tools/data understand and realise the true spirit of DevOps. To conclude, would like to resonate with the wise words “yes, we need all the tools that can help us, but just tools will not help us get there!”.
Rated 4.5/5 based on 6 customer reviews
9481
Top Devops Tools You Must Know

In the last decade for most of the enterprises, th... Read More