Just Another IT Blog

It's time to share some of my experiences, crazy ideas, tips and tricks !!!

Post Page Advertisement [Top]

Last time we met I was talking about the basics of Cloud Assembly and how you can create your cloud-agnostic offer (blueprint) leveraging not more than a YAML descriptive definition.

But there was still a missing point, how do you handle the placement of your workloads?

Now that your multi-cloud strategy evolves multiple clouds, private, hybrid, public, whatever comes next… you need a way to make decisions about the workload placement.

Cloud Assembly handles this through the use of “constraints”.
Constraints are no more than identifiable capabilities of your resources.

Think about a business decision that every development should occur on the public cloud, but when the times to run it in production comes, it must run on-premise.
That’s exactly what you can see on my example, I’m using AWS as my Dev environment and my on-premise vSphere for Production;
AWS environment tag as env:dev

vCentert environment tag as env:prod

But it’s not all, you can use constraints on several places like on datastores, to identify which one is SSD or have replication enable. On networks, you can tell which one is internet-facing or even a backend network.

So, when you provision a new deployment, Cloud Assembly will try to match the constraints on your blueprint to the resources you have available, that’s how it decides when to place your workload.
If no endpoint can fulfill your constraints than the deployment will fail.

With all this information flying around, it seems that the placement decision is to be left to chance, in fact, it's not, Cloud Assembly makes it easy to test your business logic behind the decisions.

Go to Cloud Zones and hit Test Configuration;

Fill the machine details and the constraints and hit Simulate;

Soon you will see the decision tree, the graph walks you through the checking until it finds it’s home.
Pretty Nice !!!!

Now it comes to the final question, how do I add constraints to my blueprints?

That’s the easiest part, just add a constraint section to your blueprint and tag it to the desired capability.

My example is a bad one, because it makes the offer static to my dev environment and it was intentional.
It’s a challenge for you guys, go back to my The basics post and try to add an input for the destination so users can select the desired destination during provisioning time ; )

Bottom Ad [Post Page]