There’s a scene in the film The Aviator where Howard Hughes, played by actor Leonardo DiCaprio, repeats the phrase “Show me all the blueprints” over and over and over again. If you aren’t familiar with it, you can watch it here:
That’s exactly what I’ll be doing today, showing you the blueprints.
Ok, well not exactly showing them to you, but explaining what a blueprint is and what you can do with it in Citrix Lifecycle Management. If you want to actually see the blueprints, you have to login/signup to Citrix Workspace Cloud and check it out.
What is a Blueprint?
The Merriam-Webster dictionary defines a blueprint as: “nounblue·print\-ˌprint\ 1. a photographic print that shows how something (such as a building) will be made, 2. a detailed plan of how to do something”
In Citrix Lifecycle Management, the second definition is most applicable. In CLM (I’m going to abbreviate from here on out), the “something” is any software infrastructure. You can deploy your blueprint on clouds such as AWS and Azure, as well as XenServer, vSphere, or Hyper-V running in your own datacenter. Deployments can be done on Windows or Linux operating systems, not to mention already baked virtual appliances like NetScaler VPX.
Composition of a Blueprint
A blueprint in CLM is a series of steps to do “something.” The steps can be categorized in four different ways – 1) cloud steps, 2) utility steps, 3) scripts, and 4) blueprints.
Cloud steps are the matches that light the fire. The most common being the “Server” step which launches a VM. Your blueprint will likely start with this step and may also include steps to reboot, mount volumes, and terminate VMs. All the basics to orchestrate your cloud or virtual environment are here.
Utility steps give you control over the flow of your blueprint. You can have conditional steps, wait steps, and approval steps. Your blueprint could have the option to install Active Directory or integrate with an existing one.
Scripts are the bread and butter of your blueprint. This is where you can keep it dead simple or get totally carried away. A script is any executable code that will perform a logical action on your server. CLM is programming language agnostic, so you can write batch or powershell scripts for Windows or bash, perl, or ruby scripts on Linux. You can also upload binary executables and run those as well. Scripts can take parameters from the end user when deployed. So if you have a script that installs a database, you can ask the user for a schema name.
Now where this gets really powerful is when you add blueprints to your blueprints. Yes, you can nest a blueprint inside your blueprint!
So what do you get when you take a Domain Controller blueprint, Delivery Controller blueprint, Storefront blueprint, VDA blueprint, SQL Server blueprint, and NetScaler blueprint? That’s right, you now have a XenDesktop blueprint. But it doesn’t stop there. Next you can create your master blueprint and add your XenDesktop and XenMobile blueprints. How you have the full suite. Sweet!
Blueprints also have features that allow you to tear down your deployment at the end of the day as well as scale up/down to handle a variety of load.
The tear-down steps usually consist of any cleanup or deallocation you need to do for your infrastructure proceeded by a terminate server step. This is very usefully when deploying proof of concepts that you clean up when your evaluation is completed. As you guessed, scale up allows you to launch additional servers, either manually or automatically based on thresholds that CLM will monitor. You can run scripts during a scale up that adds the newly launched server to your cluster. Scale down will let you reverse your scale up actions when the craziness has subsided.
The world is your oyster. The possibilities are limitless. If you use XenDesktop or XenApp, CLM provides great out-of-the-box blueprints for a PoC or production grade infrastructure. You can take these blueprints and modify them to your heart’s content and deploy the XenDesktop/XenApp infrastructure that perfectly matches your business needs. Yes, that infrastructure that took weeks to set up can now be deployed in hours!
If you are a Linux guru and like to build things from the ground up, you can do that too. Build blueprints to create an Apache web server, PHP environment, and MySQL server. Combine it together to create a LAMP blueprint. Mix it up with Postgres, Tomcat, Jetty, NGINX, and more. If you have built your own virtual appliance, you can create a blueprint to launch and configure that as well. Share it with the community, get rich, retire … you’ll thank me later!