Few people will argue that public clouds haven’t dramatically changed the industry in the past few years. There has been a tremendous increase in popularity of public cloud services such as Amazon AWS and Microsoft’s Azure, and the demand keeps growing every year. Concerns that prevented companies from choosing public clouds as their go to infrastructure, such as security, reliability, stability, quality assurance and more are becoming more manageable.
Companies begin to trust the security provided by public cloud providers and develop workarounds for reliability and stability problems. Public clouds’ ability to scale and handle unpredictable demand instantly is probably the biggest incentive that is driving the industry towards them. By now we’ve witnessed giants such as Netflix - the largest bandwidth traffic consumer in North America - grow entirely on public infrastructure.
Today, public cloud is beginning to infiltrate even the most traditional private cloud enterprises. Companies want to leverage the power of the public cloud, while still maintaining the data-center they’ve built for years to manage most of their load. Such environments are nicknamed “Hybrid Clouds”, because they are composed of both private and public infrastructure and use both interchangeably for different tasks within the same organization, working together to achieve a higher quality of service for a lower price tag.
Hybrid-clouds seem like a no-brainer. Infinite capacity at your fingertips, with no time commitments or penalties, in a simple pay as you go manner. You can keep just enough capacity in your private cloud to handle your consistent load, and when bursts arise move load to the public cloud to handle them there. It allows you to make the distinction between temporary bursts of demand and consistent increase that justifies purchasing additional hardware. No more buying servers only to run them at 50% of their capacity and overall a potentially better ROI.
On the other hand, dedicated private hardware has its advantages. You get complete control over placement of the workload. You can reduce latency by forcing certain loads to run closer (in the data center) to one another. If you have enough consistent load to fill an entire server it will probably be cheaper in the long run to run the load in-house.
In order to truly be in control of your workload you have to be aware of both the supply AND the demand of resources. Public clouds hide the supply and give very limited statistics on the demand and by doing that leave very little room for control.
Companies had developed numerous tools in an attempt to bridge this simple gap, which is taken for granted in a private setting. Over the past 4 years, Netflix have been systematically redesigning their applications to handle public cloud failures instead of assuming that they have control over their private infrastructure – moving databases, storage and application servers onto new (horizontally scaling) platforms.
Managing the load in a hybrid environment becomes ten-fold more difficult. Three questions - the WWW of hybrid cloud - have to be answered at any given moment:
- What load to run?
- Where to run it?
- When to burst it out and when to bring it back.
These three questions encapsulate the constant trade-offs inside the data center between performance-assurance and cost-efficiency. You have to reevaluate load running on your private cloud, making sure that the load doesn’t cause congestion and if so, decide which pieces of the load should move out and when.
At the same time you have to evaluate the load that was placed on the public cloud to decide whether now there are enough resources on your private infrastructure to assure the required quality of service in case that you decide to bring it back. The manageability of a hybrid environment depends solely on your ability to answer these three questions - what, where and when, constantly, accurately and in real-time.