One of my concerns before I hit the “Publish” button every time is whether what I have to say is correct and has merit, especially the entries that are aimed to explain complex concepts. But I learned that public feedback or criticisms are part of the learning process. So even though I am nervous to publish this, I figure I’ll just give it a try.
I have been reading on the difference between Kubernetes and Pivotal Container Service (PKS) and the difference between Container-as-a-Service and Platform-as-a-Service. Below is my understanding put in simple terms so it can be understood better.
CaaS vs PaaS
In the fast-changing market nowadays, fast and regular releases of software are crucial to customer satisfaction and gaining competitive advantage. Both tools offer automation of mundane and time-consuming tasks to liberate developers.Both are aimed to help developers devote more time on real programming and less time on setting up the underlying infrastructure. The difference between the two concepts lies on how much freedom/autonomy each offers developers and how far on the stack each abstracts
In short, PaaS such as Pivotal Application Service (PAS) all developers to focus on the applications and data. The rest is managed by a service provider. It offers a great deal of automation. With PAS, consistency is emphasized as there are rules enforced on developers by the tool itself and the leaders in the development team. However, it also means that PaaS provides lower flexibility and less DIY, something that may not sit well with developers. A salesperson from the company I am working at shared with me a story that a financial prospect didn’t want PAS because of resistance from its developers.
CaaS such as Pivotal Container Service (PKS) or Kubernetes doesn’t offer Application Runtime. The application networking piece is in yellow because while PKS does offer it, Kubernetes doesn’t. With CaaS, there is a higher level of flexibility and DIY, but less automation, compared to PaaS. Developers tend to welcome it more as they have the freedom to express themselves.
Kubernetes vs PKS
Kubernetes is an open-source container orchestration tool that automates the scaling, management and deployment of containers. Think of a pod (one/multiple containers that share the same task) as a body part that does a specific set of functions. Kubernetes is like a head scheduling & distributing tasks and maintaining the health of all body parts. Kubernetes is for developers, not so much for Operations team who has to maintain the health of the system on a daily basis. While the master node in Kubernetes can orchestrate children nodes and replace them when they are down, who will do the same for the master nodes? Plus, all the patching, installation and upgrades to Kubernetes? The Operational task that comes after deployment can be a headache.
This is where PKS offers values. PKS is an enhanced enterprise-grade Kubernetes. One of its component, called BOSH, automates the installation, patching as well as upgrades. It also does to master nodes in Kubernetes what master nodes do to children nodes. BOSH automates the management, scaling and deployment of the clusters.
Another value proposition is related to micro-segmentation. Micro-segmentation in this case refers to the isolation at container, pod and cluster levels. Developers can set rules dictating which container, pod or cluster can communicate with one another. Isolation is made possible with the use of firewalls around the subject at hand. With Kubernetes, developers have to take time to set it up. When the number of nodes increases, the task becomes more taxing and complicated. With PKS, its NSX-T tool is integrated to automate that task, saving developers a bulk of time and increasing the time-to-market release of software.
If a company has an army of developers and prefers fast time-to-market as well as consistency, PaaS such as PAS should be the tool. If the company wants to use an open-source tool and can afford time to manage operational tasks itself, Kubernetes is the choice here. PKS offers the best of both worlds. As far as I know, it’s significantly cheaper than PAS. It complements Kubernetes while maintaining the flexibility that the open-source orchestration tool offers.