Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Planning Scalable Web Application Development

What language, framework, and hosting considerations should one make before starting development of a scalable web application?

like image 339
BWelfel Avatar asked May 16 '09 21:05

BWelfel


3 Answers

The most important consideration is not to over-engineer to the point that it gets in the way of building and launching something. Analysis paralysis is the single biggest inhibitor to productivity, progress and results.

Yes, do some planning. Pick a framework. Perfection in a framework will be impossible to find because it doesn't exist, partially because you don't know what you need until you build it anyways. Chances are, if you pick something, it will be better than picking nothing.

Yes, try to pick flexible, inter-operable tools for where you see yourself going.

Yes, look for a good built-in feature set where you see yourself going in the next 6-18 Months. Trying to look beyond that is not really realistic anyways as most projects change so much anyways going towards the first release.

So, pick what you're comfortable with or what is familiar. Don't follow the crowd, do what gets you the best results, quickest, and often. Understand that you might have to change in the future. So, whatever you build now, try to use unit testing so you can re-factor if ever needed.

If what you're building is going to be super successful, it will be a great problem to have, and an easy one to work on once it's making money as you'll be able to get other talent to help you.

Share what you end up picking and why for your situation -- it helps the us learn from you too!

like image 122
Jas Panesar Avatar answered Sep 21 '22 04:09

Jas Panesar


Don't necessarily marry yourself to one language or framework. It may be that some parts of your site work better with different languages and frameworks than others. For example, all of 37signals' sites are based on Ruby on Rails, but they recently wrote a blog post about how the underlying technology of one is actually written in Erlang now because it's much easier to do concurrency that way.

Obviously there's a level of complexity where things turn into a mishmash, but using the right tool for the job — even if that means different tools for different jobs — can simplify things.

like image 28
Chuck Avatar answered Sep 22 '22 04:09

Chuck


Firstly on language, it largely doesn't matter. PHP, Java and .Net being probably the biggest three are all proven in the sense that they run some of the largest sites on the Web so don't listen to anyone who tells you one is more suited than any of the others.

Some might also put Ruby and Django/Python in this list. I have nothing against them but I'm not aware of any big (say top 50) sites using either.

Hosting considerations depend on how low you want to start but basically the order is:

  1. Shared;
  2. Virtual Private Server;
  3. Dedicated.

Scalability will largely be about your application's design than any language, framework or provider. Efficient database schema, efficient delivery and use of Javascript/CSS and in-memory caching are all issues common to any language or framework.

like image 37
cletus Avatar answered Sep 19 '22 04:09

cletus