We often hear that being able to scale your application is essential. But why is it important? Why do we need to be able to suddenly, and without notice, scale our application to handle double, triple, ten times the load it is currently experiencing?
Why is scaling important?
A growing business need is one reason, but there are other reasons why architecting your application for scalability is vital for your business.
There are four reasons why your digital business should be prepared to scale:
Reason #1 — Support your growing business
The first and most basic reason why you need to be able to scale your application is that your business is growing. As your business grows, your application needs grow. There are three aspects of a growing business that impact your application and require it to scale.
First is the most obvious reason. As you increase customers, your customers make more use of your applications, and they need more access to your website. This requires more capacity and more growth for the IT infrastructure for your sites.
But that's not the only aspect. As your application matures, typically, you add more features and more capabilities to the application. This means each customer uses more of your application. As each customer uses more of your application, the application itself has to scale. Simply by your business maturing over time, you will have scaling needs, independent of the number of customers you have.
And finally, as your business grows and matures, and your application grows and matures, your more complex application will require more engineers to work on it simultaneously. These engineers will also work on more complex components. This requires application support for more development teams, larger projects, and a greater touch surface. You need mature processes and procedures to scale the speed at which your larger team can improve your application.
Reason #2 — Be prepared for the unforeseen
The second reason you need to be able to scale your application is to handle surprise situations and conditions. As unexpected business bumps occur, you need to be ready to handle those bumps easily and quickly. In the case of a sudden increase in business, if you cannot handle the increased load, you risk losing the new business, as well as disappoint your existing customers.
Sudden business success can kill you if you can't scale to meet the need.
Just ask Robinhood Financial.
Who is Robinhood Financial? Robinhood Financial is an investment company that provides investment management services for its tech-savvy clientele. On Monday, March 2nd, 2020, Robinhood faced a business crisis — they faced a sudden increase in business.
On March 2nd, the United States stock market had a record-breaking day. This record-breaking day resulted in a record number of account signups and customer market transactions. Such news should be good news for a company such as Robinhood.
The problem was that their traffic load was too high. Robinhood needed to be able to respond to a massive spike in traffic to their application, and they were unable to keep up with the demand. The result was a failure of the application — their site was down for about a day and a half. This problem occurred during a peak stock market time, a time when their customers needed them most.
As a result, they lost out on a huge amount of easy new business, and created hardship and disappointment for existing customers. A potential opportunity for huge growth turned into a significant negative event for the company.
All because they couldn't scale to handle the surprise traffic load.
For a company to be successful, it must be able to scale to meet sudden and unexpected traffic demands.
Reason #3 — Handle a partial outage
You have a large application, distributed across the globe in multiple data centers — or availability zones, if you are operating in the cloud. You do this for improved redundancy, availability, accessibility, and resiliency.
But now, one of your data centers goes down. Of course, a data center failure is more likely to happen now because you are using more data centers. This increase in the number of data centers means more chances for something to go wrong in any one of them.
If a data center goes down, the traffic from that data center has to be re-routed to other data centers. This reroute results in a big uptick in traffic to those other data centers. Can those data centers handle the increased traffic? If not, they could go down as well. The result is your application can fail and become unavailable, due to excessive traffic.
So, the plan for improved redundancy by increasing the number of data centers, actually made your application more fragile. The risk of a data center failure increased, and your application could not scale to handle the traffic needs of a data center failure. The result was application meltdown — a step to improve availability made availability worse.
Can your other data centers accept the unexpected challenge of handling the additional traffic from a failed data center? Can you respond to this sudden need for scale?
Reason #4 — Maintain availability
As your application gets more complex, it requires more interactions between many different components to work correctly.
If one of those components slows down, it can trigger cascading problems in other aspects of your application. That could be something as simple as failed performance SLAs, or more critical such as timeouts causing application failure, corruption, data loss, and upset customers.
A simple slowdown of a single component can cascade into a more significant problem. And if your application can't scale, the likelihood of individual components saturating and slowing down becomes a matter of when not if.
Lack of scalability turns into a lack of availability. Lack of availability turns into missed customer expectations and negative business impact.
Scaling is critical
Scaling is critical to your business success. Whether your business is growing or not, you need to be able to handle the traffic needs of your customers at any time, or risk application failure and negative business impact. Understanding how your application is functioning by having visibility into all aspects of how its running is necessary to keep your application -- and your business -- working smoothly.
Scaling isn't just important; it is a business necessity.