Thoughts on Platform-as-a-Service
- Software-as-a-Service: Although the term "software" denotes any piece of software, the term SaaS is usually applied to the idea of delivering a complete software application to its end users over the Web, and typically with a subscription or per-usage pricing model. Examples include Zoho and Salesforce.com.
- Infrastructure-as-a-Service: IaaS is about providing basic IT resources, such as compute power, memory and storage, over a network (typically the Internet) and usually with a subscription or per-usage pricing model. Examples include Amazon Web Services, GoGrid and Flexiscale.
- Platform-as-a-Service: The term PaaS is often confused as it is actually used to refer to to two distinct elements:
- Web-based development tools (aka IDE). This could more accurately be refered to as Tools-as-a-Service (TaaS).
- A run-time application platform that enables running applications in the cloud, typically on top of an IaaS and delivered as SaaS.
The two types of PaaS are sometimes confused because vendors often offer them combined as a single solution. Things are further confused because they often include a third, separate, component: that of a development framework or programming model (what is commonly referred to as the API).
To understand this better, let's compare to the more familiar and established world of Java. Building and running a standard Java app requires three main elements: the API (the Java programming language itself), a run-time platform (the Java Virtual Machine, or JVM -- or more accurately, the Java Run-time Environment, or JRE) and development tools (popular IDEs such as Eclipse and IntelliJ). Note that the three are separate from each other. A developer can choose which IDE and which JVM implementation (from IBM, Oracle, Sun or others). Also taking advantage of the Java Run-Time Environment does not require the Java programming language. One can use other interfaces such as JavaScript, Groovy and JRuby.
Second, they decided that you cannot separate the four elements from one another. They are tightly-coupled. You cannot use their tools without also adopting their API, run-time platform and hosting service. If you like their tools, and want to use them with other run-time platforms, APIs or cloud providers (hosting), too bad.
Third, they didn't leverage standards. Although their programming language syntax is C-like, so it is at least familiar to many developers, it will not execute on other run-time platforms as-is.
Go-To-Market Strategy
Generally speaking, achieving adoption for a new platform is a difficult task. It is true that the advent of cloud computing creates an opportunity for new players, but major challenges remain. There seem to be four main approaches to doing this:
- Brute Force: the very biggest vendors have the marketing muster, credibility and resources to make it happen by "brute force." An example of such an approach would be Google App Engine. Google has taken the exact same approach as Bungee -- they provide all four elements -- but they obviously have the market visibility and budgets to achieve fast adoption.
- Open Source: It means two things: first, pricing adoption barriers are removed (i.e., offer it for free and develop premium products and services later). Second, the product source code is available, allowing end users to customize it and the comfort of having access to source if something happens to the vendor. 10gen is an example of a vendor taking this approach.
- Specialized: Focus the platform on a particular segment of the market, instead of trying to be all things to all people. The key is that you have to build a "total solution" for that particular segment. This is reminiscent of Geoffrey Moore's Crossing the Chasm model. Ning is a good example, as it's a platform focused exclusively on building social networking applications. Other forms of specialized platforms could focus on a particular industry or type of application.
- Ride the Coattails:This strategy involves building a platform that allows developers to leverage an existing install base. The Facebook Platform is a good example. Given that today many applications expose their APIs to the general public, vendors other than the 'owner' of the install base can take this strategy.
Target User
Another dimension PaaS vendors should think about is who is the target user of the platform. The typical choices are programmers versus so-called business users (non-programmers). Bungee, Google App Engine and 10gen are all clearly targeting programmers. Ning, on the other hand, allows people without any code-writing skills to quickly create their own social network. They do, however, offer developers the ability to further customize their application through programming.
Totality of the Solution
As
already noted, PaaS-related vendors need to decide which elements of
the 'stack' they provide. Specifically, do they provide the run-time
platform, the development tools, the hosting service, all of the above?
And if so, do they lock users into their components or do they allow
use of certain components from other vnedors? Here's a list of vendors
and the choices they made:
| Product | Run-Time | Tools | IaaS | API | Primary Target Users |
App Focus |
| BungeeConnect | Yes | Proprietary web-based IDE |
Yes | Yes. Proprietary | Developers |
Free form |
| AppJet | Yes | Proprietary web-based IDE |
Yes | Semi-proprietary, JavaScript-based | Developers |
Free form |
| Jboss Cloud | Yes | Stanadard, installed IDEs |
No (suports EC2) | Standard (J2EE) | Developers |
Free form |
| GigaSpaces Cloud | Yes | Standard, installed IDEs + Cloud Tools for deployment |
No (supports multiple clouds, including EC2) | Standard (Java/Spring, .Net, C++, JavaScript, Groovy, JRuby, JMS, JDBC, Jcache) |
Developers |
Free form |
| Aptana Cloud | Yes, for PHP and AJAX1 | Aptana's open source installed IDE (based on Eclipse) |
Restricted to Aptana hosting2 |
Flexible IDE for a variety of APIs, including JavaScript/AJAX, PHP, Ruby, Java | Developers |
Free form |
| Force.com | Yes | Yes | Restricted to Salesforce.com hosting |
Proprietary | Database-centric | |
| DabbleDB | Yes | Proprietary web-based tools |
Restricted to DabbleDb hosting |
JavaScript based on JSON schema |
Business (developer customization options) |
Database-centric |
| Zoho Creator | Yes | Proprietary web-based tools |
Restricted to Zoho hosting |
Proprietary | Business (developer customization options) |
Database-centric |
| LongJump | Yes | Proprietary web-based tools |
Restricted to LongJump hosting |
Java, REST, SOAP |
Business |
Database-centric, Workflow-centric |
| Google App Engine | Yes | Standard, installed IDEs + SDK |
Restricted to Google App Engine hosting |
Python (with limitations) and additional task-specific APIs |
Developers |
Free form |
| Coghead | Yes | Proprietary, web-based tools |
Restricted to Coghead hosting |
Proprietary |
Business |
Database-centric, workflow-centric |
| WyaWorks | Yes | Proprietary web-based tools, and accessible via installed IDEs | Provide hosting and allow deployment on any infrastructure | JavaScript, JSP, Java |
Business and Developers |
Free form |
| Intuit Quickbase | Yes | Proprietary, web-based | Restricted to Quickbase hosting | Proprietary3 Http API, XML/XSL and a Formula Language | Business |
Database-centric |
| 10gen | Yes | Yes, but you can develop code with standard IDE |
No, supports multiple clouds |
Standard (JavaScript, Python, Ruby) |
Developers |
Free form |
| Rollbase | Yes | Proprietary, web based tools | restricted to Rollbase hosting | Proprietary | Business (developers cutomization options) | Database-centric |
| Morph Labs | Yes | Not provided by Morph | Restricted to Morph Labs hosting | Standard (Java, Ruby) | Developers | Database-centric |
- According to a comment posted by Kevin Hakman of Aptana, a Ruby-on-Rails run-time will be available soon.
- Aptana Actually uses Joyent as the host today (although this fact is transparent to the user). The company plans to add the ability to choose other hosting providers and does not see hosting as part of its business model (see comment by Kevin Hakman below).
- The QuickBase API is proprietary, but like others on the list, it it can be wrapped by other, standard APIs. The QuickBase user comunity has already done so for Perl, Ruby, PHP and others.
Community and Eco-System
Another important aspect for any platform, PaaS included, is the notion of an eco-system and a community that is built around it. How well the platform vendor encourages, enables, nurtures and promotes this community is of critical importance. There are a number of ways to do this:
- Classic community tools: forums, ability to share and blog, wiki documentation editable by users, etc.
- Allow Extension of the Platform:
This can be achieved by exposing APIs and/or open sourcing the code and
providing the process and tools for submitting extensions, plug-ins and
add-ons, bug fixes, etc. 10gen, for example, has open sourced its
platform. Many of the other players in the table above are exposing
APIs and providing other ways to modify and customize the platform. At
GigaSpaces, as another example, we open sourced our API -- OpenSpaces
-- and created the openspaces.org community site, which lets developers share their creations.
- Create a marketplace around the platform: Often
the PaaS vendor already garners interest and attention and can make
that marketing prowess available to its own users. Many of the PaaS
providers listed here allow their users to list their creations in some
sort of a catalog or marketplace. Other users can sometimes clone the
creation and extend it, leveraging work that has already be done. In
many cases the platform vendor allows its users a way to monetize their
efforts. Salesforce.com's App Exchange is a good example of this. By
making its platform open and extensible, Amazon enabled a whole cottage
industry to develop around its Amazon Web Services platform, with
companies such as RightScale.
- Access to end-user data: One of the most effective (and tricky) ways to foster an eco-system around the platform is to allow building applications that can access end-user data in other applications. Now when I say "access", I mean that they have the technical ability to do so. The end user, of course, needs to approve such access. For example, when you build an application on Force.com, it can access the contact, account and deal information in the users Salesforce.com application.
If anyone thinks I misrepresented any of the solutions in the table above, or if you have any other thoughts, please comment.
Geva-
We'd kindly ask that you correct some misstatements in your chart about Aptana Cloud.
To clarify... (and all this can be verified with a short visit to www.atpana.com... )
Vendor: Aptana Cloud
Run Time: Yes (PHP, Jaxer today, Ruby on Rails soon -- and all those are open source)
Tools: Aptana Studio is based on the extremely popular Eclipse IDE, is open source and free, and can run standalone or as a plug-in to Eclipse.
Hosting: Sorry, incorrect again. When you use Aptana Cloud today your host is Joyent. Aptana Cloud is architected to interface with others hosts in the future. In fact, it's our model *not* to host. Our value comes through integrating all the parts and streamlining the entrie app lifecycle.
API: I'm not sure what you "No" means. We provide JavaScript (Jaxer) and PHP app engines. TO JavaScript and PHP (and room Ruby too).
Primary Target Users: Yes, Developers (got that one right).
Thanks for updating this when you have a moment.
Much appreciated.
--Kevin Hakman @ Aptana
Posted by: Kevin Hakman | September 07, 2008 at 01:47 PM
Hi. Great post. I'd like to make a minor correction. QuickBase offers a phenomenal API and the community has written a number of wrappers in everything from perl to ruby to PHP (which you'll find on my blog) to support the API.
QuickBase has also recently launched a developer program that supports Adobe Flex.
I'd be happy to point you to the right links and answer any other questions you might have.
Thanks,
- Joshua, QuickBase Web Developer
Posted by: Joshua | September 07, 2008 at 05:10 PM
Kevin and Joshua -- Thanks for your comments. I'll review and make the appropriate changes. I'll post an update when I'm done.
Posted by: Geva Perry | September 08, 2008 at 07:11 AM
Geva,
May I also ask you to check out Morph Labs as an open source, non-proprietary platforms-as-a-service vendor?
Best.
alain
Posted by: friarminor | September 09, 2008 at 03:33 AM
Thanks, Alain. Morph Labs seems very appropriate for the list and I will add it.
Posted by: Geva Perry | September 09, 2008 at 05:36 AM
I have added Morph Labs and made some more changes based on the comments above
Posted by: Geva Perry | September 13, 2008 at 10:58 AM
Don't forget Flexiscale.net in your comparison chart!
Ross Coooney
Posted by: Ross Cooney | September 16, 2008 at 01:15 PM
Thanks. I subscribed by RSS and included a link to your post in my DISQUS comments on my earlier post at http://tinyurl.com/6xm73b.
Posted by: Bob Brill | September 17, 2008 at 05:02 AM