Kennismaken met Docker

Crowds of fun-seekers exploring a city on foot, "
Mammal under tree in shade with tented chair, car packed

Bij Bank Mendes Gans introduceerde ons systeemteam containers bij het grote, internationale team van developers. Om die introductie te ondersteunen legden we een oer-Hollands verschijnsel uit: met de caravan op zomervakantie (naar Frankrijk), met al het eten en alle spullen voor de hele vakantie mee. Je kon in principe op de camping overleven zonder ooit naar een lokale supermarkt te hoeven. Met alleen wat stroom en een toiletgebouw in de buurt, drie weken lang. Wie in Nederland in een doorsneegezin opgroeide, kende deze manier van 'vakantie vieren' maar al te goed — en dat gold voor de meeste Nederlanders in de zaal.

Nu we dit alles over caravannen weten: wat heeft dat met Docker en containers te maken, vraag je je misschien af. Lees verder, dan zie je waar die twee elkaar raken.

Wat is een container?

De opkomst van containers begon ergens begin jaren 2000, toen inmiddels grote techbedrijven als Google investeerden in Linux Control Groups. De belangrijkste reden daarvoor was dat containers veel minder energie kosten dan virtualisatie. Containers lijken op virtuele machines, maar zijn veel kleiner. Het begon dan wel in de jaren 2000, maar pas veel recenter kwam de ontwikkeling in een stroomversnelling en werd ze gemeengoed.

Een korte terugblik

Diagram of parallel blue slopes numbers arranging App, OS & HW "

Gefangen so im Fluß der Zeit

In het ijzeren tijdperk (links) zie je maar drie lagen: hardware, besturingssysteem en applicaties. Er was weinig flexibiliteit en veel beheerwerk aan zowel de hardware als het besturingssysteem. En de omgeving en afhankelijkheden van de applicatie vroegen daarbovenop nóg meer beheer.

Al snel, rond 2005, gingen we het virtuele tijdperk in, waarin een hypervisor ervoor zorgde dat je je eigen virtuele machine met besturingssysteem in isolatie had. Ook dat was een omwenteling, want organisaties en systeembeheerders konden een gestandaardiseerde omgeving leveren zonder de enorme verspilling van machines die uit hun neus stonden te eten. VMware was de 'Oprah' van omgevingen: “jij krijgt een VM, jij krijgt een VM, iedereen krijgt een virtuele machine!”

En dan de omwenteling waar we nu middenin zitten: het containertijdperk (beloofd, dit is de laatste keer dat ik het woord omwenteling gebruik). Een container draait om het verpakken van één proces. Je bouwt de container één keer en draait hem daarna overal — net als een VM, maar veel kleiner, en dus veel lichter. Dat is precies die caravan van net: alle proviand (binaries, afhankelijkheden) zit in de container. Het enige wat de containerruntime hoeft te doen, is op 'afspelen' drukken.

Eigenschappen van een container

  • Lightweight environment for running applications

  • Hermetically sealed static binaries

  • No External Dependencies

  • Isolated Applications running on a single host

  • Resources, Users, Filesystem, Network

  • Moves us from ‘Idealised Hardware’ to an ‘Idealised OS’

Netia: Poland's top telecommunications provider & leading IT solutions provider.

Waarom zou een developer hierom geven?

Waarom zou je je als developer druk maken om containers? Wij denken dat je je er juist heel druk om moet maken, omdat de wereld snel richting DevOps beweegt. Dat betekent dat een aantal taken die eerder bij beheer lagen, nu op het bord van de developer belandt.

Vaste applicatieomgevingen

Stressvrij uitrollen

Betrouwbaar uitrollen

Dog breed companion fawn enjoying grass with whiskers: "00"

Herhaalbaar, uitvoerbaar artefact

Overdraagbaarheid

Hier ontwikkelen, daar draaien Kies je cloud puur op zijn merites

Leg in knee-length jeans on wooden steps, with elbow resting on

Losjes gekoppeld

Makkelijker te bouwen en te beheren

Een applicatie samenstellen uit microservices maakt hergebruik eenvoudiger

"Educational toy igniting imagination w/electric-blue & magenta

Containers bieden een omgeving waarin je de productieomgeving al tijdens het ontwikkelen bouwt, om hem daarna nooit meer te hoeven wijzigen. Exact dezelfde binary die lokaal draait, draait ook in productie — waarmee je vrijwel alle nachtmerriescenario's rond configuratiebeheer oplost.

Peripheral computer output devices "defect in production?" Keyboard &

‘works on my machine’ is a thing of the past

Conclusie

'Neem alles mee wat je nodig hebt' is een principe dat zowel voor caravannen als voor containers geldt 😉 Met containers los je de 'op mijn machine werkt het'-nachtmerrie van configuratiebeheer op, en krijg je betrouwbare uitrol en overdraagbaarheid tussen omgevingen.

At an event, TV audience sport Interaction Suits & T-

Introducing containers

no image placeholder

CI/CD veilig en snel in de cloud