Java PaaS Shoot Out Reading Notes

這篇記錄一下最近同事分享的一篇【Java PaaS shootout】的文章。【Java PaaS shootout】比較了三個使用Java為主要開發語言的PaaS平台,分別是:Google App Engine(GAE)、Amazon Elastic Beanstalk和CloudBees RUN@Cloud。

What is PaaS(Platform as a Service)?

  • PaaS is a type of cloud service in which the provider delivers not only on-demand hardware and operating-system services, but also application platforms and solution stacks.
PaaS是建築在IaaS的基礎建設之上,提供客戶一組應用程式的平台和整套的解決方案(Solution Stack)

這篇文章介紹的三種Java-Based PaaS Platform都包含以下特性

  • Uploading and deploying application WARs
  • Versioning deployed applications
  • Testing and staging environments
  • Online access to log files
  • Automated monitoring and usage reports

Google App Engine(GAE)

Java, but not quite Java
- GAE only support limited Java I/O, Java NIO
- GAE forces any application-initiated connection to close after 5 to 10 seconds
- API limitations impose challenges when you need to use existing application frameworks or move existing applications to GAE
Scalability and performance
- GAE promises and delivers scalability(Consistent response time) but not necessarily raw performance(Response time for a request)
- GAE often takes 1 to 3 seconds to respond to database-related requests
- GAE swaps inactive JVMs out of memory to optimize for high-traffic web applications on the system
Benefits and limitations of BigTable
- Scalable data store - Google Big Table(NoSQL Database)
- Google engineers claim that the response time of data queries in BigTable is only determined by the size of the result dataset
- BigTable weak support for data queries and difficulty importing and exporting data
Integration with other services
- The application can integrate with Google Accounts so that users can log into your application using a Google username and password
- GAE applications can also use a simple API to send email messages via GMail servers

Amazon Elastic Beanstalk

Pure Java Tomcat
- Supports a full Tomcat server running on an EC2 virtual server
Scaling, at a price
- All your Beanstalk EC2 instances are running behind a load balancer
- Support sticky session for correcting match the request and corresponding server
- Perhaps one of Beanstalk's biggest drawbacks is its price
- Beanstalk's standard pricing runs close to $40 a month even for a single-node setup
Flexible database choices
- It supports relational database, NoSQL database, your own database server
Integration with other services
- It supports other Amazon services

CloudBees RUN@Cloud

A robust Java runtime
- Support pure Tomcat server
Free scalable infrastructure
- Scalable infrastructure with load balancer and server instances
- Use Tomcat to manage the session instead of using sticky session
- RUN@Cloud can swap your JVM out of memory if your application is inactive for too long
Hosted MySQL relational databases
- RUN@Cloud service natively supports a managed MySQL service
- RUN@Cloud support shared database across multiple applications
Integration with other services
- Support Amazon services, DEV@Cloud, a cloud-based, Continuous Integration platform

Share this post!

Bookmark and Share

0 意見: