Are you getting the full benefit of the cloud if you don’t take advantage of its elasticity? To be sure, there are many ways that cloud environments—running dynamic OR static workloads—can positively impact your business agility. But cloud computing fundamentally changes the relationship between infrastructure and workloads that run upon it; you can constantly right-size by adding and removing capacity on demand instead of being stuck with over-sized or under-powered environments. To do this effectively, you need flexible options for automatically and manually adjusting your infrastructure resources. In this post, I outline five different application scenarios, and which CenturyLink Cloud scaling capability delivers the optimal elasticity solution.
1. Modern web application with variable usage? Horizontal Autoscale!
Are most of your internal or external facing web applications in constant, heavy use? If so, I’d be surprised! The applications that your employees rely on may be busy during predictable periods, or, experience load whenever random business conditions occur. Public web applications may spike in usage when marketing campaigns are in flight, or when an avalanche of traffic follows a social mention.
Instead of standing up gobs of (costly) infrastructure that only add value during random usage spikes, consider services like CenturyLink Cloud Horizontal Autoscale. Our Horizontal Autoscale service is a great fit for web applications that cleanly scale by adding or removing virtual servers from a defined pool. Simply park powered off servers in a CenturyLink Cloud Server Group and define an Autoscale policy that outlines criteria for scaling out and in. When that policy is applied to a Server Group and tied to our Load Balancing service, the platform quickly powers servers on and off in response to changes in utilization.
What does it cost to "park" a server? Customers only pay for storage and operating system licensing when a server is powered off. For example, if your mobile web application can satisfy its regular load with three servers (Ubuntu 12.04, 2 CPUs, 6 GB of RAM, 20GB of storage each), it only costs just $15 per month to keep five servers powered off in reserve to handle occasional spikes. That uptime peace of mind will cost you less than lunch for two in a moderately priced Chinese restaurant.
2. Relational database under load? Vertical Autoscale!
Let’s be honest, not EVERY application is designed to scale horizontally by adding more servers to share the load. Rather, many applications benefit by adding horsepower to the existing servers. For instance, relational databases work in multi-server configurations, but each server typically has a lot of resources allocated. In that case, adding more CPU/memory/storage to a given server is a perfectly viable way to handle new demand.
The CenturyLink Cloud is one of the few providers that offer an automated vertical scaling function. Our Vertical Autoscale service adds CPU capacity to running servers without requiring a reboot, increasing capacity based on utilization criteria that you specify. When the usage spike is over, the Vertical Autoscale service will remove CPU capacity and reboot the server during the window that you select. If you need to add storage or RAM to a server on the fly, you can also manually update servers, also typically without a need to reboot. This is a powerful way to take advantage of cloud elasticity without rebuilding your existing applications for horizontal scale.
3. Worker nodes that are falling behind? Horizontal Autoscale!
In loosely coupled, distributed systems, you’ll often find services that work asynchronously in the background. These services may take product orders from your website and update the transaction system, perform financial calculations, render complex animation sequences, and much more. For example, consider a website where people can register for a new, paid service. That system has to perform a fraud check, authenticate a payment method, and create a container for the new user. A "new user signup" message is dropped to a queue, and a set of servers are all tasked with reading data from the queue and processing the request. If the number of signups spikes, these worker nodes can get overwhelmed and the new customers are stuck waiting for their signup confirmation.
In a case like this, it makes a lot of sense to scale the worker nodes horizontally. CenturyLink Cloud Horizontal Autoscale can respond to CPU or memory spikes by powering on (and off!) servers that can instantly help relieve the backlog of queued up requests. Cloud users don’t have to choose a load balancer to associate with an Autoscale policy, so in that case, the Server Group just expands and contracts the number of running servers without worrying about routing traffic to them. A strategy like this can reduce the risk of a poor user experience and encourage customers to trust your application, even during busy periods.
4. Web application with predictable bursts in usage? Schedule-based Scaling!
We’re probably all familiar with this back-office scenario: at the end of the month, the financial accounting system is overwhelmed by closing activities and invoice generation. To combat these predictable spikes, many companies either (a) deploy systems like this on pricey hardware that always has enough headroom to deal with the spike, or (b) resign themselves to delivering a subpar, slow application during these bursty windows.
There’s a better way! The CenturyLink Cloud is built with automation and management in mind. Apply a "scheduled task" to a server so that it powers on at a specific point each day/week/month to increase application capacity. Create a second scheduled task that powers that server back down when the predictable spike is over. This sort of elasticity is exactly what the cloud is good at, and helps you deliver an optimized application that delights users, keeps costs down, and helps you arrive at business conclusions faster.
5. Cache cluster that needs controlled resizing? Manually scale up/out!
You may love automation as much as we do, but sometimes a scale event requires careful planning and manual resizing because of complexity with the target application. You may not want an automated service resizing your NoSQL database, cache cluster, or mission critical line of business system whenever it detects a heavy load.
In cases like this, you can choose from the full catalog of elasticity options that the cloud provides. Experiencing I/O contention and want to add more servers and spread the intense demand? Clone a running server or quickly build a new one from scratch. Need to add storage to a server that’s rapidly running out of room? Add more space to an existing volume to add a new volume to the running server. Looking to add CPU or memory to a server and then update the application to recognize the new capacity? Immediately add resources and run a script against all the resized servers.
CenturyLink Cloud Scaling Tools Deliver Elasticity
Elasticity is a hallmark of the public cloud. It helps you maintain a dynamic resource pool that expands and contracts to meet business demand. The CenturyLink Cloud offers a leading set of services to help you automatically and manually adjust capacity for one server, or a fleet of servers.
As you migrate applications to the cloud—or design entirely new cloud-native ones—do it with scalability and elasticity in mind!