TechKnowSurge
VideoSecurityFree

Requirements: Scalability

Scalability is the ability to grow IT infrastructure without a proportional increase in headcount or manual effort. This content covers the principles of scalable design, the difference between scalability and manageability, and the distinctions between vertical and horizontal scaling.

Complete this video to capture a CTF flag worth 1 point.

About this video

Scalability is the principle of designing IT infrastructure so that it can grow in capacity without requiring a proportional increase in personnel or operational complexity. When systems are built without scalability in mind, even modest growth can force organizations into reactive, resource-intensive situations where large teams are needed just to maintain what a small, well-structured team could otherwise handle. The core challenge is that decisions made early in a system's lifecycle, such as naming conventions, deployment methods, and organizational structure, have compounding consequences as the environment expands. A scalable foundation built from the start allows teams to absorb significant growth with minimal additional overhead. Scalability is closely related to, but distinct from, manageability. Manageability focuses on ensuring that a given service or system can be reliably operated with available resources, and it is sometimes sufficient on its own for one-off or limited-scope deployments where long-term growth is not a factor. Scalability goes further by prioritizing the ability to replicate and expand quickly, ideally without adding significant headcount. Tools and practices that support scalability include automation for deployment and configuration, virtualization, cloud infrastructure, containerization, thorough documentation, and consistent communication around changes. There are two primary models for scaling infrastructure. Vertical scaling involves adding more resources to an existing system, such as additional CPU, RAM, storage, or GPU capacity, increasing the power of what is already in place. Horizontal scaling takes a different approach by adding more servers or service instances rather than upgrading individual ones, distributing the workload across a broader set of resources. Horizontal scaling is particularly well-suited to automated scaling strategies, where additional instances are brought online in response to increased demand and taken offline when that demand subsides, allowing infrastructure costs and capacity to align dynamically with actual usage.

What you'll learn

What's covered

Scalability in IT Infrastructure

Key terms

Scalability
The ability of a system to handle increased load by adding resources without degrading performance.
Vertical Scaling
A scaling approach that increases the capacity of an existing server by adding more resources such as CPU, RAM, or storage.
Horizontal Scaling
A scaling approach that adds more servers or instances to distribute load rather than increasing the resources of a single server.
Load Balancer
A device or software that distributes incoming network traffic across multiple servers to ensure availability and performance.
Automated Scaling
The automatic addition or removal of computing resources in response to changing demand, commonly applied in horizontal scaling environments.

Topics

Scalability It Infrastructure Vertical Scaling Horizontal Scaling Automated Scaling Infrastructure Management

Transcript

Often times when we roll out a new server, we just go and create that server and then it's up and running. Maybe it didn't really take us much time to do that. But now do that to two servers. Now do it to 10 servers. Now do it to a 100. Now do it to a thousand. Can we replicate that? That is called scalability. When we have just a server, we don't need to be too scalable. But as we start growing as a company, if we've not created things scalable, this could be problematic.

Here we have a server. It's a small server. It doesn't do too much. It's for a small company, and we just have a person within the company that goes and maintains the server now and then. It's not a big deal because we're a small company and it's a small server.

But then we start to grow. In this case, we've replaced that server with a bank of three servers. Maybe there's some sort of high availability here. Again, not too big of a deal — we can manage this. That one person now is managing three servers. Probably doable still, and it's not that big of a deal. We're still a small company, but we continue to grow.

Now we've grown to the point where we just have a ton of servers and a ton of things to manage. And it's all based off of that one server that we set up so long ago, but we didn't set it up to really think about scalability. We didn't name it right. We didn't have the right resources on it. We didn't develop it to a point where we can expand and grow. And so now, that one person that was managing this, we have to have a team of 20 people to manage all of these servers, because we weren't scalable.

Scalable is this idea that when we create things, we create it in such a way that we can actually grow it without having too many more people. So in this case right here, let's say we focused on scalability of that server right there. We named it something that we can create hundreds of and still have an accurate naming convention. And we've managed those servers in such a way that when we deploy it, it deploys quickly. And now, rather than growing to 20 people managing all of these servers, we really just have two people that are managing all those servers. And they can do it because we've created everything in a scalable way.

How we create things scalable

Well, how do we create things scalable? We use automation for deployment and for the way we do things. We try to automate things. We design it that way. We use things like virtualization and the cloud and containers. We document things accurately. We remain organized. We communicate when things change. We implement certain processes and we implement technologies. This makes things much more scalable. And now when we grow as a company, we don't have to grow our IT department linearly with that growth. Instead, we grow just slightly more as we bring on more and more resources and more and more services, because we created it so it's scalable.

Manageability versus scalability

Now, manageability and scalability are two separate things. Manageability is, if we roll out a server or a service or a product or software or whatever the case may be, making sure that we can manage that, that we have the resources to manage whatever service that is. We might not even make it scalable, because it might be just a one-off and it doesn't make sense to put a lot of time and effort into this one service. We just want to make sure that it's manageable. Versus scalable is this idea that things can scale quickly, and we use things maybe like automation to do that.

And so what we can do is, if we don't use automation, we could just throw more resources at it. We could hire more people, so that as we scale we can do it with just more people. So there are other ways that we can scale, but really it's a subset of manageability a lot of times, because scalability means that we can quickly do that without adding a lot of headcount, without adding a lot of people — that we can scale quickly with the resources that we already have.

Vertical and horizontal scaling

There is two types of scaling. There's a vertical scaling and there's a horizontal scaling. Vertical scaling means that we're going to add more resources. So here we have a server right here, and let's say now we need more resources to this. And so what we do is we take that server and we add CPU to it. We add RAM. We add storage. We add GPU to it. Whatever it needs to scale, we're scaling larger. Well, that's vertical right there. We're going vertical with this because we're adding extra resources to the server we already have.

Horizontal scaling means that we're not adding extra CPU to the server, but instead we're adding more servers. And there's a lot of advantages and maybe some disadvantages to doing this. But horizontal means that we're scaling out by adding more servers and services rather than adding more CPU to a single server.

This is a good time to mention that there's also automated scaling. You can autoscale vertically, but a lot of times it's much easier to autoscale horizontal. That is, maybe we have some servers that are turned off, but when load gets large and we need more servers to handle that load, then we turn these servers on. They come on and then we balance it out. And then when the demand for these servers drops, then we turn those servers back off. So we can turn them on and off depending on what the demand is.

About TechKnowSurge

TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.

Explore free tools and programs →