Vergelijking architectuur: OpenShift, Cloud Foundry, Rancher en Kubernetes
Red Hat OpenShift, Rancher and PCF/PKS zijn implementaties van een containerplatform. In het tweede deel uit deze serie gaan we dieper in op de architectuur en de verschillende varianten die beschikbaar zijn.
In het eerste artikel heb ik een inleiding gegeven op deze platformen door middel van een algemene beschrijving van functionaliteit en de ontwikkeling die ze de afgelopen jaren hebben doorgemaakt. Nu gaan we dieper in op de architectuur en de verschillende varianten die beschikbaar zijn.
Overview architectuur containerplatforms
Dit gedeelte van de vergelijking biedt een overzicht van de componenten in de verschillende platformen. Dit artikel is overigens oorspronkelijk geschreven in het Engels en om die reden zijn de titels en benamingen van de velden in de vergelijking niet vertaald.
1. Architectuur
De architectuur van alle producten is modulair, wat betekent dat het aanbod niet echt één product is, maar een platform dat uit verschillende componenten bestaat. Er is echter een verschil in hoe de componenten zijn geïntegreerd en wat hun oorsprong is. Red Hat gebruikt voornamelijk bestaande open source-producten voor de kernfunctionaliteit van OpenShift (zoals Kubernetes en EFK), hoewel het wel een set eigen, specifiek ontwikkelde componenten gebruikt. De open integratie betekent dat het mogelijk is delen van het platform te vervangen door verschillende componenten.
De kerncomponenten van Cloud Foundry (zowel PAS als PKS) zijn grotendeels eigen producten (zoals Diego en Garden), hoewel de Kubernetes-ondersteuning in PKS (en sinds kort ook in PAS, in alpha) enkele externe open source-componenten toevoegt aan de mix. Vervanging door andere componenten is niet mogelijk.
Rancher bevindt zich in het midden tussen deze twee, met enkele open en sommige gesloten, geïntegreerde producten.
Kubernetes – en daar verder natuurlijk geen verrassingen – is volledig open.
De Go-programmeertaal die wordt gebruikt om de producten te maken, toont duidelijk de invloed van door Google ondersteunde Kubernetes, waarbij Pivotal daarnaast ook Ruby en Java gebruikt.
2. Container en orchestratie support
Er zijn nogal wat wijzigingen op dit gebied ten opzichte van de vorige versie van deze vergelijking. Alle producten ondersteunen momenteel Kubernetes, hoewel ondersteuning binnen PAS in alpha is. De ondersteuning voor container(engines) verandert ook: Pivotal vertrouwt nog steeds op Garden (met Docker als optie), maar Red Hat heeft besloten Docker te vervangen door CRI-O (voor een meer gedetailleerde uitleg, zie dit blog). Rancher heeft een open issue rondom ondersteuning voor Containers (bijna 3 jaar oud inmiddels) maar vertrouwt vooralsnog sterk op Docker, terwijl Kubernetes de breedste runtime-ondersteuning biedt (zie dit voorbeeld), waar ook ondersteuning voor Frakti – in combinatie met Kata Containers – uit blijkt).
Zie ook dit overzicht voor een goede vergelijking tussen de containerimplementaties Containerd, CRI-O en Frakti.
3. Host Operating System
Zowel Pivotal als Rancher gebruiken een versie van Ubuntu als het host-besturingssysteem voor hun platform, terwijl Kubernetes op vele varianten van Linux en zelfs Windows geïnstalleerd kan worden (hoewel op Windows alleen Windows-containers mogelijk zijn). Red Hat ondersteunt verschillende (eigen) besturingssystemen, zowel voor de host als de container (zoals Atomic of Red Hat Universal Base Image). Voor de host is het mogelijk om Red Hat Enterprise Linux (RHEL) of Red Hat CoreOS (RHCOS) te gebruiken, waarbij de laatste de standaardpositie inneemt vanaf OpenShift-versie 4.0 en verder.
4. Onderliggende infrastructuur
Een groot verschil met de vorige versie van dit artikel is dat alle platformen nu op de drie grote openbare clouds (Amazon, Google en Azure) beschikbaar zijn. Ondersteuning voor VMWare vSphere en OpenStack is ook beschikbaar, hoewel het niet duidelijk is of Pivotal PKS al dan niet op OpenStack draait. De mogelijkheid om op bare metal te draaien is er meestal ook nog, maar wordt vaak niet vermeld in de installatie details of best practices. Op de Kubernetes-website is echter een gedetailleerd overzicht van installatietypen voor 47 verschillende platformversies terug te vinden (vanaf november 2019).
5. Minimale installatie
Deze regel beschrijft de absoluut minimale installatie voor een werkend platform, op basis van informatie die door de leveranciers zelf is verstrekt. De meeste volgen de best practices van Kubernetes, behalve Cloud Foundry (dat niet is gebaseerd op Kubernetes, dus dit is niet echt verrassend). Wat me wel verbaasd, is dat de minimale installatie voor Cloud Foundry behoorlijk groot is. Er is echter een kleine footprint PAS, die slechts 4VM’s vereist in plaats van 13.
Verschillende versies
In dit gedeelte van de vergelijking geef ik een overzicht van de verschillende versies van de platformen. De meeste platformen zijn beschikbaar in een Enterprise, public cloud en een community versie.
Enterprise
Elke vendor heeft een Enterprise versie beschikbaar. Pivotal PKS is gezamenlijk met VMWare ontwikkeld, wat resulteert in een combinatie van technologie van VMWare (zoals vSphere voor provisioning, vSAN voor opslag, NSX-T voor networking en Wavefront / vRealize voor beheer en monitoring). De OpenShift Enterprise versie is een op zichzelf staande oplossing met automatische updates en upgrades, die zich nog meer dan voorheen richt op ontwikkelaars.
Public Cloud
Alle vendors hebben een Public Cloud versie van hun platform, behalve Rancher. OpenShift Online biedt een gratis en betaalde tier, waarbij de gratis tier één project, 2GiB geheugen en 2GiB opslag biedt. Het project moet dan binnen een periode van 72 uur wel 18 uur inactief zijn.
Tot 1 november 2019 bood Pivotal Cloud PKS aan, een product dat nu is vervangen door VMWare Tanzu. Er is geen free tier beschikbaar. Bij Cloud Foundry zijn free trials mogelijk via gecertificeerde platformen die door partners worden geleverd, of via Pivotal Web Services (zie https://run.pivotal.io/).
Community
Alle platformen hebben een (gratis) community versie beschikbaar. De Github locaties zijn:
Minimale installatie
De verschillende leveranciers bieden allen een minimale installatie van hun platform (behalve Pivotal met PAS). Het doel van de minimale versies verschilt echter per leverancier. Het Essential PKS van Pivotal bevat Kubernetes, met een referentiearchitectuur die bestaat uit specifieke tools en ondersteuning. Dat is anders dan de Enterprise PKS-versie die een kant-en-klare oplossing biedt voor containerbeheer. MiniShift van Red Hat is bedoeld om ontwikkelaars in staat te stellen een Kubernetes (OKD) cluster lokaal te draaien, terwijl het K3S-aanbod van Rancher is gericht op Edge en IoT. MiniKube ten slotte is vergelijkbaar met MiniShift.
Certificatie
Zowel Cloud Foundry als Kubernetes bieden een certification programma. Rancher, Pivotal PKS en OpenShift zijn gecertificeerde Kubernetes vendoren of producten.
In dit artikel hebben we uitgebreid stil gestaan bij de onderliggende architectuur van de verschillende platformen. In het laatste en derde artikel in deze blogreeks beschrijf ik een 29-tal inhoudelijke functionaliteiten.