Lucian Maran

home

Configurarea unui Web Farm in Windows Azure (partea VI - Sincronizarea automata cu WebDeploy si PowerShell)

26 Nov 2012


Pana in aceasta ultima etapa am configurat cele 2 servere si am facut publicarea codului pe server-ul principal. Mai ramane de vazut cum facem ca acest cod sa fie distribuit si pe restul masinilor din WebFarm. As avea mai multe optiuni:

  1. din Visual Studio, sa public repetat (manual) codul pe fiecare server (tot cu WebDeploy dar cu un EndPoint adecvat pentru fiecare masina)
  2. din Visual Studio, sa public o singura data codul pe server-ul principal iar apoi continutul folder-ului wwwroot de pe fiecare server sa-l mentin sincronizat prin diferite metode:
    • cu Dropbox sau alte servicii online ce ofera sincronizare prin intermediul unui repository extern
    • cu SyncToy sau alte aplicatii dedicate pentru sincronizare la nivelul LAN-ului local
    • am avut si ideia cu un vhd memorat intr-un blob si atasat pe post de disk comun, dar am testat si am vazut ca solutia asta nu e posibila (cel putin nu cu VM-urile dn Azure)
    • sa folosesc folosesc functia de sincronizare care sta la baza serviciului WebDeploy.

Am decis sa folosesc pentru sincronizare WebDeploy pentru ca acesta este un agent pe care il am deja instalat pe server-ul principal (il folosesc pentru publicarea din VS2012).

Cu alte cuvinte, atat transferul datelor din Visual Studio catre server-ul master (VM1) cat si propagarea datelor de la acesta catre serverele secundare (VM2, etc) au la baza acelasi agent si acelasi protocol. Cred ca nu mai trebuie sa spun ca, in aceste cazuri, copierea datelor se face doar prin transmiterea diferentelor.

Concret:

Voi descrie in continure modul in care se face sincronizare datelor intre folder-ul wwwroot al unui server central (VM1) si acelasi folder, de pe doua sau mai multe servere secundare (VM2, etc)

Pas 1. Asigura-te ca ai parcurs operatiile descrise in partile III si IV cu privire la:

Pas 2. Creaza scriptul de sincronizare: (doar pe masina sursa)

Pas 3. Adauga permisiuni pentru rularea scriptului: (doar pe masina sursa)

Pas 4. Testeaza manual functionalitatea scriptului: (doar pe masina sursa)

 powershell.exe -File C:\SyncScript\sync.ps1

Pas 5. Planifica rularea periodica a scriptului de mai sus: (doar pe masina sursa)

  Add arg: -File C:\SyncScript\sync.ps1

Asta a fost tot!

Live Demo

http://api.idgenerator.net/ (probabilitatea de a obtine valori diferite creste daca folosim browsere diferite, daca facem o pauza de cel putin 2 min. intre doua incercari successive sau daca tinem F5 apasat timp de 2-3 secunde)

Referinte:

Maarten Balliauw – Setting up a webfarm using Windows Azure Virtual Machines Michael Washam – Publishing and Synchronizing Web Farms using Windows Azure Virtual Machines

comments powered by Disqus