Automation and monitoring – can’t have one without the other

Automation is totally necessary. Otherwise, you’ll be going slightly mad over time, and you’re stuck in your job. I’m not even sure you can afford to take holidays if the stuff you do isn’t automated. Maybe you can train someone else to do it while you’re away, and over those two weeks they’ll wonder why you haven’t automated and then they’ll automate it for you. At that point you’re really in trouble. If someone’s going to automate what you do, that someone should be you.

One reason why people seem reluctant to automate things is about wanting to be sure that the task was done correctly each time. It’s like they don’t trust that something ran successfully unless it’s been eyeballed by someone.

So you automate that too! Otherwise you’ve just changed your job from doing the thing to checking the thing.

And to check that your checking is still working right… well you get the picture. At some point you need to have something eyeballed, but you can roll more and more checks into the one spot, and you can eyeball a report that says “Yup, all 1523 things worked today, and 0 of them failed”. Then go and have a larger impact in your world. You’ve already done those 1523 checks today.

Garry Bargsley asks us what we’re proud that we’ve automated and what our go-to tech for automation is.

Well, these days that tech is PowerShell.

PowerShell because you can do so much with it.

PowerShell because you can schedule it in a variety of ways, including SQL Agent and WIndows Task Scheduler.

PowerShell because it’s so easy to handle errors, using trap or try/catch, which helps with that monitoring.

In fact, it’s been PowerShell for a lot of years now.

It doesn’t matter whether I’m kicking off process for ETL, or running some executable, or some T-SQL, or what. PowerShell just handles it. I can use it to loop through datasets, or work in batches. I can manipulate files and use Azure just as easily as anything else, and it’s all straightforward, and easy enough to teach people about.

Sure, I remember my Unix days, and the power that scripting gave you, but I feel like that was so hard to read, so very obfuscated, compared to the PowerShell. If you’re new to PowerShell and it seems complicated – trust me it’s way simpler than handling everything as text. Go ahead and automate things you do!

But again, you need to monitor it all,. You need to be pushing Success and Failure statuses back to some central repository and report on them. It doesn’t matter how you’re automating your stuff, you need to report on it. Otherwise, someone’s going to ask why it’s not working, and you don’t want to be in the dark.

Oh, and my favourite thing that I’ve automated was probably a bunch of Azure ML stuff, because it was so simple and delivered really meaningful stuff to my customer.

@rob_farley