17 December 2020

Docker: maakt packaging van een applicatie makkelijker

Een tijdje geleden introduceerde onze developer Fabian ‘Docker’ aan Zooma. Onlangs hebben we ons eerste project gedraaid met behulp van dit open-source project. Fabian gaf afgelopen week een online Zooma Labs over Docker en vertelt je in dit blog alles over wat Docker is en wat de voor- en nadelen ervan zijn.

IMG 7870 

Docker: maakt het packagen en shippen van applicaties makkelijker
Docker is een open-source project met als doel de packaging en shipping van een applicatie te versnellen en makkelijker te maken. Het is een techniek die gebruik maakt van een andere techniek: virtualisatie. De kern van Docker is dat Docker werkt met containers. In Docker worden applicaties geïsoleerd van elkaar in containers geplaatst. Een container is een klein besturingssysteem in een doosje: het bevat een eigen applicatie, tools, configuratiebestanden en bibliotheken. 

Voor- en nadelen van Docker
Het gebruiken van Docker brengt veel voordelen met zich mee, maar het grootste voordeel is dat Docker er voor zorgt dat een ontwikkelaar zich geen zorgen meer hoeft te maken over of alles goed geconfigureerd is en of de meest recente versies draaien. Docker maakt namelijk een kleine virtuele server aan waarin alle bouwstenen en componenten zich bevinden. Die bouwstenen en componenten kunnen we configureren zodat ze precies dezelfde versies hebben dan die op de uiteindelijke productie server. Op deze manier zorg je ervoor dat elke ontwikkelaar met dezelfde tools, versies en besturingssystemen werkt als de rest van het team. Het resultaat hiervan is dat als een ontwikkelaar wil gaan werken aan een al bestaand project, dat deze ontwikkelaar maar 1 regel in de command line hoeft te typen en alles werkt direct (Famous last words ;)).

Het is snel! Als je dit tot zover hebt gelezen zal je nu wel denken aan virtual machine’s, en ja daar lijkt het op, maar een container is zeker anders. Een virtual machine draait het gehele besturingssysteem en maakt virtuele hardware aan om mee te communiceren. Een container praat direct met een host-besturingssysteem en deelt dus de echte hardware waardoor het razendsnel is.
Docker heeft ook een nadeel: het is weer een tool die je moet leren. Ook al voorkomt het vaak veel hoofdpijn kan het juist ook soms hoofdpijn opleveren als je er net mee begint.

Docker en Blink
Het project waar we Docker voor gebruikten was Blink Hypotheken. Voor Blink is er gekozen voor een Docker compose. Dit is een manier om meerdere containers, in dit geval de containers van de database, Apache en PHP, tegelijk met elkaar te laten samenwerken. Bij Blink gebruikten we echter niet alleen Docker, maar ook ‘Kubernetes’ op een Azure acceptatie server. Kubernetes is een organisator. Deze vertelt welke delen wanneer moeten werken. Het is een open-source systeem dat dirigeert welke programma’s met welke programma’s moeten werken binnen een project. We hebben hiervoor gekozen omdat Kubernetes in 1 druk op de knop de volgende versie kan klaarzetten, zonder dat je er als developer naar om hoeft te kijken. De link tussen Docker en Kubernetes is dat ze beiden gebruik maken van dezelfde containers. Je kan ze voor elk project inschakelen. Super handig!

Docker werkt voor mij erg fijn. Het bespaart me als ontwikkelaar een hoop tijd en ik kan zonder teveel moeite in een al bestaand project duiken. Het versnelt en vergemakkelijkt het ontwikkelproces. Ik raad iedereen aan om Docker een kans te geven. You won’t regret it!

 

Geschreven door
Fabian

Draai je telefoon een kwartslag, dan ziet onze site er een stuk beter uit!