This cluster of closely related terms frequently causes buyer confusion. However, for buyers looking at the better-known Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) categories, it is worth understanding how all four of these categories are similar, and how they differ.
The fundamental differences between these related concepts are best understood in terms of increasing abstraction. Abstraction is a term borrowed from object-oriented programming and, in this context, has to do with how different platforms handle complexity and control.
This is a helpful way of thinking about the technology stack from the most fundamental bottom layer, with increasing abstraction and agility, as you move up the stack to the top layer. The price for this increasing agility is a loss of control and configurability.
Developers generally prefer to take advantage of higher levels of abstraction. This allows them to focus on application development and avoid distracting (but necessary) overhead work, such as server maintenance and capacity planning.
This continuum of increasing abstraction means that PaaS buyers may want to include emerging adjacent technologies like Container-as-a-Service (CaaS) and Functions-as-a-Service (Faas) as part of their consideration set.
The following table illustrates how PaaS relates to other adjacent “as-a-Service” platforms, and sheds some light on the increasing popularity of emerging FaaS technology. Moving from left to right, from low abstraction to high abstraction, agility increases and configurability decreases.
|Google Compute Engine Digital OceanAmazon Web Services Rackspace Managed Hosting
|AWS EC2 Container ServiceGoogle KubernetesDocker Swarm Rackspace Karina
|Salesforce HerokuGoogle App EngineAWS Elastic BeanstalkRackspace OpenShift
|AWS LambdaGoogle Cloud FunctionsMicrosoft Azure Functions IBM Cloud Functions
|Focus on App Logic
|Base Layer Unit
|Running in Multiple Environments
|Web-Facing Application Development
IaaS (Infrastructure-as-a-Service) platforms provide IT professionals with robust computing infrastructure, but IT staff must select, configure and monitor the platform components that they want to use. There is considerable overhead to getting started with an IaaS, but these systems are highly configurable, providing administrators with granular control over servers, storage, and networking services.
Of the as-a-service types we are reviewing, this is the most fundamental in nature. IaaS provides the building blocks from which to perform a cloud function.
For more information on IaaS, check out the video below:
When to choose IaaS
An IaaS environment is an alternative to running a private data center. Modern businesses increasingly do not want to invest in and manage servers, storage, and networking for private data centers for several reasons, notably, cost.
Building a private data center is extremely expensive. However, renting the infrastructure from a major cloud service provider reduces logistical and financial barriers to entering new markets without being constrained by IT resources. If your organization’s IT resources are provided by an on-premise data center, switching to an IaaS replaces high costs for equipment and personnel with an easy-to-manage and much more affordable cloud services model.
What to Look for in IaaS
When choosing Iaas, there are a number of vital factors you should consider. Factor in the scalability needs of your organization. Ensure that those who may change their needs will want to have the ability to do so. If you are not looking to scale, skipping on some reconfigurability can be an area you can save money, as IaaS can get pricey quickly.
The fundamental nature of this tool requires its consistent functionality. Any downtime can result in considerable costs to clients and vendors alike. As a result, support plays an important factor in IaaS decision-making. Look for those that offer 24/7 support. This is not a feature all products will have and could save you some serious hassle in the future.
Finally, if you are using PaaS or other as-a-service products, make sure you consider compatibility. There are vendors who offer multiple types of these products. It can be more efficient to buy from the same organization for integration reasons. If different parts of your team are considering different as-a-service products, make sure communication between stakeholders is aligned.
Examples of IaaS platforms:
CaaS (Container-as-a-Service) is one step up the abstraction ladder. Where IaaS platforms use virtual machines or bare metal hardware as fundamental resources, CaaS platforms package up applications and all their dependencies into containers more lightweight than virtual machines.
For this reason, it’s possible to host more containers on a single host than fully-fledged virtual machines. CaaS is a suitable platform for developers who want more control over container orchestration. Using a CaaS allows developers to deploy applications on containers without worrying about the limitations on container orchestration provided by the typical PaaS.
This service allows for virtualization and configuration of operating systems. This allows for a greater level of control by the users.
To learn more about CaaS, watch the video below:
When to choose a CaaS
Both CaaS and PaaS help developers deploy and run applications more efficiently. A CaaS is a good option for development teams when they prefer to have more granular control over containerization tasks.
Your team may need greater control than a PaaS can provide for things like language support or multi-cloud hosting. In cases like this, a strong infrastructure team used to dealing with networking and operations issues may prefer a CaaS over a PaaS. A CaaS is typically less opinionated and more configurable than a PaaS.
What to Consider When Choosing CaaS
The main thing to consider here is whether or not you truly need this service. Once you have decided on the customization and infrastructure requirements you need, it will become clear the type of CaaS you need. This is more of a marketing term than a categorical one.
Examples of container orchestration tools:
PaaS (Platform-as-a-Service) is still further up the abstraction ladder and therefore favors agility over configurability. As we have seen, PaaS is an integrated application development and deployment solution that releases application developers from much of the complexity of provisioning, configuring, and managing hardware resources. Developers benefit from far more automation at the expense of less granular control.
PaaS can offer tools to various forms of cloud systems built around deploying and coding applications. This can take the form of public cloud collaboration systems or any other tool to help web application creation.
For those looking to learn more about what PaaS is, check out this video below:
When to choose PaaS
A PaaS is a good choice when many developers are working on a complex single application. It provides for the simultaneous use of a single source code and the ability to automate testing and deployment. Acquiring a PaaS will allow an in-house development team to develop a new application much faster than otherwise possible.
What to Look for in PaaS
As mentioned with Iaas, compatibility is massive when looking at these software. PaaS systems often exist in tandem with other as-a-service products. These services usually integrate automatically with IaaS systems, but not the other way around. While PaaS can integrate with IaaS of other vendors, the integration is less certain and can be more difficult to implement and manage.
Different types of PaaS work with different SaaS products. These can offer additional features and functionality beyond that of the service alone. Make sure to understand what you are not paying for. The wide array of products available allows you to tailor your needs to your use case.
Finally, hosting will have a huge impact on price. Consider private cloud, public cloud, hybrid cloud, and other options available.
Examples of PaaS platforms:
FaaS (Function-as-a-Service) is a category of cloud computing services that is disrupting the way applications and systems have been built for decades. FaaS is a relatively new development that has emerged out of PaaS. It is frequently thought of as part of PaaS, although it is a distinct technology that is often referred to as Serverless.
The term Serverless gives a clue about the level of abstraction. Like PaaS, FaaS is a cloud computing model that abstracts server management and low-level infrastructure decisions away from developers, but it goes much further than PaaS.
All allocation of resources is managed by the platform, allowing applications to be developed without any thought of implementation, load balancing, or scaling. It allows developers to execute small snippets of code in response to events without having to build complex infrastructure.
The advantages of a FaaS are primarily that developers can focus on writing code rather than thinking about infrastructure management. Another major advantage is that developers are only charged for the time it takes to execute the code. If the code is only executed a few times a day, the total charge per day might be for just a few seconds.
To learn more about Faas, check out this video :
Examples of FaaS platforms:
When to choose FaaS
FaaS is a good choice when developers want to release and iterate new applications very quickly and easily without having to worry about infrastructure issues like scaling.
For tight budgets, FaaS is also attractive because users are only charged when the code executes. FaaS is a particularly good option for processes like ETL or time-based batch processing where expensive tools can be replaced by using function “runs” to only execute and pay for each run instance.
Examples of FaaS platforms:
SaaS: As-A-Service Honorable Mention
While SaaS, or software-as-a-service, fits into this family, it is something of an outlier. This is by far the broadest term, and can refer to any number of products bought from dozens of vendors. In summary, this is a term that is more of a label than a category.
Reading use cases in reviews can be a good way to figure out which product is most appropriate to your particular need. On TrustRadius, CaaS and FaaS have not been broken out as separate categories but are considered as part of PaaS. IaaS, of course, has its own separate category.
Was this helpful?