In our previous post we discussed Cloud Assembly, VMware’s service and machine provisioning automation tool. The interface for Cloud Assembly is primarily focused on being an “administrator” view of the platform. A cloud administrator builds blueprints and services for users to consume, working directly with Infrastructure as Code and Cloud Endpoints. What about the user consumption model? What view does the “User” see when they come into the environment? Enter Service Broker!
Service Broker, a Storefront for Infrastructure and Services
At its core, Service Broker is focused on exposing service provisioning to end users. Remember in Cloud Assembly when we created “Projects” that mapped Cloud Zone resources back to Users? Those Projects are consumed here as well to create a Role Based Access Control (RBAC) model around what users can see/interact with.
While we are still in Initial Availability, Service Broker exposes primarily Blueprints from Cloud Assembly and Amazon Cloudformation Templates. This functionality is going to be expanded in the near future to also included Azure Resource Manager (ARM) templates as well.
Long term vision of Service Broker is a very exciting one. I can’t go into too much detail on a public facing blog – but imagine a portal where you can consume multi-cloud, multi-platform services at the click of a button. We’ll wrap these in the same governance you’ve come to expect form a cloud management platform – but provide you additional resource types, visibility, and functionality!
For now, let’s focus on how we get started consuming Blueprints and CFT’s!
Getting Started with Content
When we are logged in as an Administrator user (remember, this was configured in the Project we setup earlier!) we are landed on a Content Sources menu with no content visible. If we were an end user, the only tabs we would see would be Catalog and Deployments.
There are a few menus were going to explore on the left, they are self-explanatory but let’s step through them anyways!
- Content Sources: The sources of your published content. Currently exposes Cloud Assembly Blueprints and Amazon CloudFormation Templates
- Content Sharing: Allows you to specify which catalog items you want to expose to a specific project. This gives greater granularity in exposing what items you want end users to be able to interact with and provision
- Content: A list of all your currently published content. This is also where you go to create custom forms around your existing blueprints
- Cloud Accounts: Interface for exposing additional Cloud Accounts from within Service Broker; still under construction
- Projects: A Project interface for creating/editing Projects from within Service Broker
When we select the new button, we are prompted to add a new Content Source. When we click the drop down, we can add either Blueprints or CFT’s.
Adding blueprints is extremely easy. We select the blueprints drop down, name our content source and hit the validate button. Service Broker will go out to Cloud Assembly and discover any released blueprints. This designation is important. If administrators have not “released” their content from a versioning standpoint, it will never be able to be presented in the catalog.
As you can see from my screenshot below – I have 7 blueprint items that have been imported into the catalog.
When we select Create & Import, and New again, we can add our CFTs. In my case, I’ve placed my CFT’s in a public facing S3 bucket for consumption. When I select the Cloud Formation Template drop down and add the appropriate detail, I can select Validate and i’m presented with 3 catalog items being imported.
When we select Create & Import again, and look at our Content Sources screen, we should see both of our sources added, with pertinent detail around what content is exposed.
! But we haven’t exposed our items yet. If we navigate back to our Catalog screen, it’s still blank. What gives?!
Sharing Our Content
Once our content sources are added, we need to “Share” that content out to end users. If we select “Add Items” we’re presented with a list of items we can share with the “Lab” project.
If we check both of those boxes, and select save, we will have successfully shared the items in our catalog. When we navigate back to the “Catalog” screen, you would see all items you just published! Awesome! You could request these items here and be presented with the same options you are asked when you provision a resource from within Cloud Assembly.
What if we want to update that form to be a bit more graphically appealing? What if we want to add additional descriptors to the form? Additional menu choices? This is all possible using the Custom Forms capability within the Content submenu!
Content and Custom Forms
When we navigate to the Content menu we see a listing of all our blueprints, selecting the checkbox near one of those blueprints allows us to interact with the catalog item. We can use this interaction to access the Custom Forms menu and build a customized form around our object. For anyone who worked in vRealize Automation 7.4 or 7.5 – this experience should look very familiar to you!
From this canvas, there are several things we can do to improve this form. For example,
- Add Description text for what the blueprint does
- Add images to improve the visual feel
- Change menu titles to something more user friendly
- Create conditions between fields to automatically set values (If Production, deploy X amount of web, and Y amount of app servers for example)
- Use your imagination!
When this form is activated (switch on the upper right of the screen…) we can Save the blueprint, and navigate back to the Catalog screen to see our masterpiece!
A much nicer experience than our previous form! What happens once we submit our form?
Once we submit our request, we’re able to navigate to the Deployments screen to review our request as it’s being processed. This is the same behavior we see in Cloud Assembly and speaks to us giving a consistent and integrated experience across the platform! In this screen, users will see all objects they are entitled to within their project – and can perform day-2 operations against them!
Service Broker is currently in Initial Availability, and there is a TON of items going into it before we hit General Availability. Breaking the Provisioning and Consumption interfaces into 2 separate platforms has a ton of benefits. As an administrator, you can have fine grained control over the way you deploy and interact with resources from within the Cloud Assembly interface. For your traditional user, you can provide a governed and simplified experience via Service Broker.