Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Oct 13, 2011
Google Cloud Services has announced a new version of the App Engine SDK (1.5.5) -the frontend request deadline has been raised from 30 sec. to 60 sec., Python 2.7-, Cloud SQL, Cloud Storage and Prediction API are out of Code Labs, and Premier Accounts.
Some of the new features coming with App Engine SDK 1.5.5 are:
The SDK now includes the experimental Python 2.7 runtime for applications using the datastore. The most interesting feature of this version of the runtime is the inclusion of the webapp2 framework, coming with better URI routing and exception handling, a full featured response object and a more flexible dispatching mechanism, plus a number of optional utilities for sessions, localization, internationalization, domain and subdomain routing, secure cookies and others.
The SDK Java and SDK Python pages contain more details on this release of the App Engine SDK. The official roadmap (which seems to be a bit out of date) includes a number of features that Google aims to be implemented in the following six months:
Cloud SQL is a recent addition to Code Labs offering the possibility to run MySQL 5.1.59 on Google’s cloud environment. The service is free at least until the end of 2011 without a firm date when it comes out of the limited preview mode when it will no longer be free. Cloud SQL currently supports most MySQL features but not all, such as user defined functions, DB replication, LOAD_FILE(), and some statements. And the DB is limited to 10GB during preview. The database can be programmatically accessed only from Java via JDBC and Python via DB-API 2.0.
Formerly known as Google Storage for Developers, Cloud Storage has graduated from Code Labs and now can also be accessed through the App Engine Files API. Google has lowered prices at $0.13/GB/month for the first TB, lower than Amazon S3’s pricing which is $0.14/GB/month. Network transfer price associated with data is the same as Amazon’s at $0.12/GB for the first TB.
Prediction API was released in May and now has also graduated from Code Labs with two new features: support for PMML v4.01 and data anomaly detection. The API can be used to predict results based on historic data coming from “user sentiment analysis, language identification, product recommendation, message routing, gene expression, and fraud detection”. It has been used by Ford in an experiment to lower fuel consumption based on driving data.
Google has also launched Premier Accounts providing for $500/month the following: Support, a 99.95% uptime SLA, and unlimited number of applications. Support is provided only Monday through Friday from 00:00 to 18:00 PST, so there is no support during weekends.
Troubleshoot Java/.NET performance while getting full visibility in production
Banking Case Study: Scaling with Low Latency using NewSQL
Introducing SQLFire: a memory-optimized, high performance SQL database
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
Amazon WS is a IaaS that has services (RDS, S3, Simple DB, ElasticCache, etc.)
Google is a PaaS that has services (CloudDB, CloudStorage, High Replication Datastore, ).
Similar but different. Comparisons.
AWS RDS (MySQL or Oracle) ~= GAE CloudDB (MySQL)
AWS S3 ~= GAE CloudStorage
Simple DB (NoSQL) ~= GAE High Replication Datastore (BigTable, NoSQL)
ElasticCache (Memcached) ~= GAE CloudCache (Memcached, JCache)
AWS EC2 ~= nothing (PaaS versus IaaS mentality)
AWS Elastic Map Reduce ~= ????
??? ~= GAE Task Queue
AWS Auto Scaling ~= ???? google just handles it
AWS Spot Instances ~= ???? really a IaaS thing or could Google do something similar
AWS Cluster Compute Instances ~= ??? Nodes can't talk to each other so no need to talk to each other (except through HTTP)
AWS CloudFront (like Akami) =~ ??? they have to have this. What is it called?
??? =~ XMPP
AWS SQS (queuing) =~ ???
AWS SNS (events) =~ ???
AWS SES (email) =~ GAE Email API
AWS CloudWatch =~ ????
AWS Route53 (DNS) =~ ???
AWS Elastic Load Balancer =~ ???
AWS VPC (virtual private cloud) =~ ???
AWS Direct Connect (VLAN to connect your data center to Amazon Cloud) =~ read once that GAE has something similar, but couldn't find it.
AWS EBS (Virtual Disk that you can mount in any AWS VM instance) =~
AWS FPS (like PayPal) =~ Not provided but you can use PayPal or others
Of course if AWS does not have something Google has... you can probably find a vendor that has an Amazon VM that can provide it.
Has anyone ever done a comparison on these services for reliability, cost, ease of use, flexibility, etc.?
Has anyone compared Eclipse GAE plugins versus ElasticBean Stalk pluigins?
It seems many PaaS providers build on top of AWS. So you sort of have your choice on how you want to PaaS on AWS.
Amazon seems to have better branding. In the Google docs, things change names and are not consistently replicated throughout other docs. Google docs for GAE seems to be more flea market book store. Amazon docs are more like a public library with a good librarian.
Just some random thoughts... I hope someone corrects me and fills in some of the blanks so I learn some new stuff.
I personally think GAE Java is more comparable with VMware CloudFoundry especially after this Cloud SQL release which makes a SQL datastore usable with the existing NoSQL datastore. CloudFoundry has a very similar offering and they too are keen to avoid entering IaaS field. What's difference is that CloudFoundry is not only about offering a PaaS but a whole stack so that companies and individuals can take part in the ecosystem, which I personally think would have a brighter future; GAE is closed by nature, not to mention its partial support for Java-related APIs/Specs but I wouldn't rule it out if more Google services are thrown in to form a PaaS portfolio with easy api access, such as the Google Storage and Prediction.
Interesting time ahead.
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
2 comments
Watch Thread Reply