De Utrechter Eelco Dolstra is onlangs gepromoveerd tot doctor in de informatica met zijn proefschrift over software deployment. In ‘The Purely Functional Software Deployment Model’ beschrijft hij een nieuwe manier om software uit te rollen volgens de ‘Nix’-methodiek.
Het gebeurt maar al te vaak dat het installeren of upgraden van software leidt tot het falen van eerder geïnstalleerde toepassingen”, vertelt Dolstra. “Bovendien is het meestal niet terug te draaien. Dat komt doordat er niet echt een goede methodiek bestaat voor package management.” Met het Nix-deploymentsysteem worden alle componenten in isolatie van elkaar opgeslagen. Op deze manier is het mogelijk om meerdere softwareversies naast elkaar te gebruiken, wat ideaal is in testomgevingen en tevens compatibiliteitsproblemen tussen applicaties onderling voorkomt.
Volgens Gert Arnold, software engineer bij Agri Information Partners, is de Nix-methode levensvatbaar: “Nix voorziet zeker in een behoefte. Bij het uitrollen van producten, waarbij de gebruiker dus zelf zonder hulp van de leverancier een geslaagde installatie moet kunnen uitvoeren, kunnen allerlei problemen optreden. Dit is met gangbare installatiemethoden onmogelijk geheel dicht te timmeren. Deployment volgens de Nix-methodiek verzekert in ieder geval dat alle softwarecomponenten die onder het beheer van Nix vallen een sluitende configuratie vormen.” Volgens Arnold is hiermee driekwart van alle installatieproblemen op te lossen, maar hij plaatst wel wat kanttekeningen: “De installatieprocedure kan zeer langdurig worden, doordat vele componenten moeten worden gecheckt op afhankelijkheden en mogelijk opnieuw moeten worden geïnstalleerd. Voorts kan Nix een grotere aanslag doen op schijfruimte, maar ik denk dat die prijs graag wordt betaald ten behoeve van een grotere bedrijfszekerheid.”
Dolstra reageert door te zeggen dat het controleren op de aanwezigheid van afhankelijkheden heel snel gaat. “Alleen wanneer ontbrekende afhankelijkheden nog geïnstalleerd moeten worden kan het lang gaan duren.” Dat het Nix-systeem meer schrijfruimte kost erkent hij eveneens. ”Je offert een stukje diskruimte op voor meer gebruiksgemak.”
In zijn proefschrift noemt Dolstra geregeld de beruchte ‘DLL hell’. Volgens Raul Pesch, Platform Strategy Manager bij Microsoft, valt dat tegenwoordig wel mee. “De beschreven problemen zijn sinds 2000 opgelost met de introductie van het .NET framework. Dit is een nieuwe infrastructuur voor moderne toepassingen en functioneert als een abstractielaag bovenop Windows.”
Dolstra erkent dat .NET een grote verbetering is, maar voegt er direct aan toe dat Nix veel verder gaat. “.NET richt zich puur op .NET-componenten, terwijl Nix met alles overweg kan. Als je features wilt als atomaire upgrades, rollbacks en meerdere versies naast elkaar, moet je dat als programmeur zelf regelen. Bij Nix kan dat automatisch.”
Zie ook het artikel 'Einde van de DLL-hel'