Combell & Kubernetes: voorbij de hype, een nieuwe generatie Cloud-toepassingen

Containers, Docker, Kubernetes… Het zijn hippe begrippen waar iedereen nu mee bezig is, of wil zijn. Bij Combell is dat niet anders. De technologie staat al ruim vijf jaar op de radar en wordt al een hele tijd binnenshuis gebruikt. Is het tijd voor een aanbod naar klanten? Een interview met Wesley, Thijs, Jachim en Maarten.

Heeft de evolutie van virtualisatie naar containers niet alleen de technologie, maar ook de manier van denken over ICT veranderd?

Van dedicated servers, kwam virtualisatie, en daaruit kwam Cloud. Developers willen sneller kunnen werken zonder zich zorgen te maken over de onderliggende infrastructuur. Hierin past het containerverhaal en opkomst van technologieën zoals Docker en Kubernetes.

Alles past in de evolutie die de Cloud de laatste tien jaar heeft doorgemaakt. De business dwingt ons om snel te zijn – niet enkel om snelle sites en applicaties te runnen, maar om sneller naar de markt te kunnen gaan.

DevOpsDe Agile-mindset heeft veel veranderd. Systeembeheerders en Operation engineers hebben door dat zij ook agile moeten zijn en kort en cyclisch moeten werken – daaruit is ‘DevOps’ gekomen. Virtualisatie was een driver. Van daaruit kwamen de grote Public Cloud-platformen: er wordt volledige abstractie gemaakt van de fysische platformen en de gebruiker krijgt een set van gebruiksvriendelijke API’s, om meer geautomatiseerd te werken – dingen die in flux zijn, die constant veranderen, die de verandering kunnen opvangen, onder tijdsdruk, en grote concurrentie.

Ondertussen hebben we ruime ervaring opgedaan. Kubernetes is in het begin een complex gegeven. Je begint met een labo setup, zodat je ermee leert werken. Drie iteraties verder begrijp je de concepten, en zie je ook in dat die concepten er zijn om een bepaalde reden. En nu zijn we in de fase dat we dit zelf als platform inzetten voor interne micro services.

Velen van ons begrijpen dat Kubernetes zodanig anders is dan de rest wat we tot nu toe kennen. Omdat het een abstractieplatform is, om ‘workloads’ op te droppen, waarmee je niet meer afhankelijk bent van een onderliggende speler!

"Het is al Kubernetes wat de klok slaat. En dan stel je de vraag, hoeveel heb je er in productie draaien? En dan wordt het vaak stil."

Kubernetes kijkt heel anders tegen infrastructuur aan. Maar kwam de populariteit toch niet allereerst vanuit development?

Er zit wel een beetje historiek achter. Als developer wil je ‘coden’ op je eigen computer. Je hebt typisch verschillende projectjes naast elkaar. Over de jaren heen zijn er verschillende virtualisatie tools uitgekomen: die zorgen ervoor dat je snel een omgeving kan opstarten op je computer. Samen met een tool als Vagrant, kan je aan de code van één project werken, dat weer afbreken en iets anders doen – wat misschien niet dezelfde versie-vereisten heeft… Een andere versie van PHP, enzovoort.

DockerPlots zien developers als ze Docker gebruiken, dat dit geen twee minuten of drie minuten duurt – vooraleer die VM er staat – maar drie seconden. En ze zijn die workflow snel gewoon, omdat dat heel gemakkelijk werkt. Omdat je gewoon ook enorm veel containers op een zelfde computer kunt draaien. Je moet maar eens proberen om 10-20 Virtuele Machines op je laptop te draaien… Dat zal niet snel gaan hé, dat gaat pijn doen. Met Docker voelt dat plots heel vlot aan, en de technologie is hip.

Nu zie je dat zij een bepaalde manier van werken hebben leren kennen, die ze willen doorduwen naar acceptatie en productie. Ze gaan praten met hun manager: “Dit is leuk werken. Wij kunnen standaardiseren op deze manier. Dit maakt ons leven gemakkelijker. We willen het ook in productie.”

Als developer moet je nu bij wijze van spreken geen twee dagen meer wachten tot een collega voor jou een server heeft opgezet. Het is infrastructure-as-code. Het is voor iedereen gemakkelijker. Terwijl je code uitrolt, geef je mee hoe de infrastructuur waar de code op draait, eruit moet zien. Die wordt op een dynamische manier opgeleverd. De ‘clou’ is dat het voor iedereen – voor de aanbieder en de gebruiker – gemakkelijker is. Het past in het concept van ‘pets’ versus ‘cattle’. Je server is gewoon een domme omgeving volledig managed door automatisatie, wat Kubernetes dus biedt.

"Waar is het begonnen? Zoals bij iedereen – in de playground! Het is coole technologie."

Hoe doe je Kubernetes-projecten op de goeie manier?

Wanneer een klant zegt dat hij ‘cloud native apps’ wil bouwen… Wat bedoelt hij dan echt? Vaak komt het erop neer dat hij containers wil draaien. Wij vragen hen dan, hebben jullie een microservices-architectuur? Zal het sop de kolen waard zijn, als je één monolitische codebase hebt?

Dit raakt je manier van werken. De manier waarop je projecten aanpakt. We moeten ons niet laten misleiden door de typische hypes in ICT, en geloven dat iedereen dit al doet. In België zijn er heel veel mensen mee bezig. Het is al Kubernetes wat de klok slaat. En dan stel je de vraag, hoeveel heb je er in productie draaien? En dan wordt het vaak stil.

Als je het abstract bekijkt, wil je dat er efficiënt gebruik gemaakt wordt van de resources. Er is een zekere overhead, die je creëert. Er is bijvoorbeeld een ‘control plane’, waarop je geen nuttige werklast draait. Die is er gewoon om de boel in stand te houden.

Microservices

Vaak komt het erop neer… Microservices of niet? Als je maar één Pod gaat draaien in Kubernetes, dan moet je die keuze serieus in vraag stellen. Ben je een bedrijf dat continu API’s ontwerpt, dan is Kubernetes een logische keuze. Ben je een bedrijf dat Drupal-sites ontwerpt – die gewoon één blok, een database en wat PHP-code zijn – dan kun je daar Kubernetes voor gebruiken, maar de meerwaarde zal beperkt zijn.

Waar staat Combell vandaag met Kubernetes? Welke weg hebben jullie afgelegd?

Waar is het begonnen? Zoals bij iedereen – in de playground! Het is coole technologie. Die leer je kennen, en stap voor stap wordt dat serieuzer.

Kubernetes is voorlopig een beetje het eindpunt in de container evolutie. De release van Docker was de eerste stap in de democratisering van containertechnologie. Je hoort van de technologie en ziet de hype errond, waar je toch ook zelf wordt door aangestoken. Uiteraard wil je er dan eens mee spelen maar stuit je ook tegen de beperkingen, bijvoorbeeld op het gebied van storage en netwerking. De volgende stap was orchestratie van verschillende containers met Docker Compose. Daar loop je dan opnieuw tegen grenzen aan, namelijk de host staat op een gegeven moment vol met containers. En je moet nog altijd bijvoorbeeld Nginx configureren om die services beschikbaar te maken voor de buitenwereld.

Docker en Docker Compose gebruiken we vandaag nog steeds in productie maar Kubernetes is de volgende logische stap want daar wordt abstractie gemaakt van de hosts waarop de service draaien.
Kubernetes laat ons toe om een verzameling van services te orchestreren over verschillende servers, zonder ons zorgen te moeten maken over clustering, schaalbaarheid en deployment.

Orchestratie met Kubernetes

Nu hebben we eindelijk de stap gemaakt naar productie, hetzij voorlopig enkel voor interne services. Bijvoorbeeld een Slack-bot, een interne ‘Chatops’ bot. We verwachten binnenkort onze eerste customer facing service te releasen op Kubernetes.

Kunnen Combell-klanten hier ook van proeven?

We hebben een paar jaar van twijfel gehad. We vonden dat er nog niet genoeg adoptie was, bij de specialisten in ons netwerk. Die discussie zijn we nu wel voorbij. We geloven wel degelijk dat dit de toekomst is. En we geloven dat we erop moeten inzetten.

Waar we nu mee worstelen is: waar kan Combell het best haar meerwaarde bieden? Hoe ver ga je om de klant te begeleiden? Dat is de moeilijkheid. Technisch zijn we er nu wel klaar voor. Hier zit ook de commerciële opportuniteit, om ons te differentiëren. Maar we willen dus verder gaan, een ‘blote’ Kubernetes opzetten, is niet voldoende. Er is nog een hele set van extra services en begeleiding nodig om de klant te helpen in zijn zoektocht naar een efficiënte manier van werken.

De drie pijlers waar Combell voor staat, zijn stabiliteit voor de klant, veiligheid en snelheid. Daarom hebben we ook de technologie lang bestudeerd en goed nagedacht wat onze meerwaarde kan zijn. We geloven dat we er klaar voor zijn en in samenwerking met onze klanten veel kunnen bereiken.

We kunnen bijvoorbeeld faciliteren dat ontwikkelaars binnen hun comfortzone kunnen blijven en dezelfde tools blijven gebruiken. Het is onze taak om de complexiteit van Kubernetes weg te nemen en de API van Kubernetes te integreren in de CI/CD tools die onze klanten nu al gebruiken.

Heb jij hulp nodig bij de volgende stap in je containerproject? Contacteer ons per mail op k8s@combell.dev en we helpen je graag verder met onze oplossingen.

Contacteer ons

De komende maanden gaan we technisch dieper in op het Kubernetes verhaal en beantwoorden we vragen zoals:

  • Waarom is dat nu zo voordelig voor developers en voor welke workloads dan precies?
  • Hoe ga je om met monitoring van Kubernetes services?
  • Hoe organiseer je een gemakkelijk te gebruiken CI/CD workflow met Kubernetes en Gitlab?

Stay tuned!