l f Favorieten
0

Expertise

Bij Topicus werken mensen met uiteenlopende expertises samen aan één doel: impact maken met technologie. Van development tot testen, van analyse tot HR, marketing en sales. Ieder vakgebied speelt een cruciale rol in het succes van onze oplossingen.

Daarom Topicus

Bij Topicus gebruiken we technologie om het onmogelijke mogelijk te maken. Wij bouwen digitale ecosystemen die mensen, data en systemen naadloos met elkaar verbinden. Geen losse eilandjes, maar slimme platformen die samenwerken en overzicht creëren.  

/Codekraker 29 – Rick Versluis

2 minuten leestijd

Rick ontdekte dat HTTP-servers onnodig veel opslag kostten door grote, gekopieerde configuraties. Met zijn slimme standaard verkleinde hij containers van 200 MB naar slechts 100 kB, wat zorgt voor meer efficiëntie en eenvoud in de infrastructuur. Rick vertelt hier alles over in zijn Codekraker!

Als DevOps engineer binnen de divisie Onderwijs zie ik vaak dat statische HTTP-servers per project hun eigen configuratie en container gebruiken. Dat leidde tot gekopieerde configuratiebestanden en grote containers van soms wel 200 MB, terwijl het doel simpel is: alleen statische bestanden serveren. 

Het probleem 

Op twaalf verschillende plekken in onze infrastructuur draaiden containers met eigen nginx configuraties, vaak gekopieerd en aangepast. Dit maakte beheer lastig en zorgde voor opslagverspilling. Ontwikkelaars wisten niet altijd wat er precies in de configuratie stond, vanwege een gebrek aan documentatie. Hierdoor bestaat er een risico op fouten en incompatibiliteit. 

Van 200 MB naar 100 kB 

Ik ontwikkelde een standaard voor deze HTTP-servers met als leidende implementatie een minimale container van slechts 100 kB, zonder onnodige features. De container draait niet als root op poort 80, maar als een gebruiker zonder rechten op een hogere poort, wat mogelijke security issues vermijdt. De configuratie wordt centraal beheerd via Helm charts, die ook versiebeheer mogelijk maken. 

Deze standaard is met minimale configuratie flexibel genoeg om in verschillende projecten te gebruiken. Het resultaat: containers die exclusief projectgrootte van 12-200 MB naar 100 kB zijn geslonken, en bepaalde onderdelen van applicaties zelfs van 8 naar 0,11 MB. De standaardisering bespaart opslag, vermindert onderhoud en risico’s en maakt het leven van ontwikkelaars makkelijker.  

Omdat de specificatie en implementatie volledig onafhankelijk zijn, is het voor ons mogelijk om de implementatie van de plekken waar de standaard gebruikt wordt waar nodig om te wisselen, zonder dat de projecten zich hier mee bezig hoeven te houden. Alle implementaties worden dan ook automatisch op alle functionele vereisten in de specificatie getest. 

Gouden tips 

Achterhaal wat op veel plekken ongeveer hetzelfde is, en standaardiseer het. Houd de standaard minimaal en voeg alleen toe wat echt nodig is. Koppel er goede documentatie aan, en geef anderen de ruimte om feedback te geven. Goede documentatie maakt adoptie en onderhoud makkelijker. Je hoeft niet alles in één keer goed te doen, als het maar bruikbaar en duidelijk is. En verder:  

  • Maak configuratie flexibel zodat per project instellingen aan- of uitgezet kunnen worden. 
  • Maak een leidende specificatie met duidelijk versiebeheer. Dit geeft je de ruimte om dingen onder de motorkap aan te passen zonder dat andere projecten hier rekening mee houden te houden bij updates. 
  • Let op poort- en rechtenbeheer: draaien op poort 80 vraagt root, wat je wilt vermijden. Kubernetes services kunnen de poortnummers corrigeren voor de buitenwereld. 


 

/verhalenOok interessant

/Topicus lanceert Breinbuddy’s: ondersteuning voor neurodivergente collega’s

/contactNog niks gevonden maar wel nieuwsgierig geworden?

Stuur dan een open sollicitatie of meld je aan voor onze nieuwsbrief en blijf op de hoogte.