There is a big push in the industry towards automation – and for good reason. IT departments are being tasked to do more with less, and automation enables them to do that. A lot of the focus on automation is around DevOps, configuration management, and enabling self-service application deployment.
A lot of the tools to support these areas are built for larger enterprises where there is a need to build up or scale out production applications quickly or deploy full application stacks for testing.
It makes sense to automate in larger enterprises as there are a lot of benefits. It enables IT to be more responsive to the business and internal customers. Giving developers the tools to deploy their own application stacks frees up sysadmins to work on other tasks, and there is usually a resource or two that can become an expert on the automation and find ways to utilize it to drive more value out of it.
But what about smaller environments? IT staffs are usually pretty small and focused on putting out the fires before they burn down the facility. Procedures aren’t always well defined or even defined enough to automate a task. They’re probably not deploying a lot of new applications or servers for production or development environments, and the applications that are deployed most likely benefit from scaling servers up rather than scaling out.
Automation tools like vRAC and Puppet Enterprise are usually too complex and too expensive for this space, and even if the budget is there, the business case isn’t.
And yet the SMB space is probably the space that can benefit from automation the most. So how can they utilize their limited resources to do more with less?
There are a couple of tips I have for automating in an SMB:
- Understand where you will get the most value from automating – There are still tasks that you need to do on a regular basis, or there are infrequent tasks that are time consuming. Maybe its provisioning, or terming, a new user. Maybe its creating mailboxes in Exchange or running a report manually. There is value in automating these routine tasks, and you will recover the time you put into it pretty quickly.
- Document your processes – As you run through a task that you plan to automate, put the process down on paper. You can’t automate a process if you don’t know how it should run. Documentation can also help with troubleshooting after you’ve automated the process.
- Start Small – Rome wasn’t built in a day, and it takes time to program and troubleshoot a script. Start small by automating the most common or time consuming parts of the task and then add features as you have time or need them.
- Avoid Scope Creep – It’s easy to get carried away as you start to automate tasks and processes. But if you’re not going to get any value from automating a task, move it to the bottom of the list. The last thing you want to do is to spend so much time on a low-priority task that other, higher priority tasks slip.
- Don’t Reinvent the Wheel – You can find script repositories and tutorials for many tasks in just about any language. Use these as a base and modify them to fit your environment rather than writing something from scratch.
- Dedicate Time – Time is a premium commodity in the SMB IT departments that I’ve worked in. Automating frequent and/or time consuming tasks will be a net time gainer, and you will gain that time back down the road.