Increasing automation opportunities with Azure

Image result for azure automation

Automation (and Orchestration which is succinctly different) is always a hot topic for many organisations, for a variety of reasons. From freeing up time completing repetitive tasks, reducing errors in execution (because we’re human!) to making the environment you manage much more efficient are all key benefits.

But what is Automation (and Orchestration if it differs?) At the highest level automation is the ability to take a task, or procedure that you may execute manually and automate it. This task may involve several stages and automation will perform those stages given an input automatically. Examples may include restarting a service, deleting temporary files or creating accounts. Orchestration takes this a step further and allows you to take a series of “tasks” and orchestrate them into a workflow. Examples may include joiner/leaver/transfers account management, virtual machine, application or service provisioning, etc.

For most IT pros, automation has always been something that we’d like to do but either suffer from lack of time to develop the required script/Runbook, lack of environment from which to build the automation or have a mixed estate for which common automation tools have been difficult to come by.

Since Microsoft acquired Opalis in late 2009, Automation trends have become much more commonplace due to the ease by which automation can be created. System Center Center Orchestrator (the evolution of Opalis) provided a platform from which automation “Runbooks” could be created and executed. Using this technology, Organisations began to expand their automation capabilities to create highly automated, self-service driven  environments. Alternative technologies exist outside of the Microsoft ecosystem, e.g. VMware vRealize or Cisco UCS Director.

Whilst Orchestrator is still an excellent technology it requires a fairly hefty server footprint needing management, Runbook, web and database servers to function. In a highly available configuration (and hey, you’ll want your automation platform HA!) this can be a costly investment that requires on-going management and maintenance even before you start to automate.

Azure has evolved this by providing automation technologies in the cloud. This allows you to automate both on-premises workloads as well as cloud based workloads. The following technologies are relevant to Automation in Azure:

I wanted to focus on some of the capabilities within Azure Automation for this particular blog post, but it is worth giving a quick mention to Azure Functions as a possible automation engine, as I’ve seen several customers using this to date. Azure Functions is one of the serverless technologies within Azure providing an engine that can execute several programming languages (C#, JavaScript, PowerShell, etc.) Since majority of operational based automation is created using PowerShell scripts, then Azure Functions can provide a good option. Functions supports Web Hooks (HTTP) which can act as a trigger to run your code. In addition, Functions can also use timers which can execute at a particular date/time.

Whilst Functions provides a legitimate engine for your code, it lacks some of the Azure Automation features, e.g. Hybrid worker roles for on-premises execution. Azure Automation is essentially the cloud/PaaS equivalent of System Center Orchestrator on-premises. It allows you to create either your own PowerShell workflows or use one of the many available via the gallery. The service can be found under “Automation Accounts” in the portal, and the main functionality concerning this post under “Process Automation” with “Runbooks” (and the gallery) as seen in the figure below:

image

As you can see from the following figure, there are numerous pre-canned Runbooks available. These can either be used as-is, or could form the basis of your own Runbooks:

image

Reviewing one of the options takes you to the PowerShell code for that particular script and provides an option for you to “import” to your own automation account for execution:

image

From here you can then edit the script, configure WebHooks, deploy or publish the script:

image

Azure Automation is not only concerned with automation of bespoke activities via Runbooks, it also contains other great functionality, e.g.

  • Ability to perform update management (similar to traditional WSUS / SCCM technologies),
  • Ensure compliance of your workloads via desired state configuration (DSC) which can track configuration and ensure the machine meets the desired state
  • Perform inventory management of your services, in a similar way that you would use tools such as Configuration or Operations Manager
  • Track and manage change related activities integrated into your existing ITSM processes

It is worth nothing that a recent preview announcement for Azure Automation is the introduction of watcher tasks. This relies on the Hybrid Worker role for on-premises integration and allows automation to be triggered when a specific activity occurs, e.g. new ticket in a helpdesk, new event in a SOC, etc. More information can be here.

From a pricing perspective, Azure Automation is very competitive. Process related automation is priced per job execution minute, whilst configuration management tooling is priced per managed node. Typically you get 500 minutes free, per month and then each additional execution per minute is charged at £0.002. You can wrap pricing into the Operations Management Suite (OMS) technologies for further functionality and value.

In summary, Azure Automation is a mature, well developed and agile platform to satisfy your automation requirements. It provides great features and is continuously evolving. Even better, you can take advantage of pre-canned Runbooks, rather than having to write them from scratch!

If you have any comments or queries about the above, feel free to leave a reply!

%d bloggers like this: