Søg på DotNyt:
Denne blog er flyttet til www.nielsbrinch.com


onsdag den 16. januar 2008

Opdatering af en web-applikation

skrevet af Niels Brinch

Web-applikationer er ikke så nemme at installere som windows-applikationer. En Windows-applikation består ofte kun af en exe-fil og måske lidt andre hjælpefiler. En web-applikation derimod består typisk af databasedesign, filer, konfiguration, iis-opsætning, rettigheder og meget mere. Det er langt mere uoverskueligt at have en standardiseret måde at installere eller opdatere en web-applikation på.

Men jeg har brug for det, så jeg har prøvet at samle mine tanker om hvordan det skal gøres. Jeg opgiver på forhånd at lave et generelt installationsprogram, da det ville være alt for omfattende. Men et program til at opdatere en web-applikation burde være inden for rækkevidde.

Der er brug for følgende i forbindelse med en opdatering:

1. Kopiering af filer.
2. Kørsel af sql scripts.
3. Opdatering af konfigurationsfiler.
4. Diverse.

Da programmet til opdatering af web-applikationer skal være generelt, må det ikke kræve en genkompilering af opdateringsprogrammet for hver opdatering. Jeg forestiller mig at have opdateringsprogrammet liggende på serveren, som så læser fra en update.zip der ligger i samme bibliotek.

update.zip skal så indeholde følgende:

1. En tekst-fil med introduktionstekst.
2. Filer i samme struktur som de skal kopieres over.
3. Sql-scripts.
4. Xml-fil som beskriver konfigurationsopdateringer.
5. En fil med særlige instruktioner til diverse-punktet.

Sidstnævnte ville indeholde instruktioner til det som ville være uoverskueligt at bygge ind i et standard-program. Det kunne f.eks. være "Giv Network Service skrive-rettigheder til 'app/attached_files'-mappen".

Brugergrænsefladen ville være en wizard med følgende punkter:

1. Introduktion

Fritekst som beskriver opdateringen. Det kunne f.eks. være angivelse af versionsnummer og angivelse af hvad opdateringen består af.

2. Konfiguration

For hver konfigurationsfil som skal opdateres er der et særskilt skærmbillede. Konfigurationsfilen på serveren åbnes i et vindue med instruktion om hvad der skal ændres. F.eks. "Tilføj følgende xml-sektion: <log4net> ... osv.". Med hjælp fra xml-filen der beskriver konfigureringen kan ændringerne highlightes og sættes automatisk ind i konfigurationsfilen.

Når punktet er overstået er konfigurationsfilerne ikke rent faktisk opdateret. De er bare klargjort.

3. Særlige instruktioner

Fritekst som giver særlige instruktioner til opdateringen. Det kan f.eks. også være noget der skal gøres direkte inde i den applikation som bliver opdateret, f.eks. "Efter opdateringen skal du klikke på 'ryd cachen' i administrationsmodulet".

4. Backup

Her vælges det om databasen og filerne skal blive backed up i forbindelse med opdateringen. Det tager lidt længere tid, men er til gengæld rart at have hvis det hele går galt.

5. Opdatering

Her er en progress bar som fyldes ud efterhånden som opdateringen gennemføres. Handlingerne sker i denne rækkefølge:

1. Backup af filer.

2. Backup af database.

3. Udførsel af sql scripts.

4. Kopiering af filer.

5. Kopiering af forberedte konfigurations-filer.

Herefter er opdateringen færdig. På denne side vises en genvej til at se de særlige instruktioner igen, hvis det er nogle som personen ønsker at gennemføre efter den automatiske opdatering.

Det er op til personen selv at stoppe applikationen i IIS'en eller på anden vis, hvis han ikke ønsker at den anvendes mens opdateringen foregår ... men afhængigt af applikationen vil den i mange tilfælde kunne køre uden nedetid under en automatiseret opdatering som denne.

Planen er der. Nogen der har lyst til at kode den?

0 kommentarer


 
Til forsiden

Niels Brinch

- Seneste indlæg