Last Updated Jul 22, 2012 — DevOps Expert
Scaling the hybrid cloud horizontally
DevOpsAfter being derided as "unpure" by cloud enthusiast when the idea was first presented, we can now safely say that the hybrid cloud is here to stay. The mix of dynamic requirements within the enterprise related to government/industry regulations, security and performance require a more flexible environment than the public cloud can offer. So what does a hybrid cloud actually mean? A hybrid cloud is a composition of a private cloud and public cloud. There are two types of scaling patterns when using a hybrid cloud: vertical and horizontal. A vertical scaling pattern is the better-known scenario. This pattern spreads different components of one application across different clouds. An example of this would be where one part of an application, typically the data, is kept private, while another part is run in the cloud, such as the web front end or calculations being made on the data. A horizontal hybrid cloud scaling pattern, on the other hand, spreads different instances of applications across different clouds. In this scenario, enterprises develop their own applications and run them in multiple environments, some on-prem, some in the cloud. Developers run it in a test environment, testers test it in a QA environment, and users access the version that has been deployed to the production environment. Each of these environments can be in the cloud or on-prem depending on the security, performance, flexibility and scalability requirements of that environment.
Many companies are challenged with how to run containers at scale and standardize and manage release processes across hundreds of applications. Learn from Rob Stroud, XebiaLabs CPO and former Forrester Analyst, how to bridge the gap between the promise of containers and the realities of complex enterprise application delivery.This scenario lends itself to the introduction of cloud computing into the enterprise. Instead of having to hand over your critical production installation to the cloud, an enterprise can “cloud enable” just a few environments. Since there are often fewer restrictions or legislative demands around test and QA environments, this is a good place to start. This approach has a number of interesting advantages:
- Easy entry point into the cloud - No limitations related to regulatory, security and performance limitations.
- Cloud training ground - An organization can learn how to use the cloud in non-production environments before fully rolling out.
- Greater efficiency - While a production environment will certainly have its load spikes (consider a weather site when a snow storm hits the country!), every enterprise has fluctuating capacity requirements of its non-production environments.
- End the battles - An important project can demand all the available capacity of test and QA environments. With a hybrid collide, organizations can run multiple large projects with the same deadline. No more fighting for those test and QA environments!
- DR doesn't need to mean drain - Unless you have a lot of problems in your production environment, the disaster recovery environment will spend most of its time sitting there and looking pretty. Even worse, it has to be able to support the same loads as the production environment - and then some!
- Security & compliance - Some enterprise regulatory and security restrictions can prohibit you from using sensitive test data in a cloud-based testing environment. Then again, you'll probably want to give your developers and testers dummy or anonymous test data even if testing on local infrastructure.
- Performance - Testing, especially the load and stress variety, should be done in a representative environment. The performance characteristic of cloud infrastructure is likely to be different from your on-prem infrastructure. Once you've established the performance ratio between the cloud infrastructure and your local infrastructure, you'll be able to offload a lot of performance testing to the cloud.
- Deployment - Deploying an application to the cloud will be technically different than deploying that same application to local infrastructure. A scalable deployment automation solution that will allow you to eliminate the differences is essential.