Frank Loffeld

Technisch Specialist

Containers: The Next Big Thing in moderne cloudmigratie

Het foutloos inzetten van een moderne applicatie in de cloud is vaker wel dan niet een gigantische taak. Om de reis van de ene releasecyclus naar de andere te ondernemen en elke keer je doel te bereiken, heb je iets nodig dat goed presteert, betrouwbaar is en consistent. Het antwoord lijkt te vinden in VM’s. Maar containers en microVM’s gaan die rol overnemen.

De ooit zo betrouwbare virtuele machines

Een virtuele machine is, zoals VMware dit definieerde, een softwarecomputer. Door de hardware abstract te maken, bieden VM’s de rekenkracht en omgeving die applicaties nodig hebben. Intussen wordt de onderliggende fysieke computer of server geoptimaliseerd om meerdere VM’s tegelijk te laten werken.

Voor ondernemingen die verhuisden van on-prem datacenters naar de cloud, had dit voorheen ongekende voordelen. Denk aan gecentraliseerd netwerkbeheer, optimaal servergebruik; meerdere OS-omgevingen op dezelfde machine maar toch geïsoleerd van elkaar, consolidatie van applicaties in één systeem, geld besparen en meer. Voor nieuwe cloud-gebruikers, zoals bedrijven met diepgewortelde legacy-systemen of monolithische applicaties, bieden VM’s aanzienlijke voordelen.

Echter, naarmate de jaren verstreken, werd duidelijk dat VM’s niet altijd ideaal zijn. Elke VM wordt met zijn eigen besturingssysteem toegevoegd aan de RAM- en CPU-cycli en maakt het geheel groter en langzamer om op te starten.

Containers: licht van gewicht, snel en betrouwbaar

Containers – georkestreerd door Kubernetes, Docker Swarm en andere soortgenoten – vormen een samenvatting van het besturingssysteem. Ze voeren applicaties uit op meerdere geïsoleerde systemen, terwijl een besturingssysteem wordt gedeeld. Vaak worden ook binaries en bibliotheken gedeeld. Dit maakt containers licht van gewicht. Ze zijn meestal maar een aantal megabytes groot en het duurt een paar milliseconden om op te starten. Je kunt met containers zelfs twee tot drie keer zoveel toepassingen op één server plaatsen dan met VM’s kan.

Net zoals VM’s de last van serverbeheer wegnemen, verminderen containers de software-overhead aanzienlijk. Denk aan bugfixing, patch-updates, enzovoort. Dit gebeurt namelijk voor één OS-instantie, waar VM’s dat doen voor elke instantie. Omdat veel IT van ondernemingen nog steeds op VM’s is gebaseerd, worden containers vaak uitgevoerd op VM-gebaseerde infrastructuur.

Progressieve applicatie-engineeringteams gebruiken tegenwoordig meestal containers om applicaties te implementeren in een multi-cloud omgeving. Vooral voor applicaties die zijn gebaseerd op microservices, hebben containers duidelijke voordelen ten opzichte van virtuele machines: op kosten, efficiëntie, flexibiliteit en snelheid van uitvoering. Containers creëren een efficiënte en schaalbare omgeving voor ontwikkeling, testen en implementatie.

Toch missen ze de onaantastbare beveiliging van VM’s. Containers dragen de gevolgen van isolatie op procesniveau, in tegenstelling tot de grenzen van hardwarevirtualisatie die VM’s hebben. Ik bedoel niet dat containers niet veilig zijn: ze hebben beveiliging op containerniveau, clusterniveau en kernelniveau.

De microVM oogt als container, gedraagt zich als VM

MicroVM’s zijn hardware-geïsoleerde, lichtgewicht, virtuele machines met hun eigen mini-kernel. Ze bieden beveiliging tegen hardwarevirtualisatie zoals VM’s, maar dan met de flexibiliteit van containers. Het belangrijkste verschil met bestaande containers is dat microVM’s de laatste hardware-isolatie bieden binnen een Kubernetes-containerpod.

MicroVM’s isoleren automatisch kwetsbare en/of onbetrouwbare taken om de rest van de omgeving te beschermen. Ze zijn geïsoleerd van zowel andere microVM’s als van het besturingssysteem. Elke aanval die in de microVM’s terecht komt, beïnvloedt geen enkel ander deel van de applicatie. Zelfs bij aanvallen die host- en netwerk-gebaseerde beveiliging overtreffen – zoals geavanceerde aanvallers tegenwoordig kunnen – zorgen microVM’s voor veilige eindpunten.

MicroVM’s bieden slechts zo veel toegang tot andere systemen en gegevens als nodig is. Zo kunnen ze gevoelige toepassingen beschermen en gegevensverlies voorkomen. Je kunt dus zowel vertrouwde als niet-vertrouwde taken in één systeem uitvoeren, zónder dat je je zorgen hoeft te maken dat het laatste het eerste vernietigt.

Anders dan traditionele VM’s zijn microVM’s geen volledige machines, maar ‘net-genoeg-machines’. Ze hebben slechts toegang tot een klein deel van de OS-bronnen en andere processen. Hierdoor is er geen verlies van snelheid en prestaties als gevolg van een verhoogde beveiliging.

Hoewel het gesprek rond microVM’s al in 2012 begon, is pas dit jaar hun momentum aangebroken. Tools als AWS Firecracker en Googles gvisor treden langzaamaan toe tot de toolkit van de enterprise application engineer. Maar microVM’s zijn nog steeds onorthodox. Ze laten een groot potentieel zien, maar zijn in de praktijk nog niet voldoende getest.

Vind je Sweet Spot

De cloud werd tot voor kort gedomineerd door virtuele machines. Naarmate meer en meer applicaties worden geïmplementeerd op VM’s, worden de tekortkomingen ervan duidelijk. MicroVM is echter nog niet getest, daardoor nog niet vertrouwd en heeft derhalve nog een lange weg te gaan tot aan de mainstream acceptatie.

Containers zijn jouw Sweet Spot. Ze lopen aanzienlijk voor op de traditionele VM. Ze hebben acceptatie gevonden. Netflix, Airbnb en dergelijke zweren bij Kubernetes. Cloudproviders haasten zich intussen om implementatie in containers efficiënt te maken. Om nog maar te zwijgen van de tientallen geavanceerde tools die op de markt beschikbaar zijn. Als je in 2020 niet op de containerwagon zit, loop je ver achter.

OpenShift, Kubernetes en Docker: een snelle vergelijking

In 2019 zagen we de enorme explosie van containerisatie en microservices bij de levering van bedrijfsapplicaties. Containers zijn een van de belangrijkste aandachtspunten geworden voor veel CXO’s (Chief eXperience Officer) van organisaties die voorop willen lopen in digitale innovatie en wendbaarheid wensen bij nieuwe service-lanceringen. Er zijn weinig belemmeringen waarmee een CXO of technologiemanager wordt geconfronteerd bij containeroplossingen op het gebied van beheer, schaalbaarheid, flexibele inzetbaarheid en onderhoud.

Hieronder zal ik drie leveranciers vergelijken van containerachtige oplossingen die op enterprise-niveau hun waarde al hebben bewezen en worden ingezet. Is Kubernetes, OpenShift of Docker het beste voor je organisatie? Hier een paar overwegingen.

Docker

Dit containerconcept kwam in beeld toen Docker binnenkwam in datacenters met veel private of publieke clouds. Later werd Docker Swarm gelanceerd voor orkestratie en als planner voor Docker-images. Het product Docker Enterprise Engine bleek niet in staat om efficiënte schaalverdeling en externe load-balancing te bieden voor alle container-images die het orkestreerde. Het is onlangs overgenomen door Mirantis.

Kubernetes

Kubernetes is een open source container orkestratie-oplossing. Het wordt gehost door Cloud Native Computing Foundation (CNCF) en ondersteund door Google, AWS, Microsoft, IBM, Intel, Cisco Systems en Red Hat. Waar Docker EE beperkt is, biedt Kubernetes de mogelijkheid om containers op verschillende machines te laten. Andere functies zijn het automatisch schalen van containers, lading verdelen, vereiste opslag beheren en veerkracht van containers bieden bij storing en dergelijke.

De functies die Kubernetes aanbiedt zijn complementair aan Docker. Kubernetes helpt de runtime van containers te vereenvoudigen door Docker-gebaseerde applicaties te beheren: applicaties die zijn geplaatst op een onderliggend systeem, dat verschillende replica’s van actieve applicaties onderhoudt. Kubernetes stelt ontwikkelaars in staat cloud-native applicaties te versnellen. Het creëert een ecosysteem van services die zelfgestuurd en herbruikbaar zijn. Je kunt een aantal Kubernetes-as-a-service-platforms zien, die worden aangeboden door leveranciers van verschillende schaalgrootte.

OpenShift

We weten dat Kubernetes een gemeenschapsproject is. Als je Kubernetes zelf in je infrastructuur implementeert en er treedt een fout op, dan moet je je tot de community wenden voor een oplossing. OpenShift is een oplossing van Red Hat gebouwd op Kubernetes- en Docker-projecten. Red Hat biedt het OpenShift-platform aan als een aanvullende service om de verscheidenheid aan workloads te beheren. Voor eventuele problemen of ondersteuning bij de implementatie biedt Red Hat OpenShift een betaalde ondersteuning.

De verschillen en relaties

Laat ik besluitvormers helpen bij het kiezen van een platform voor containerbeheer door de verschillen en relaties tussen Docker, OpenShift en Kubernetes op een rij te zetten.

Typen werkbelasting

Docker biedt Docker EE voor containerbeheer en orkestratie. Docker EE is meestal geschikt voor het orkestreren van Docker-images, omdat het nauw is geïntegreerd met Docker API voor intercommunicatie. Maar Kubernetes verwerkt Docker-images én onafhankelijke containers. Kubernetes biedt een breed scala aan functies die gelijk zijn aan alle workloads. OpenShift ondersteunt alle soorten werkbelasting, ongeacht of het nu Docker-images zijn die bij Kubernetes zijn ingesloten.

Upgrades en patches

Aanvankelijk werden upgrades en patches uitgevoerd binnen Kubernetes en Docker. OpenShift wijzigt zijn repository enigszins na de release van Kubernetes, Docker en andere open source-platforms.

CI/CD-bewerkingen

Voor CI/CD in Kubernetes en Docker worden externe extensies of hulpmiddelen zoals Jenkins ondersteund. Deze moeten afzonderlijk worden geïnstalleerd. OpenShift heeft een vooraf geïntegreerd Jenkins-framework, zodat het eenvoudig is om CI/CD in te stellen.

Multi-cloud inschakelen

Kubernetes en Docker worden ondersteund door openbare clouds, waaronder Google Cloud, EKA op AWS en AKS op Azure. OpenShift is beschikbaar als een toegewijd, online platform en op Azure. Kubernetes wordt vaak beschouwd als een prioriteitskeuze voor multi-cloud-implementatie.

Implementatie en beheer

De implementatie en het beheer van containers met behulp van Kubernetes kan complex zijn in vergelijking met Docker EE en OpenShift. Die staan juist bekend om hun eenvoudige installatie en vereenvoudigde gebruikersinterface.

Conclusie

Docker, Kubernetes en OpenShift zijn onafhankelijke containertechnologieën. Ze zijn op veel manieren aan elkaar gerelateerd en vullen elkaar aan. Kubernetes kan Docker-container-images implementeren en orkestreren. Op dezelfde manier beheert OpenShift naadloos het Kubernetes-cluster. Met Kubernetes kunnen honderden containers worden beheerd.

Kubernetes biedt functies voor automatisch schalen, load-balancing en opslagbeheer voor containers. Bovendien heeft Kubernetes extreem krachtige community-ondersteuning. OpenShift aangedreven door Kubernetes gaat verder en biedt meer eenvoud in het beheer van workloads, samen met verschillende soorten tools.

Mocht je eens willen sparren over containers en microVM’s en de mogelijkheden willen doornemen, dan staan wij natuurlijk voor je klaar.

 

Cookies op Fondo
Wij en derden gebruiken cookies op onze website. We gebruiken cookies voor statistische, voorkeur en marketing doeleinden. Google Analytics cookies zijn geanonimiseerd. Je kan je voorkeuren wijzigen door op ‘Verander opties’ te klikken. Door op ‘Accepteren’ te klikken accepteer je het gebruik van alle cookies zoals beschreven in onze privacy-statement.
Noodzakelijk
Noodzakelijke cookies helpen een website bruikbaarder te maken, door basisfuncties als paginanavigatie en toegang tot beveiligde gedeelten van de website mogelijk te maken. Zonder deze cookies kan de website niet naar behoren werken.
Voorkeur
Voorkeurscookies zorgen ervoor dat een website informatie kan onthouden die van invloed is op het gedrag en de vormgeving van de website, zoals de taal van uw voorkeur of de regio waar u woont.
Statische
Statistische cookies helpen eigenaren van websites begrijpen hoe bezoekers hun website gebruiken, door anoniem gegevens te verzamelen en te rapporteren.
Marketing
Marketingcookies worden gebruikt om bezoekers te volgen wanneer ze verschillende websites bezoeken. Hun doel is advertenties weergeven die zijn toegesneden op en relevant zijn voor de individuele gebruiker. Deze advertenties worden zo waardevoller voor uitgevers en externe adverteerders.
Verander opties