Scale
Blog

Proven: the cloud is NOT scalable

The cloud is very scalable. You hear, see and read that everywhere. Everyone knows that right? Except it’s not true. The cloud is not more scalable than working on premise. I see you raising your eyebrows. Tell me Hugo, why is the cloud not as scalable as we’re all assuming?

Adding hardware is not the same as scaling

In the cloud you can easily order an extra server. Or a database. That gives you more capacity. But you’re not scaling. If you rent an extra office floor, that doesn’t scale your business does it? That requires more. It’s not just about hiring extra people. When you’re really scaling your business you need to adapt the structure of your organization to the new scale, create new roles or departments and work differently.

If yopu want to scale in the cloud it’s no different . You need to do more than order extra servers and databases. If you don’t change the way you work with IT, you can’t scale.

De cloud won’t give you an inch of progress

A lot of the scalability problems of our customers can’t be solved by adding more hardware. Or they can be solved with hardware, but only at a very high cost.

For example, your database grows with a factor of 10, causing your queries to run 100 times as long. 1/10 of a second was acceptable, 10 seconds is absolutely unacceptable. You need to query your data differently to scale the volume of your data. You need to start working differently, because placing100 times the amount of hardware or cloud resources is unaffordable.

I have loads of similar examples of scaling problems an they all have in common that the cloud won’t give you an inch of progress for the solution.

Not every application or server can scale horizontally

Your capacity limits are determined by the maximum size the cloud provider can deliver. Those limits are quite large, but when you reach them you need to scale horizontally. In other words roll out more servers instead of increasing the server size.

Scaling horizontally adds complexity. If you have more servers that perform the same job they need to ‘coordinate’ that work – something that’s often missed. With an investment system at a customer of ours that was split over two server we saw some transaction being performed twice and some not at all. Because the servers were not coordinating properly. That is not what you want, so you need to start working differently. Just adding a server won’t cut it. And please don’t think ‘that won’t happen to us’ because that’s exactly what that customer said to me previously.

NB: Some servers, like data warehouses, can’t be split at all by their nature. If you hit bthe limit there you can’t grow any further.

More servers lead to more management, which leads to more cost.

Of course this is exactly the same on premise. But the promise that cloud would be more scalable is unfortunately not kept in this case. You need to do this yourself, manage it yourself and don’t leave things to chance because then … it’s too late and you’re faced with problems that cost money and that need to be fixed. By you. Not every application or server scales horizontally, make sure you know what your situation is.

Your network doesn’t scale itself

If you’re doing more in the cloud, your netwrok connection needs a lot of work. The first few applications will work fine on your existing Internet connection. But when you migrate crucial services, think Active Directory, to the cloud you don’t want any disruptions on them because someone is watching a YouTube clip. Or because 20 people are on a Teams call.

Network connections to the cloud are a lot more complicated than connecting a few glass fibers and buying some bandwidth. The traffic needs to be regulated to make sure crucial services aren’t disrupted and at the same time bulk services like email and printing have enough bandwidth.

When you’re scaling in the cloud your network need to scale at the same rate, or your connection to the cloud will clog up. We see this happening all the time.

Even worse, it’s happening constantly, every moment of the (working) day. More often than not we have no idea, because people don’t report it or have no clue where the problems are coming from. Now you know ...

Micro services scale, but their data doesn’t

Cloud suppliers love to tell you how easy it is to scale micro services. You design a micro service that performs a specific functionality on a piece of data. The you roll out that micro service and the cloud supplier provides enough capacity to run the micro service at any scale.

If those micro service run on a database, that becomes the bottleneck. The CPU and memory usage of the micro service will probaly scale, but the back-end database is a different story. With a growing usage the database needs to grow in sync. A bigger database or a database that processe more requests needs to work differently. Just like a growing company in the example earlier. For the technical people: you need to adapt your queries and your statistics.

Micro services only solve scalability issues if the scalability of the algorithms is solved. When you’ve done that you should as the question if you still need micro services.

You can’t use your surplus capacity

If you deploy large servers and you don’t use the capacity all day, you’ll have surplus capacity the rest of the day. And in the cloud that’s useless for you. Not so for the cloud provider, they monitor your usage pattern and will happily sell the capacity you’ve already paid for a second time, to someone else.

On premise you can use the surplus capacity for other workloads, in the cloud you can’t. At least you can’t do it yourself.

While strictly speaking this doesn’t make the cloud less scalable than on premise, it does make scaling in the cloud much more expensive. Expensive, there’s a word. More money, less value.

And if you turn auto-scaling on?

“But Hugo, why don’t we just turn auto-scaling on?” That has a quick answer. If adding or up-sizing servers and storage doesn’t help to scale your your applications and your systems, it won’t help to do that automatically. If that’s what you think, you’re not the only one. I get this question a lot. But as I’ve explained earlier, scaling requires more than adding resources. Your invoice will scale fine though, and automatically.

So if I want to scale … I should not be in the cloud?

You can scale perfectly in the cloud. But the cloud by itself is not the solution to do this. Scaling requires more than what cloud providers have to offer. The only offer scalability of resources and that’s not the same thing as scaling your applications.

Do you want to know how to scale your applications and systems, in the cloud or on premise? Then book an appointment with me, no obligations. I’m happy to help. In that meeting we’ll discuss how you can grow the digital side of your company so the whole company can grow and the cost level stays in line with the company growth.

Book your appointment here

Click Me