4 Tips from an Engineering Director to Build Reliable Automation
Every company under the sun relies on automation to make business hum. Getting leverage out of technology is the reason the world’s biggest companies can operate efficiently at a mind-boggling level of scale. In fact, one could argue that the generalized pursuit of advancement in technology is, by and large, the process of automating human work but…that’s a topic for another blog post.
As an engineering leader in the tech industry, building a high-performing DevOps team and culture can be daunting when you’re just getting started. But you need not master Google’s SRE practices to get started with high-quality automation.
In this post we’ll explore a few techniques that we’ve learned for improving upon the automation your engineers write and maintain. We’ll talk about why you need a robust platform that provides a repeatable and consistent environment for your automation to run in. We’ll also discuss some techniques for making your automation more reliable and easier to use and maintain.
1: Create a one stop automation shop
All automation platforms are conceived as a simple script on an engineer’s laptop written to perform some sort of maintenance task. Often the next step is to take this script and share it with coworkers (typically via a git repository). This script will live on to be invoked on demand from your engineers’ laptop whenever they need it.
Be proactive: Create a simple Rails or Django app that your engineers can use to centralize their maintenance work. Congratulations, you now have an automation platform. This provides a consistent environment for your automation to run in, eliminating entire classes of problems. It also makes it a whole heck of a lot easier for you to audit who’s invoking automation, when, and why.
To keep your automation platform low-overhead is to use a framework like ActiveAdmin to build out your screens quickly. It provides a lot of flexibility and can grow with your organization. Between that tool and Ruby on Rails itself there are a lot of plugins that give you out-of-the-box integration with other tools you might use like Okta or SalesForce.
2: Treat your automation like you treat your product
The automation that makes your business tick is as important as the thing you’re selling and you should treat it as such. Your automation platform should have a backlog, a team assigned to it, and an owner. It should likewise have a test suite, a deployment pipeline, monitoring and alerting, and staged releases — just like a product would.
Just like with any new product, you can get started by simply cataloging feature ideas and requests for your automation platform in your tool of choice for organizing your engineering work. At Puppet most teams use JIRA internally but since this team is a bit more scrappy we use Trello.
3: Make Automation Accessible to Everyone
There are many different types of stakeholders that need to interact with your new automation platform. Sales and product management need usage reports. Marketing needs business process automation for their next digital campaign. Support needs to be able to perform maintenance on customers’ accounts. Executives need reports on growth metrics.
Folks should be able to push a button to do their job. Spend the energy in creating a simple UI for invoking, monitoring the progress of, and reporting on your automation. If you put an API in front of it you can quickly and easily write command line tools that technical users can use to invoke automation and integrate your platform with other systems.
A great example of a tool that bridges the gap between both technical and non-technical users in a similar way is Google Data Studio. It provides a really robust set of tools for developers to create the reports their users need, as well as a familiar interface for non-technical users to get access to and explore their companies’ data.
4: Usage hack: Pull in your company’s existing reports
An easy way to encourage more usage of and to get users used to your automation platform is to embed commonly-used reports from your reporting tools directly into the platform. Most tools, like Google Analytics or Looker, provide the ability to directly embed dashboards into other apps.
These are just a few ways you can make your automation life easier. Don’t be fooled, however: They are born from years of toil with creating simple, reliable automation for companies and products.
At Puppet, we’ve taken many of these concepts and baked them directly into Relay, our DevOps automation platform. Take a look and sign up for updates on our upcoming beta launch — we’d love to hear how it stacks up against your own tools! Relay is an event-driven automation platform that pulls together all of the APIs and configuration management tools you need to effectively run your DevOps environment.