Working with Cisco UCS Director will mean that you get to pick some languages to write in. Those choices affect the characteristics you’ll likely find important in a cloud management platform, such as how supportable, how maintainable, and how easy it is to troubleshoot problems while working with it. Like any automation tool, though, you are going to have some language choices to make depending on your staff’s skill sets. Below is a good list of what most CDW customers run into for language choices.

Workflow Designer

The workflow designer is a GUI interface that lets you drop in tasks and combine them into end-to-end workflow. You can think of a task as a single step in whatever you are looking to automate. You stitch together tasks to get to an end-result. The beauty of the workflow designer is that you can visually look at what is supposed to happen without having to examine all of the underlying code. Humans are visual creatures, and the workflow designer plays right into that part of the brain that functions better with pictures.
 

Workflow Designer
 
Using this GUI interface also means you can address how things are laid out to the consumer of the workflow. If you are using UCS Director’s native interfaces, you can build in logic to compute complex business rules or pre-seed workflow details so users do not have to know every setting to kick off a workflow. In the end, some very complex things can be happening in the background, but like the example Snapshot management workflow below, we only present a few choices to hide the complexities.
 

Snapshot Management Workflow
 

CloupiaScript

CloupiaScript is a JavaScript implementation that runs within Java that is in the UCS Director software package. The software under the covers that enables this is called Nashorn. Since there are already vibrant communities around JavaScript, it provides a lot of online examples and documentation. CDW believes that the onboarding and knowledge of CloupiaScript is fundamental to this product.

PowerShell

It should be no secret that PowerShell is prevalent in a lot of customers’ environments. PowerShell is widely supported, it is coming to Linux with work from Microsoft, and third parties offer lots of libraries around it. If you have Microsoft products, it will be a language that will be hard to avoid learning. It is a language that I have really come to love and is one, like JavaScript, that has a huge online documentation base to pull from. Engineers you train on languages will probably love PowerShell for most jobs, if only because it feels reimagined by a system administrator.

Shell Scripting

Whether it is bash, perl, awk, sed, python or others, Linux lives by shell scripting. If you have Linux in your environment, odds are that this will be, at most, an incremental set of skills to learn if you do not have folks who do this already. You will have your choice of languages, probably based on what is loaded onto your VMs or systems you decide to automate.

DOS Batch

There are but a few handful of things that could require DOS batch language skills when using UCS Director to control Windows. I would not expect someone to have to relearn it deeply, though some basic knowledge can come in handy when running commands a certain way on VMs. At most, we have seen it used as a gateway to invoke PowerShell or other systems where we need to execute something via an executable.

APIs

In the new world of APIs, it should be of no surprise that learning how APIs work, how to interact with them and how to join them with Logic is valuable knowledge. With the advent of tools like Postman and RestClient, interacting with and debugging can be vastly simplified because we can prototype without having to wait. UCS Director itself has a bunch of APIs you can use on it. So while APIs are not a language themselves, they are a programming investment to understand that is worth its weight in gold.
 

API Opportunities
 

Java

There is a whole Java interface to UCS Director. It allows you to write pretty much anything you can think of for UCS Director. UCS Director has the ability to execute code within its JVMs that is developed in Java using their Open Automation JDK. We find that most customers learn the Workflow Designer Interface, CloupiaScript, Shell or PowerShell along with some API interaction to and from UCS Director. There are incredibly powerful things that can only be done with the Open Automation JDK, but frankly most customers do not need to go there. It is also the one interface that requires you to restart UCS Director anytime you re-deploy code to run on it. It also has the ability to produce graphical widgets in the UCS Director interface. While that is extremely powerful, it also does get into very specific use cases that most of our customers have not needed. If you have folks who are skilled in Java, then picking up the JDK probably will not take much effort. If you do not, then this is usually the first language customers skip on.

CDW’s Recommendation

Customers are most effective when they find the right balance of languages to learn for the functionality they intend to leverage. If your environment has a need for PowerShell, by all means, look at UCS Director’s ability to leverage PowerShell. If you have Unix hosts that need scripting, having UCS Director invoke shell scripts can be one way to reach and automate even deeper into systems. In the end, those skills you learn will only help you with operating a living and breathing automated environment. None of the above means you have to learn everything, just pick from what you need to add to your quiver.

Lastly, Cisco has no shortage of wonderful examples to consider. There is all kinds of assistance posted to the website and it only gets better as people contribute. You can see all kinds of deployment possibilities by what others have posted. Regardless of which languages you pick up, hopefully the need to automate will serve as the catalyst to keep things exciting and become more efficient.

Learn more about CDW’s Cloud solution and services offerings.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>