Hoe Docker en Kubernetes’ open source technologie de bedrijfssector verovert

Door Young Mavericks’ Data Engineer Don de Lange

First things first: containertechnologie

Vandaag de dag zijn er eindeloos veel technologieën, applicaties en systemen met stuk voor stuk verschillende gebruikswijzen. Voor houvast in deze wirwar van applicatietechnologieën maken steeds meer bedrijven gebruik van containertechnologie. Containers zijn in essentie zeer efficiënte en gedetailleerde pakketten met een vaste indeling, bestaande uit de applicatie plus de technische componenten (libraries, utilities en configuration files) die vanuit de cloud zelfstandig kunnen functioneren. In tegenstelling tot virtuele machines isoleren containers de uitvoeringsomgevingen van onderlinge applicaties, en delen zij de onderliggende OS-kernel. Containertechnologie is open source en wordt omarmd door Amazon, Google en Microsoft – de techreuzen van deze wereld.

Dankzij de uniforme opzet van containers en de adoptie van deze standaard door alle cloud- en techproviders kunnen applicaties op ieder platform en op elk besturingssysteem werken. Hierdoor zijn ontwikkelaars minder tijd kwijt aan het oplossen van bugs en kunnen zij zich richten op doorontwikkeling en optimalisatie, wat kan leiden tot significante kostenbesparingen. Andere voordelen van containertechnologie zijn een minimale opstarttijd, simpel onderhoud, snelle (en automatische) op- en afschalingsmogelijkheden en de optie om meerdere versies van dezelfde applicatie op hetzelfde moment te laten draaien, waardoor A/B-testen mogelijk zijn.

Containertechnologie beheren met Docker en Kubernetes

De vele voordelen van containertechnologie maken deze vorm van applicatiebeheer in toenemende mate een interessante keuze voor bedrijven. Een nadeel zit ‘m echter in het complexere beheer van de containers: maar weinig bedrijven hebben de expertise in huis om hierin wegwijs te raken en blijven. Steeds meer wenden zij zich daarom tot platformen als Docker en Kubernetes voor hun expertise en vaardigheden om alle systemen en applicaties werkend de maken én houden.

Kubernetes en Docker zijn twee van de grootste en meest bekende softwareoplossingen als het gaat om de orkestratie van containers. Beide tools stellen bedrijven in staat om – elk op eigen wijze – een cluster van servers te beheren waar één of meerdere containers op staan. Met Kubernetes en Docker hebben bedrijven de garantie dat hun producten continu worden geupdate en altijd blijven werken zoals beloofd.

Containerbeheer met Docker

Docker is de bekendste manier om open source containers te gebruiken. Voor velen is het dé tool voor het creëren, deployen en uitvoeren van applicaties binnen een enkel, virtueel platform. Docker biedt bedrijven onder andere de mogelijkheid om onderdelen te clusteren, resulterend in een groep van meerdere containers die de kans op uitval minimaliseert, omdat er altijd een andere container is om op terug te vallen. Docker heeft een uitgebreid assortiment aan tools, maar richt zich vooral op de distributie hiervan en laat de toepassingen voornamelijk aan de consument zelf over. Kubernetes daarentegen, neemt de toepassing tot op zekere hoogte van de consument over. Simpel gezegd kun je Docker vergelijken met de supermarkt om de hoek waar je zelf boodschappen doet en Kubernetes met een afleverservice die jouw boodschappen thuis bezorgd en erop let dat alles altijd op voorraad is.

Kubernetes als overtreffende trap

Belangrijk om te weten is dat de toepassing van Docker niet afhangt van Kubernetes, maar Kubernetes voornamelijk werkt als aanvulling op Docker. Kubernetes – ontwikkeld door Google – is, net zoals Docker, een open source orkerstratieplatform, maar gaat verder dan dat. Je kunt het platform zien als een overtreffende trap die specifiek wordt ingezet voor complexe systemen waarbij de werkbelasting vaak verdeeld is over verschillende omgevingen (clouds). Steeds meer (internet)bedrijven gebruiken Kubernetes om grote hoeveelheden containers te clusteren, beheren en relatief simpel te kunnen opschalen.

De voordelen van Docker en Kubernetes voor bedrijven

Het aantal bedrijven dat kiest voor softwareoplossingen van Docker en Kubernetes is divers en groeit hard. Een keuze voor deze platformen garandeert bedrijven van de kwaliteit en distributie van producten en helpt hen bij het sneller en eenvoudiger implementeren, repliceren, verplaatsen en back-uppen van applicaties. Telefoonbedrijven, bijvoorbeeld, maken gebruik van Dockers software om inkomende gesprekken optimaal te verwerken. Mocht er toch ergens iets fout gaan, dan kunnen tools van Kubernetes ervoor zorgen dat alles alsnog blijft draaien. Ook internetbedrijven maken dankbaar gebruik van Docker en Kubernetes’ tools, met name voor het op- en afschalen van de capaciteit voor hun websites. Om hun fluctuerende bezoekersaantallen optimaal te kunnen bedienen gebruiken zij, met software van Docker en Kubernetes, verschillende netwerken. Als één netwerk wordt overbelast, wordt er automatisch overgeschakeld op een ander netwerk. Zo zorgen Docker en Kubernetes ervoor dat websites altijd optimaal toegankelijk zijn. 

Zelf aan de slag: Docker en Kubernetes uitvoeren

Kubernetes en Docker zijn gratis platformen die iedereen na installatie zelf kan toepassen. Je kunt de platformen op een relatief oppervlakkige wijze gebruiken, maar je kunt het ook zo gek – technisch – maken als je zelf wilt. Om het meeste uit beide platformen te halen is het belangrijk om de functie en werking ervan in elk geval op conceptueel niveau te begrijpen. Dit houdt in dat je niet alleen weet hoe jouw script functioneert, maar dat je ook op de hoogte bent van de verschillende functies en toepassingen van Docker en Kubernetes.

Elke Docker-container begint met een Docker-bestand (Docker file). Dit is een tekstbestand, geschreven in een syntaxis met instructies om een ​​Docker-afbeelding te maken. In het Docker-bestand worden onder andere het achterliggende besturingssysteem, de talen, omgevingsvariabelen, bestandslocaties, netwerkpoorten en andere relevante componenten aangegeven. Natuurlijk staat ook uitgeschreven wat de container daadwerkelijk moet doen voor de uitvoering. Na het schrijven en invoeren van het bestand creëert Docker een bijbehorende afbeelding (Docker image) waarin wordt gespecificeerd voor welke softwarecomponenten de container wordt uitgevoerd en hoe. Vervolgens kan Docker gaan uitvoeren en wordt een container gestart. Kubernetes gaat hierin een stap verder en biedt meer geavanceerde container-orkestratie-technologieën. 


Handige tools voor Data Engineers 

Docker en Kubernetes bieden een scala aan handige applicaties voor engineers en bedrijven. Of het nu gaat om beveiligingssoftware, deployment tools, ondersteunende apps om coderen te versimpelen of configuratietools – het aanbod is eindeloos. Zo kun je bijvoorbeeld een schedular inzetten die je code dagelijks om een specifieke tijd runt. Ook kun je er met apps voor zorgen dat er altijd twee netwerken aan staan, zodat als er één faalt, de ander het automatisch overneemt. Andere handige tools van Docker en Kubernetes helpen Data Engineers eventuele problemen in codes niet alleen ‘lokaal’ op te lossen, maar ook op afstand, zodat bedrijven altijd en overal kunnen rekenen op hun applicaties.

De tools van Docker en Kubernetes zijn met name waardevol voor bedrijven die hun data en datasystemen al behoorlijk op orde hebben. Om zoveel mogelijk uit Docker en Kubernetes te halen is het namelijk belangrijk om vrij ver te zijn qua data-optimalisatie. Als een bedrijf eenmaal een goede basis heeft, dan zijn de voordelen van Docker en Kubernetes op zowel strategisch als operationeel niveau eindeloos: van minder bugs en inconsistenties, de mogelijkheid om razendsnel op- en af te schakelen, een kortere time-to-market tot significante kostenbesparingen.

Ontdek hoe Young Maverick jouw bedrijf kan helpen met advies over of implementatie van Docker en Kubernetes. Neem contact met ons op.

ELT, ETL en datapijplijnen: do it yourself geautomatiseerd data inladen

Mijn naam is Don en in mijn werk voor Young Mavericks combineer ik mijn kennis als Data Engineer met mijn expertise in Data Science. In de praktijk komt dit erop neer dat ik repetitieve taken automatiseer, inzichten uit data genereer en een coördinerende en adviserende rol heb binnen projecten. Ik geniet het meest van het creatieve proces dat nodig is om problemen op te lossen met behulp van data.

Lees meer

Datapijplijn implementeren: Toepassen van het datapijplijn-concept

Deze handleiding bouwt voort op het ‘ELT, ETL en datapijplijnen’- artikel, waarin veelvoorkomende problemen van bedrijven bij het opslaan en gebruik van data worden besproken. Als antwoord op deze en meer problemen introduceerde Don – Data Scientist en Data Engineer bij Young Mavericks – het concept ‘datapijplijnen’, waarmee bedrijven een datagedreven cultuur kunnen creëren en zo optimaal mogelijk hun data kunnen inladen – en welke tools hiervan handig zijn. In dit artikel past Don de eerder behandelde concepten achter datapijplijnen toe bij het daadwerkelijk implementeren van een werkende datapijplijn. De complete code is te vinden op onze Gitlab.

Lees meer