The best DevOps tools (according to the folks building Sensu)

Because Sensu is a tool made for (and by!) operators, I wanted to share our own favorite tools in the DevOps ecosystem (aside from Sensu, of course!). I surveyed the fine folks who work at Sensu on what their favorite DevOps tools are, and why. And while we don’t always agree on a specific tool (everyone has their own favorite text editor), it’s safe to say that open source is a constant theme. Read on to learn about our tools of choice for editors, programming, storage, IaC, and more.

Best DevOps tool

Text editors: Emacs, vim, and VS Code (oh my!)

Text editors — programs that edit plain text — are useful for changing files, including config files, documentation, and source code. There’s a bounty of them out there, and strong opinions on which is best. For Co-founder and CTO Sean Porter, Emacs is where it’s at. Known for its extensibility, Emacs has been “the one constant” in Sean’s life: “It’s the one thing I’ve used that hasn’t changed in a decade.” Although there are jokes aplenty around the learning curve, Sean likes how Emacs hearkens back to the old days in UNIX culture, where you could essentially use it as an operating system and “go through a whole day and stay within Emacs.”

Software Engineer Eric Chlebek’s text editor of choice is vim. A free and open-source software (users are encouraged to donate to children in Uganda), vim can be used in both the CLI and as a standalone application with a GUI. Eric also notes the lasting effect of certain text editors; he happened to learn vim when starting his career, and draws comparisons with Emacs in terms of its timelessness: “I would not be surprised if all of them outlasted my career” and extensibility: “I can use them on any general-purpose computer to do almost any job.” Developer Advocate Todd Campbell is also on the vim train: he’s been using vi/vim for over 30 years. As he puts it: “I logged into my first UNIX machine in 1988 and learned the OG vi. I’m a master of cut/copy/paste without either of my hands leaving the keyboard. Using vim is the natural progression for me, but I will still fall back to ex line editor commands. It’s hard to beat 30+ years of muscle memory.”

On the other end of the spectrum, Software Engineer Nikki Attea is all about Visual Studio Code: “Why be a VSCO girl when you can be a VS Code girl? Everyone needs a good text editor, and as a terrible millennial I prefer GUIs for mine.” Terrible millennial or not, Nikki is not alone in her preference (it happens to be my favorite editor as well) — VS Code was ranked the most popular developer environment tool in Stack Overflow’s 2019 Developer Survey, with 50.7% of 87,317 respondents saying they used it. VS Code is known for its customizability and includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, and more — plus it’s open source. As Nikki describes it: “VS Code has plugins for just about every language/tool and has some awesome GitHub integrations.”

Go is the language of choice

While not everyone could agree on text editors, more than a few came back with Go, or Golang, as their favorite programming language (it also happens to be what the latest version of Sensu — aptly named Sensu Go — is written in). Designed at Google and open source, Go is syntactically similar to C but offers memory safety, garbage collection, structural typing, and CSP-style concurrency. According to Nikki, “Go’s standard library is very impressive. Go apps are easy to build and distribute (you can use Goreleaser to automate that) because they compile all dependencies into a single binary.” She also points out the plethora of popular DevOps tools written in Go, including Sensu Go, Docker, Terraform, Kubernetes, InfluxDB, and many more, while Eric notes that Go is dependable and has great documentation.

Open source storage with PostgreSQL, Quay, & MinIO

PostgreSQL is an open source relational database management system that emphasizes extensibility. Postgres is also the event storage for Sensu Go (check out this post from Sean for a detailed look at Postgres’ role in scaling Sensu Go). For Eric, Postgres is “simply a high-quality piece of software. You can depend on it to do what it says it can do.”

Software Engineer Simon Plourde points out a couple of other open source tools that have risen in response to the new cloud-native reality in which we now build our applications: Project Quay, a container image registry recently open sourced by Red Hat, and MinIO, a cloud storage server compatible with Amazon S3. Although both are relatively new, Simon notes that both tools look very promising.

GitHub is the go-to repo

At Sensu, we host our documentation in the same place as our Sensu Go code: GitHub, the popular hosting and version control provider. As Principal Technical Writer Hillary Fraley puts it, “Hosting our docs in the same place as the code makes it easy for our engineers to open issues for docs updates and link to the relevant issues and PRs in their repos,” making for valuable source material. Another bonus to using GitHub is it’s super easy for our community to send feedback about a specific page in the docs or contribute a suggestion — AKA, our docs are open source, too!

IaC with Serverspec, Terraform, & Ansible

Infrastructure as code (IaC) — the management of infrastructure (and everything within that infrastructure) that provides the foundation for your apps — is key to any DevOps workflow. As far as favorite tools go, Nikki likes Serverspec: “Whether you’re testing your infrastructure or your product, Serverspec is a human-readable syntax that will help confirm that your server state is configured properly. Infrastructure as code, monitoring as code — basically anything-as-code can be verified with Serverspec.”

Simon is a fan of Terraform, HashiCorp’s open source IaC tool. According to HashiCorp, Terraform “enables you to safely and predictably create, change, and improve infrastructure.” Simon is particularly excited about the recent 0.12 release, which introduced a ton of new features — including changes around the language/syntax of Terraform: “While it constituted a breaking change in most cases, the updates were more than welcome because it made the code much simpler and removed a lot of workarounds users had to do (like functions and variables without string interpolation).” Plus, Customer Reliability Engineer Edgar Valdes notes that his team uses Terraform with Ansible to deploy an internal Sensu Go cluster for Sensu service monitoring (monitoring Sensu with Sensu, if you will!).

Concourse.ci for deployment

Concourse.ci, a self-hosted, open source automation pipeline written in Go, is also on Simon’s list. Described as the “continuous thing-doer” on its GitHub repo, Simon thinks Concourse could overthrow Jenkins as the de-facto self-hosted CI tool.

Grafana for visualization

Grafana is an open source data visualization tool and is a popular piece of many observability stacks. According to Nikki, “Grafana is such a great hub for visibility a__text in bold__nd observability. No matter how distributed your infrastructure is, this tool lets you visualize and query data across multiple sources.” Bonus: there’s even a Grafana data source for Sensu Go!

Going forward

I hope you enjoyed this roundup of favorite DevOps tools from the folks at Sensu! Do you have your own tools you recommend — or interesting use cases for how you’re approaching your monitoring workflows? Let us know — join our Community Forum and share your story.

Join Us on Discourse