Things you must know about scaling your app
I tried to make this post as friendly as possible and less technical, yet I remembered that I am a programmer, and some technical terms can’t be avoided!
What’s app scalability?
The ability of an app to serve more users, without breaking, or without adding more infrastructure (database servers, application servers, memory, CPUs, network bandwidth…etc.) The goal of any technology officer is to make sure that the business app can serve as many users as possible in the most efficient manner without adding more infrastructure.
Why should you care?
The scalability of your app directly affects your customer's satisfaction, your competitive edge, and your bottom line. If your app is not scaling well, new users will face problems and they will leave. If your app doesn’t scale well, you might risk stopping your app operation and this will give the opportunity to your competitors to take over your unsatisfied users. If your app doesn’t scale well, you will have to invest in more servers, bandwidth, database power, all of which cost money directly. This extra cost will affect your (cost per user) and your profitability is going to get a hit. If you were to look for further investment, (cost per user) will be one of the major factors affecting your attractiveness for further investments.
Understanding Your App Usage Patterns:
Most apps usage tends to happen in a certain pattern, for instance, you will find that most users of (Instagram) will happen mostly between (X:00 and XX:00) most days and between () in weekends or holidays! That also will help you to understand how your app performs in terms of usage, as its usage will be -most probably- in a certain pattern.
Your development stack affects your app scalability?
Code:
Your app code comes at the heart of your scalability. Bad app code-design will lead to unnecessary usage of resources, which in turns will press on the app availability. You can save up to 10X of your total expenditure on app infrastructure (i.e. server capacity, database power, network bandwidth) just by applying few thoughtful techniques during app development. For example, writing a separate layer to manage, pool, cache and dispatch data can save you loads of (server RAM and database power.)
Its 2019, most of the scalability issues are already solved by cloud-based services, all you need is a good code-design for your app and you will be good to go ??
Database:
This is not as easy as it may sound, but for a small app, here’s a rule of thumb that might be a good start: For small size data, for best speed to server power ratio, use an SQL based database (SQL server, Oracle, mySQL ..etc.) For bigger size data which is growing fast, use NoSQL type of database (NoSQL, Mongo, Cassandra ..etc.) NoSQL type of databases are known for their high and easier scalability compared to their counterparts SQL based databases.
Servers:
Node based apps can handle more load than their counterparts developed on PHP or .NET. This is for the simple fact that Node are built with asynchronous code in mind, making every processor thread handles many instances compared to one instance per one thread on .NET and PHP.
How to scale for technical founders?
Well, here’s a good starting point…https://medium.com/faun/scaling-applications-in-the-cloud-52bb6dfbac4e
I tried to make this post short and sweet with enough information to guide your decision. Enjoy!
IM&T Graduate at PDO
5 年I enjoyed reading thank you and waiting for more ??