Succesvol Opensource: Een kijkje in de keuken bij bol.com
- January 8, 2015
- 0
Het draagvlak van open source software binnen de zakelijke ICT dienstverlening is in de afgelopen jaren flink toegenomen. Deze groei is voornamelijk te danken aan de hoge kwaliteit software en de toegewijde ontwikkelaars. In deze rubriek ga ik op bezoek bij ondernemingen waar open source software een belangrijke bijdrage levert aan de bedrijfsvoering. In deze editie ga ik langs bij bol.com in Utrecht.
Het is vandaag niet de eerste keer dat ik aan kom rijden bij het hoofdkantoor van bol.com in Utrecht. Een aantal weken geleden ben ik namelijk uitgenodigd om op bezoek te komen tijdens een belangrijk migratieweekend. Vandaag heb ik een afspraak met Guido Bakker (Lead System Engineer), Roland Kool (Expert System Engineer) en Niels van de Wall (Director IT Operations) en met hen bespreek ik deze belangrijke migratie en welke factoren hiertoe hebben geleid.
Het moment suprême
Het afgelopen anderhalf jaar heeft voor bol.com in het teken gestaan van een datacenter migratie en in het weekend van 4 op 5 april 2014 was het eindelijk zo ver. Zaterdag 5 april 2014 rond 08:00 uuris de knop omgezet. De figuurlijke ‘knop’ was in dit geval het aanpassen van DNS verwijzingen, zodat bezoekers van de webshop automatisch in het nieuwe datacenter terecht kwamen. Op de vraag of het weekend goed is verlopen en of ze nog verrassingen tegen zijn gekomen, vertelt Niels: “Er waren wat hobbels, maar niets dat we niet op zeer korte termijn konden oplossen”. Roland vult aan: “We hebben in dit weekend en de aanloop ernaartoe veel in detail getest, hierdoor kwamen de meeste zaken al van tevoren aan het licht”. Het weekend is ook volledig naar verwachting verlopen. Op de vraag of ze tevreden zijn, wordt ook zeer stellig ‘ja’ geknikt. “Het weekend is goed verlopen, we hebben minder bevindingen gehad dan verwacht,” aldus Guido.
Schroeven en sjouwen
Het verhuizen van infrastructuur van het ene datacenter naar het andere is al spannend genoeg, dit is echter niet het enige risico dat bol.com heeft genomen tijdens deze migratie. Naast het verhuizen van de infrastructuur hebben ze ervoor gekozen om meteen een nieuw applicatie platform op te tuigen dat volledig is gebaseerd op Open Source software. Je kunt je afvragen of het verstandig is om meerdere veranderingen door te voeren of dat het beter is om deze stappen van elkaar te scheiden en voor een AS-IS migratie (migreren in de huidige status) te gaan. Guido licht toe: “Voor het grootste gedeelte is het een AS-IS migratie geweest, voor alle operating systems en applicaties hebben we dezelfde versie en configuratie gehanteerd. Het enige wat is veranderd, is de tooling die wij gebruiken om ons platform te beheren en te configureren”. Roland vult aan: “Zodra je eenmaal live bent, dan is het een stuk moeilijker om grote wijzigingen door te voeren, we hadden nu de kans om vanuit een ‘green field’ perspectief kritisch naar ons landschap te kijken en onze wijzigingen goed te testen.” Guido: “We hebben niet voor niets zo’n goed team binnengehaald, zodat onze grootse plannen konden worden uitgevoerd!”
Infrastructure as Data
Het nieuwe applicatieplatform van bol.com maakt het mogelijk om met een paar simpele handelingen nieuwe servers aan te maken en volledig in te richten. De tool Puppet speelt in deze architectuur een belangrijke rol, hij zorgt ervoor dat de volledige configuratie op de juiste manier wordt geplaatst. Daarnaast zorgt hij ervoor dat de overige systemen (zoals loadbalancers) op de hoogte zijn van het feit dat er een server bij is gezet. “Puppet is een belangrijke applicatie in onze architectuur, maar zeker niet de enige,” vertelt Guido. “Via Puppet sturen wij andere modules aan die zaken voor ons uitvoeren, zoals bijvoorbeeld een koppeling met Artifactory en Rundeck voor het deployen van applicaties. Maar ook wordt Puppet gevoed door een hoop externe modules, waaronder MCollective en Racktables (die is uitgebreid met een API). We hebben onze architectuur zo opgezet, dat we al die tools los van elkaar kunnen vervangen door andere technologie”. Niels geeft het belang aan van deze data stromen: “De tools die wij gebruiken, worden vaak in de context van ‘Infrastructure as Code’ gebruikt, wij hebben daarnaast in onze opzet toegewerkt naar ‘Infrastructure as Data’.”
Financiële schaalbaarheid
Het nieuwe platform is erg uitgebreid, te veel om in één artikel volledig te beschrijven. Wat wel opvalt, is dat alle tools en technieken die worden gebruikt Open Source zijn. Ik ben gewend om bij vooruitstrevende bedrijven veel Open Source technieken tegen te komen, maar ik ben het nog niet eerder tegenkomen dat de volledige architectuur Open Source is. Op mijn vraag wat de afwegingen zijn om te kiezen voor Open Source software ten opzichte van commerciële (closed source) software, gaat een vragende blik over tafel. De Open Source gedachtegang is hier volledig omarmd en ingeburgerd. Roland vertelt: “Het is niet dat we niet willen betalen voor software, de afweging is kwaliteit. Open Source software biedt ons meer transparantie, meer mogelijkheden en meer kwaliteit”. Niels benadrukt het zakelijke belang bij deze keuze: “Een belangrijke drijfveer achter de migratie is om in de toekomst schaalbaar te blijven op zowel technisch als financieel vlak. Op het moment dat we meer capaciteit nodig hebben, dan moeten we dat met één druk op de knop kunnen doen, zonder dat hier onevenredig veel financiële consequenties aan vastzitten. We willen niet meer belemmerd worden door licentie beperkingen.” Niels vult ook aan dat de samenwerking tussen de verschillende afdelingen ook een belangrijk speerpunt was in dit proces: “Een betere samenwerking tussen onze IT afdelingen is belangrijk. De tools die we geïmplementeerd hebben, ondersteunen deze gedachtegang. Ons centrale logging platform is daar een goed voorbeeld van. Een combinatie van Logstash, Elasticsearch en Kibana”.
Adempauze?
Er is dus anderhalf jaar lang keihard gewerkt om deze migratie mogelijk te maken. De migratie is nu achter de rug. Betekent dit dat de rust weer is teruggekeerd? “Niets is minder waar”, vertelt Guido. In de afgelopen paar maanden is er een ‘code-freeze’ geweest. Dit betekent dat een tijd geen nieuwe technische ontwikkelingen zijn geweest op het platform. Dit hebben ze gedaan om ervoor te zorgen dat de architectuur gedurende de opbouw van het nieuwe platform niet constant aan het veranderen was. Dit heeft ertoe geleid dat er, nu de ‘code-freeze’ achter de rug is, ontzettend veel ontwikkelingen in beweging worden gezet. “We zien wel een duidelijke verschuiving in onze werkzaamheden. Een hoop applicatie inhoudelijke informatie kunnen developers nu rechtstreeks opvragen uit ons logging platform, hierdoor besteden wij minder tijd aan troubleshooten en hebben we meer tijd voor innovatie,” vertelt Guido. Er zijn bijvoorbeeld ontwikkelingen op het gebied van MongoDB, Hadoop, maar er is ook ontwikkeling op het gebied van ‘Continuous Delivery’. Guido legt uit: “Wij gebruiken ‘Continuous Integration’ al een geruime tijd, wij zijn momenteel druk bezig om te onderzoeken in hoeverre we dit kunnen doorzetten naar ‘Continuous Delivery’, zodat we code geautomatiseerd op onze productie omgeving terecht kunnen laten komen”.
Te veel werk, te weinig handen.
De innovatie bij bol.com staat niet stil en dat is mooi om te zien. Ook het bijdragen aan de Open Source community is inmiddels in werking gezet, aldus Niels. “We zijn momenteel druk met het aanpassen van ons beleid en de contracten, zodat we op korte termijn ook onze eigen projecten kunnen Open Sourcen”. Bol.com heeft als doel om op het gebied van IT innovatie in de top van Nederland te blijven: “In de afgelopen jaren hebben we een hoop goede engineers binnen gehaald om samen met ons dit doel te bereiken. Om verder door te groeien hebben we nog meer ambitieuze en talentvolle techneuten nodig uit verschillende disciplines. Dus mocht je dit lezen, we zien graag je CV tegemoet! ”. Nadat ik Niels, Guido en Roland de hand heb geschud en mijzelf richting de voordeur beweeg, vraag ik me af waarom hier geen rij van sollicitanten door de deur staat. Welke techneut wil dit nou niet?