Time to Define "Platform as a Service" (or PaaS)
Before joining Bungee Labs last year, I knew they were on to something big. I mean, really big.
A big idea, an ambitious vision: to provide developers with end-to-end development, testing, deployment and hosting of sophisticated web applications as a service delivered purely in the cloud.
Since we announced our private beta back in May 2007, we've had over 1,500 developers sign up. In January alone we had over 400 developers kicking the tires - not just signing up and disappearing, but 400 returning developers, learning, building and deploying out increasingly sophisticated apps on a fast evolving developer platform, requiring no install of anything on their machine - all through the browser.
And since May 2007, the trend to delivering software as a service (SaaS) has been moving at terrific pace. New web APIs are being made available every month and new announcements by start-ups as well established big players are reinforcing and fueling the acceleration to the inevitable world of cloud computing.
As we announce our move from private to public beta today, we've also tried to articulate the new category of product and service we believe Bungee Connect is at the forefront of defining, the category of Platform as a Service, or PaaS, and our big bet is that PaaS is the next big thing.
So what is a "Platform as a Service"?
In September 2006, Marc Andreessen posted his thought provoking "The three kinds of platforms you meet on the Internet" and it got a fair level attention from the web industry. And we took note. We thought what Marc was describing in his Level 3 definition where:
"A Level 3 platform's apps run inside the platform itself -- the platform provides the "runtime environment" within which the app's code runs.",
...was right, but only partly right. Given Bungee Labs' ambition and vision, we felt there was a lot more to Marc's definition of the highest level definition of an "internet platform", a definition more holistic and comprehensive than a runtime.
But we kept focused, kept working on what we were hearing our developers telling us we needed to fix and improve on Bungee Connect, to give what developers are telling us what they really want - a Platform as a Service - to provide everything required in the lifecycle for the development through hosting of full-on, sophisticated and highly interactive web apps, not just widgets.
As we were readying for our next phase -our public beta - we thought it would be a good time to put a stake in the ground and actually define what we mean when we use the term Platform-as-a-service, and thereby describe the comprehensiveness what Bungee Connect has to offer.
So early this morning, our CTO and Founder of Bungee Labs, Dave Mitchell posted a definition describing PaaS in concrete terms.
What follows is a summary of Dave's post, with a selection of my favorite "soundbites" and ideas, but I suggest you read the whole post for yourself - there's a fair amount to consider:
1) Develop, Test, Deploy, Host and Maintain on the Same Integrated Environment.
"It’s time to stop developing “here” and running “there”. Today, most applications are coded in one environment (usually custom-built for that project by a developer), then tested in another, and redeployed to yet another for production...In a completely-realized PaaS, the entire software lifecycle is supported on the same computing environment, dramatically reducing costs of development and maintenance, time-to-market and project risk. A PaaS should let developers spend their time creating great software, rather than building environments and wrestling with configurations just to make their applications run — let alone testing, tuning and debugging them...Also, an end-to-end PaaS should provide a high productivity Integrated Development Environment (IDE) running on the actual target delivery platform, so that debugging and test scenarios run in the same environment as production deployment.
2) User Experience Without Compromise
"A Platform-as-a-Service must deliver compelling user experiences, with all the richness and live interactivity that consumers have been conditioned to expect....Hiccups like software downloads or plug-in installations, browser dependencies and inconsistencies, or local executables break the web model, and are inherently less secure, less maintainable and less user-friendly. In order to be relevant and popular, PaaS must deliver the best user experience available on the web, comparable to or better than conventional approaches.
3) Built-in Scalability, Reliability, and Security
"Developers should be free to build applications with the comfort that the security of customer data, network traffic, source code (intellectual property) and even server hardware is maintained automatically by the platform through-out application development and delivery."
4) Built-in Integration with Web Services and Databases.
"Applications need to leverage existing software investments in databases, and internal or external third party web services, requiring that the platform offer a wide variety of connectivity options."
5) Support Collaboration
"A PaaS must support both formal and on-demand collaboration throughout the entire software lifecycle (development, testing, documentation and operations), while maintaining security of source code and associated intellectual property."
6) Deep Application Instrumentation
"With instrumentation, organizations can see exactly how users are using the application, the type of performance they are experiencing and any application crashes. This information can also be leveraged to create new business models where costs are tied to actual utilities, rather than flat-rate subscriptions or licenses."
Over the next couple of years we expect to be hearing a lot more about PaaS and how "Y announcement" by "X company" is now providing true a PaaS offering to businesses and developers.
But saying you are providing a Platform as a Service has to mean something, and we think the above definition sets a high but reasonable standard that must be met for any company to claim they are providing a "platform-as-a-service' and legitimately describe themselves as a PaaS player.
The amazing thing is, for me at least, is that Bungee Connect is delivering all of the above, today. From our point of view, delivering PaaS - the real deal - is not statement of Bungee's intent, it's a statement of fact. It's bold, but so is our vision. Yes, we've still a lot to do before we're commercially ready and we think that's coming soon, but so much is already there. Try it out.