Waarom we zijn overgestapt naar Containers 📦
Containers zijn overal. Veelal in de vorm van Docker, zo ook bij ons. Recent zijn alle omgevingen van onze klanten overgegaan van een "normale" naar een Docker server.
Recent zijn wij overgestapt van "normale" servers naar Docker servers. Een flinke klus waarbij meer dan 60 projecten zijn overgezet.
Samen met onze hostingpartner Exonet, waarmee veel gecommuniceerd en gespard is, is deze klus volbracht.
De beweegredenen voor deze immense klus leggen we graag in deze blogpost uit.
Reproduceerbaarheid van omgevingen
Onze developers gebruiken verschillende soorten laptops. De een gebruikt een Mac en de ander gebruikt een Linux laptop. Hiernaast hebben de laptops verschillende architecturen en versies. Het komt eigenlijk nooit voor dat een developer laptop dezelfde specificaties als een server heeft.
Het gebruik van containers lost dit probleem op. Doordat alles in zijn eigen container draait, waarbij een container als een soort doosje kan worden gezien, worden requirements, pakketten en services niet direct op de laptop van de developer (of op de server) geïnstalleerd. In plaats daarvan gebeurt dit in de container, wat als groot voordeel heeft dat de container op de laptop van de developer identiek is aan die op de server.
Door deze opzet worden rare fouten door verschil in versies, architectuur en andere fouten die ontstaan door verschillen in setup voorkomen. Dit helpt erg bij het ontwikkelen van de software en het voorkomen van ongewenst gedrag.
Verschillende versies draaien
Voorheen was er het probleem dat sommige pakketten niet bijgewerkt konden worden, doordat deze afhankelijk waren van een ander pakket dat niet geüpgraded kon worden, doordat weer een ander pakket hier van afhankelijk was. Dit zorgde ervoor dat een pakket bijwerken een behoorlijk tijdrovende klus was. Door het gebruik van containers worden alle pakketten geïnstalleerd in de container.
Hierdoor is er volledige controle over welke applicatie welke versie van een pakket gebruikt, ze hebben geen invloed meer op elkaar.
Vrijheid in service keuze
Containers maken het toevoegen en gebruiken van extra services erg gemakkelijk. Wil je Elastic Search gebruiken? Spin een container op en het is mogelijk. Misschien een andere task queue? Spin deze op en je kunt aan de slag. Waar dit voorheen een lastigere klus was doordat dit via onze hostingpartner moest worden geregeld en dit mogelijk ook invloed had op de bestaande projecten, is dit met containers een fluitje van een cent. Hierdoor zijn wij nog flexibeler en kunnen wij onze klanten nog beter bedienen.
Projecten zijn flexibeler
Op de "oude" setup was elke server voor een applicatie nauwkeurig ingericht. De juiste services, met versies, inrichten, pakketten installeren en andere zaken die naar een andere provider gaan lastiger maakten dan nu. Door het gebruik van containers is het makkelijk geworden om een applicatie ergens anders te hosten. Dit uit zich ook in het aantal bestanden dat nu nodig is op de server om een applicatie te hosten. Voor de gemiddelde applicatie namelijk is slechts het enige wat je nodig hebt is de image en de benodigde environmentvariabelen. Het draaiende krijgen van een project is zeer versimpelt, wat onze efficiëntie heeft verhoogt.
Veiligheid
De applicaties draaien nu in containers. Hierdoor zit er een extra "schil" om het project heen, wat zorgt voor een extra laag beveiliging. Het feit dat iedere applicatie een eigen container heeft, brengt nog een ander voordeel met betrekking tot veiligheid met zich mee; de applicaties draaien geïsoleerd. Ze zijn zelf verantwoordelijk voor de geïnstalleerde pakketten en deze hebben daardoor weinig tot geen invloed op zaken buiten de container.
Terugblik
Het was een flinke klus om alle projecten over te zetten naar de nieuwe servers. Door snel te schakelen en de duidelijke, vlotte communicatie en samenwerking met onze hostingpartner Exonet, is er een mooi resultaat neergezet.
Door de nieuwe, moderne servers en het gebruik van containers is onze efficiëntie verhoogd en zijn we als bedrijf en onze klanten weer klaar voor de toekomst.
Bedankt Exonet voor de fijne samenwerking, meedenken en inzet!