views:

54

answers:

3

Right now I am planning to build a news publication website that should be automatically scalable when traffic is increasing. I have good experience in developing web applications using ASP.NET and PHP. To move forward on selection of specific technology here are some questions for which I need some clarifications.

  1. My primary intention is to reduce the hosting charges. If we choose LAMP this will cost lower than ASP.NET on Windows. As my intention is to host web application on cloud service, will this make any difference? Means, for dedicated servers we need to pay extra cost for Windows O/S if you compare it with Linux. If we go for cloud servers, will they charge anything for O/S for each instance or will they just charge on computation hours irrespective of Operating System?

  2. Do we have complete control (like dedicated server) on cloud instance to install any other softwares?

  3. Do we need to host web server and and database server on multiple instances when traffic is increasing or will a big size instance can handle huge traffic?

Please help me on taking a decision by clarifying above.

A: 

Hi,

i think what your looking for is a service that Google gives, that i think is amazing, they made a cloud solution to your problem where you don't have to worry about traffic and server issues, they balance the traffic of all the projects they are hosting.

The best think about it is that you can start free, and then if your app is very popular and you need more bandwidth usage, they charge, you can check the destails here:

http://code.google.com/appengine/

they only disadvantage for you is that it is mainly in java and you need to learn there framework, but i have heard of proyects that allow you to creat your site in php

But if you want to buy a server i recomend

http://mediatemple.net/

i have tried there service and the have virtual servers, and you have full control and if you need more servers you can extend your project, since its cloud based.

hope this helps

mklfarha
Running PHP on appengine is NOT a good idea if you're going for performance.
Ryan Chouinard
i did not know that... thanks i have never tried it...(with php)
mklfarha
+1  A: 
  1. Depends on the provider. Windows almost always has an additional cost fue to licensing.
  2. Again, depends on the provider. Amazon EC2 and Rackspace Cloud both give you root on the instance.
  3. Depends where your bottleneck is. If CPU and memory are in acceptable ranges, but the site runs slowly, you'll need more instances to handle the network demand. If network is fine but CPU or memory are high, a bigger instance may suffice, up to a point.
Ryan Chouinard
A: 
  1. Depending on which provider you choose, you may pay for hours your instance is live, or you may pay for actual CPU usage. Eg:

    • With Amazon EC2, you pay for hours your instance is up (Windows does cost a little more, but it's built-in and paid by Amazon, though there is an option to bring your own licences)
    • With Windows Azure, you pay for hours your instance is up
    • With Google App Engine, you pay for actual CPU time (and get 6.5 hours/day free)
  2. Again, this depends on the provider, eg.:

    • With Amazon EC2, you have full control over the instance, so you can install anything you like (presumably the ToS has exceptions, eg. for unlicensed software)
    • With Google App Engine, you can use third party libraries, but you cannot "install" things. You don't get instances in the same way as a VPS, they deal with taking your code and making it run across their infrastructure.
    • I presume Windows Azure works similarly to App Engine here, and you don't have an actual OS install that you could install software in.
  3. You guessed it, this depends on the provider, eg.:

    • With Windows Azure, you would need to add additional instances to handle increases in load.
    • With Amazon EC2, you also need to add additional instances. They have services like Autoscaling and Elastic Load Balancing to make this easier (Autoscaling boots up/shuts down instances based on load).
    • With Google App Engine, you don't need to do anything. Google will automatically fire up new instances as required, and you will pay only for the additional resources in the same way.

There are many factors influencing which would work out cheapest (in terms of development costs, managing servers, Windows licensing, etc.), so it's hard to say which would be best. You'd need to look at each one and estimate costs. I'm trying to do a similar thing for my small projects, some of the info here might be useful: http://blog.dantup.com/2010/10/google-app-engine-gae-vs-amazon-elastic-computing-ec2-vs-microsoft-azure

Danny Tuppeny