Uit nieuwsgierigheid vraag ik mij af hoe jullie het volgende zouden aanpakken:
Je hebt een website een populaire website, met laten we zeggen, 10.000 gebruikers die dag in dag uit op je website rondhangen en nooit weg gaan...
En na maanden programmeerwerk besluit je een compleet nieuwe versie online te zetten....
De chips en koffie zijn inmiddels op.. dus het word tijd om aan de bak te gaan... versie 2.0 gaat online.
Je wilt het liefst alles verwijderen en er een nieuwe versie op zetten... niks is mooier dan om met een schone lei te beginnen en al die oude bestanden gelijk weg te gooien ( overschrijven heeft geen zin, met versie 1.0 heb je veel beginnersfouten gemaakt ;-) )...
Dus hup, online met die hap...maar die bezoekers zijn met geen mogelijkheid weg te slaan, ze blijven maar online, je hebt immers een mega populaire website..dag in dag uit...( you wish! )
Zet je er een tijdelijke 503 op? Sluis je de bezoekers weg naar een ander IPadres doormiddel van DNS?
Zet een dag of aantal dagen van tevoren een maintenance-pagina met aankondiging van het moment dat je update naar v2. Doe dit het liefst op een wat dood moment in je dag qua users, meestal buiten kantoortijden.
Zet je nieuwe website klaar en zodra de boel klaar is gooi je je DNS om + redirect op oude index, of in geval van zelfde server zet je de juiste index live.
En wat nou als jij in 1x op die website terecht komt, op het "moment suprême" ...jij hebt dat bericht niet gelezen, omdat je de website niet kende... ;-)
Het ligt eraan welke riemen je hebt liggen om mee te roeien. Als je een flinke site hebt met meerdere servers, dan kan je een tweede server gebruiken om de V2-versie van je site te publiceren, waarbij je in de loadbalancer of de DNS het verkeer naar de server van V1 afsluit.
Verder ligt het er ook aan of er nog dingen geconverteerd moeten worden, als je dan ook veel schrijf-acties op je database plaatsvinden (forum, community), dan is enige downtime onvermijdelijk. Je zou in zulke gevallen de site wel bereikbaar kunnen houden, maar als read-only, waarbij alleen SELECT-functies mogelijk zijn. Een handige melding hierover naar je bezoekers zou dan niet overbodig zijn.
Als je één server hebt, dan zet je gewoon een maintenance-pagina op. Dat doe ik ook voor mijn website.
Als je een eigen server hebt dan zou ik kiezen voor een extra virtual host waar alles gereed gemaakt en getest kan worden. Als aller laatste de directory's even omdraaien om drie uur 's nachts ;-)
Nieuwe website compleet in een map zetten (/new/ oid).
Je maakt vast een map /old/ aan.
Je maakt index.html aan en past .htaccess aan dat alles naar index.html gaat
(.html gaat voor .php meestal!)
Iedereen komt dus op index.html
Daarna verplaats je alle bestanden in je root naar /old/
Daarna verplaats je de bestanden uit /new/ naar je root
Je .htaccess wordt waarschijnlijk overschreven
Daarna verwijder je index.html
Mensen zien dan wellicht redelijk kort die index.html. Maar so what? Dan weten ze dat de update bezig is.
Verplaatsen van bestanden het liefst direct via de server (via FTP kan ook), zodat het enkel verplaatsen is. Dat duurt veel korter dan kopieren/downloaden/uploaden.
Onlangs nog een phpBB3 forum geupgraded op die manier. Duurde hooguit 2 minuten aan downtime.
Dat we daarna nog 3 weken bezig waren het forum draaiend te maken/houden is een ander verhaal. Man, wat was hij traag en liep vaak vast. Maar goed, zonder 5000 testgebruikers per uur was dat niet voorzien.
Een zoekindex van 6.000.000 berichten is ook niet heel snel te doorzoeken (phpbb-zoekfunctie is niet echt snel)