There is quite a bit of confusion in how the terms CaaS, PaaS, Container Platforms and Application Platforms are used. The confusion exist in the market and we want to use this post to clarify what these terms mean in the context of cloud native ecosystem. The difference between CaaS or PaaS and Container Platforms or Applications Platforms are nothing new. Even in the early cloud computing days, there were always two ways to build platforms to deploy applications, IaaS+ vs PaaS, The same distinction applies to the container world. It is about the level of abstraction (or the control) one wants to have and whether the organization is comfortable using the public cloud.

CaaS

Container as a Service (CaaS) is a hosted container infrastructure that offers an easy way to deploy containers on an elastic infrastructure and it is offered as a public cloud service. CaaS is suitable in contexts where developers want more control over container orchestration. With CaaS, organizations can deploy complex applications on containers without worrying about the limitations of opinionated platforms like Heroku or Google App Engine. Think of CaaS as the elastic container infrastructure just like how IaaS was elastic VM infrastructure. If we draw a line with flexibility on the left and abstraction on the right for the container world, CaaS is on the left most side of the line.

These are public cloud services that are more container centric where the containers can be used to deploy application code and the dependencies. CaaS is for deploying applications when you want more control over the components of the applications.

CaaS offerings in the market

Pros

Deploy complex enterprise workloads

Both stateful and stateless applications. It is not an opinionated platform

Support for declarative orchestration

Lift and shift applications using containers to public cloud

Platform deployment is not a user responsibility

Cons

Operational overhead and developers need to know operations for deploying their app on CaaS

PaaS

PaaS is a public cloud service that offers a simple interface for developers to deploy their apps. Modern PaaS offerings use containers that are compliant to Open Container Initiative specs. These are public cloud services that are more application centric with an abstraction at the developer level. Like CaaS, PaaS can be used to deploy the applications but the user need not manage the underpinnings of various components underneath (or, looking at it from the other side, users lose control over the application components). Any organization who are comfortable using public clouds and have a very small or no IT team should just use PaaS.

PaaS offerings in the market

Pros

Developer focussed abstractions and no operations overhead for developers. They just have to focus on their code and application is deployed automagically

Well suited for 12 factor applications

Platform deployment is not a user responsibility

Cons

Opinionated platforms supporting only stateless applications except platforms like OpenShift Online and Dedicated which allows stateful applications

Resources could be limited based on vendor offerings

Container Platforms

Container Platforms are suitable for deploying CaaS like deployment on-premises or on hybrid cloud/multi cloud. They provide CaaS like interfaces for developers with an added benefit of a choice for underlying infrastructure. Not every organization is comfortable using public clouds and some organizations want to use multi cloud. Container platforms help solve such use cases.

Container platforms doesn’t impose restrictions like some of the application platforms and is suitable for lift and shifting complex applications to containers. As it is the case with CaaS, Container Platforms help deploy both application code and dependencies using containers.

Container platforms in the market

Pros

Containerizing complex enterprise applications

Better operational efficiencies than traditional infrastructure including using virtual machines on private clouds

More control

Cons

High operational overhead including data center operations

Platform deployment is a user responsibility

Developers need operational expertise

Application Platforms

These are container based platform abstractions that gives a developer interface to deploy the applications. Think of this as PaaS but on premises or on hybrid cloud/multi cloud. The IT operations can deploy the platform in any infrastructure they want and provide an easy application deployment interface for the developers. This is more opinionated than container platforms.

Some application platforms take a more opinionated approach to application architectures, supporting only 12 factor apps (stateless apps) while others support both stateless and stateful applications. The difference between Application Platforms and Container Platforms lies in the additional automation that adds developer workflows, DevOps pipelines, managing the interconnections between the containers underpinning the application code and their dependencies.

Application platforms in the market

OpenShift Container Platform (the name could be confusing but it is also an application platform)

Pivotal CloudFoundry

Pros

Modern applications deployed on-premises, hybrid cloud/multi cloud

Better operational efficiencies than traditional infrastructure including using virtual machines on private clouds

Cons

High operational overhead including data center operations

Platform deployment is a user responsibility

Decision Flow Diagram

Note 1: The above flow diagram is a simplified framework to help you decide between various options in the market. For a more detailed dive in, please contact us for advisory services

Note 2: The list of vendors given as examples is by no means exhaustive or complete. These are some of the major vendors in the market but there are many more who are not covered in this post

Note 3: OpenShift Container Platform straddles both Application Platforms and Container Platforms. If we look at the Abstraction vs Flexibility line, OpenShift Container Platform will sit between most container platforms listed above and Pivotal CloudFoundry

Like this: Like Loading...

Related