During VMworld 2018 US a new VMware SaaS offering was announced, VMware Cloud Automation Services. VMware Cloud Automation Services consists of Cloud Assembly, Service Broker and Code Stream. Lets look at the different services and what they provide. Cloud Assembly is where you connect your cloud zones, projects and create blueprints. It is basically the hub between all your cloud environments. Speaking of cloud environments, the most popular clouds are supported, AWS, Azure, vSphere cloud on AWS and private vSphere clouds. Then you have the Service Broker, which is basically your front-end catalog which provides your end users a single portal to provision workloads across private and/or hybrid clouds. And finally, Code Stream this is known to most people who work DevOps style. Code Stream is the code management pipeline that allows for versioning, testing, releasing to production etc. All of these services integrate together in this new SaaS offering that lets IT teams meet developer needs around iterative development while providing a public-cloud-like experience
Now that we have an idea of what VMware Cloud Automation Services is we can look at how to use it. In short there are 7 steps to complete before we can start deploying blueprints.
- Log in to your VMware Cloud Services environment
- Add a data collector (Not needed for AWS or Azure)
- Setup a Cloud Account
- Create a Cloud Zone
- Create a Project
- Create flavour and image mappings
- Create and deploy a blueprint
Log in to the cloud environment
Browse to the cloud console at https://console.cloud.vmware.com and log in with your cloud account.
After logging in you will get to the overview page where all products you have access to are shown. Click on Cloud Assembly.
Add a data collector
The next thing we need to do is set up a data collector for vSphere. Note that working with AWS or Azure does not require a data collector. Since I don’t have access to AWS or Azure I will be using my vSphere private cloud. The data collector acts as a proxy between my environment and the cloud.
In the left pane go to Manage -> Data Collectors and click on the Add New to start.
Starting the procedure will show you the steps needed to get a data collector up and running in your environment.
First step is to download the data collector OVA to your environment and import the OVF to your vSphere environment.
During the data collector deployment a few options are important to set. The first is the name of the data collector, which will eventually reflect in the overview within the VMware Cloud Automation Services portal. The second option is the One Time Key which is shown in the previous image in
option 3. This needs to be filled in during the OVF deployment so the data collector can match up with the cloud environment. For the rest it just like any other OVF deployment.
Once the data collector is installed you can log in to the console with SSH and it will show the actual connection state.
Now, give it some time and the data collector will show up under Data Collectors in VMware Cloud Automation Services. As you can see in this screenshot my data collector shows up with a healthy status. Even though I have removed the names, you can see that multiple data collectors are in use to connect to multiple environments.
Setup a cloud account
Next up, the cloud account. The cloud account is used to access the resources you want to use with the service. In our case this is the vSphere environment where we installed the data collector. To setup the cloud account we also need an account for the vSphere environment that has read and write access.
Go to Manage -> Cloud Accounts and choose vCenter.
Fill in all details in the new cloud account setup and validate that the credentials are ok.
After clicking Add the cloud account is added.
Create a cloud zone
Cloud zones are basically used to define a set of compute resources that can be used for provisioning. In our case the compute resources come from our vSphere cloud account.
Go to Policies -> Cloud Zones and click New Cloud Zone. Fill out the details and click create. Just so you know, the Account/Region is the cloud account you need to select. Regarding the placement policies, I selected the default so deployments are placed across random hosts. The other options are to fill hosts or spread evenly across hosts.
Create a project
Projects are used to link users and cloud zones. To create a new project go to Projects at the top and click New Project.
Give the Project a name.
Add users to the project. I have only added myself as admin but multiple users or groups can be added as member too.
And finally we add our Cloud Zone to the project.
Now the user had access to provision into the cloud zone we have set up.
Create flavour mappings
Flavour types are used to pre-define certain deployment ‘sizes’. It dictates how many CPU or memory is allocated for a certain flavour. These flavours can then be used during blueprint development to set the number of CPU or memory.
This is an example of a flavour mapping I created.
Create image mappings
Image mappings are similar to flavours. You choose a name for a certain type of resource and map it to the data collected templates from your environment. These image mappings can be used during blueprint development to choose what OS-image is to be used for the deployment.
I created the following image mapping.
Network and Volume mappings
In the same way as image and flavours you can set up networks and volumes to be used in blueprints.
I’m not going into this right now because this article is getting to long as it is. Also, my template takes care of the disks and I’ll add a network to the blueprint myself just so you can see how it is done.
Create and deploy the first blueprint
Now that we have everything in place we can start creating a blueprint and deploying it to our vSphere private cloud. In the top of the GUI go to Blueprints. I have already setup a basic blueprint in advance.
For those of you who have worked with vRA7, this looks somewhat familiar. The exception being that when you click on the vSphere Machine in the grid there is no area to fill in details about your VM. That’s right, to create a blueprint we need to edit the YAML file you see on the right. That is how you build out your blueprint in VMware Cloud Automation Services. Welcome to infrastructure as code.
There is also a marketplace and import function allowing you to download or import content created by others.
This is the YAML code from the example:
inputs: VM-flavor: type: string enum: - wvanede-small - wvanede-medium title: VM size description: Default sizes to choose from. default: wvanede-small resources: test-vm: type: Cloud.vSphere.Machine properties: name: test-vm flavor: '${input.VM-flavor}' imageRef: web-01a.corp.local/base-web-tier-snapshot resourceGroupName: CloudVMs networks: - name: '${Cloud_vSphere_Network_1.name}' Cloud_vSphere_Network_1: type: Cloud.vSphere.Network properties: name: VM-RegionA01-vDS-COMP
As a side note, I have created a pull-down menu with two different flavours to choose from during deployment. For the image I am calling a snapshot directly to create a linked clone. So I am not using the image mapping we created earlier. As for the network I am linking this inside the YAML code.
It is also good to point out that there is blueprint version control embedded in the product as well allowing you do see what changed in specific version and check the differences between versions.
In this example you see where I changed the YAML to stop using the image mapping and use a snapshot.
Now that we have a basic blueprint we can deploy it directly from Cloud Assembly. If we want to release our blueprint to other users we would use Service Broker and add our blueprint to the catalog.
Click on deploy from the blueprint editor window and give the deployment a name and description. You can also change the version of the blueprint you are deploying. If your blueprint has inputs you will be able to work with these from the second screen.
When you click deploy the blueprint will provision a VM in the Cloud Zone that is linked in your Project. In the end you will end up with a new VM being spun up in your vSphere environment.
Great success!
Conclusion
VMware Cloud Automation Services offers a single pane of glass across your multi-cloud environment. If you have a private cloud or work with public clouds or a mix, VMware Cloud Automation Services gives you the ability to provision workloads where you need them. As this is a SaaS offering there is no hassle of installing vRealize Automation and you can be provisioning workloads pretty quickly. Note, that in this article I only spoke of the Cloud Assembly service and I’ll look into Service Broker and Code Stream another time. If you have a background in vRealize Automation you will notice things have been stirred up quite a bit. It will take some time to adapt to the new terminology and approach of setting up the environment, but in the end I think you will love it.