This is the first in a short series of blog posts I will publish within the next days on various aspects of Infrastructure-as-a-Server, Platform-as-a-Service, Software-as-a-Service, and Business-Process-as-a-Service, or just name itEverything-as-a-Service. This first post provides more like an introduction and definitions of all these concepts while later articles will address the market potential, current players, open source initiatives, technical requirements on software architectures as well es cultural aspects when it comes to adopting XaaS methods.
Not About the Weather
To start with,Cloud Computing appears to be omnipresent. Unless you have been away in some unexplored jungle for many years, you probably came along all thesecloud-ish offerings and solutions. Despite an abundance of reports about the technology, however, more than half of all respondents of arecent survey among American adults believe that cloud computing will be affected by bad weather. While this may sound funny at first glance, it actually shows that there is a lot of misunderstanding and superficial knowledge. Also, the area is in constant change – so let’s try to nail down the current state of affairs.
Essentially, cloud computing refers to using some parts of the IT infrastructure required for certain services via the Internet. So, not all IT resources are managed in the internal IT department of a company but rather to some degree these areoutsourced. Of course, this is still a very vague definition which also doesn’t help very much when it comes to concrete business scenarios. Actually, any company touching the Internet in one way or the other in their business might be considered a cloud company then. So let’s get more precise on the various notions and also provide some kind of introduction to the lingo behind cloud technology.
Layers of the Internet
When you consider which types of resources can be provided via the Internet, it helps to think in more abstractlayers being
- the general infrastructure (such as hardware and network resources, theheavy iron)
- the general purpose platform (most notably middleware and runtime environments)
- specific software solutions (providing a specific software application)
- and the business processes that can be implemented based on these software solutions
Unsurprisingly, these layers also help to distinguish the different aspects of cloud computing:
- Infrastructure-as-a-Service (IaaS) addresses the network and hardware resources and typically ends on the operating system level (which sometimes is included, sometimes is not). The key idea here is not to buy and own these resources (most notably servers and storage systems) but to rent these on demand from a IaaS provider. To be flexible and handle variable workload, that also includes aspects of virtualization.
- Platform-as-a-Service (PaaS) goes beyond IaaS in that it assumes that a common middleware can be shared and outsourced, too. Just think of application or web servers which are standardized to a certain extent today – so there is no need for each cpmpany to install, update, manage their own instance but rather the IaaS provider can take care of it also making sure all components are configured in an optimal way.
- Software-as-a-Service (SaaS) offers a very specific solution just as any on-premise software installation would – except that there is no installation (zero footprint) but the entire functionality is accessed via the Internet. Just as in traditional software packages, there is usually a certain degree of custimization but generally a SaaS offering would focus on a specific application use case.
- Business-Process-as-a-Service (BPaaS) would even go one step further in that it does not just address a single functionality but rather the business processes orchestrating a variety of such functions, potentially even across different companies. However, as of today this is more of a theoretical option and niche area as hardly any offering exists in that space.
Examples You Will Know Already
Leaving BPaaS aside for a moment, the following table gives a brief comparison of the other 3 areas:
Having a brief look at the given examples, Amazon’s EC2 is probably the best-known IaaS offering. On the level of PaaS, quite a few offerings exist which we will address in an upcoming post. Note also that there is some fine differentiation between
- application-oriented PaaS (aPaaS) providing a platform, typically configuration UI and running the infrastructure on top of which specific applications can be developed (such asAWS Elastic Beanstalk or the Google App Engine among others)
- integration-oriented PaaS (iPaaS) also running the infrastructure but more focussing on the integration of other services and systems, mashing-up data and providing those data for further processing potentially in-house (CloudHub, which we will touch in a later post, is a good example foir that).
The following diagram summarizes the various options and lists the aspects covered in some more detail:
Note how, from left to right, more and more resources are shared and accessed from a dedicated provider allowing for a stricter focus on the specific application area. While in the traditional model a fully-staffed IT department is required to install, run and manage even the lowest layers, servers, network and storage become virtual resources in IaaS already which, however, still requires a dedicated middleware. In contrast, in a PaaS-environment that requirement disappears, too, providing even software runtime as a standardized environment.
That’s it as far as the general concepts of IaaS, PaaS and SaaS are concerned.Come back soon to read about market volume and SaaS applications.