Oh, the places we could go with a discussion on automation in the IT Department. I am a strong believer that automating all of “the things” is not practical. I also believe there is much we do that can and should be automated. Tasks that are super time consuming and tasks I could do in the gui with my eyes closed. When I think about IT Automation, I break it down in my mind into two categories: Process automation tasks and procedure automation tasks. Process automation tasks are based on business processes, and procedure automation tasks are operational in nature and coincide with the delivery of IT services. In this blog, we will cover IT automation concerning specific automation services and how to approach them and how predictability breeds productivity.
Automating Reports
The most typical type of Automation is Reports which are typically turned into e-mail attachments and flung across the mail server information store like an invasion of ant armies. When automating reports, you must ensure a constant feedback loop with the department that you are delivering the report to, this ensures accuracy and possible other delivery methods like a dashboard.
Automating Alerts and Monitoring
Alerts and Monitors Automation is performed using a whole list of real-time monitoring tools. My advice when deploying this type of automation is that you should spend a certain amount of time each week or month crafting the right alerts, this helps to avoid alert fatigue while ensuring continued procedure improvement. Another thing to note about alerts is that you should be sure that no matter the tool you are using, that you always understand the notification time-delay. For example, if you set a monitor to check every five minutes you will want to know that its alert could be five minutes old already by the time you receive it. A good way to protect your response time would be to build an automation task to execute at the notification of an alert.
Automating Systems, Software & Assets
I can honestly say that I am excited to talk about systems, software, and assets automation. Microsoft Windows 10 includes a tool called Oneget which is basically package management for Windows. If you are familiar with yum, apt-get, rpm, homebrew, chocolatey then understand Oneget connects to these repositories and can provide packages, modules, scripts, etc. Oneget is a PowerShell tool, therefore; some knowledge is required, but honestly, did you think you were gonna get out of learning PowerShell?
Software installation, even with a package manager, can be tricky. Make sure you get installation option details from vendors for your software. For example, EXE vs. MSI, proper documentation of package versions and installation switch “/” parameters documentation for deployment. Another tool that can be used for the automation of deploying systems is Desired State Configuration. With this tool management files are created for the definition of a system: Linux or Windows and as the system is provisioned, the roles and system configuration is simultaneous.
Operational automation tasks like this should be created for the tasks you are asked to perform the most often. This approach will show the greatest value and will guarantee a return on investment in automation. When automating tasks for gathering asset information use Windows Management Instrumentation with PowerShell. When automating asset tracking add accountability to system time stamps and tracking methods to provide audit trails. DSC, PowerShell, and WMI combined are a very powerful triad of automation. I’m not going to leave out good old schtasks.exe or Task Scheduler; this is also ideal for repetitive tasks.
Audit, Compliance, and Governance
I don’t want to get stuck in a tool talk on Puppet, Chef, Jenkins, and System Center advanced automation tools. If you are reading this blog, you are probably just getting started with automation and PowerShell is an invaluable tool. And for audit, compliance, and governance, tasks PowerShell is the tool of choice especially if you work with Microsoft Cloud Services. I know you can request automated delivery and reporting for compliance through the Microsoft Trust Portal. Compliance and Governance Automation tasks often include gates or specifically assigned resources that have to execute a task. This detail is important to note when building automation. Make sure the person that comes after you will be able to do the task. I cannot count all the times I have seen a script or batch job fail because the person who built the report had different permissions than the user executing it.
So now you can begin to identify key processes and procedures that are small, quick wins. Try to stay away from anything that is cross-vendor. Configuring Adobe through PowerShell is a
bad idea. A good idea is always automating New User deployment and AD password resets. Also, maybe you can add some HR Automation through workflows. Remember, if you are going to automate a task, it
must do the
same thing each time. If there is a human involved in the process where they must continually make judgment calls or maybe the process is simply a “high touch” process, there is less ability to automate. For example, automation in the Sales Department tends to be more centered around integration and workflow. Now try to automate your processes! Remember, repetition creates mastery and reveals vulnerabilities.
Four I.T. Services Perfect for Automation
- Incident Management – The process of being notified, capturing relevant information, and tracking it to a conclusion. Use age-old ticketing, however, I strongly suggest using integration with script automation for applying self-healing with notifications.
- Configuration Management – Provisioning of systems, services and users. Application installation and inventory.
- User Management – You have a pool of users and the regular tasks you do for them on a reoccurring basis. That, automate that.
- Compliance and Audit Reports – Services consumed, configuration asset report for usb attached devices.
Automate IT tasks first. Then work with your different business units to identify and build their tasks. Never, I mean never, automate something that should be personalized. Gather data on what’s being automated, such as parameters, child objects, and data formatting. As a rule, be nice. Don’t be a non-emotional mechanical robot when choosing what you plan to automate. Certain tasks should have a human touch, and therefore never automated. Also, always centralize your script repository and ensure confidential stuff stays that way.
Simplify, Standardize, Automate – in that order.
Document everything! Automation is not a practice that you use and then throw away; fully invest in it and stick with it. We recently worked with a manufacturing firm to help collect data around their floor and built an automated solution providing the company with over 6000 man hours back per year. That’s the power of love Automation.