Systems and solutions will grow if they are successful.  Therefore, it is essential for us to consider whether this will be handled by scaling up or scaling out.  There are many ways that a solution will need to grow.  There can be limitations based on processing, storage, network, or other areas.  Each of these can grow in the same way or you can mix-and-max your way through these issues.  No matter the approach, it needs to be thought through as part of the architecture.

Scaling Up

The first way to scale a system is up.  This essentially keeps everything in place while making it stronger or more powerful.  In the computer world, this can be a bigger storage drive, more memory, or a faster processor.  All of these options help a system respond faster and support more users.  Of course, there is a limit to this growth.  While easier to build, an architecture that is designed to scale up will hit a ceiling at some point.

Scaling Out

Scaling out involves replicating systems and using those new ones to provide a service.  You roughly split up the total user base into a bunch of smaller bases that can be served by a smaller solution.  This allows for almost infinite scalability.  The downside is that you have obstacles to overcome to split out the work and make it seamless.  Your users will not often make it easy to splinter them out into groups.  On the other hand, some applications are perfect for scaling out.  This situation is exactly why microservices have their niche.

Learning More

There is a lot more that factors into which way an application should scale.  Rather than tackle those here, check an article like this one.  Your solution is unique and needs a similar approach to how it scales.  Luckily, growth is a good challenge to face.

Rob Broadhead

Rob is a founder of, and frequent contributor to, Develpreneur. This includes the Building Better Developers podcast. He is also a lifetime learner as a developer, designer, and manager of software solutions. Rob is the founder of RB Consulting and has managed to author a book about his family experiences and a few about becoming a better developer. In his free time, he stays busy raising five children (although they have grown into adults). When he has a chance to breathe, he is on the ice playing hockey to relax or working on his ballroom dance skills.

Leave a Reply