We gebruiken bij DIJ Docker om snel applicaties te kunnen ontwikkelen en uit te rollen. Door middel van Docker heeft iedere developer bij ons een identieke omgeving, waardoor we conflicten kunnen voorkomen zoals verschillende versies of pakketten. Daarnaast is het met Docker veel eenvoudiger om de gehele applicatie lokaal te installeren. Dit omdat de infrastructuur van een applicatie wordt bepaald in een configuratiebestand wat door Docker wordt uitgelezen. Dit bestand wordt meegeleverd bij de ontwikkelde applicatie, zodat een developer zich niet hoeft te verdiepen in hoe de applicatie omgeving opgezet dient te worden.

Flexibiliteit en innovatiesnelheid

Door middel van Docker containers kan je software consistent in meerdere omgevingen draaien. Op je laptop, in cloud omgevingen en rechtstreeks op hardware. Containers kan je makkelijk overzetten tussen development, acceptatie en productieomgevingen. Het grootste voordeel hiervan is dat het sneller en makkelijker is om je applicaties te ontwikkelen, testen en uitrollen.

Containers

Docker maakt gebruik van images en containers. Een image kan van alles bevatten maar het is gebruikelijk om één specifiek onderdeel te isoleren. Een image kan bijvoorbeeld een Linux distributie zoals Ubuntu bevatten. Een andere image kan een webserver zijn, weer een andere voorziet je van een database. Je kunt een container opbouwen bestaande uit meerdere images. Dit definieer je in een configuratiebestand wat Docker uitleest.

Een aantal voordelen van deze containers

  1. Applicaties zijn niet langer afhankelijk van een specifiek ingerichte omgeving, maar kunnen door gebruik van meerdere containers platform onafhankelijk worden ontwikkeld en uitgerold.
  2. Eén van de uitgangspunten van Docker is een optimale afstemming van het ontwikkelproces op toepassing van ‘Cloud Computing’. Door de populariteit heeft Docker hieraan zelfs een nieuwe impuls gegeven.
  3. Het feit dat meerdere technieken in één (virtuele) ontwikkelomgeving zijn ondergebracht, stelt de ontwikkelaar in staat om de meest geschikte bibliotheken te gebruiken. Weinig of geen concessies doen betekent efficiëntere software.
  4. Doordat Docker mede is gericht op de Agile (slagvaardigheid door flexibiliteit) benadering van het ontwikkelproces, zullen de resultaten hiervan sneller worden bereikt en zichtbaar worden.
  5. Aangezien ontwikkelprocessen tegenwoordig standaard Agile worden ingericht, zal Docker de adoptie van concepten als DevOps en Continuous Delivery verbeteren.
  6. Docker heeft een zeer kleine ‘voetafdruk’, ofwel systeembelasting. De voordelen spreken voor zich.
  7. En ‘last but not least’; Door de onafhankelijkheid van de omgeving en verbetering van de geschiktheid binnen de cloud, zijn de applicaties uitermate geschikt voor het werken op basis van services. Gezien de trend van toepassing van microservices, is Docker niet alleen efficiënt toepasbaar, maar ook toekomstbestendig.

MAMP of Docker

Bij DIJ gebruikten we eerst altijd MAMP, het nadeel echter van MAMP is dat de ontwikkelomgevingen vaak van elkaar verschillen onder de developers. Dit zorgt er uiteindelijk weer voor dat er verschillende problemen kunnen ontstaan door bijvoorbeeld verkeerde PHP versies. Dit kan resulteren in situaties waarbij een bepaalde feature prima werkt op de omgeving van een developer, maar niet (goed) werkt op een acceptatie omgeving. Daarnaast merken we dat de omgevingen in MAMP een stuk trager zijn dan in Docker.

Een voorbeeld hiervan is een applicatie die we van MAMP hebben overgezet naar Docker, waardoor de laadtijd van één pagina van 17 seconden naar 5 seconden ging. Dit is wel een extreem voorbeeld maar het laat zeker zien wat het voordeel is van Docker.


Wil je zien hoe wij een tijdje terug van start zijn gegaan met Docker? Check dan de video van onze workshop door Matthias Noback.

Geschreven door: Joost Hazelhoff

Meer kennis bijspijkeren? Kom dan naar onze Meetup: Ode aan de Code!

Bekijk onze Meetups

Wij zijn altijd op zoek naar getalenteerde vakgenoten!

Bekijk onze vacatures