Cloud Architecture Patterns: Cloud Broker
Provide a single point of contact and management for multiple cloud service providers and maximize the benefits of leveraging multiple external clouds.
When you are buying and selling stocks or other securities, you hire a broker to execute the trade on your behalf. One reason for that is convenience. You don’t need to take care of the details of placing orders and working with multiple stock exchanges, and whatever else is required to trade securities.
How about working with multiple cloud service providers? For sure, you can go online to any cloud provider as long as you have your credit card ready. But is the service provider the best fit for your requirements? Do you have a backup plan if you are not satisfied with your service provider? Can you easily switch among your service providers to minimize cost or maximize flexibility? If you are not sure, you may then need something like a cloud broker.
A cloud broker is software that helps users and companies get the benefits of external cloud services. Depending on your requirements, it could be offered as a product so that you can install it inside your enterprise or as a service for which you pay as you go.
Although the cloud market is not as dynamic as stock market, it does change from time to time. So you will need the most recent market data to make the best decisions as a customer. In that sense, it’s better use the cloud as a service rather than as a product that you may need to update periodically.
Technically, a cloud broker is able to:
- Work seamlessly with different cloud services providers on behalf of customers. It includes taking care of system provisioning, monitoring, billing, etc. In some sense, it’s like service aggregation.
- Ideally, move workloads among the service providers. No longer are you locked in with a particular service provider.
- Maximize performance/price ratio of cloud services by shuffling workloads among the providers.
- Scale the VMs beyond one service provider who may not have enough resources. Who says cloud is unlimited? In theory it’s so, but in reality every service provider has a limit which you just don’t hit normally.
With these considerations in mind, the challenge would be providing a unified way for customers to use different service providers, be it Amazon, Rackspace, Terremark, or whomever. The tricky part of the challenge is while searching for the best deals among the various services, you want to keep the key differentiators of the providers so that you can leverage their comparative advantages when needed. This would be a tough tradeoff to make.
Use a cloud broker pattern to:
- Maximize the benefits of leveraging external service providers;
- Have unified interfaces while keeping the flexibility of multiple service providers;
- Scale beyond one service provider whenever needed.
The cloud broker is an indirection from you to the service providers who do the real work. The quality of the brokerage service affects you. Also you will pay the cost of the software or service and that expense may or may not offset the benefits. It depends on your size, planning, execution, and so on.
When regard to lock-in, you would be free from any specific service provider. But will you be locked in with a cloud broker? Certainly that is possible, too. So how can you avoid broker lock-in, too? Working with multiple brokers is one way but it definitely takes effort.
One option is Appririo CloudWorks, a product designed for cloud brokerage. I expect more competing products and services will enter the market when the cloud service market matures.
Façade VM: Cloud broker pattern is very similar in the topology but serves customers rather than service providers. Functionality wise, they are different as well.