In our latest key term explanation, we move from design to development. Today we discuss scalable tech: it’s something all new software needs to be, but how do you actually do it? Nathan and Steve are here to tell you!
What is Scalability?
Steve: So scalability is the ability to add computational capacity, either up or down. So either increasing your capacity or decreasing your capacity based on demand.
Nathan: [An example of scalability is] If you have an application, you have a hundred people on it. You have the infrastructure in place to support those hundred people.
If you need to support a hundred thousand people, you don’t want to have to completely rebuild that thing, you should set it up in a way to begin with understanding that eventually it’s going to get bigger. So you need to ensure upfront that you have the tools to do that.
How do you build a Scalable Product?
Steve: So there’s a couple of ways you can scale, typically you either scale vertically, which is you make your machine bigger or smaller, or you can scale horizontally, which is adding more machines into the mix or taking machines away.
Nathan: There’s lots of different approaches people take, I’d say: ‘making pieces of work as small as possible, so you can split those off into their own services if need be’ is a big one.
So, you know, if you have a service that does one specific thing, and you need to be able to scale that it’s a lot easier to take that scale not to mention more cost-effective), to scale that individually as that section grows, and maybe you have another section over here that’s not used as much and you can keep that as its size.
So you not only save money, you have the ability to scale and grow only to what’s needed for what your purpose is.
What should you someone know about Scalability?
Steve: You can only scale vertically so far, and that’s something to be aware of. If you’re scaling strategy is to only scale vertically, you will potentially, if demand is great enough, hit a cap to where technology can no longer scale past what’s available.
Nathan: You have to think about scalable tech upfront. It’s very easy and it’s often the path of least resistance to start a piece of software and have it be completely un-scalable. If you have any hope of your app becoming as popular as most people want them to, you have to make sure that upfront you keep scalability in mind.
Why is Scalability important in the development process?
Steve: Knowing what your scaling strategy is going to be will dictate some of your choices as to what your technology stacks going to look like. And that you’re going to scale vertically versus horizontally will make big impacts on how you design your database schema, and again, which technologies you use to build out your platform
Nathan: Scalability is important because without it your app will crash and burn; there’s really not anybody who’s not going to need to scale at some point, if they have a successful application.
If you don’t have the scalability that you need, then your app is going to, it’s going to hit a breaking point where you’re either going to have to scrap the whole thing and start over or put in patchwork to get things where they need to be.
Whereas if you had taken the scalability factor in at the beginning, you could have prevented all that. You know, you have this idea that’s been scalable from the beginning, so you, you have the pieces in place. You can sometimes hit a button and scale.