So far the definition of private cloud computing has been mainly applid to Infrastructure-as-a-Service (IaaS) clouds. But private Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) clouds can exist too.
The Google PaaS cloud called App Engine (GAE), for example, can be deployed on-premises thanks to an open source implementation called AppScale.
AppScale is developed and maintained by some researchers at the University of California, Santa Barbara (UCSB), in the Research on Adaptive Compilation Environments (RACE)Lab.
Version 1.3 of the platform, released in December 2009 under the New BSD License, supports both Python and Java GAE applications.
It also supports a wide choice of backend database, including HBase, Hypertable, MySQL, Cassandra, Voldemort, MongoDB, and MemcacheDB.
While it could be installed on bare-metal, AppScale has been designed to leverage hardware virtualization (specifically Xen and KVM) and so it supports IaaS public clouds like Amazon EC2 and management console for private IaaS clouds like Eucalyptus.
In future the team plans to support dynamic scaling for front-end and back-end as well as for SLA renegotiation.
The whole design and implementation of the platform has been documented in a 17-pages whitepaper published in January 2009 which is really worth a read.
Unfortunately, the current version of AppScale does not provide data persistence. If you terminate your AppScale deployment, it destroys all data accumulated during its execution. Persistence support is the project roadmap but there’s not an eta for it.