Met miljoenen open source projecten op websites als GitHub en BitBucket is open source de belangrijkste pilaar onder het internet van vandaag. Om te illustreren wat de rol is van open source bekijken we in dit artikel wat er allemaal op de achtergrond gebeurd wanneer je verbinding maakt naar een website.
Wat is open source eigenlijk? Open source houdt in dat de code van een software project open en vaak publiek beschikbaar is. Het beschikbaar maken van code zorgt voor transparantie (iedereen kan de code nalezen en controleren) en zorgt vaak voor een hogere betrokkenheid bij de projecten (iedereen kan code toevoegen en verbeteren). Dit betekent niet altijd dat je een project vrij kunt gebruiken in commerciële projecten. Wat wel en niet is toegestaan wordt aangegeven in een open source licentie. Zo zijn er miljoenen projecten uiteenlopend van besturingssystemen als Linux (bijvoorbeeld CentOS, Ubuntu, Debian) tot aan kleine specifieke programma’s zoals het maken van muziek.
75% procent van de bezoekers van www.sensson.net heeft dit gedaan vanuit een open source browser als Google Chrome of Firefox. Je browser zorgt ervoor dat website code, HTML, wordt omgezet naar kleur, tekst en afbeeldingen. Het doet dit met behulp van een rendering engine. Bekende engines zijn bijvoorbeeld WebKit (Apple) en Blink (Chromium). Deze rendering engines zijn allebei open source en worden niet alleen door de bedrijven achter deze software verder ontwikkelt maar ook door de open source community.
In de code van een website zit de vormgeving en functionaliteit verstopt die je kunt gebruiken op een website. Bekende technieken voor het ontwikkelen van deze functionaliteit zijn jQuery (een javascript framework) en Bootstrap (een frontend framework). Beide zijn vrij te gebruiken voor web ontwikkelaars en bedrijven als Google en andere providers verzorgen vaak gratis de hosting van de benodigde bestanden. Google biedt bijvoorbeeld ook gratis lettertypen aan die je kunt gebruiken op je website.
Voordat de HTML door de browser wordt omgezet haalt deze de informatie op van de server. Op servers wordt vaak gebruik gemaakt van een webserver zoals Apache of Nginx. De webserver bepaalt wat je als gebruiker krijgt te zien als je een website bezoekt. Dit kan een simpele website zijn of een uitgebreid software pakket zoals webwinkels gebruiken. Apache en Nginx zijn beide open source projecten die iedereen kan gebruiken om een eigen webserver te starten.
Een webserver bepaalt waar de informatie over een website vandaan komt. Wanneer je een website maakt in HTML zal de webserver direct HTML naar de browser toesturen. Deze wordt verwerkt door de ondertussen bekende rendering engine en je krijgt de website te zien. Maar als je website is gemaakt in WordPress komt er meer bij kijken. WordPress is net als de programmeertaal PHP waarin het is gemaakt open source.
PHP is net als Python en .NET een populaire programmeertaal en wordt veel gebruikt voor online applicaties. PHP zorgt er voor dat je website dynamisch wordt. Je kunt bijvoorbeeld beslissen of een gebruiker wel of geen pagina mag bekijken. WordPress zorgt er zo voor dat je gemakkelijk een website kunt maken en aanpassen. Wanneer je een website bezoekt die gemaakt is in WordPress zal de browser aan de webserver vragen de juiste gegevens toe te sturen. De webserver vraagt de applicatie (WordPress) om deze informatie en zorgt dat de uitkomst van de code omgezet wordt naar HTML zodat de browser deze weer kan geven.
Als je website gebruik maakt van WordPress dan gebruik je ook een database. WordPress slaat bijna alle informatie op in een database. Bekende open source databases zijn MySQL en de daarna ontwikkelde afsplitsingen zoals MariaDB en Percona. Wanneer de webserver aan de WordPress applicatie om meer informatie vraagt maakt PHP een verbinding naar de database. WordPress haalt de informatie op en verwerkt deze tot een pagina – en zo komen we uiteindelijk weer terug bij de browser die de website laat zien.
Al deze software draait op een besturingssysteem. Veel servers maken hiervoor gebruik van open source projecten als Ubuntu, Debian of CentOS. Maar een server kan ook in een afgeschermde (virtuele) omgeving draaien. Hiermee verdeel je grote fysieke servers in kleinere virtuele servers. De twee bekendste open source technieken hiervoor zijn KVM en Xen. Deze technieken zorgen er voor dat twee of meer virtuele servers op dezelfde fysieke server volledig van elkaar gescheiden zijn.
Uiteindelijk kan zelfs hardware open source zijn. De Open Data Center Alliance deelt informatie over het gebruik van open source projecten op allerlei vlakken rondom cloud computing.
Sensson maakt veel gebruik van open source. Zo draaien onze webhosting servers op Apache en PHP en maakt ons DNS cluster gebruik van PowerDNS. Onze GitHub pagina is onze manier om dankjewel te zeggen voor al het harde werk wereldwijd. Wanneer wij kunnen delen wij daarom onze software projecten met de open source community via GitHub.