When building your application, you’re probably not spending much time worrying about how your application is going to scale in the long run. If so, that’s perfectly fine. A lot of Developers have an idea and they want to build quickly to get their idea out the door as fast as possible. However, what happens if your application takes off? Have you thought about how your application will scale if your idea spreads like wild fire? What you’ll find yourself doing is trying to plug a bunch of leaks rather than focusing on how you can build on your success.
I’m here to tell you there’s a better way. While I’m sure a lot of you are reading this and thinking that this is just common sense. You would be surprised by how many do not think of this at an early stage.
One way you want to think about your application in the early days is how your infrastructure is set up so that you can ramp up your infrastructure quickly while not impacting the user experience. Let’s first define what scalability actually means.
What is “scalability?”
Scalability is the ability to grow without impacting your users or infrastructure. Seems pretty self-explanatory right? So why aren’t more Developers doing this?
So let’s spend a few minutes talking about how you should be thinking about your application and what you should be doing today that will save you a headache later.
Things to think about
A few things you want to think about are:
1) When should I invest in more infrastructure or resources that will enable me to build fast?
2) How will I know it’s time to pull the trigger on those resources?
3) What are some gotchas I can think about now that will save me time later?
Well, if you’re asking yourself the first two questions, but your application is already dealing with performance issues, it might be a harder task to fix than if you were to think about them before you need them. However, that’s kind of the point right? You don’t want to be thinking about these things when your application is crashing or your users are having trouble using it.
Somethings you want to think about is what kind of services on your backend will enable you to build fast and scale. Scaling is not just adding more servers or more bandwidth. It’s also ensuring the features within your application can support the additional load.
There are some great articles that cover some ideas around how you can solve this at an early stage. Of course Brightwork can help with this, but you should know about some of the other technics other Developers are using to think about scale.
Worchestra wrote a pretty telling article that outlines some great things to think about including some equations that can help guide your decisions.
At the AWS Summit, there was a great slide that is online here which gives some great insight about how they think about scale from an infrastructure perspective.
Blue Waters also had a great article that wrote about how to think about designing your application at scale.
We hope this post got you thinking about how you can build your application at scale. You don’t want to be thinking about these things when it’s too late. User issues because you didn’t spend the time early on thinking about scale can be the death of your application.