DNS Belgium neemt afscheid van AWS. In deze serie volgen we de Belgische registry in hun migratietraject naar een Europese cloudprovider. Van het strategische besluit tot de technische implementatie: wat komt er kijken bij zo’n exit? Het eerste artikel ging over de keuze om te vertrekken. Dit tweede artikel gaat over de migratie van de registratiedatabase.
Op 7 mei migreerde DNS Belgium haar registratiedatabase van Oracle naar PostgreSQL, een open source alternatief dat beter past bij de ambitie om minder afhankelijk te zijn van Amerikaanse technologie en meer grip te krijgen op kosten, beleid en digitale soevereiniteit.
Oracle was daarin de voor de hand liggende eerste stap. DNS Belgium draait zijn registratieplatform al meer dan vijftien jaar op Oracle, de database die bijhoudt welke .be-, .vlaanderen- en .brussels-domeinnamen door wie zijn vastgelegd. Binnen het AWS-ecosysteem werkt Oracle soepel en betaalbaar. Buiten dat ecosysteem, op eigen infrastructuur of bij een Europese leverancier, verandert dat beeld: minder flexibele licenties en een aanzienlijk hogere rekening. “De prijs die we zouden betalen voor Oracle buiten AWS was vele malen hoger dan wat we gewend waren”, zegt Johan Heylen, platform engineer bij DNS Belgium en een van de begeleiders van het migratieproject. “Voor een organisatie als DNS Belgium is dat geen verstandige besteding van middelen, zeker niet als er een volwaardig alternatief bestaat.”
Separate migraties
En dat alternatief is PostgreSQL. De database vindt zijn oorsprong weliswaar in de Verenigde Staten, maar functioneert vandaag als open source project zonder commerciële eigenaar die het licentiebeleid bepaalt. Voor DNS Belgium is dat relevant: de broncode is vrij beschikbaar, het gebruik is niet afhankelijk van één leverancier en de database valt daardoor ook niet in dezelfde commerciële en juridische afhankelijkheid als Oracle of een hyperscaler-dienst. Juist ook daarom past PostgreSQL beter bij de soevereiniteitsredenering achter de exit uit AWS.
De keuze voor die open source database was snel gemaakt, maar de timing vergde meer denkwerk. DNS Belgium wilde vermijden dat twee zware migraties – een nieuwe database en verhuizen naar een nieuwe omgeving – tegelijk zouden plaatsvinden. “Je wilt twee ingrijpende migraties niet tegelijk uitvoeren”, zegt Heylen. “Als je de database omzet op hetzelfde moment dat je van omgeving wisselt en er dan problemen ontstaan, is het herleiden van de oorzaak een stuk lastiger.” Daarom koos de organisatie ervoor om eerst de registratiedatabase te migreren. “Als we straks aan de volgende migratie toe zijn, draait de database al op PostgreSQL en hoeven we dat niet meer mee te nemen”, zegt Heylen. “Dat is één risico minder op het moment dat het er echt toe doet.”
Testen en opschonen
De voorbereiding voor de databasemigratie begon in januari. Een kernteam van zeven mensen werkte wekelijks samen aan het project. Daarnaast waren meerdere andere teams betrokken, van data-analisten tot de engineers die de .be-zonefile genereren en distribueren. “Iedereen die impact ondervond van de migratie, namen we vanaf het begin proactief mee in het proces”, zegt Heylen.
De eerste stap was het bouwen van een parallelle omgeving naast het bestaande systeem. “We hebben PostgreSQL naast Oracle opgezet met exact dezelfde resources”, zegt Heylen. “Alleen zo kun je een eerlijke vergelijking maken.” Die vergelijking leverde al snel een eerste uitdaging op: bepaalde zoekopdrachten, onder meer in de historiek en de contactgegevens, verliepen in PostgreSQL merkbaar trager dan in Oracle, tot time-outs aan toe. Na analyse bleek de oorzaak niet in de software te liggen maar in de hardwareconfiguratie. PostgreSQL gaat anders om met gebruik van geheugen en CPU dan Oracle. “Meer geheugen geven aan het systeem deed het hem”, zegt Heylen. “De benchmarktests voor en na de optimalisatie lieten dat zwart op wit zien.”
Maar testen heeft ook zijn grenzen. Het registratieplatform bedient zo’n 350 registrars, waarvan een honderdtal met continue, geautomatiseerde verbindingen voortdurend transacties uitvoert. “Je kunt in een testomgeving nooit exact de load nabootsen die 350 registrars op het productiesysteem genereren”, zegt Heylen. “Dat blijft een onzekerheid die je nooit volledig kunt elimineren.”
Het grondig doorlopen van het platform leverde een bijvangst op. Een systeem van meer dan vijftien jaar oud draagt sporen van het verleden mee. Faxgegevens uit de beginjaren van DNS Belgium. Code voor een overdrachtsproces dat al vijftien jaar niet meer bestaat. “Elke regel code die je niet meer gebruikt is er een te veel”, zegt Heylen. “Je moet haar onderhouden, meemigreren en controleren, terwijl ze niets bijdraagt. Dit was het moment om dat recht te zetten en de ongebruikte gegevens verwijderen maakt de database ook weer kleiner.”
Finish van een marathon
Weken voor de migratiedatum was het team al begonnen de data te repliceren van het Oracle-systeem naar PostgreSQL. “De migratiedag was eigenlijk de finish van een marathon”, zegt Heylen. “Al het zware werk lag achter ons. Op 7 mei sloten we alleen af.” Op donderdag 7 mei, om half tien ‘s ochtends, was het moment van afsluiten aangebroken. Niet op een zaterdagnacht, maar gewoon op kantoor, met koffie en wat lekkers. “Productiewijzigingen horen niet thuis op zaterdagnacht”, zegt Heylen. “Al jaren doen we kleine releases gewoon doorlopend, op een werkdag. Dat is overzichtelijker en veiliger voor iedereen.”
Het spannendste moment was het platform weer openzetten voor verkeer van buitenaf. “Dat is het moment dat je moet loslaten”, zegt Heylen. “Transacties die binnenkomen in het nieuwe systeem kun je niet meer terugdraaien.” Je moet erdoor. De monitoring was intens: hoeveel transacties kwamen er tegelijkertijd binnen, hoe reageerde het systeem op de echte load? Het antwoord stelde gerust. “We hadden er een uur voor uitgetrokken, maar waren er in drie kwartier doorheen”, zegt Heylen. “Dat is een mooi resultaat voor een operatie van deze omvang.” Registrars hoefden niets aan hun systemen aan te passen en domeinnaamhouders merkten niets van de overstap, behalve mogelijk een korte vertraging bij nieuwe registraties of transfers tijdens het onderhoudsvenster.
Voor DNS Belgium was 7 mei meer dan een technische mijlpaal. “Het gaat erom dat je de aanpak zo inricht dat je het kunt herhalen”, zegt Heylen. “Voorspelbaar, testbaar, met zo min mogelijk impact voor wie ervan afhankelijk is.” De database draait op PostgreSQL. Later dit jaar volgt de rest.
Dit is het tweede artikel in de serie “Exit AWS: De DNS Belgium migratie”. In het eerste artikel vertelde DNS Belgium over het besluit om AWS te verlaten en de achtergronden daarvoor. De volgende afleveringen volgen de organisatie bij de vendorselectie, de technische migratie en de uiteindelijke implementatie.