Peter’s did it again! Peter has updated his cloud computing taxonomy. Check his site for continual updates as I am sure there will be additions as companies find that they are not on the list.
Currently browsing tag
Anand Ganesan from byteonic has written a good post on PaaS: The Platform as a Service (PaaS) Landscape, PaaS in the Enterprise.
Platform-as-a-Service (PaaS) is one of the buzzwords that’s mentioned often in the cloud computing space. I’ve written a blog post describing IaaS, PaaS and SaaS. In short, PaaS is a platform for delivering applications, similar to a pre-built system with hardware, OS and application stack all built in. In the PaaS case, this system is hosted. All you have to do is “upload” the application code and it should take care of the executing and scaling of it.
A quick survey of the land (by no means comprehensive, I am also including ONLY application platforms, not service-specific platforms such as DabbleDB) shows that there’s a plethora of PaaS players out there, each with their own target audience. Some provide more of a raw execution platform, some provide a full suite of tools for creating applications online. Unfortunately, most of these vendor approaches will lock you into their proprietary platform. If you ever want to move to another platform, you have to rewrite at least a portion of code using the new vendor’s API. Phil Wainewright has written about this in his blog post “A plethora of PaaS options.”
|Bungee Labs||Web applications|
|Google App Engine||Python web applications|
|NetSuite NS-BOS||Business applications|
|Ning||Social networking applications|
|Salesforce Force.com||Business applications|
In one of the CloudCamp SF sessions in July, one of the guys from Microsoft asked whether the OS matters in cloud computing. My answer to that was it depends on the type of application. If it’s a web centric application that has a web front end, uses a database for storage, and doesn’t use any of the low level file IO, then really there’s no need to know what the OS is. In that case, the OS doesn’t matter.
All these vendors have targeted applications that are delivered over the web, and almost all of the vendors listed above try to abstract the OS from the developers so that they don’t have to worry about the underlying infrastructure. As Mosso’s slogan claims, “Code, load and go.”
Even though cloud computing is still in its infancy; however, as it matures, cloud providers will move upmarket to provide additional business value to customers. We will see a rise of cloud application platforms appear on the horizon. Specifically, we will see more domain-specific cloud platforms for different verticals or application types. For example, I can imagine there are developers working on a MMORPG cloud platform (maybe it’s here already if you consider Metaplace to be that) that will provide execution and management (of virtual goods, zones, accounts) for MMO developers; or a data analytics cloud platform that provides all the basic OLAP functions.
So why are we defining all these terms here again when everyone else has already defined them here, here, here, here, here, here, here, here, here, etc? Heck, there’s even a definition for Web 3.0 and beyond. Wait, let’s not forget the authoritative definitions from Wikipedia on Cloud Computing, Software-as-a-Service and Platform-as-a-Service! Whew…are we there yet? Of all these different definitions, the one that made most sense is by Kent Langley over at ProductionScale.
So why are we defining these terms again here? The reason is that all these different postings and definitions is making the view a bit cloudy and I just really needed to get them straight in my head. At the same time, I want to be able to explain these concepts to my grandma. Ok, maybe not my grandma, but definitely my executive management team.
As I see it, the market today really has 3 different as-a-Service (aaS) offerings:
To illustrate these 3 different offerings, let’s take a look at the traditional deployment of a web application. Whenever a piece of software is to be deployed, we must acquire the server hardware from companies like HP, Dell or IBM. The server will likely come with built-in storage; or if additional storage is required, the server can connect to a NAS, SAN, CAS, or other types of storage. If we are deploying this web application for external use, we will likely need to acquire routers, switches, firewalls, VPNs, load balancers and other type of data center equipment in order to ensure uptime and security. We will then need to acquire some space and bandwidth in order to host the equipment and allow external users to access the web application. In the “Web 1.0″ days, companies such as Exodus (acquired by Savvis) and Rackspace were providers that offered such space and pipe for enterprise companies who want to have a web presence.
Once the server is available, an operating system such as Windows or Linux must be installed. Once that’s done, depending on the language of the web software, an application server stack must be installed. For example, LAMP for languages such as Perl, Python or PHP, Ruby on Rails for Ruby, Tomcat for Java, etc. In almost all cases, a piece of database software, such as MySQL or PostgreSQL, will be required.
Once the hardware and the application server stack are in place, the actual web application can then be installed or developed.
In these three steps, we have essentially installed and configured the “infrastructure,” the “platform,” and the “software.” The following image hopefully illustrates what we just described.
In the next few posts we will explore the definitions for each of the three services.