PiCloud opens the beta of its PaaS cloud

In mid July a new, very interesting company officially entered the Platform-as-a-Service (PaaS) cloud computing market: PiCloud.

The company, still in semi-stealth mode, was founded in September 2008 by Ken Elkabany and Aaron Staley.
The former was an undergraduate student instructor while the latter was a teaching assistant, both at the University of California Berkeley.

The confidential documentation used to pitch venture capital firms has been uploaded online and it’s currently publicly available here. It reveals that there’s only a third employee: David Wu, Vice President of Business Development at Riverbed Technologies.
It also reveals that, amazingly, the startup is only funded with $35,000, provided by Lightspeed Venture Partners, and that the founders hope that PiClouds will turn into an acquisition target for Google and Amazon. This second mention is extremely interesting: Elkabany and Staley believe that Amazon will extend its IaaS cloud at a point in the future, adding the PaaS component.
Last but not least the pitch reveals that PiCloud projects a revenue of $7.3M for this year and $41.7M for 2011, coming from 10,000 SMBs, equal to $5.6M in profit.

PiCloud offers a PaaS platform for Python applications, with a very unique approach.

The PiCloud platform in fact doesn’t include a back-end infrastructure. The company just offers a custom Phyton library that developers can use in their code. 
Once the library is used by a function, PiCloud executes its code remotely, on third party Infrastructure-as-a-Service (IaaS) clouds.

The technology is currently in beta and supports only Amazon EC2 but the company already informed about the upcoming support for The Rackspace Cloud.

Developers can detail how much power they need, specifying in the code if they want to compute inside a 1 or 2.5 compute units. PiCloud uses the Amazon definition of compute unit: a virtual machine equivalent to a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.

The company isn’t clear about this aspects, but it probably orchestrates the code computation through agents deployed inside the IaaS cloud virtual machines and coordinated by the PiCloud servers. 
Developers can verify the list of functions using the PiCloud library and their execution on a web control panel:

PiCloud_ControlPanel.png

For customers that don’t want to interact with the PiCloud servers, the company offers an on-premises version of its platform that can be deployed inside physical and virtual machines, including the VMware ESX and Xen ones.
PiCloud claims a scale capability of thousands VMs.

Of course in such environment bandwidth and latency are critical aspects to consider. At the moment, both are equal to what you can have with Amazon EC2 as this is the only IaaS public cloud supported.
But how the company optimized EC2 to work as a remote PaaS? PiCloud reports:

We’ve benchmarked every corner of AWS, and are giving you the best combination of speed and price that we’ve discovered.

We’ve eliminated the overhead of spawning new Python Interpreter’s, importing standard Python libraries, and even re-importing your custom modules for minimum delay.

Our systems are custom compiled and fine tuned for the machines and architectures available to us on the cloud. Your functions immediately take advantage of our optimizations.

Our predictive systems handle provisioning and scaling taking into account all the nuances of the underlying infrastructure.

Easy to guess, PiCloud adopts a pay-per-use pricing model, charging $0.05 per compute unit per hour. Anyway customers are not charged per hour, but per milliseconds.
The company doesn’t publicly disclose the price of its on-premises solution but the confidential documentation above reveals that it charges on a monthly per server basis in exchange for licensing and support.

At the moment the platform supports Python 2.5 and 2.6 but support for version 3.1 is coming.
VentureBeats reports that PiCloud founders plan to add Java and Microsoft .Net support too.

Meanwhile, on the corporate blog, there’s a clarifying example about how to use PiCloud API to encode videos. It’s really worth a read.