Published: Sep 08 2009 / 13:32
have to agree with the writer on all accounts. I've been working with the java implementation primarily and had to abandon it. Overall the time you save on setting up a vps and database, you spend hacking around the restrictions of google app engine (probably more).
AppEngine is built for scalability. If you don't need scalability (something your vps isn't going to provide) why are you using it?
1. vps does scale up to a point, you just have to pay for bigger instances. Not much difference between that and ec2, how you scale up is pretty much the same. Most startup sites you will build will not have to worry about scaling.
2. Show me a site you've created that actually needs the scalability that google app engine provides. Show me even a google app engine site, that really has the concern of scaling because its getting so much traffic. There are none because most sites don't need google level of scale
3. It really isn't scalability when you're so limited on writes. Its just very fast on reads, but writes.. performance is something like 5 writes to a entity a second. If this is scalability , you gotta be kidding me.
Appengine provides scalability by providing your application a cloud to run in. Basically, you get x amount of machines load balanced. The application infrastructure provides you with a shared storage area accessible by all machines, the equivalent of a network accessible database backend for your application.
The best part of Appengine is you get this infrastructure for basically free, only being charged if you start to use more than the free alloted resource quota.
By moving to a VPS, I take a price hit. Looking at say Linode for example, I'll be paying $20 a month for resources similar to what I get out of Appengine, and the extra time cost of having to build my own infrastructure. However, it's not difficult to create an infrastructure on a single VPS that can scale across more machines. Once again, I set up my application to use a database backend to store data, and to match appengine performance I also configure memcache.
A VPS you can scale vertically with more resources. This will easily handle the initial load for a growing app, and will be more reliable than Appengine when you start comparing the availability of your data. Even something free like MySQL doesn't have the reliability flaw that Appengine has.
Now, when your app reaches the point where the scalability Appengine provides becomes necessary, it will get more expensive. You'll need multiple machines, more than likely want to move to dedicated hardware or at least configure a virtual datacenter. You will need load balancers.
When your application reaches that scale of resource consumption, it should be more than profitable enough to support the costs, or you need to examine your business plan.
Security, reliability, scalability, and availability are the primary concerns for an internet facing application. Generally you need to pick one which is your top priority, and expect that the others will suffer. The problem with Appengine, in my opinion, is that the reliability hit is too much compared to the scalability gains. If 5% of my hits are errors, that's going to present a business problem.
because it's free?
Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.