Prieš kelias dienas teko migruoti virš 20 ASP.NET Web aplikacijų į naują serverį. Migracija buvo pakankamai rizikinga nes:

  • keitėsi operacijų sistema iš Windows Server 2003 į Windows Server 2008 R2;
  • keitėsi IIS versija iš 6.0 į 7.5;
  • keitėsi platforma iš 32-bitų į 64-bitų.

Kaip matote, pakeitimai pakankamai dideli, tad nusprendžiau pasidalinti migravimo patirtimi.

Žingsnis #1 – IIS struktūros bei nustatymų migravimas

Šito žingsnis tikslas numigruoti IIS6 metaduomenų bazę į IIS7.5. Tam pasinaudojome nemokamu įrankiu Microsoft Web Deploy 2.0, kurį sudiegėme tiek sename, tiek naujame serveriuose. Vienas pastebėtinas dalykas kurį atradome bandymų metu, pagal nutylėjimą Web Deploy eksportuoja tiek IIS struktūrą su visais nustatymais, tiek ir Web saitų turinį. Tai patogu kai dirbama su viena-dviem aplikacijomis, bet dirbant su daugiau tikimybė, kad kuris nors failas yra „in use“ ir negalės būti nukopijuotas – labai padidėja. Dėl šios priežasties Web Deploy mes naudojome tik IIS metaduomenų bazei numigruoti.

Įdomumo dėlei, pateiksiu eksportui ir importui naudotas Web Deploy komandas:

msdeploy -verb:sync -source:webserver60 -disableLink:contentExtension -dest:package="D:\Sites.zip",encryptPassword=yourpass

msdeploy -verb:sync -source:package=D:\Sites.zip,encryptpassword=yourpass -dest:webserver60

Žingsnis #2 – AppPool sutvarkymas

Kaip jau minėjau, mes ne tik migravome į naujesnę IIS versiją, bet ir į 64-bitų architektūrą. Tam kad minimizuoti galimas pasekmes, aplikacijų AppPool nurodėme:

Nustatymų korektiškumo patikrinimui pasirašiau labai paprastą aplikaciją, kuri nuskaito IIS konfigūraciją ir išveda ją į ekraną (apie ją jau rašiau).

Žingsnis #3 – Web aplikacijų turinio perkėlimas

Kadangi turinys turėjo būti perkeltas iš veikiančio serverio, kur dalis failų buvo „in use“, pasinaudojome paprasčiausiu NTBackup su Shadow Copy galimybe.

Žingsnis #4 – reikalingų teisių nustatymas

Nepaisant teorinio paprastumo, reikalingų teisių nustatymas yra pakankamai subtili užduotis, reikalaujanti gero pasiruošimo. Vertas dėmesio pagalbininkas – Powershell ir jo komanda

get-childitem d:\Site -recurse | get-acl

Žingsnis #5 – testavimas ir rastų problemų sprendimas

Kadangi migruojama buvo labai daug aplikacijų, reikėjo ir nemažai testuotojų (ačiū jiems). Rastos problemos buvo iš karto sutvarkomos ir pertestuojamos.

Kas toliau?

Kurį laiką stebėsime ar viskas gerai veikia. Tada kiekviena aplikacija bus ištestuota Integrated režimu ir 64-bitų procese, po ko galima bus pasinaudoti visais IIS7.5 teikiamais privalumais.

Tiek tos patirties, tikiuosi ši informacija jums pravers darant nuosavas migracijas. Klausimų bei pastabų laukiu komentaruose.

Patiko (3)

Rodyk draugams