This is a guest post by Eltjo Hofstee, Managing Director, LeaseWeb UK. LeaseWeb is an Infrastructure-as-a-Service (IaaS) provider offering dedicated servers, CDN, cloud hosting and hybrid cloud on a global network. We are addressing the topic of scaling at an upcoming meetup in London, hosting Christian Owens, CEO of Paddle and Roel Spilker, Senior Software Developer of TOPdesk on September 27th. If you would like to join us, please RSVP.
As a SaaS startup company, one of many concerns is getting your infrastructure up and running as fast as possible. Hopefully at as low as possible a cost. Although reasonable as an aim in which I see much logic, I would like to tell you why you may want to consider a couple of things before you set up your infrastructure this way.
By speaking to many scale-ups, we have seen that the initial decisions have sometimes dramatically affected the follow-up options for scale. Below you will find five questions to consider before your startup chooses the cheapest and/or fastest route to set up the initial infrastructure.
1. Will you be able to scale the preferred setup to at least 100 times the initial size? Moreover, if this is technically possible, will this mean the performance is still at an acceptable level?
If your business is as successful as you hoped when you started it, it will mean you need to scale it. By offering a SaaS solution, your ability to scale the business correlates with the ability to scale your infrastructure. In many setups, you will see a split up in web server, application server and database servers. All these three levels should first of all be able to scale, but next to that, they should be able to scale while keeping the performance fast enough to satisfy your end users.
To do so, you might already be thinking about load balancing of the web and/or application servers, but also about scaling the database. (see point 3). This means that your SaaS application will need to be able to cope with a load balancer in front of the setup or that your application itself will be able to scale the amount of web/application servers.
2. What happens with your costs if you scale it to 100 times?
As you are scaling, you want to see a decrease in cost per end customer. To be able to reach this, it will help if your SaaS application can cope with a multi-tenant setup. Meaning you won’t set up a VPS or server per end customer, but you can make your application completely ready to deal with multi-tenancy. This will have quite some impact on the way you design your security within your SaaS application, which is, therefore, an important consideration at the beginning of your business.
3. Will the cost be linear, or is there an option to lower your cost per customer once you scale?
Assuming you will be able to set up a multi-tenant cloud environment, this still doesn’t guarantee you that your application can scale without decreasing the performance. So your design should be able to grow the number of customers, without increasing the amount of infrastructure at the same pace. Only if you’re able to achieve this, will your costs not grow linearly, meaning that your cost per end customer will decrease once you scale and grow your business.
4. Is the chosen database, one which you can scale horizontally instead of vertically and is your database cloud provider agnostic? (Meaning you can swap cloud provider easily once needed?)
Although this subject was already raised in point 2, scaling the database is probably the most essential part to scale your business. This is where I’ve seen things going in the wrong direction most frequently. As mentioned before, to scale your business, you will need to use a multi-tenant database which is also able to grow horizontally and not only vertically.
Scaling vertically means it runs on the same server, but you increase the amount of CPU’s, RAM or storage. Scaling horizontally implies that you will be able to add more VM’s or servers to improve the performance and stability of your database. Still, with many databases, this is not so easy to achieve and therefore the choice of your database, in the beginning, is a critical decision if you want to scale your business.
5. Will your customers agree with the level of security you’ve built into your application?
Based on the four questions above, question 5 is the crucial one. I will give you an example to help you understand why. At LeaseWeb, we have a customer who developed an application that holds data so critical to the business of the end customer, that their end customer won’t allow a multi-tenant setup. This means that they need to set up an infrastructure per customer, which limits the scalability and cost-saving connected to scaling. It’s not a significant issue, but you have to be aware of this limitation if your business has this as well.
If one of the above questions is answered with a no, you might run into performance and/or cost issues once you scale. The problem if you find yourself in that situation is that it will usually take significant redevelopment of your application before it is possible to scale the infrastructure in a more performant and competitive rate. I have even seen companies who struggled so much in scaling their infrastructure, that this blocked further growth in the (nearby) future.
Once you become a scale up, the above considerations (if answered positively), will help you to scale up your infrastructure further as well. At that time, you might be able to allocate a part of your infrastructure as baseload and get better pricing on that part by moving it to a longer contract term. This will mean that your infrastructure is capable of being hosted in a hybrid environment. If it is not, that would limit some of your possibilities.
Consideration: although it is attractive to choose the cheapest and/or fastest route as a startup, this might mean your future growth is affected.
Photo credit: Campaign Creators