De hype rond containers is al even bezig, maar sinds kort draaien ze ook in productie Pieter Jenniskens en Tom D’Hont van SUSE leggen uit waarom jij deze hype niet aan je voorbij moet laten gaan.

 

Wat zijn containers nu eigenlijk?

Containers zijn het makkelijkst te begrijpen als je hen vergelijkt met een virtuele omgeving. In een virtuele omgeving worden applicaties gescheiden van elkaar door de fysieke hardware in een server te virtualiseren en toe te wijzen aan virtuele machines. Op een virtuele machine installeer je dan een Guest OS, bijvoorbeeld een SUSE Linux Enterprise Server 12 SP3 (waarom zou je kiezen voor minder) waarop vervolgens een applicatie geïnstalleerd wordt. In een containeromgeving worden applicaties gescheiden van elkaar: elke applicatie krijgt zijn eigen runtimeomgeving met bijhorende libraries, binaries, andere afhankelijkheden en configuratiebestanden die nodig zijn om de applicatie correct te laten functioneren. Deze runtimeomgeving noemen we een container. Het grote voordeel van containers is dat de OS kernel gedeeld wordt tussen containers en er dus geen extra overhead door Guest OS virtualisatie nodig is om applicaties te scheiden van elkaar.

 

 

 

 

 

 

 Afbeedling 1a: Virtualisatie & Afbeelding 2b: Containers

 

Naast het optimaal benutten van de beschikbare hardware stelt een containeroplossing jou ook in staat om een DevOps manier van werken te introduceren in jouw IT-afdeling.

Omdat de overhead van het Guest OS en het beheer daarvan niet meer aanwezig zijn, staat de applicatie centraal en kunnen ontwikkelaars meer tijd besteden aan het ontwikkelen in plaats van de uitrol en het beheren van applicaties. Daar komt nog bij dat door het gebruik van containers, applicaties meer gefragmenteerd ontwikkeld kunnen worden.

 

 

 

 

 

 

 

 

 

 

 

Afbeelding 2a: traditionele applicatie & afbeelding 2b: Nginx – microservices

 

Links een schematische weergave van hoe programmeurs tot op heden programma’s maakten. Alle code is één grote monoliet en heeft een aantal interfaces naar buiten. Wil je graag in deze omgeving een onderdeel updaten of patchen, dan zal je de volledige stack moeten herstarten wat een grote impact heeft op jouw eindgebruikers. Ontwikkelaars kiezen er daarom vaak voor om een groot aantal updates en patches tegelijk uit te voeren wat inhoudt dat het soms wel even duurt voordat nieuwe functionaliteiten geïntroduceerd en/of bugs hersteld worden.

Rechts een overzicht van hoe microservices werken – elk programmaonderdeel is zijn eigen kleine container en ze praten met elkaar via REST APIs. Dit heeft als voordeel dat alles onafhankelijk is van elkaar en stukken code dus ook onafhankelijk van elkaar geschaald of geupgrade kunnen worden. Veranderingen in de ene container hebben geen invloed op andere containers, zolang er maar gezorgd wordt dat de API gelijk blijft. De gedroomde omgeving voor elke ontwikkelaar!

 

Yes containers! Maar hoe beheer je dat nu allemaal?!

Grote aantallen containers orkestreren en beheren is een hele uitdaging – Hoe zorg je ervoor dat je altijd genoeg containers hebt voor je services? Hoe zorg je ervoor dat er automatisch meer containers komen als het drukker wordt? Of dat je services toch online blijven als er een keer een stuk hardware uitvalt? En hoe deploy je een complete webshop, bestaande uit honderden containers???

Om al deze uitdagingen te lijf te gaan is er Kubernetes, een tool ontwikkeld door Google om grootschalige containerinfrastructuren te beheren.

Het opzetten van Kubernetes is complex. In de wandelgangen wordt vaak gesproken over “Kubernetes – The hard way”. Een uitrol zonder scripts en zonder ruime ervaring is een meer dan behoorlijke uitdaging. Gelukkig bestaat er ook zoiets als “Kubernetes – The easy way”, het SUSE Container-as-a-Service (CaaS) Platform dat werd gelanceerd op 19 juni 2017.

In het kort is het SUSE CaaS Platform een extreem makkelijk te installeren Kubernetes cluster, in minder dan 30 minuten ben je up-and-running.

 

SUSE CaaS Platform

SUSE heeft een zorgvuldige selectie gemaakt van open source technologiën; Kubernetes, Docker en SUSE MicroOS die geschikt zijn voor enterprise consumptie. Deze producten hebben een grote draagkracht binnen de open source community, hebben een duidelijke roadmap en sluiten perfect aan bij de open-open source visie van SUSE.

SUSE CaaS Platform

 

Kubernetes – Container orkestratie technologie voor het automatiseren van uitrol, schalen en managen van containergebaseerde applicaties.

SUSE MicroOS – Een specifiek ontworpen OS om containers te draaien met dezelfde security, schaalbaarheid en degelijkheid van een SUSE Linux Enterprise Server.

Container Engine en Image Registry – Voor het opslaan en uitvoeren van containers die het open source Docker container format gebruiken.

Aanvullende open source technologiën, waaronder Kubernetes extensies zoals Helm, voor het grootschalig uitrollen van applicaties. Container images beheerd door SUSE voor basisapplicaties zoals MariaDB en SUSE Linux Enterprise base container images. Alsook een open interface voor het uitbreiden van andere extensies die niet standaard meegeleverd zijn met het platform.

Op SUSECON ’17, dat dit jaar in Praag gehost werd, stond het SUSE CaaS Platform in de spotlights! Tijdens SUSECON ‘17 is namelijk het SUSE CaaS Platform – versie 2 aangekondigd. Een snelle opvolging na de initiële productlancering brengt een hele hoop nieuwe features met zich mee en toont daarnaast de toewijding aan de snel veranderende technologie van het platform.

Naast het SUSE CaaS Platform 2, is er ook een vooraankondiging van een nieuw product – SUSE Cloud Application Platform (CAP). SUSE CAP is een product dat Platform-as-a-Service (PaaS) mogelijk maakt, gebaseerd op de Cloud Foundry technologie. SUSE CaaS Platform 2 en SUSE CAP komen later dit jaar beschikbaar. Meer informatie vind je hier.

 

# calling_all_geekos.sh

SUSE heeft sinds kort zijn eigen Meetup groep waar we technologische uitdagingen bespreken terwijl we genieten van bier en pizza. Blijf op de hoogte van nieuwe Meetups door je vrijblijvend in te schrijven op: