Šioje dalyje aš padarysiu trumpą įvadą į Windows Azure, paaiškinsiu svarbiausias sąvokas bei aprašysiu pagrindinius komponentus. Prieš tęsiant, rekomenduoju jums susipažinti su debesų kompiuterija bendrai.
Windows Azure – tai Microsoft debesų kompiuterijos variantas, kuris šiuo metu yra priskiriamas prie Platform-as-a-Service (toliau PaaS) paslaugų tipo, bet anot Microsoft greitu metu bus siūlomos ir Infrastructure-as-a-Service (toliau IaaS) tipo paslaugos. Šiuo metu Windows Azure platformą sudaro:
Windows Azure
Windows Azure galima įsivaizduoti kaip virtualių Windows serverių rinkinį, kuris yra valdomas, stebimas bei esant gėdimui automatiškai atstatomas specialios programinės įrangos, kuri vadinama Fabric (nepainioti su Windows Azure platform AppFabric).
Visi virtualūs serveriai yra pasiekiami naudojant apkrovos paskirstytoją (angl. Load Balancer), taip užtikrinant, kad visa apkrova bus tolygiai paskirstyta tarp visų vienos rolės serverių. Šiuo metu egzistuoja dvi serverių rolės: Web rolė ir Worker rolė. Pirmą galima įsivaizduoti kaip Web serverį, o antrą – kaip aplikacijų serverį. Svarbu pažymėti, kad jūsų programa nebūtinai turi naudoti abi roles, galima, pavyzdžiui, naudoti tik Web rolę. Aplikacijos naudojamų rolių skaičius irgi gali skirtis, pavyzdžiui, dvi Web rolės ir viena Worker rolė, viskas priklauso tik nuo poreikio. Pagrindinė Worker rolės paskirtis – užtikrinti ypač gerą atliekamų operacijų plečiamumą (angl. Scalability) naudojant asinchroninį apsikeitimą žinutėmis paremtą eilėmis. Asinchroninį komunikavimą ir eiles detaliau aprašysiu ateinančiuose straipsniuose.
Paskutinė svarbi Windows Azure dalis – objektinės saugyklos. Šiuo metu jos yra dvi: BLOBai ir lentelės (aš vadinsiu esybių lentelėmis). BLOB (Binary Large Object) – tai bendro pobūdžio binarinė saugykla, skirta bet kokio tipo informacijai saugoti. BLOBą galima įsivaizduoti kaip konteinerį, į kuri mes galime saugoti failus. Šiuo metu BLOBą galima pasiekti per unikalią HTTP nuorodą arba naudojant GUIDą. Artimiausiu metu atsiras galimybė prijungti jį prie Windows Azure serverio failų sistemos ir matyti iš aplikacijų kaip paprastą diską. Esybių lentelės pagal paskirtį yra panašios į SQL lenteles (tik nenaudojamos norminės formos). Kiekviena esybių lentelė savyje saugo esybes, kiekviena esybė yra sudaryta iš savybių, kiekviena savybė saugo informaciją apie jos pavadinimą, tipą bei saugomą reikšmę. Visos esybių lentelės yra pasiekiamos ADO.NET Data Services ir LINQ pagalba (per HTTP protokolą).
Windows Azure yra paremtas Windows Server 2008 x64 su IIS 7 ir palaiko:
- .NET 3.5 SP1
- Java
- Ruby (Ruby on Rails)
- PHP
- C, Assembler
- MySQL, SQLite
Windows Azure virtualius serverius galima plėsti tiek į plotį (pridedant naujus serverius), tiek į aukštį (pasirenkant galingesnę konfigūraciją). Šiuo metu yra siūlomos 4 galimos konfigūracijos:
| VM | CPU | RAM | HDD |
|---|---|---|---|
| Small | 1 x 1.7 GHz | 1.7 GB | 250 GB |
| Medium | 2 x 1.7 GHz | 3.5 GB | 500 GB |
| Large | 4 x 1.7 GHz | 7 GB | 1000 GB |
| Extra Large | 8 x 1.7 GHz | 15 GB | 2000 GB |
SQL Azure
SQL Azure tai yra specialiai debesims adaptuota SQL Server versija, kuri palaiko pagrindines SQL Server ir T-SQL galimybes. Ateityje žadama, kad šis skirtumas pakankamai greitai mažės. SQL Azure įgyvendina TDS protokolą, todėl įmanoma naudotis tokiais įrankiais kaip Bulk Copy, SQL Management Studio, pasiekti SQL Azure iš Visual Studio, jungtis iš esamų aplikacijų vien pakeitus prisijungimo eilutę konfigūracijos faile.
Vienas didžiausių SQL Azure apribojimų šiuo metu yra duomenų bazių didžiai: 10 GB arba 1 GB. Norint išlaikyti gerą plečiamumą esant didesniam duomenų kiekiui, teks pasinaudoti duomenų bazių horizontalaus plečiamumo technika – sharding. Laimei, jau šių metų pabaigoje Microsoft žada gerokai padidinti maksimalų duomenų bazės dydį.
Kartu su SQL Azure yra prieinamas Microsoft Sync Framework praplėtimas, skirtas sinchronizacijai tarp SQL Azure ir SQL Server – SQL Azure Data Sync.
Windows Azure platform AppFabric
Windows Azure platform AppFabric, anksčiau žinomas kaip Azure .NET Services, yra aktyviai plėtojama Windows Azure platformos dalis. AppFabric sudaro: Service Bus ir Access Control komponentai. Service Bus leidžia apjungti programas, duomenų bazes ir servisus, esančius skirtinguose tinkluose ar debesyse. Jų autentifikacija yra naudojamas Access Control. Šiuo metu autentifikacijai galima naudoti Active Directory Federation Services (ADFS) bei atvirus protokolus Web Resource Authorization Protocol (WRAP) ir Simple Web Token (SWT).
Kitoje dalyje…
Pereisime prie kodo ir sukursime mūsų pirmą Windows Azure “Hello World” Web aplikaciją.
Rodyk draugams






2010-01-05 01:41
kilo klausimas: ar sunku bus programa, parašyta web serveriui (pavizdžiuj iš localhost’o) pernešti į azure? ar daug kodo modifikaciju prireiks migruojant?
2010-01-05 13:17
Geras straipsnis. Tapo aiškiau kas ir kaip.
Laukiam coding action :)
2010-01-05 18:47
@Igor,
Viskas priklauso ką naudoji ir kokio plečiamumo (scalability) reikia. Jeigu operacijų greitaveika tenkina ir yra noras tiesiog Web aplikaciją perkelti į debesis (kaip aš ir padariau su http://sergejus.com), tai padaryti nebus sunku. Dar vienas klausimas: ar naudojami ASP.NET Profile Provider, ASP.NET Membership Provider, WCF servisai?
Šiaip mano “Hello World” pavyzdys ir parodys paprastos Web aplikacijos migravimo į Windows Azure procesą.
2010-01-06 08:07
Mmm.. Regis, Windows Azure pataps geresnis pasirinkimas nei Google App Engine?
2010-01-06 19:46
@Sergejus
ačiu labai. lauksiu straipsnio, labai įdomu.
2010-01-07 00:50
@Žygimantas
Nu kaip visada “tai priklauso nuo poreikio”. Google AppEngine tai tirasis PaaS, kur tu nieko nežinai apie serverį ir negali valdyti resursų (viskas automatiškai daroma). Taip pag AppEngine palaiko tik Java ir Python kalbas, tai jeigu reikalingos kitos - tikrai netiks.
2010-01-07 13:56
Dar šaunus dalykas tas, kad jei dirbate su NHibernate, tai pereiti prie SQL Azure bus tikrai paprasta ;)
http://fabiomaulo.blogspot.com/2009/10/nhibernate-dialect-for-sql-azure.html
http://ayende.com/Blog/archive/2009/09/05/nhibernate-on-the-cloud-sql-azure.aspx
2010-05-14 19:51
Sveiki,
buvau labai maloniai nustebintas, kai radau siuos straipsnius lietuviu kalba.
Susidomejau Windows Azure, bet kolkas nesuvokiu tikruju privalumu, lyginant galimybes su kaina, t.y. kuo tai geriau uz paprasta hosting paslauga? 1. Jeigu esu paprastas varotojas, norintis parasyti web aplikacija, kuri naudos MS SQL. Kaip mokejimo planuose suprasti:
•Windows Azure
■25 hours of a small compute instance ?
Dekoju uz paaiskinimus ir patarimus. Jeigu autorius galetu susisiekti pastu, butu labai malonu pasikalbeti ir pasidalinti idejomis.
2010-05-14 23:38
@Karolis - ačiū.
Pagrinde privalumai yra tokia - kad esant reikalui galima žymiai paprasčiau negu hostingo atveju pridėti naujų serverių (kas reiškia ir pajėgumų).
Pagrindinė Azure problema šiuo metu (apart to, kad dar oficialiai neprieinama Lietuvoje), ji yra pakankamai brangi. Mokėti reikia ne tik už skaičiavimo pajėgumus (computing power), bet ir už tinklu siunčiamus duomenis, disko vietą ir pan. Šiuo metu asmeniškai aš rekomenduoju, jeigu aplikacija reikalauja tik vieno serverio (t.y. nenaudojamos Web fermos ir pan.), pigiau naudotis paprasta talpinimo paslauga (hosting). Jeigu planuojate, kad populiarumas ir apkrova gali staiga padidėti ir gali prireikti kelių serverių (nors ir trumpam) - galvoti tikrai verta.
Kitas svarbus dalykas kurį reikia suprasti, Windows Azure siūlo ne tik IIS ir SQL, bet asinchronines eiles, BLOB saugyklas ir pan., kas kartais gali praversti. Taip pat svarbu pažymėti, kad aplikacija _turi būti pritaikyta_ Windows Azure, jeigu norima išnaudoti 100% debesų platformos galimybių. Tai nereiškia, kad negalima numigruoti paprastą ASP.NET aplikaciją, tiesiog klausimas ar tikrai tam reikalingas Windows Azure.
Apibendrinant, kaip ir viskas šitame pasaulyje, pasirinkimas priklauso nuo konkretaus panaudojimo atvejo.
2010-09-02 21:23
[...] Įvadas į Windows Azure – 1 dalis (Pagrindinės sąvokos) Įvadas į Windows Azure – 2 dalis (Windows Azure Hello World ASP.NET puslapio kūrimas) Įvadas į Windows Azure – 3 dalis (lokalios objektinės Windows Azure saugyklos konfigūravimas) Įvadas į Windows Azure – 4 dalis (lokalios BLOB saugyklos panaudojimas) Įvadas į Windows Azure – 5 dalis (lokalios BLOB saugyklos perkėlimas į Windows Azure) Įvadas į Windows Azure – 6 dalis (esybių lentelių saugyklos panaudojimas) Įvadas į Windows Azure – 7 dalis (XDrive panaudojimas) [...]