There is a lot of talk about hybrid cloud these days, but the most important thing is to understand why customers need it in the first place. A close second is to know the various challenges in building a hybrid cloud solution.
Why Hybrid Cloud
A hybrid cloud is a cloud environment where an enterprise makes use of both an on-premises cloud and public cloud to run its applications. There are three main use cases where such a configuration benefits a business:
1) Cost Optimization
Hybrid cloud enables customers to deploy applications on the right cloud based on the application characteristics. Let us look at some application characteristics and the best-suited cloud for that application type.
|Application characteristics||Example||Relevant Cloud|
|Short-lived||One-time large computation||Public|
|Highly elastic||Seasonal online business||Public|
|Small-scale with geographic diversity||Web app for a startup||Public|
|Consistent, long-lived||Test & dev workload||Private|
|Needs low latency, high-performance||Enterprise Applications, VDI||Private|
|Needs workload locality||A tightly-coupled multi-tier app||Private|
|Need more control over users, budget||Self-service cloud for higher education||Private|
|Needs integration with on-premise devices or data||R&D on in-house data||Private|
|Needs security and data compliance||Finance, ERP, HR apps||Private|
Some applications fit into more than one category. For example, if you have an elastic application that needs workload locality, you may have to sacrifice the locality and run it on a public cloud.
2) Bursty workloads
Many businesses are cyclical in nature, and application scale and infrastructure requirements can vary drastically from month to month. One can run the base workload on an on-premise infrastructure and scale on a public cloud based to meet peak demand.
3) Consume Cloud Services
Many applications use different services. For example, an application that provides data sharing across branch offices may use cloud-based object storage as a reliable store and for data sharing. Here, one can deploy the application on-premises with some amount of caching, but the cloud can be used as the main data store.
Key Technical Challenges
There are several technical challenges in setting up a hybrid cloud solution. One of the key components is the connectivity between the two clouds, and the second key component is the orchestration layer to deploy workloads across multiple clouds.
1) Secure network connectivity
Since you will be running workloads on-premises and in a cloud, you have to decide what type of network connectivity you need between the two environments. The first option is to set up VPN connectivity from your site to the network in the public cloud. In that case, the same Layer 2 network in public cloud is extended and reachable from your own local network. Most public cloud vendors provide options for hardware- or software-based VPN gateways.
The second option is to just have Layer 3 connectivity to the VMs in a public cloud with public IP addresses. This is more restrictive, since all VMs that need connectivity from your enterprise will need to have public IP addresses. Public IPs are a scarce commodity; they are quite expensive and they also expose your workloads to port scanners looking for security vulnerabilities.
2) Low latency network connectivity
Most applications are sensitive to latency between various components, and having WAN latency and jitter when running an application across two clouds can be very costly from a performance and reliability point of view. These days, multiple datacenter providers have set up low-latency, high-bandwidth links between their location and the public cloud.
3) High bandwidth connectivity
Doing migration over WAN can be very time-consuming and cost-prohibitive. In addition, the upload bandwidth in most cases is much more expensive than the download bandwidth. There are services like MegaPort that provide lease-based, high-bandwidth connectivity between private datacenters and public clouds. This is a great model for customers who want migration between clouds. You should look for the option of renting space in a datacenter that provides such functionality.
4) Provisioning and migration functionality
Ideally, you want a single way to deploy applications across more than one platform. You should try to pick two platforms that support the same language to describe the application. Another alternative is to use a Cloud Management Platform that provides higher-level abstraction for application deployment and translates that into the underlying cloud platforms.
Once a workload is deployed, you may need to migrate it from one cloud to another. This is not a common operation and most management platforms do not support it. You have to find third party solutions to take care of application migration from one cloud to another. This can also be time-consuming if a lot of data needs to be moved. Try to structure your applications so you can burst onto a public cloud without too much data movement. There are a few options to handle that:
1) Migrate stateless application components
2) Use a cloud-based data repository like an object store in your application
3) Use a high-bandwidth connection for quick migration
4) Use a storage system that does asynchronous migration of data to cloud
With these, you can mitigate the issues related to application migration or bursting to the cloud.
Hybrid Cloud Deployment Options
There are three main components needed to build a hybrid cloud:
1) Private cloud infrastructure and software stack
2) Public cloud
3) A management layer across these clouds for provisioning, migration, visibility and planning
There are three basic options for deploying a hybrid cloud solution.
Stitching together various components
You can deploy a private cloud from vendor A, a public cloud from vendor B and stitch them together using a cloud management platform from vendor C. Here you get a lot of flexibility, but you have to deal with multiple vendors, incompatible feature-sets, upgrades at different times, and finally training your team across all of these solutions. This solution should only be considered by large enterprises that have a lot of IT staff and specific requirements that cannot be serviced by more integrated solutions.
Same vendor public, private cloud & management layer
You can choose the same vendor for both private cloud deployment and use their public cloud. An example is using Microsoft Azure stack on-premises with Azure Cloud. Similarly, Oracle recently announced cloud@customer integrated with Oracle public IaaS cloud. VMware also announced partnerships with vendors like IBM and AWS where VMware infrastructure is installed in the datacenter of these partners.
In most of these cases, it is quite limiting to use just one public cloud, and you should be able to use more than one of them. Public clouds are useful not only for infrastructure as a service but also to provide managed services. So pick this solution only if the public cloud solution fulfills all of your needs in terms of IaaS, PaaS and services.
Private/Hybrid cloud solution with public cloud choice
Some vendors provide an on-premises cloud that is integrated with AWS or other public clouds using their own management software. These vendors include VMware and ZeroStack. In this case, the same vendor provides the private cloud and the management software, so there are fewer moving pieces. In addition, you get your choice of public clouds. For most small to mid-sized enterprises, this is a great option due to greater flexibility and small operational overhead.
Hybrid cloud is the best way to set up your IT if you want to optimize for cost, efficiency, and control. Aim to simplify the private cloud deployment and lower the operational costs associated with it. Ideally, you want a private cloud that is as easy to use as a public cloud, and that gives you the flexibility to use either of them via a single platform – this can help you make the decision of which cloud is best suited for each application.