This is going to be a series of posts deep diving on VMware Cloud Assembly Services (CAS). In this series I am going to talk about different aspects of VMware Cloud Assembly Services, e.g tags, projects, blueprints etc. As always, I will record a video on the same topics as well. This is keeping in mind of those friends who are more inclined towards visual learning than reading. I sincerely hope you find this series useful.
First, a bit of background on this topic. We started our modern datacenter journey with virtualization. First with RISC based virtualization and then x86 based virtualization. Next big thing came in the form of Cloud Computing. We got our first public cloud in AWS. Once public cloud came into existence we got private cloud as well. From VMware perspective this was vCloud Director. Then we moved to Hybrid Cloud environments. It is an environment where organizations combine their own private cloud with a public cloud. But as time progressed, environments became more complex. Gone are the days when an organization has a single virtualization or cloud platform. They even have access to multiple public cloud environment. So, a new requirement came into existence which will not only be able to manage multiple virtualization and private cloud environments but also multiple public clouds as well.
So, now we have a new solution which is Multi-Cloud Enabled Solution. VMware Cloud Assembly is part of a range of SaaS solutions from VMware which aims and caters to this particular requirement. There are multiple SaaS offerings from VMware but the main offerings which caters to this particular requirement are provided below.
- VMware Cloud Assembly - Provides blueprint, infrastructure management and other functions
- VMware Service Broker - Provides catalog function
- VMware Code Stream - Provides CI/CD and other DevOps related features
In the core of these solutions is VMware Cloud Assembly and in this series I am going to focus more on this particular topic.
Let’s explain the solution a bit. The foundation of the solution is virtualization, private, public or hybrid cloud solutions. So, the resources come from these layers.
Before we go any further, we need to talk about the management/operations layer. To build a solid architecture not only a solid foundation is necessary but also a regular maintenance process is necessary to maintain that. So, for this layer we have Intelligent Operations which includes but not limited to the following task:
- Workload Placement
- Capacity Management
- Log Analytics
- Performance monitoring
We build solutions or so called offerings on top of this base foundation layer. These solutions can be categorized into two aspects:
- Service Catalog (a list of catalog items to choose from)
- DevOps services building tools (to build a successful CI/CD pipeline)
Also, backing these solutions we need few other capabilities as well.
- Content Development (a place where users can develop and store their contents)
- User access management system
- Option to integrate with 3rd party sites or tools (e.g. marketplace for contents, repository sites etc.)
Specially for the enterprise customers, user access management becomes very much important.
At the end, users will consume the services. They should be able to consume these services in two different ways:
- Directly using UI
- Programmatically using the API’s
So, for programmatic use our solution needs to have API at all layers to be consumed through different means.
This completes the whole Multi-Cloud solution overview. Next we will talk about different solutions available from VMware perspective and where they fit.
Multi-Cloud Automation Solutions
There are multiple solutions available form VMware as SaaS offering. Here I am limiting myself to discussing only certain solutions. Since we already discussed the solutions from Multi-Cloud Automation perspective. Let’s discuss the ares where we need solutions. Provided below is the picture where you can see the areas.
In the above picture we can see three main areas of solutions:
- Blueprint and other capabilities (building block)
- Catalog Services (consumption layer, the layer majority of the end users use)
- CD Pipeline (Continuous Delivery platform to successfully and easily build DevOps solutions)
Note, the probable users for those services. The solutions matching those areas are provided below:
Explanation of the solutions and their areas are provided below:
- Cloud Assembly: This service provides the core Blueprinting and other administration features. This is core to the overall solution.
- Service Broker: This is the catalog services. You can define which catalog items will be available to the end users. So, typical end users will generally interact with Service Broker only.
- Code Stream: This is the service which provides the DevOps functionalities. You can typically build a continuous delivery pipeline using this service.
In this blog series we will focus on and discuss only Cloud assembly service.
Under Cloud Assembly there are few main constructs that we should be aware of. Provided below is a picture of the constructs.
Infrastructure: Options available under this category deals with and lets you configure infrastructure related options. This can be further divided into three major sub-areas
Cloud Zones: It is defined for a region for Public Clouds and a Datacenter or separate environment for Private environments. For example, us-east-1 (US East), “Datacenter in San Hose” etc
Mappings: Mapping between the consumable entities
Flavor Mapping: This is a mapping between different sizes of availabel VMs’. For example, small has 1 vCPU 1 GB RAM, medium has 2 vCPU and 2 GB RAM etc
Image Mapping: This is a mapping between the VM templates and names. For example Ubuntu 17.04 points to a Ubuntu image in local datacenter and an Ubuntu image in AWS
Profiles: This is a mapping between different network and storage options and their relation to the relevant names
- Network Profile
- Storage Profile
Project: A project is a way to group users to respective infrastructure. Through this you can decide which user can access which resources
Blueprint: A blueprint is a basic entity which end users can use to make a deployment. A blueprint is generally created and associated with a Project
Deployments: A deployment is an entity which combines the resources deployed by users. A user typically sees and manages their own deployments
Remember Mappings and Profiles are related to Cloud Zones. As can be understood the templates, network and storages are available locally to a Zone.
Next we will discuss about different constructs and how they relate to each other or their interdependencies. But first let’s look at a picture to understand it better.
- Components under Infrastructure category can be configured independent of each other. Just keep in mind that they are related to the defined Zones.
- Projects are defined separately and tie users and resources (defined under infrastructure) together. Projects enable users to consume the resources defined for them.
- Blueprints are the constructs which defines how the resources will be used. Also, they are directly tied with projects. As such when a blueprint is defined, it is attached to a Project.
- A deployment on the other hand is an encapsulation on the existing VM’s and other resources. Through the deployments users can control and manage their existing workloads.
Provided below is a picture depicting minimal setup flow for CAS.
As can be seen from the above picture, at minimum, we need to perform the following steps to get started.
- Login as Cloud Administrator
- Configure/Add Cloud Accounts. This account may be AWS, vCenter, Azure etc.
- Add/Configure Cloud Zones. For example, if you have access to multiple zones in AWS or multiple datacenter’s consisting of vCenter servers, you may want to tag and segregate them according to their locations.
- Define different mappings and profiles as per zone
- Define projects and provide access to users accordingly
- Define Blueprints and map them to respective Projects
- Deploy the blueprints to test them out
The above steps will make sure you are up and running with Cloud Assembly Service. As a next step you may want to use complex blueprints and then publish them to Service Broker.
Provided below is a link to the video explaining the above topics. This is for those who prefer listening and viewing to reading.
Also, at the end of the video I have a short demo showing the discussed topics.
This brings us to the end of this part. In the next part I am going to talk about most important aspect of Cloud Assembly Service which is Tagging. It is at the core of CAS and should be understood completely before we proceed any further.