It is possibly a common question which arises in the mind of who are relatively new around Cloud Computing services or development. It is Practically Not Correct to Compare PaaS Versus Container Like Docker, CaaS. Both Are Different Approaches, PaaS is Quite Older Concept Compared to Container. PaaS is division of Cloud Computing Service Models. Platform as a Service (PaaS) is a service delivery model to the end user, exactly like Software as a Service (SaaS) or Infrastructure as a Service (IaaS). A cloud server when becomes active, it actually just becomes “server”. We say “cloud server” for various practical reasons, like to make understand that we are not talking about dedicated server or traditional VPS. Cloud server likely to have easy whole server backup and restore function, like OpenStack has. For similar reasons on this website we have separate Cloud Computing category and Virtualization category.
How PaaS Versus Container (Docker, CaaS) Can Be Thought?
Containers can be a building block behind PaaS. Actually kind of containers make PaaS possible to happen. Container technologies are an enabler for PaaS services. But container services are usually not PaaS. A container infrastructure provides tools to run and manage applications from the containers, but it lacks the orchestration solutions to facilitate, automate scaling, routing, load balancing etc part. PaaS services deliver a ready to use instance which lacks root access. Composing complex application stacks with Docker continues to be a challenge to an ordinary developer. Containers approaches like Docker more towards Infrastructure as a Service (IaaS) because they just provides the computing platform not necessarily a platform stack.
It is quite costly affair setup and run PaaS, IaaS for professional paid service delivery. They are big hammers to avoid the cost and time required to setup dedicated server. The position of dedicated server in web services remained same. It is really nightmare to handle, administer an unmanaged dedicated server by one person as webmaster.
Shared server services do have lot of automated scripts to install common web software. They are not PaaS, but these days they run on top of some IaaS making far better than 10 years back.
Containers like Docker and PaaS tend to solve different problems. PaaS commonly good option for 1-2 person’s development. Deploying microservices is easy on a container management platform like Kubernetes, but such not always needed for ordinary web software development.
Many modern hypervisors use SR-IOV (Single Root IO Virtualization) technique to gain maximum network throughput this is in tandem with the underlying Network Interface Card. If hardware doesn’t support SR-IOV then it would be hard to get network throughput for high performance application. But Docker will not require SR-IOV as there is no virtualization layer sitting between Docker. Operating system giving full access to Docker for network performance.
Within last 7 years, there is lot of new useful technologies. It is practical to read minimum basic theory around virtualization, networking. It is not practical to use Docker just because “others are using”. OpenVZ has typical usage and it is often joked to be a part of “low end box”, “poormans data center” etc. OpenVZ is cheap and gives an impression of real virtual server. But OpenVZ has limitations which never become issue if the need is hosting a website with just 1-2 thousand visitors. That OpenVZ is actually primitive container. sysctl.conf Tweaking in OpenVZ is different than tweaking an OpenStack virtual server or dedicated server.