21 maart 2019

Wat is Containerization en wat zijn de voordelen?

De wereld van applicatie hosting is volop in beweging. Sinds enige tijd is er een nieuwe methode om applicaties te packagen, installeren en draaien, gebaseerd op ‘containers’. In deze blog leg ik uit wat containerization is en wat de voordelen zijn voor organisaties.

Wat zijn containers?

Met containers is de wereld van applicatie packaging en deployment veranderd, vergelijkbaar met de veranderingen die in de logistiek hebben plaatsgevonden. Vroeger werden goederen met veel mankracht in schepen geladen en gelost. Hier zat ontzettend veel handwerk in, niet alleen omdat er nog geen grote kranen waren, maar ook omdat de lading steeds andere vormen aannam: losse stukgoederen, zakken voor graan, kisten voor andere zaken en dit werd allemaal op elkaar gepropt in het laadruim. De intrede van zeecontainers met hun standaardmaten heeft de wereld van de logistiek op zijn kop gezet. Opeens was alle lading gelijkvormig, waardoor laden en lossen opeens een stuk efficiënter werd en veel grootschaliger aangepakt kon worden.

Het gebruik van containers zorgt voor een vergelijkbare standaardisatie. Het idee is dat je een applicatie opdeelt in componenten met slechts één functie of actief proces. Bijvoorbeeld, een WordPress applicatie kun je opdelen in een webserver, een PHP engine en een database server. Elk van deze functies komt te draaien in één container. Elke container bevat alles wat nodig is om die functie uit te kunnen voeren, dus bijvoorbeeld een Linux base image, een aantal libraries en het pakket (bijv NginX voor de webserver). Door deze aanpak is elke functie volledig geïsoleerd van de andere en kunnen er vele containers naast elkaar op één OS instantie (bijvoorbeeld een VM) staan, net als op een containerschip. De containers stellen geen enkele eis aan het onderliggende OS (het schip), behalve dan dat er een container engine draait. Verder hoeft er niets geïnstalleerd te worden wat voor de specifieke functie van de container nodig is. Ondanks deze isolatie is het wel mogelijk voor verschillende containers om met elkaar te communiceren, maar alleen nadat dat expliciet is ingesteld. Containers zijn gelijk op elke omgeving (Ontwikkel, Test, Acceptatie en Productie), alleen de parameters waarmee ze worden opgestart verschillen.

Het idee achter containers is niet nieuw, want dit concept wordt ook gebruikt in HP-UX packages of Solaris Zones. Maar het bedrijf Docker heeft dit concept groot gemaakt door het naar de wereld van Linux en Windows te brengen, waar het een enorme vlucht heeft genomen. Er is een hele reeks van tools ontstaan om het werken met containers makkelijk en robuust te maken. Een tool als Kubernetes zorgt voor orchestratie en beheer van de containers, vergelijkbaar met de kranen die het schip beladen. Rancher levert een mooie GUI voor de developer of applicatiebeheerder en wordt gebruikt om Kubernetes te beheren, denk aan de kraanmachinist. Ook tools als Gitlab sluiten hier goed op aan om een CI/CD proces in te richten gebaseerd op containers.

“Met de containeraanpak wordt het makkelijker om onderdelen van een applicatie te vervangen en te schalen.”
Richard de Jong
Solution Architect

De voordelen van containers

Met de containeraanpak wordt het makkelijker om onderdelen van een applicatie te vervangen, bijvoorbeeld bij een upgrade, en kan een applicatie makkelijker worden geschaald door sommige containers vaker op te starten. Bovendien worden Ontwikkel, Test en Acceptatie meer representatief voor Productie waardoor fouten makkelijker vindbaar zijn. Er zijn minder OS instanties nodig en dus minder hardware. En het maakt het verder automatiseren van het voortbrengingsproces mogelijk, dus van code commit naar livegang (CI/CD). Dit alles geeft de business een kortere time-to-market van applicaties en wijzigingen tegen lagere kosten.

Solvinity en containers

Het gebruik van containers is niet nieuw voor Solvinity, al ruim drie jaar hebben wij hier ervaring mee. Niet alleen draait ons Oracle database hotel op Solaris containers, ook leveren wij intern en voor een aantal van onze klanten diensten en projecten op basis van Docker. Maar wij kiezen er nu nadrukkelijk voor om veel meer klanten te helpen met container gebaseerde oplossingen. Hierbij bundelen we de verschillende onderdelen, zoals container building, testing, registry, orchestration, vulnerability management en consultancy.

De oplossing is breed inzetbaar, zowel on-premise als in de public cloud. Container platforms (PaaS dienst in plaats van housing of managed hosting) en Consultancy op DevOps, CI/CD en containers behoren ook tot de mogelijkheden, waarbij we deels bij elkaar op locatie nauw met klanten samenwerken in (stretched) DevOps teams.

Containers zijn de toekomst voor Solvinity. Of het nu gaat om een moderne Micro Services gebaseerde webapplicatie, een traditionele applicatie die “gedockerized” wordt of LCM op Windows omgevingen, containers zullen overal hun waarde bewijzen en zijn het nieuwe paradigma.

Background Icon

Lees ook

Meer

Sign up for the Solvinity Newsletter

Receive the latest news, blogs, articles and events, every quarter. Subscribe to our newsletter.
Background Icon