5 DevOps Tools We Love
Getting into DevOps is like any other career, in the sense that it is a life-altering decision – and, with this career path specifically, can be especially daunting. The world of DevOps is constantly evolving, and so are the tools that come with it. This article is meant to be a high-level piece on DevOps tools that we love.
Over time, we’ll post more detailed category posts: our favorite monitoring tools, CI/CD tools, etc. But for now, we figured we’d start with the higher-level stuff so that if you’re brand new to DevOps, you can get a better idea of what you’re in for, and what you need to learn.
It is worth noting that we are not partnered with any of these vendors, nor are we receiving money or product for writing these posts. We just love promoting good tools that make lives drastically easier.
Version Control: Git
Git is widely used amongst DevOps engineers as a version control tool. Git was created by Linus Torvalds around a decade ago when he saw a need, in the Linux community, for version control and source code management. It is, single-handedly, one of the most helpful – and crucial – tools in the space.
Everyone has been through this: you push code out, and it breaks something. Now, imagine being able to compare the new version vs. the last version, being able to see changes line-by-line, spotting exactly what caused the break, and reverting to the old version while you fix the new one. See the need?
Git also is great in the sense that you can have multiple people / teams push code – it’s so much easier to track who made what change and when. You can track progress and bugs, you can test features, etc.
Furthermore, Git is now a tool many tech recruiters and companies use when it comes to hiring. Oftentimes, companies will want to see some of your Git repos before they hire you: they want to see how active you are, the quality of your code, how you’ve progressed in your career, etc. Candidates have lost good roles because they had ghostly Gits.
When it comes to which tool to use, we’re not sold on a particular service. GitHub is “the standard,” but they don’t have free private repos. GitLab and Bitbucket do. All 3 of these also have cool integrations with third-party CI/CD tools, as well as notification mediums like Slack. So, which service you go for is ultimately up to you and your needs / preferences. We personally use GitLab, but again, all 3 have their place and it really depends on what you need.
Containers. Scalability. Love.
Containers have revolutionized the world of DevOps – and while they’ve actually been around for many years, Docker has simplified the process drastically. Since its launch in 2013, it has become the industry standard. It’s secure, it’s fast – and every major cloud platform supports it. With that being said, almost every DevOps job posting nowadays mentions it as a required skill, or at the very least, a very nice to have.
Docker has many documented use cases: you can use it as part of your CI/CD pipeline, local development environments, cloud migration strategy, modernization of older apps without needing to recode, etc. Being able to isolate your core machine’s environment from your application’s environment is one of the key benefits to using Docker, along with how quickly you can launch a new container. Bye bye, Virtual Machines (well… for the most part)!
A quick note on competitors, since there’s a bit of misinformation out there: we see Kubernetes mentioned as a competitor, but that’s a bit misleading. Docker = containers, and Kubernetes = container orchestration system. See the difference? Kubernetes uses Docker – they aren’t direct competitors. Just needed to get that out of the way.
For now, all hail the mighty whale.
DevOps, in its finest form, should be data-driven. Analytics are vital to benchmarking applications and system health, and having this data enables you to catch anomalies and quickly act on them. Datadog is monitoring-as-a-service: it integrates with over 250 services (see our Postgres integration tutorial) to provide you an efficient, aggregated, single pane of glass view into your metrics. Advanced dashboards can easily be created, monitoring and alerting can be configured, logs can be managed effectively for troubleshooting purposes, performance can be assessed – the list goes on. We love the functionality that Datadog brings to the table, as all data fanatics should. Datadog ranks highly in our favorite DevOps tools list.
In the past, there were concerns with scalability. Datadog lost prospective customers to competitors due to concerns that the product would not be able to handle tens of thousands of AWS instances – however, this seems to be an issue of the past, as Datadog has acquired many enterprise customers such as Airbnb, AT&T, Deloitte, Samsung, NGINX, T-Mobile, and Whole Foods.
Infrastructure As Code: Terraform
If you’ve managed cloud infrastructure before, and possibly multiple environments in the cloud, you’ve realized how cumbersome it can be to manage your resources in a standardized fashion. It can also be challenging to determine the differences between two environments (such as staging and production) or two application configurations, depending on how you manage them.
This is where a configuration management tool, like Terraform, comes into play. Instead of manually provisioning your infrastructure and applications through a console somewhere, you declare them in code using Terraform’s HCL (HashiCorp Configuration Language). Hence where the term “infrastructure as code” comes from.
Imagine being able to use a tool like Git to diff 2 versions of infrastructure code to clearly establish what has changed. This is one of the core benefits of using Terraform, or any configuration management tools, for that matter. Terraform is typically configured to back up the previously-known state of your infrastructure in, for example, an S3 bucket or Google Cloud bucket. As you attempt to apply (terraform apply) or view a projection of the changes that are planned (terraform plan), Terraform identifies discrepancies between what you’ve defined in your HCL and the actual state of your infrastructure for whatever cloud provider(s) you’ve implemented in your code.
It’s important to note that Terraform is capable of managing more than just cloud infrastructure. You can dynamically create PagerDuty alarms, Datadog dashboards, and more. For a comprehensive view into what Terraform can manage, please see this page: Terraform Providers.
The traditional tool of choice for continuous deployment is definitely Jenkins; who doesn’t love free tools? However, given the complexity of building robust and auto-healing deployment pipelines for modern applications, we’ve found that Harness takes the cake.
Harness simply provides more out of the box than Jenkins does, and we feel it justifies the price. It’s a managed service, so you don’t need to worry about hosting it, and it provides modern concepts such as continuous verification, continuous deployment, and continuous security – with rollback capabilities. It provides native connectors for cloud providers such as GKE and AWS that simplifies the process of getting up and deploying to your cloud environments.
With features like continuous verification, Harness can read metrics from your monitoring platform (such as Datadog – heyyy!) and automatically roll back to the prior version if performance deviates significantly from the application’s baseline. Just like with Jenkins, there’s also a great audit trail feature that allows you to see who deployed what and when. Their UI is easy to follow too and definitely is an upgrade from Jenkins. Each step in your workflow’s STDOUT/STDERR messages are segregated, so there isn’t just one huge wall of text.
If Jenkins is a Toyota Tercel (no shade thrown, so sorry if you drive one!), Harness is that shiny new, blue Tesla you’ve been stalking on the interwebs.--
About the Author
Roxanne Williams is a tech/marketing professional in Florida. She has experience in Project Management in both IT and Marketing capacities.
She writes about hiring, marketing, and technology.
Find her LinkedIn here.
> Read more
> Read more
> Read more
> Read more