Cover Image for Wat houdt een website migratie in

Wat houdt een website migratie in

2020 January 216 min read
Joep van de Laarschot
Joep van de Laarschot

Migratie todo lijst

Wat is het

Laten we beginnen met wat een website verhuizing nou is. Een website staat op een server bij een hoster. Deze hoster is een bedrijf dat ervoor zorgt dat iedereen jouw website kan openen en bekijken. Als je een website gaat verhuizen, verplaats je je website naar een andere server. Dat kan ook bij een andere hoster zijn.

Het verhuizen van een website wordt ook wel een migratie genoemd. Nadat we in december 2019 al bij dezelfde hoster zijn verhuisd naar een nieuwe server, hebben we in januari 2020 de jodiBooks applicaties (jodiBooks Beauty) gemigreerd naar een andere hoster.

Onderzoek

Er komt een hoop kijken bij een migratie. Hoe groter de website, hoe meer je moet uitzoeken. Je moet immers meerdere delen verhuizen. We zijn begonnen met het zoeken naar een geschikte hoster. Na tests bij Azure en AWS hebben uiteindelijk gekozen voor AWS.

Dan denk je dat je de moeilijkste keuze gemaakt hebt, maar nu begint het uitzoeken eigenlijk pas echt. AWS heeft namelijk ontzettend veel verschillende diensten. Welke hebben wij nodig? En welke past het beste?

Server

Na wat zoekwerk bij AWS, veel Googlen en blogposts lezen, weten we dat we voolopig kiezen voor een virtuele Windows server om de jodiBooks applicaties te draaien. Die biedt AWS als Lightsail en EC2 instances, wij kiezen de 2e.

Het EC2 dashboard
EC2 dashboard

E-mail

We willen ook graag e-mail ontvangen en versturen, dus hebben we een e-mailserver nodig. Die kunnen we zelf draaien op de EC2 server, maar we kiezen ervoor om dat als service af te nemen. We vergelijken o.a. Google (Gmail/G Suite), Microsoft (Outlook/Office) en AWS (WorkMail). Omdat we toch al bij AWS zitten, nemen we ook de e-mailservice daar.

Database

Wij slaan vrijwel alle data van onze gebruikers op in een database (plaatjes en pdf's slaan we apart op). Daarvoor gebruiken wij Microsoft SQL server. Bij AWS kun je die laten hosten in een managed service: RDS. AWS regelt dan de updates en backups. Een geweldige service, maar ook prijzig. Dus wij gaan voorlopig de database zelf op onze EC2 server hosten.

Veiligheid

AWS servers zitten standaard achter een firewall. Maar hoe stel je die in? En waar moet je op letten? Ook willen we automatisch backups maken van de database. Dit heeft na het uitzoeken van de server de meeste tijd gekost. Tegelijkertijd hebben we hier ontzettend veel van geleerd.

Ook willen we onze website standaard over een encrypted verbinding hosten. Je kunt jodiBooks dus alleen via https bereiken.

Een andere leuke service van AWS is Cloudwatch. Hiermee kun alarmen instellen. Het duurde even om het onder de knie te krijgen, maar nu krijgen we meldingen als er rare dingen gebeuren op de server. We kunnen dan snel kijken of er iets niet pluis is.

some of our alarms
Een voorbeeld van onze alarmen

Testen

We weten nu wel dat we een AWS EC2 server willen gaan gebruiken, maar we weten nog niet welke. Om daar achter te komen hebben we gemeten. Ook testen we hoe alles werkt, of alles goed samenwerkt en wat we moeten aanpassen aan onze applicaties.

Voorbereiden

Nu we precies weten hoe onze serveromgeving eruit moet gaan zien, moeten we het gaan bouwen. Maar we kunnen niet zomaar de website gaan verplaatsen. Wat als mensen op dat moment gegevens aan het invoeren zijn?

We maken dus een migratieplan. We beginnen met heel gedetailleerd alle stappen opschrijven. Die zetten we vervolgens in een logische volgorde. We komen uiteindelijk tot 25 voorbereidingsstappen, 37 migratiestappen en 8 nazorgstappen.

ons migratieplan

Na alle voorbereidingsstappen doorlopen te hebben testen we nog een keer of alles werkt. Tot nu toe hebben we de "oude" website namelijk nog niet offline gehaald. Mocht er toch nog iets niet werken, hebben onze klanten er geen last van. Hier komen we erachter dan de database af en toe onverwacht traag is. Na wat kleine aanpassingen is het goed genoeg en kunnen we verder.

Op dit moment staat de nieuwe server configuratie klaar. Daarop staat de laatste versie van jodiBooks. Ook hebben we een nieuwe versie van de app klaarstaan.

Uitvoeren

We zetten de oude website in maintenance mode, zodat klanten er tijdelijk niet in kunnen. We kunnen nu een backup maken van de database. Die zetten we meteen terug op de nieuwe server. Doordat gebruikers even niet in jodiBooks kunnen, weten we zeker dat we alle data hebben.

Ook maken we een volledige backup van alle data en instellingen. Zo kunnen we altijd terug als er iets fout zou gaan.

We testen snel of de nieuwe data is geïmporteerd en dan zetten we het domein om. www.jodibook.com moet nu naar de nieuwe server wijzen. Zodra dat werkt kunnen we ook de e-mail gaan kopiëren en een SSL certificaat instellen (voor de https verbinding).

Om 19:00 zijn we begonnen met de laatste teststap van de voorbereidingsfase en ondertussen is het kwart over 12 's nachts. Toch wil Diana graag alles getest hebben. Gelukkig komen we niks geks meer tegen.

De dag erna hebben we nog een hoop puntjes op de i te zetten. Het importeren van de e-mail in WorkMail wilde niet werken en ook het verhuizen van het domein jodibooks.com lukte niet meer 's nachts. Daarnaast werkten een paar automatische taken nog niet. Dat alles wordt met een frisse blik uiteindelijk allemaal opgelost.

De AWS WorkMail webinterface

Klaar? Bah, we moeten nog opruimen

Nu alles werkt zoals we wilden, moeten we nog een hoop opruimen. We wachten nog een paar weken om zeker te weten dat we niks vergeten zijn, maar dan moeten we alle data verwijderen van onze oude server.

Ook zijn we nog iedere dag bezig met tweaken. Zo gaan we het Wordpress deel (blog en handleiding) verplaatsen naar een aparte server. Daarmee denken we dat we de incidentele traagheid van het dashboard kunnen oplossen.

Ook is Joep nog bezig met het optimaliseren van de alarmen. Nu krijgen we er iets te veel. Als er niks aan de hand is, wil je ook geen e-mail krijgen. Dan let je niet meer op als er wel iets aan de hand is.

Veel werk

Joep is 3 weken bezig geweest met voorbereiden. Diana heeft nog een dag of 3 meegeholpen en nu is Joep waarschijnlijk nog een week bezig met het opruimen. Al met al is een website verhuizing dus een hele hoop werk. Maar we zijn blij dat we het gedaan hebben. We zijn zoveel wijzer geworden en weten nu beter hoe we de jodiBooks architectuur kunnen verbeteren.