The DevOps field is engaged in a great, collective migration into the cloud. Businesses are decentralizing their applications and databases, hosting them in the cloud to make them available regardless of geography or user device.
Some organizations choose to host their applications on private servers, but in periods of high demand take advantage of the public cloud by directing overflow traffic to cloud servers. This approach is called cloud bursting.
You can use cloud bursting to keep your services free of interruptions while efficiently allocating resources. You can offload excess computing work to a public cloud provider and keep sensitive or low-latency work on your private clouds and on-premises infrastructure, like the servers physically located in your data centers and any associated virtual machines (VMs). Some companies choose to outsource their private cloud hosting.
If you offer a service that experiences brief periods of significantly increased traffic, computing demands may exceed your private cloud’s capacity and impact your users’ experience. A hybrid cloud approach that combines both public and private infrastructure lets you handle seasons of increased e-commerce during holidays, or development work leading up to significant release or ship dates. It also addresses any unexpected workloads for which your organization does not have exact models.
Each approach presents distinct challenges, so it is good to know how each deployment type might impact your priorities. For example, a hybrid cloud introduces the security challenges and architectural considerations inherent to public clouds. Organizations that need an isolated and highly-secured network are likely to run their applications on-premises instead.
In this article, we will explore what cloud bursting is, see how and when to implement it, and discuss how to determine if cloud bursting is right for your organization.
What is cloud bursting?
Cloud bursting is a hybrid cloud deployment technique where an application on a private cloud is configured to redirect overflow traffic into a public cloud. This redirection happens in response to a demand for computing resources that exceeds the private cloud’s capacity, enabling an app or network to handle sporadic workloads that would typically overwhelm the company’s privately-owned servers.
You can provision extra computing resources in the public cloud the same way that you might provision a metered utility. By purchasing time and capacity, you pay only for what you use in the public cloud. When demand drops below maximum capacity, the application or data moves back to your private cloud.
The approach and handoff are smooth across this threshold. As the demand for computing resources approaches what your system can handle, the application automatically switches to the public cloud without interrupting the app’s services and user experience.
You can use this technique to manage critical and non-sensitive applications, freeing resources on the private cloud for critical and sensitive applications.
Strategies for cloud bursting
You can configure cloud bursting to deploy either manually or according to the policies you specify in the software.
Manual bursting allows you to manually dispense access to cloud resources when you experience or expect traffic increases. You do not need to wait for your load balancer to send notifications before manually allocating bursting capacity.
For example, say you work for a company that plans to run an advertisement during a popular sporting event. You should provision plenty of cloud bursting capacity a few days in advance and load test it to ensure it will keep up with potential demand.
You can free space or local resources for business-critical applications by creating large, temporary cloud deployments. For example, your organization’s AI teams can train and test their models on-premises and then buy extra capacity to train a large model on a large dataset.
Manual bursting lets you test cloud bursting projects before deployment, but the technique requires human labor at critical points. In every case of manual bursting, you need to manually de-provision all these cloud resources when demand drops. That leaves you open to human error. Cloud capacity is, after all, an expensive commodity, and once you have provisioned it, you are committed to the transaction — even if you do not use the capacity.
Automatic cloud bursting involves setting policies guiding how the software handles the bursting, which it will do without the need for human oversight.
This technique is especially appropriate when you expect spikes in traffic without knowing precisely when or how prominent the peaks will be. For example, an e-commerce site expecting traffic spikes during holiday periods can use automatic bursting to handle the extra burden, even when they are unsure of their marketing efforts’ success that year.
Cloud bursting use cases
Most of the use cases described so far demonstrate how cloud bursting is best suited for peaky or unpredictable workloads or both. Let’s explore these use cases deeper.
Cloud bursting can be critical in continuous integration and continuous delivery (CI/CD) during the period leading up to a significant release or ship date. You may have large teams of developers simultaneously working on massive projects and running many builds all at once, requiring more resources than your on-premises servers can accommodate.
Large organizations that regularly release extensive product updates may handle peaks like these on-premises. Still, the companies that do this are often close to the public cloud providers’ size anyway.
You can use cloud bursting to handle unpredictable traffic spikes. For example, your organization may be unsure how large the traffic spikes will be during a new marketing push. Manual bursting enables you to have computing resources ready in reserve for the campaign’s duration.
Banks also benefit from cloud bursting during holiday periods. The dramatic increase in transactions during festivities may exhaust a bank’s on-premises server resources.
Even so, it is not worth owning the infrastructure during the rest of the year. Bursting some of the bank’s non-critical and non-sensitive applications to a public cloud frees on-premises resources for business-sensitive applications.
Benefits and challenges of cloud bursting
Although cloud bursting offers many advantages, it also presents some new challenges that have important implications for using bursting. The cost-effectiveness and flexibility cloud bursting provides also make it more challenging to maintain the integrity of data and apps. It can also increase your infrastructure’s complexity.
The most dramatic benefit of bursting is its cost-effectiveness. You do not need to give up your on-premises infrastructure and its attractively small impact on your bottom line. You only pay for the public computing resources you use during peak demand, which is capacity you do not want to pay to maintain during periods of regular use.
Access to the benefits of both private and public clouds, under strictly controlled conditions, gives you flexibility for your deployments. You are not limited to the computing resources you have on-premises. You can take advantage of new research, development, or other business opportunities — especially when testing applications or models on large datasets.
Still, it’s a good idea to be careful of how your infrastructure is projecting into the public cloud. Moving some of your organization’s resources from on-premises hardware to the public cloud can add complexity in unexpected places, such as causing latency to service users. You may find it challenging to establish redundant connections requiring low latency and high bandwidth between your on-premises servers and the public cloud.
Exposing data to a public cloud also means that it may be compromised if someone attacks the public cloud. A primary reason organizations use the private cloud model, despite its cost and relative inflexibility, is to protect their data and applications. So, carefully consider if and how to configure your cloud bursting to work around the sensitive and critical data you need to keep on-premises.
How to implement cloud bursting strategies
To configure your services for cloud bursting, make sure your infrastructure is ready for deployment, and that your clouds are well-matched.
Carefully select the right cloud service provider for your needs. Providers are a varied group, and their cloud offerings are suited for different uses. To have the best cloud bursting experience, choose the cloud provider that best meets your application’s needs. For example, your need to access specific types of servers or GPUs may be a factor in picking one cloud provider over another.
You must also prepare your application. After choosing the right cloud provider, make sure your application is ready for deployment to the public cloud with all the dependencies it needs. Implement any security measures needed to protect your application and its data.
Then, set up load balancing. Set a predefined traffic threshold that your on-premises servers can handle. When an on-premises workload reaches this threshold, your application automatically switches to the public cloud by splitting requests between on-premises servers and public cloud infrastructure.
How to decide if cloud bursting is the right approach for your organization
Cloud bursting enables organizations to scale their business without installing and maintaining additional resources on-premises. These resources are an overhead capacity you are unlikely to use regularly enough to make the investment reasonable.
Remember that cloud bursting also introduces security challenges by potentially deploying sensitive data to a public cloud. Before implementing cloud bursting, weigh the need to be cost-effective against the need to maintain your data’s integrity.
If your organization runs services or applications that are not so sensitive — or if you would be mostly unaffected when a public cloud provider is compromised — you can use cloud bursting to insure yourself against service disruptions caused by spikes in demand.
If security is a higher priority than cost-effectiveness, however, bursting might not be a viable solution. Some security-sensitive workloads must run only on-premises.
When you are ready to implement cloud bursting and a hybrid cloud approach to your software delivery strategy, automated CI/CD tools can help. A CI/CD pipeline can push code to the cloud when your app experiences a temporary traffic spike or when your developers require more resources for a looming release date. To learn more about how CI/CD can help your team manage spiky workloads, read CI/CD for the Hybrid Cloud and get started with a free CircleCI account.