Mar 23, 2017 Automation: Do It Better By Doing It Right
Whether it’s Perl or Python or PowerShell, bash or Ruby or Salt, scripts and recipes are everywhere. And, they are layered: scripts run other scripts, sometimes many layers deep (and sometimes recursively!), or runbook automation tools from the likes of IBM or BMC run the scripts. Every IT shop seems to have an ever-growing expanse of home-grown helper automation–and has to, as the admin staff are stretched ever further to provide a widening portfolio of services without a matching increase in staffing. Scripting is the very essence of working smarter, not harder, and is the key to scaling for human staff. Automation is the key to real private clouds, ultimately.
Most Folks Don’t Automate Well
First, it’s usually not well organized. Dig around a bit in any admin’s filesystems and you’ll find them: the management scripts. Chances are, you won’t find them all in one place for any given admin or system, and that no two admins are organizing their stuff the same way on their respective systems.
Chances are, each admin will also have an individual approach to organizing each script, documenting its function, and formatting the code. And there will be many tools and languages in use, usually at least as many as there are as admins working. Sometimes more: when admins come, new tools and languages often come with–but when they go, scripts and platforms tend to remain for a long time afterward.
And worse than any of this, even though their systems and services and ultimately the end users of the services all depend on the automation working well, it is usually subject to neither code management nor change management. That is, this vital code is not managed like code, with versions checked in and out of a repository and new versions subjected to formal testing before deployment. In fact, testing is often simultaneous with deployment! And, changes are not declared in advance, reviewed, made at a scheduled time, or equipped with a roll-back plan should they fail.
In our most recent benchmark, we found surprisingly low adoption rates coding standards, code management, change management, and tool standards–in some cases dismayingly low.
Better Automation How?
The big insight is, get serious about how you manage the activity of making and deploying scripts. Use standard tools and programming standards, use code management and change management. And take a page from the devops playbook and use automation to help manage your automation. Whether you go for the code-and-config paradigm of most devops work, or use runbook automation from the likes of Automic or ServiceNow, or use some kind of cloud management platform from VMware or Red Hat or Cisco, anything can help if it brings structure, consistency, and reduced manual effort to the party.