Google App Engine for Java compared to VPS Java Hosting
Googles App Engine for Java is a cheap and powerful alternative for hosting Java (and Groovy, Scala, JRuby, ...) web applications compared to VPS hosting. How do both compare and what are the advantages and disadvantages of each?
Google App Engine for Java (GAE/J)
Pros:
- Free of charge within certain resource limits (cpu, bandwidth, storage)
- Limits are generously (today)
- Pay proportional to use of resources above limits
- Scales seamlessly by using Googles cloud infrastructure
- No migration needed if application usage grows
- Concentrate on Java coding, not on server administration
- Updates of infrastructure are done for you, think 'managed server'
- Easy deployment through Ant or Eclipse Plugin
- Full local development and testing environment
- Any JVM language will do: Groovy, Scala, JRuby, Javascript (Rhino), etc.
- Supporting many Java standards (Servlets, JSP, JDO, JPA, Java Cache, etc.)
- Monitoring included by Google app engine console web front-end
- Time based jobs through crontab calling servlets
- Provided by a well known company with a strong showcase for the power of their infrastructure: Google
Cons:
- Free of charge limits may be lowered any time in the future like on 14.2.2009
- Restricted non-standard subset of Java environment (for reasons of: security, cloud infrastructure, beta status)
- No RDBMS, only Google BigTable, therefore no relations, therefore no JOINs
- No Hibernate, no iBatis, no TopLink, no EclipseLink
- Some Java library classes missing
- No JEE features like JNDI, EJB, JMX, etc.
- Existing apps, libraries and frameworks have to be tested and potentially (heavily) modified to run on GAE/J
- Commercial components may never run on GAE/J or take longer than open source
- New apps, libraries and frameworks may suffer from Google Lock-In if depending an GAE specifics
Virtual Private Servers (VPS)
Pros:
- Flat rate for resources, cost is fixed
- May be cheaper for medium to heavy usage depending on the pricing of VPS
- Appropriate for resellers
- Sensitive personal or company data is not accessible to Google
- Real RDBMS with ORMs and Joins
- Other languages supported: PHP, Perl, Ruby
- Any infrastructure components, Java or not, may be combined
- Lots of open-source and commercial apps, libs or frameworks run unchanged
Cons:
- No comparable free of charge offering
- 'Managed Server' are more expensive
- No cloud, no scaling:
- gets slower or broken if used heavily
- bandwidth included is limited, spike usage may get expensive
- disc space may run out
- OS and infrastructure administration (AppServer, WebServer, MailServer, DBServer):
- Requires many non-Java skills
- Eats up time needed for coding
- Security updates are a must
- Any update may interrupt your application and trigger problems
- Backups, logging, monitoring require more skills and time
- Migration is really expensive and dangerous
- PHP has optimizations for secure and easy shared hosting, Java does not, evil or wrong apps may disrupt your service and interfere with other Java apps.
- Small java hosting providers may be driven out of business through GAE
Summary
Google app engine for Java is a major progress for affordable and easy java web hosting since a long time. It surely is the best option for many programmers, hobbyists and hackers today. Prove is the overwhelming response to the 10000 early preview accounts, which drove Google to extend it to 25000. It is easy to critize Google for its offering but were are comparable solutions on the free market today? VPS vendors and specialized Java hosting companies now get real competition.Hopefully it'll spark Java hosting plans near the ubiquitous PHP hosting you can get everywhere.

Looks like Morph (http://mor.ph) fills the spot between GAE and VPS. They have a free account option -- and a commercial licencing option of course -- and you can do more (like VPS) than GAE.
Gesendet von Johan am April 22, 2009 at 05:35 AM CEST #