BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
In business, the common platitude of "less is more" generally rings true, and IT is no exception to this rule. This means responding to the ever growing need for resources by looking for ways to use existing resources more efficiently. This is often achieved by automating tasks and streamlining processes with scripting and batch jobs. While these methods are effective for a single system or task, they are limited in scope, as they generally don't extend beyond a single system. In order for the IT industry to continue to meet the needs of businesses, scripting must mature into an automation tool that is able to span across multiple systems.
Automation of a single task is only the first step of the automation journey. Today's IT infrastructure is a combination of multiple systems that must interact seamlessly to enable organizations to move at incredible speeds. While this sounds great on paper, in practice, each vendor has its own IT automation tools.
PowerShell changed the automation game
Application programming interfaces (API) have been available for IT pros looking to automate their infrastructure for many years, but these APIs were often limited in scope and function, until Microsoft released PowerShell. PowerShell wasn't the first or, initially, one of the best IT automation tools, but due to the popularity of Windows, it had the advantage of a large possible install base. Microsoft wisely chose not to lock down PowerShell, leading to the creation of third-party snap-ins that allow users to extend PowerShell to other environments, such as VMware, NetApp and Dell.
As the popularity of PowerShell and virtualization grew, many programming languages were created to satisfy automation needs. Many of these environments require the ability to code in order to create automation. Coding isn't normally done with a mouse and graphical user interface (GUI); it requires a working knowledge of programming. For those unfamiliar with programming, the key is to start small -- trying to do too many functions before you're ready will only damage your infrastructure. Your best bet is to start off by using a controlled test and development environment you can afford to lose in the event things do not go as planned. The primary appeal of automation is it can rapidly execute tasks, but this also means it can execute mistakes at speeds that would prevent you from stopping it in the event of an error, so additional testing is always a good idea.
One of the great things about getting started with automation is someone in the community has most likely already done what you're trying to do, and most people are willing to share code. All major vendors, including Microsoft, Puppet Labs, Chef and Ansible, have robust communities rich in sample code, and have experts willing to help newcomers. Microsoft has even taken this one step further by generating a PowerShell code based on the actions a user takes with the GUI. Once you have an example, it becomes much easier to modify that code rather than to try and write it from scratch.
Selecting IT automation tools
When deciding which IT automation tools to use in your environment, you should consider the core features different vendors offer, which platforms they work with and, of course, costs. Microsoft PowerShell is ideal for Windows environments, while Puppet Labs, Chef and Ansible are better for VMware environments. However, this does not mean they are exclusive to those platforms: Puppet Labs and Chef can extend into the Microsoft Azure cloud platform. VMware's PowerCLI can also run PowerShell plugins. Many of these coding platforms are included in the base products and may provide a starting point for those looking to get a leg up. However, as with all free products, the accompanying support and community might not be as robust as licensed products.
One product stands out from the rest due to its unique method of automation: VMware vRealize Orchestrator (vRO). VRO is not a code-based automation tool, but rather a graphical workflow-based automation tool designed primarily for VMware infrastructures. Having a GUI doesn't necessarily make vRO any easier to use and some might even argue the opposite based on the fact that vRO is a workflow-based rather than a functional-based automation tool. Additionally, vRO is based on the process of your business rather than the automation of tasks. This isn't to say that vRO can't complete tasks -- in fact, it's possible to integrate PowerShell and other functions into vRO. VRO just operates at a different level than other tools and functions, working in concert with them rather than going head to head.
When getting started with automation, you have a wide variety of products and platforms to choose from. To ensure you have evaluated the scope of what you want to accomplish, identify the milestones and establish firm but safe automation in your infrastructure. Invest in the right IT automation tools and training for the platform you choose, leverage the community strength of your selected product and, if you're successful, don't forget to give a little bit of code back to the community.
What's the difference between vRA and vRO?
Automating tasks in a virtual desktop environment
Create an automation strategy that gives back