Last updated by TBarregren on Wed, 2009-01-21 19:19
Dagens Industri överväger Drupal som ramverk och publiceringsverktyg för di.se. Det kommer därmed bli en av världens största Drupalinstallationer. Naturligtvis ställer en sådan installation stora krav på prestanda och skalbarhet vilket Drupal klarar bra. Det krävs också staging, som än så länge inte finns inbyggt i Drupal. Men givetvis finns lösningar även på detta. Nedan har jag sammanställt några länkar till intressanta moduler, artiklar/bloggar, diskussioner och grupper i ämnet.
Bakgrund
Bakom kulisserna på en webbplats som di.se pågår ett konstant förändringsarbete på olika plan och med olika hastigheter. Redaktörer lägger till, tar bort och stuvar om artiklar och gör andra ändringar i innehållet med bara några minuters mellanrum. Förvaltningsorganisationen möblerar om på sidorna och gör andra ändringar i konfigurationen med några dagars mellanrum. Utvecklarna tar fram ny och underhåller gammal funktionalitet och gör andra ändringar i källkoden med några veckors mellanrum.
Om alla dessa förändringar skulle göras direkt på webbplatsen, så skulle läsarna praktiskt taget alltid surfa på en webbplats med små och stora fel och brister. Därför måste förändringarna kunna genomföras och kvalitetssäkras i en staging area innan de publiceras.
Eftersom förändringarna pågår i tre skilda plan -- förändringar av innehåll, förändringar av konfiguration och förändringar av källkod -- och dessa förändringar genomförs av olika team -- redaktionen, förvaltnigsorganisationen respektive utvecklare -- och i olika takt -- med några minuters mellanrum, med några dagars mellanrum respektive med några veckors mellanrum -- så behövs också tre olika staging areor. På "svenska" :-) pratar vi om content staging, configuration staging respektive source staging.
Enkelt uttryckt genomförs staging i tre steg:
- En kopia skapas av webbplatsen.
- Ändringar görs på kopian och kvalitetssäkras.
- Förändringarna i kopian överförs till originalet.
Det låter enkelt, men är i praktiken en svår nöt att knäcka. Det är speciellt det tredje steget, överföring av förändringar i kopian till originalet, som är en utmaning. I teorin skulle man kunna tänka sig att ersätta det gamla originalet med den modifierade kopian. Men i praktiken är det inte möjligt på grund av förändringar i originalets kommentarer, sessioner, loggar m.m. Alltså behövs en annan lösning.
Drupal har (ännu) inget inbyggt stöd för staging. I stället har olika team utvecklat egna lösningar. Den vanligaste lösningen, även bland de stora webbplatserna, är att helt enkelt hoppa över content staging, och i enklare fall även configuration staging, och för source taging, och mer komplicerade fall av configuration staging, helt enkelt dokumentera alla stegen och sen upprepa dem steg-för-steg på live servern. Men det finns andra, mer eller mindre sofistikerade, lösningar för att automatisera migreringen av förändringar från staging arean till webbplatsen. Nedan återfinns länkar till några sådana lösningar.
När du fölker länkarna och läser vad som ör skrivit så är det viktigt att reflektera över om den beskrivna lösningen avser content staging, configuration staging eller source staging. Jag har huvudsakligen samlat länkar som berör de två första formerna.
Moduler
Följande moduler kan vara användbara för att åstadkomma staging:
- Deployment module
- Drupal Automated Staging Toolkit
- Staging
- Autopilot
- Patterns
- Database Scripts
- Database replcation
Artiklar, presentationer och liknande
I artikeln Drupal staging solution beskriver Michel Lévy-Provencal hur France24, en fransk motsvarighet till CNN, har löst staging i Drupal.
Mark Theunissen har vidareutvecklat France24:s lösning sin artikeln Method of syncronising database changes.
En annan lösning har presenterats av Dave Cohen i hans artikel Drupal Configuration from Development to Production.
Greg Dunlap har skrivit en läsvärd artikelserie:
- Deployment and Change Management - The Problem
- Deployment And Change Management - What Helps Now
- Deployment And Change Management - A Framework
Greg Dunlap höll också en presentation DrupalCamp Vancouver i maj 2008. Det finns både video och slides.
I sin blogg skriver Kathleen Murtagh under rubriken Development to Production: A Database Merge Script om sin samling av databas skript som hon framgångsrikt har använt på bl.a. Harvard Science.
För enklare situationer kan George Cassie:s lösning Development & Production Sites with Database Prefixes fungera.
Diskussioner
Lösningar på staging har diskuterats i olika sammanhang. Nedan är tre intressanta trådar från Drupal development mailing list:
- Staging content to production servers (startade 2006-06-15)
- Staging Content to Production Servers (startade 2006-06-16, återupptogs 2008-01-10)
- Solving the dev->staging->live problem (startade 2008-08-09)
- Unique/Random IDs and drupal (startade 2008-08-10)
Grupp
Build Systems & Change Management
Se också
Länkar till näraliggande ämnen: