Cloud Agnostic Blueprints in VMware CAS

VMware Cloud Automation Services went GA 2 days ago, on the 15/1/2019.
There is already a ton of blogs, describing the solution.

I thought that I would give my view on one of the things, that i find most cool about the solution.
Note that i'm no expert, but I already love the solution, and i'm looking forward to learning more  about what I, and the customers I talk to, can do with it.

Having spend the last 3-4 years talking about vRealize Automation, I like a lot of the features available today, but i'm also missing some (when i compare the 2). But that's the beauty of a SAAS product. Just from the time i have spend on it, it has constantly been evolving, and adding new features. All without me having to do anything. You kinda get used to that :-)

So the feature I want to talk about today, is the Cloud Agnostic blueprints.

The idea is that a blueprint, can be used on multiple clouds, just by selecting different tags/constraints. And it actually works really well.

I will spend my time in Cloud Assembly today. So all you see, is taken from there.

Cloud Assembly support the following Clouds today.

I have connected to AWS, Azure, GCP and vSphere, along with NSX-v

For each account, I have created one or more Cloud Zones, containing the different zones, in a region.

The way I have tagged all my locations, is in the compute zones, that is available in each zone.
All my tags are in the form "region:city"

So my tags are :
- region:copenhagen - For local vSphere environment in Copenhagen
- region:frankfurt - For AWS in Frankfurt
- region:stockholm - For the new AWS in Stockholm
- region:ireland - For Azure in Ireland
- region:netherlands - for GCP in Nederlands

The image I use in this post, is Ubuntu, and I have also mapped this, to an image in each zone.

The same is done with the size. Here it's small

After this, we are ready to build our blueprint.

The blueprint I will use, consists of the following YAML code.
You can copy/paste it, and reuse it in your own environment, with your own tags, and mappings. 

    type: string
    description: Region
    title: Region Tag Name
      - 'region:copenhagen'
      - 'region:frankfurt'
      - 'region:stockholm'
      - 'region:ireland'
      - 'region:netherlands'
    default: 'region:copenhagen'
    type: Cloud.Machine
      image: 'ubuntu'
      flavor: 'small'
        - tag: '${input.region}'

I have created the regions as dropdown menu's, with a default to region:copenhagen and hardcoded the image and the size, just for this post.

The deploy dialog now looks like this

Now to test it, all there is left, is to deploy one in each location.

And there you have it. The same blueprint, deployed in 2 x AWS, 1 x Azure, 1 x GCP and 1 x vSphere, just by selecting different tags/constraints.

Hope you enjoyed this little demonstration, on how easy we can consume so many different cloud providers, in a single blueprint.