My basic question is: How to start building a web application that could grow fast?
A little background: A customer of me is asking for an offer for a web application. I can not go into details but it's an e-commerce and crowd funding kind of thing. So he wants to spend some money and expects a site that can grow unlimited.
I plan to build it with Zend Framework 2 and MySql. My problem is that I have no experience with large scale web apps. I read everywhere: No problem, just start the project and if it grows to large then you can react on it and add caching, clustering etc.
But is this really true, or do I have to add some scalability mechanisms from the start? Cloud servers (Amazon EC2) for example have a different approach for the file system. Is it possible to switch later? Or what about load balancing? I get problems with session handling, or not? And what about MySql? Or better start directly with a NoSql approach?
So my current plan is:
- Step 1: Build the web application normally with ZF2 and MySql.
- Step 2: Add caching like memcache and opcode
- Step 3: MySql cluster or NoSql or load balancing or cloud server??
UPDATE:
Ok, I know that my question is a little too broad. So I try to track it down to a few specific questions:
- Better start directly with a cloud server?
- Can a cloud server grow unlimited?