Windows Azure. Wprowadzenie do programowania w chmurze

Programuj w chmurze… i wznieś się wysoko! Wprowadzenie do Windows Azure, czyli słów kilka o chmurze i modelach usług Szy

518 93 17MB

Polish Pages [182] Year 2012

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Windows Azure. Wprowadzenie do programowania w chmurze

Table of contents :
Spis treści
Wstęp (7)
Ewolucja infrastruktury IT oraz sposobu wytwarzania i używania aplikacji (8)
Podstawowe modele usług chmury (9)
Wady i zalety chmury (12)
Typowe scenariusze biznesowe (14)
Odbiorcy książki (15)
Rozdział 1. Platforma Windows Azure (17)
1.1. Windows Azure (19)
1.1.1. Kontroler zarządzania (19)
1.1.2. Obliczenia (19)
1.1.3. Dane (20)
1.1.4. Sieć CDN (21)
1.2. Windows Azure AppFabric (21)
1.3. SQL Azure (21)
1.4. Opłaty za korzystanie z platformy (22)
Rozdział 2. Magazynowanie danych w Windows Azure (25)
2.1. Azure Storage (25)
2.1.1. Bezpieczeństwo danych w Azure Storage (26)
2.1.2. Azure Tables (27)
2.1.3. Azure Blobs (30)
2.1.4. Azure Queues (33)
2.2. SQL Azure (36)
2.2.1. Architektura SQL Azure (37)
2.2.2. Protokoły dostępu do SQL Azure (39)
2.2.3. Ograniczenia SQL Azure (39)
2.3. Dysk wirtualny w Azure Blobs (42)
Rozdział 3. Przygotowania do utworzenia pierwszej aplikacji w Windows Azure (43)
3.1. Zakładanie konta na witrynie Microsoft Online Services i subskrypcja usług (44)
3.2. Założenie projektu i uruchamianie usług na portalu zarządzającym Windows Azure (49)
3.2.1. Usługa Hosted Service (50)
3.2.2. Konto w Azure Storage (52)
3.3. Niezbędne i przydatne narzędzia do pracy z platformą Windows Azure (54)
3.4. Role i ich instancje na platformie Windows Azure (56)
3.5. Gwarancja jakości świadczonych usług (SLA) (56)
Rozdział 4. Kalkulator w chmurze Azure (59)
4.1. Przygotowanie projektu oraz wybór ról (60)
4.2. Przegląd plików utworzonych ze wzorca projektu (60)
4.3. Strona główna oraz obsługa kontrolek (65)
4.4. Debugowanie lokalne (67)
4.5. Wdrożenie aplikacji do chmury z wykorzystaniem Visual Studio i Azure SDK (69)
4.6. Zatrzymanie i usunięcie aplikacji (74)
Rozdział 5. Studium przypadku: serwis Moja-Muzyka (77)
5.1. Biznesowa wizja systemu (78)
5.2. Projektowa wizja systemu (78)
5.3. Test przetwarzania plików wideo (79)
5.4. Tworzenie projektu serwisu Moja-Muzyka (82)
5.5. Budowanie warstwy prezentacji (83)
5.6. Parsowanie strony filmu w serwisie YouTube (84)
5.7. Komunikacja pomiędzy rolami (Azure Queues) (85)
5.8. Logika roli ProcesorWideo (88)
5.9. Lista wyników i lokalne testowanie aplikacji (92)
5.10. Zmiany w projekcie przed wdrożeniem do chmury (101)
5.11. Wdrożenie aplikacji do chmury Windows Azure (103)
5.12. Dodanie nowych instancji ról (104)
Rozdział 6. Studium przypadku: serwis Moje-Zdjęcia (107)
6.1. Biznesowa wizja systemu (108)
6.2. Projektowa wizja systemu (108)
6.3. Moje-Zdjęcia - wersja lokalna (109)
6.3.1. Tworzenie projektu (110)
6.3.2. Dodanie modelu (110)
6.3.3. Wygenerowanie kontrolera i widoków (113)
6.3.4. Modyfikacja kontrolera (115)
6.3.5. Modyfikacje widoków (121)
6.3.6. Dodanie metody-akcji i widoku Search (129)
6.4. Moje-Zdjęcia - wersja w chmurze (130)
6.4.1. Zakładanie bazy SQL Azure (131)
6.4.2. Modyfikacja plików konfiguracyjnych (133)
6.4.3. Dodanie bibliotek MVC i silnika Razor (134)
6.4.4. Wdrożenie serwisu do chmury (135)
Rozdział 7. Podsumowanie (137)
Dodatek A: Literatura (139)
A.1. Książki (139)
A.2. Zasoby internetowe (139)
Dodatek B: Wdrożenie aplikacji do chmury (141)
B.1. Utworzenie paczki wdrożeniowej w Visual Studio (141)
B.2. Wysyłanie paczki i pliku konfiguracyjnego do chmury (142)
B.3. Wykorzystanie plików wykonywalnych Windows Azure SDK (143)
Dodatek C: Windows Azure nie tylko dla środowiska .NET (145)
C.1. PHP w Windows Azure (146)
C.2. Java w Windows Azure (150)
Dodatek D: Diagnostyka w Windows Azure (157)
Dodatek E: Montowanie i używanie dysku wirtualnego Azure Drive (163)
Dodatek F: Migracja do SQL Azure (169)
Dodatek G: Dostawcy chmur (177)
Skorowidz (179)

Citation preview

Zbigniew Fryźlewicz Daniel Nikończuk

H e lio n

Tr

Windows Azure Wprowadzenie do programowania w chmurze

Spis treści W stę p ........................................................................................................................... 7

Ewolucja infrastruktury IT oraz sposobu wytwarzania i używania aplikacji ..............8 Podstawowe modele usług chmury ......................................................................................9 Wady i zalety c h m u ry ............................................................................................................12 Typowe scenariusze biznesowe .......................................................................................... 14 Odbiorcy k sią ż k i.....................................................................................................................15 Rozdział 1 .

Platform a W indow s Azure ...................................................................................1 7

1.1. Windows Azure .............................................................................................................. 19 1.1.1. Kontroler zarządzania ................................................................................................ 19 1.1.2. O b licze n ia.....................................................................................................................19 1.1.3. Dane ............................................................................................................................. 20 1.1.4. Sieć C D N ..................................................................................................................... 21

1.2. Windows Azure AppFabric ......................................................................................... 21 1.3. SQL A z u re .......................................................................................................................21 1.4. Opłaty za korzystanie z platformy ..............................................................................22 R ozdział 2.

M agazyno w anie danych w W indow s A z u r e ....................................................25

2.1. Azure Storage ................................................................................................................. 25 2.1.1. Bezpieczeństwo danych w A zure Storage ............................................................ 26 2.1.2. A zure T a b le s............................................................................................................... 27 2.1.3. A zure Blobs .................................................................................................................30 2.1.4. A zure Queues ............................................................................................................. 33

2.2. SQL A z u re .......................................................................................................................36 2.2.1. Architektura SQL A z u r e ........................................................................................... 37 2.2.2. Protokoły dostępu do SQL Azure ........................................................................... 39 2.2.3. Ograniczenia SQL A z u r e ..........................................................................................39

2.3. Dysk wirtualny w Azure B lo b s ................................................................................... 42

4

Rozdział 3.

Windows Azure. W prowadzenie do programowania w chmurze

P rzygotow ania do utw orzenia pierw szej ap lika cji w W indow s Azure .. 43

3.1. Zakładanie konta na witrynie M icrosoft Online Services i subskrypcja usług ........................................................................................................44 3.2. Założenie projektu i uruchamianie usług na portalu zarządzającym Windows Azure ............................................................................................................. 49 3.2.1. Usługa Hosted Service.......................................................................................... 50 3.2.2. Konto w Azure Storage ........................................................................................ 52 3.3. Niezbędne i przydatne narzędzia do pracy z platform ą W indows Azure .......... 54 3.4. Role i ich instancje na platformie Windows Azure ................................................ 56 3.5. Gwarancja jakości świadczonych usług (SLA) .......................................................56 Rozdział 4.

K a lku la to r w chm urze Azure

..............................................................................59

4.1. Przygotowanie projektu oraz wybór r ó l .................................................................... 60 4.2. Przegląd plików utworzonych ze wzorca projektu ................................................. 60 4.3. Strona główna oraz obsługa k o n tro le k .......................................................................65 4.4. Debugowanie lokalne ................................................................................................... 67 4.5. W drożenie aplikacji do chmury z wykorzystaniem Visual Studio i Azure SDK .............................

69

4.6. Zatrzymanie i usunięcie aplikacji ...............................................................................74 Rozdział 5.

Studium przypadku: se rw is M o ja -M u z y k a ...................................................... 77

5.1. Biznesowa wizja sy ste m u ............................................................................................ 78 5.2. Projektowa wizja systemu ........................................................................................... 78 5.3. Test przetwarzania plików wideo ...............................................................................79 5.4. Tworzenie projektu serwisu M oja-M uzyka ..............................................................82 5.5. Budowanie warstwy prezentacji ................................................................................. 83 5.6. Parsowanie strony filmu w serwisie YouTube ........................................................ 84 5.7. Komunikacja pomiędzy rolami (Azure Queues) .................................................... 85 5.8. Logika roli P rocesorW ideo.......................................................................................... 88 5.9. Lista wyników i lokalne testowanie aplikacji .......................................................... 92 5.10. Zmiany w projekcie przed wdrożeniem do c h m u ry ............................................101 5.11. W drożenie aplikacj i do chmury W indows Azure ............................................... 103 5.12. Dodanie nowych instancji ról ................................................................................. 104 Rozdział 6.

Studium przypadku: se rw is M o je-Zd jęcia ................................................... 1 0 7

6.1. Biznesowa wizja sy ste m u ...........................................................................................108 6.2. Projektowa wizja systemu ......................................................................................... 108 6.3. Moje-Zdjęcia — wersja lokalna ............................................................................... 109 6.3.1. Tworzenie projektu..............................................................................................110 6.3.2. Dodanie m odelu................................................................................................... 110 6.3.3. Wygenerowanie kontrolera i w idoków ............................................................. 113 6.3.4. Modyfikacja kontrolera ...................................................................................... 115 6.3.5. Modyfikacje w idoków ........................................................................................ 121 6.3.6. Dodanie metody-akcji i widoku Search ............................................................ 129

Spis treści

5

6.4.

R ozdział 7. D o d atek A

Moje-Zdjęcia — wersja w ch m u rze...................................................................... 130 6.4.1. Zakładanie bazy SQL A z u re.............................................................................. 131 6.4.2. Modyfikacja plików konfiguracyjnych............................................................. 133 6.4.3. Dodanie bibliotek MVC i silnika Razor ...........................................................134 6.4.4. Wdrożenie serwisu do chmury .......................................................................... 135

Pod sum ow anie .................................................................................................... 1 3 7 Literatura .............................................................................................................. 1 3 9

A .l. Książki ...........................................................................................................................139 A.2. Zasoby internetow e.....................................................................................................139 D o d atek B

W drożenie a plikacji do c h m u r y ......................................................................1 4 1

B .l. Utworzenie paczki wdrożeniowej w Visual Studio .............................................141 B.2. W ysyłanie paczki i pliku konfiguracyjnego do chmury ......................................142 B.3. W ykorzystanie plików wykonywalnych W indows Azure SDK ....................... 143 D o d atek C

W ind ow s A zure nie ty lk o dla śro do w iska .N ET ........................................1 4 5

C . 1. PHP w Windows Azure ........................................................................................... 146 C.2. Java w Windows Azure .............................................................................................150 D o d atek D

D ia g n o styka w W indow s Azure .....................................................................1 5 7

D o d atek E

M o n tow a n ie i używ anie dysku w irtualnego Azure Drive .......................1 6 3

D o d atek F

M ig ra cja do S Q L Azure .................................................................................... 1 6 9

D o d atek G

D o sta w cy chm ur ................................................................................................ 1 7 7

Skorow idz .......................................................................................................................................1 7 9

Wstęp C loud C om p utin g1 to kolejny w ażny krok w ro zw o ju in form atyki, na tyle znaczący, że je s t utożsam iany z początkiem now ej ery, nazyw anej e rą chm ury obliczeniow ej, w skrócie chm ury. Poniew aż je st to term in dość now y, byw a często używ any w w ielu kontekstach, niekiedy do określenia różnych szczegółow ych bytów . Często m ów i się o chm urze naw et w kontekście system u poczty G oogle G m aik lub usług A m azon W eb S ervices3 czy w reszcie k o m pleksow ych i w pełn i fu n k cjo n aln y ch ro zw iązań „in teli­ gen tn y ch ch m u r” w ro d za ju IB M S m art B u sin ess Cloud. Ta k siążk a je s t n ato m ia st pośw ięcona podobnem u kom pleksow em u rozw iązaniu, jak im je st platform a W indow s A zure, czyli w izji i im plem entacji chm ury obliczeniow ej w w ydaniu firm y M icrosoft. W tym m iejscu w arto przytoczyć ogólną i pozbaw ioną kontekstu definicję chmury, p ro ­ m ow aną przez firm ę bad aw czo -an ality czn ą G artner4: chm ura to styl obliczeń, w k tó ­ rym dynam icznie skalow alne zasoby IT są dostarczane zew nętrznym użytkow nikom w postaci usług na żądanie za p om ocą technologii internetow ych. K luczow ym elem entem tej definicji je st dostarczanie u słu g „n a żą d a n ie” . Jak zo b a­ czym y później, chm ura, oprócz dostępności usług w e w łaściw ym m iejscu i czasie, z a ­ pew nia ekonom iczną efekty w ność rozw iązania, konsolidację zasobów , bezpieczeństw o inform acji i w reszcie oszczędność energii.

1 Terminu tego w obecnym znaczeniu po raz pierwszy użył Ramnath Chellappa w 1997 roku. Zdefinio­ wał on C loud C omputing jako „nowy paradygm at obliczeniowy, w którym granice obliczeń będą zale­ żały od czynników ekonomicznych, a nie od ograniczeń technicznych” . http://www.gm ail.com . 3 http://aws.am azon.com . 4 http://www.gartner.com/it/initiatives/pdf/KeyInitiativeOverviewJCloudCompiiting.pdf.

8

Windows Azure. W prowadzenie do programowania w chmurze

Ewolucja infrastruktury IT oraz sposobu wytwarzania i używania aplikacji Zanim jednak poznamy szczegóły chmury w w ydaniu M icrosoftu, w arto najpierw przyj­ rzeć się ew olucji infrastruktury IT, która następow ała w firm ach i przedsiębiorstw ach, a także była prom ow ana przez producentów oprogram ow ania. D zięki tej ew olucji p o ­ w stały różne rodzaje chm ur obliczeniow ych. D ostępność chm ury obliczeniow ej zm ie­ nia z kolei sposób w ytw arzania i utrzym yw ania aplikacji. W pew nym u proszczeniu etapy ew olucji infrastruktury IT m ożna scharakteryzow ać następująco: ♦ Etap I — kom putery centralne z term inalam i; użytkow nicy realizu ją indyw idualne zadania, łącząc się z kom puterem centralnym . ♦ Etap II — rew olucja m ikroprocesorow a i pow stanie kom puterów osobistych; użytkownicy realizują indyw idualne zadania na sw oich kom puterach osobistych. ♦ E tap III — kom putery osobiste połączone w izolow ane sieci; użytkow nicy realizują indyw idualne zadania na sw oich kom puterach osobistych, ale m ożliw a je st rów nież kom unikacja z innym i kom puteram i danej podsieci. ♦ Etap IV — początki Internetu; użytkow nicy realizuj ą indyw idualne zadania, korzystając z serw erów w ebow ych. ♦ E tap V — coraz w ięcej użytkow ników k o rzy sta z In ternetu; aby sprostać wym aganiom indywidualnych użytkowników, serwery w ebow e łączy się w klastry. ♦ E tap VI — bardzo w ielu użytkow ników za p o m o cą urządzeń m obilnych korzysta z Internetu, je st on w ręcz nieodzow ny do ich działania; aby sprostać w ym aganiom indyw idualnych użytkow ników , serwery w ebow e są um ieszczane w centrach danych. Centra danych udostępniają m oc obliczeniow ą i przestrzeń do składow ania danych. E tap VI to nie koniec rozw oju infrastruktury IT. Centra danych w sw oim klasycznym kształcie m a ją kilka zasadniczych w ad: są czasochłonne w budow ie, drogie w eksplo­ atacji, n iezdolne do elastycznej reakcji na zm iany obciążeń, m u sz ą zatru d n iać w ielu pracowników pom ocniczych do utrzym ania bieżącej działalności. W konsekwencji tylko bardzo duże korporacje m ogą sobie pozw olić na ich budow ę i prowadzenie. R ozw iąza­ niem je st outsourcing centrów danych, czyli chm ura obliczeniowa. W tej ostatniej kon­ cepcji m oc obliczeniow a udostępniana przez chm urę jest analogiczna do „towaru” w po­ staci elektryczności dostarczanej do budynków . Odbiorcy elektryczności generalnie m e wiedzą, gdzie elektrownie są ulokow ane i ja k funkcjonują. Jedyna rzecz, która ich intere­ suje, to niezakłócona dostaw a zamówionej mocy po jak najniższych kosztach. Co więcej, odbiorcy elektryczności p ła cą nie tyle za zam ów io n ą m oc, ile za m oc w ykorzystaną. K lasyczne centra danych — etap VI — to praw ie doskonała analogia do sytuacji, w k tó­ rej konsum ent energii elektrycznej posiada w łasny generator prądu, a w konsekw encji

W stęp

9

do ponoszenia kosztów nabycia tego dodatkowego urządzenia, jeg o eksploatacji, o k re­ sowej m o dernizacji czy w reszcie u trzym ania w y k w alifik o w an eg o p erso n elu do jeg o obsługi. W ad tych (dla przeciętnego konsum enta energii) je st pozbaw iony m odel z elek­ trow nią działającą niezależnie. Elektrow nia zapew nia niezakłóconą dostawę zamówionej m ocy, a użytkow nik otrzym uje i opłaca rachunki jed y n ie za energię rzeczyw iście w y ­ korzystaną. O dpow iednikiem elektrow ni je st outsourcm g centrów danych, czyli chm u­ ra obliczeniow a. Z arysow ana w cześniej ew olucja infrastruktury IT nie je s t je d y n ą ścieżk ą d o jścia do idei i im plem entacji chm ury obliczeniow ej. W rzeczyw istości w ielcy, średni, a naw et m ali gracze na rynku inform atycznym budują „pryw atne” chm ury, stosując różne tech­ nologie wirtualizacji, narzędzia do zarządzania różnego rodzaju serw eram i czy w reszcie w łasne techniki i koncepcje stw orzone na pod staw ie w ielu lat dośw iadczeń przy b u ­ dow ie i eksploatacji w łasnych system ów rozproszonych. L ata do św iad czeń z takim i w łaśnie system am i pozw oliły dostaw com chm ury lepiej zid en ty fik o w ać w ym agania przyszłych użytkow ników w takich obszarach, jak: skalow alność ro zw iązań, d ostęp­ ność i bezpieczeństw o aplikacji czy (najw ażniejsze) oczekiw ane rodzaje oferow anych usług. W efekcie, przyjm ując za kryterium rodzaj usług udostępnianych przez chm urę, m ożem y w yróżnić kilka rodzajów chm ur. K ażdy z nich m a trzy podstaw ow e cechy: ♦ zapew nia przestrzeń i bezpieczeństw o danych; ♦ zarządza środow iskiem rozproszonym i oferuje usługi za n ajn iższą cenę; ♦ zapew nia szybko skalow alne środow isko obliczeniow e. Tak napraw dę każda chm ura je st siecią w ielkich serwerowni, która dostarcza na żądanie pew nych usług, takich jak: m oc obliczeniow a procesorów , przestrzeń do składow ania danych, serw ery utrzym ujące aplikację czy też serw ery interfejsow e. N ajw ażniejszym elem entem je st tutaj hasło „na żądanie” . G dyby nie ten aspekt chm ury, niew iele ró ż­ niłaby się ona od zwykłej kolokacji, czyli wypożyczenia serwera u dostawcy na określo­ ny czas. W chm urze w szystkie te usługi m ożna zam ów ić kilkom a kliknięciam i. U sługi m o g ą być przygotow ane do startu i uruchom ione w ciągu kilku m inut, a naw et sekund. D odatkow o koszt tych u sług je st zdecydow anie m niejszy niż przy podejściu d otych­ czasow ym (budow a i utrzym anie w łasnej infrastruktury IT). Już teraz niekiedy korzystam y z serw isów i aplikacji osadzonych w chm urze, nie b ę­ dąc tego do końca św iadom ym i. T ypow ym i przykładam i są: G oogle G m ail, M icrosoft H otm ail czy w reszcie A m azon.com . O statnio naw et pakiet biurow y M S Office je st do­ stępny w w ersji przeglądarkow ej. W szystkie te aplikacje są osadzone w chm urach.

Podstawowe modele usług chmury Chm ura obliczeniow a m oże być pryw atna lub publiczna. Chm ura pryw atna to m c in ­ nego ja k pryw atne centrum danych ze w szystkim i tego konsekw encjam i dla właściciela, adm inistratora i zw ykłego użytkow nika, który korzysta z usług takiej chm ury. P rzeci­ w ieństw em chm ury pryw atnej są chm ury publiczne, które o feru ją użytkow nikow i trzy rodzaje usług:

10

Windows Azure. W prowadzenie do programowania w chmurze

♦ infrastrukturę j ako usługę dostępu do sprzętu (ang. Infrastructure as a Service, IaaS); ♦ platform ę jak o usługę (ang. P latform as a Service, PaaS); ♦ aplikację jak o usługę (ang. Softw are as a Service, SaaS). R y su n ek 0.1 p rze d staw ia p o ró w n a n ie za k resó w d ziała n ia u ży tk o w n ik a i do staw cy w pryw atnym centrum danych oraz w poszczególnych rodzajach usług.

S e rw e ry w tasne

r

Infrastruktura (jako usługa)

''

Platform a (jako usługa)

I

Aplikacje

Aplikacje

Środowisko

Środowisko

Środowisko

Bezpieczeństwo i integracja

Bezpieczeństwo i integracja

| Bezpieczeństwo i integracja^

Bazy danych

Bazy danych

Bazy danych

Bazy danych

Serwery

Serwery

Serwery

Serwery

Wirtualizacja

Wirtualizacja

Wirtualizacja

Wirtualizacja

Składowanie danych

Składowanie danych

Składowanie danych

Składowanie danych

Infrastruktura sieciowa

Infrastruktura sieciowa

Infrastruktura sieciowa

Infrastruktura sieciowa

ii.

Aplikacje

Softw are (jako usługa) Aplikacje

J

Środowisko n

Bezpieczeństwo i integracja

Rysunek 0.1. Rodzaje chmur z podziałem elementów na zarządzane przez użytkownika lub przez dostawcą chmury publicznej

Infrastruktura jako usługa to m c innego ja k w ypożyczanie sprzętu w chm urze. Z am iast kupow ania serw erów obliczeniow ych, serw erów do m agazynow ania danych, infrastruk­ tury kom unikacyjnej etc., dostaw ca chm ury po prostu w ypożycza te zasoby uży tk o w ­ nikow i. P ytanie zasadnicze: czym to się różni od zw ykłego w ypożyczenia serw era/ser­ w erów u jakiegoś dostaw cy u sług ko lokacyjny eh? W chm urze w ypożyczenie m ożna zrealizow ać kilkom a kliknięciam i i bez kosztów początkow ych. Jeśli decydujem y się na w ypożyczenie serw era w chm urze, zakładam y k onto na stronie dostaw cy, w y b ie­ ram y serw er/serw ery i po paru m inutach w irtualny system je st gotow y do pracy. U d o ­ stępniony, w irtualny system m ożem y w ykorzystać w dow olny sposób, np. załadow ać i utrzym yw ać aplikację, w ykonyw ać obliczenia etc. Jednak udostępnioną infrastrukturę m usim y sam i skonfigurow ać, w tym: zdefiniow ać zabezpieczenia, przygotow ać skła­ dow anie danych, załadow ać aplikację etc. Jeśli w ytw arzana aplikacja w ym aga m nego, licencjonowanego oprogramowania, to musimy je rów nież kupić i um ieścić na serwerze. P latform a jak o usługa to coś w ięcej niż tylko sprzęt do w ypożyczenia. Jest to całość składników od razu gotow ych do zbudow ania aplikacji, w tym: licencjonow anego opro­ gram ow ania, składow ania danych czy system u kom unikatów . P latfo rm a ja k o usługa um ożliw ia zbudow anie aplikacji lub serw isów , które m o g ą być używ ane w Internecie, bez potrzeby ściągania czy instalow ania j akichkolw iek program ów . N ależy zaznaczyć, że P aaS ogranicza użytkow nika do konkretnej platform y i u n iem o żliw ia p ó źn iejszą m igrację do m nego dostaw cy chm ury. Jednak platform a ja k o usługa daje dużo k o rzy ­ ści i często je s t w ybierana. Jednym z p rzykład ó w platform y je st W indow s A zu re — w tej książce zajm iem y się budow aniem aplikacji w łaśnie na tę platform ę.

W stęp

11

O program ow anie jak o usługa to autorskie rozw iązania/program y um ieszczone na ser­ w erach dostaw ców chm ury. D zięki tem u, że autorska aplikacja je st utrzym yw ana na serw erach dostaw ców , k lien t usługi m e m usi dbać o jej u ak tu aln ian ie i konserw ację. U suw aniem w szelkich błędów , aktualizacjam i aplikacji czy zapew nieniem jej nieprze­ rw anego działania zajm uje się dostaw ca chm ury. K lien t usługi SaaS płaci jed y n ie za czas użycia oprogram ow ania. Gdy go nie potrzebuje, to po prostu go nie używ a i m e płaci za me. W tym m odelu usług chm ury klient nie ponosi rów nież żadnych kosztów początkow ych, np. za licencje oprogramowania. W szystkie opłaty są w liczone w k o sz­ ty używ ania. Standardow ym i przykładam i oprogram ow ania ja k o u słu g i chm ury są różnego ro d za­ ju skrzynki e-m ailow e dostępne za p o m o cą przeg ląd arek , np. G m ail, H otm ail. Także M icrosoft oferuje szeroki w achlarz aplikacji internetow ych w spierających pracę b iu ro ­ w ą, np. M icrosoft O ffice Online. W szystkie aplikacje, które zbudujem y na platform ie W indow s A zure, w dużej m ierze m o g ą być w łaśnie u słu g ą SaaS. R y su n ek 0.2 p o k az u je zale żn o śc i m iędzy p o sz cz eg ó ln y m i m o d elam i. S o ftw a re as a Service zn ajduje się tutaj na samej górze, co o znacza, że fu n k cjo n u je przy uży ciu niższych m odeli. SaaS korzysta ze środow iska i usług PaaS, natom iast PaaS korzysta z infrastruktury dostarczanej przez w arstw ę IaaS. K oń co w i u ży tkow nicy, stosujący softw are istniejący w chm urze, w ogóle nie m a ją św iadom ości istnienia P aaS i IaaS. W ytw órcy aplikacji użytkujący platform ę m u sz ą znać jej architekturę, ale nie m u szą zapew niać ani obsługiw ać całej infrastruktury, k tó rą tw orzy w arstw a IaaS. Rysunek 0.2.

Zależności pom iędzy modelami typowej chmury obliczeniowej

T w ó rcy ap likacji

:i sie c io w i

R ysunek 0.3 przedstaw ia zakresy usług oferow anych przez poszczególne m odele chm u­ ry. Jeżeli w ynajm iem y in frastrukturę (IaaS ), skorzystam y głów nie z m ocy procesora i m agazynu danych. D ecydując się na PaaS, w ram ach subskrypcji dostaniem y specjal­ n ą platform ę do budow y rozw iązań inform atycznych. Platform a jak o usługa zapew nia w irtualne środow isko hostm gow e, oferujące w zasadzie d o w o ln ą m oc o b liczen io w ą i ilość m iejsca do przechow yw ania danych. Platform a, co oczyw iste, zapew nia rów nież niektóre licencjonow ane program y, których odrębnie nie kupujem y, a płacim y jed y n ie za ich w ykorzystanie. SaaS oferuje aplikację jak o usługę. U żytkow nik końcow y takiej aplikacji m e m a św iadom ości istnienia chm ury i zaw artych w niej w szystkich w arstw usługow ych.

12

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 0.3.

Zakresy usług poszczególnych modeli chmury

laaS

SaaS Logika b izn eso w a

O b liczen ia + m agazyn danych

P la tfo rm a

O b liczen ia + m agazyn danych

W dodatku G, „Dostawcy chm ur”, zamieszczono zestawienie największych dostaw ców chm ur z podziałem na pow yższe kategorie. Przykładow o: M icrosoft dostarcza platfo r­ m ę jak o W indow s A zure, a także rozm aite usługi SaaS, takie jak: ♦ W indow s L ive SkyD rive do w ym iany plików , dostępne z przeglądarki; ♦ O ffice 365 jak o pakiet program ów biurow ych dostępnych z przeglądarki; ♦ B PO S (ang. B u siness P ro d u ctivity O nline S u ite ) ja k o p ak iet n arzęd zi do kom unikacji i w spółdziałania pracow ników firm y z zapew nieniem w ysokiego bezpieczeństw a kom unikacji; ♦ W indow s Intune do uproszczenia zarządzania zestaw em w ielu kom puterów klienckich z poziom u specjalnej strony adm inistracyjnej.

Wady i zalety chmury W iele firm decyduje się na usługi chm ury p od w pływ em m o d y 5, często bez zastan o ­ w ienia się, czy będzie to miało dobry w pływ na ich pracę i efektyw ność ekonom iczną. Jednak, ja k każda now a technologia w inform atyce, C loud C om putm g m a sw oje za le­ ty i ograniczenia. Z alet je st sporo, a najw ażniejsze z nich to: ♦ Skalow alność i elastyczność. Zasoby w chm urze m ożna zm ienić bardzo szybko, reagując na dynam ikę zm ian potrzeb. D odatkow o nie płacim y za czas, w którym m e korzystam y z zasobów . W tradycyjnym podejściu trzeba m ieć zapew nioną infrastrukturę sprzętow ą, która je st w stanie obsłużyć każdy skok w zrostu popularności serwisu. Często też infrastruktura taka nie je st używ ana, gdy spada zainteresow anie serw isem . P roblem ten w chm urze

5 W 2008 roku dyrektor generalny firmy Oracle powiedział do swoich pracowników: Przem yśl informa­ tyczny to jed yn y przemysł, który bardziej kieruje się modą niż świat kobiecego ubioru [2],

W stęp

13

znika całkow icie; nie m a konieczności zakupu nadm iarow ego sprzętu, jeg o ulepszania, a w końcu ponoszenia w ydatków na jeg o p ó źn iejszą utylizację. ♦ D ostępność. G łów nym założeniem chm ury je st m ożliw o ść skorzystania z usługi poprzez dow olne urządzenie zap ew n iające dostęp do Internetu. M oże to być kom p u ter stacjonarny, laptop, u rząd zen ia m obilne, takie jak: kom órki, P D A (palm topy) czy tablety. ♦ W yd ajn ość. C hm ura oferuje m oc o b lic ze n io w ą n ie o sią g aln ą dla dow olnie rozbudow anej stacji roboczej czy serwera. W zrost obciążenia m e spow oduje w chm urze przestojów , co bezpośrednio przełoży się na efektyw ność działania. ♦ N iezaw odność. System y chm ury są zaprojektow ane tak, aby nie miały pojedynczego punktu awarii. W przypadku aw arii działania uszkodzonej m aszyny są autom atycznie, niezauw ażalnie dla konsum enta przejm ow ane przez inną. ♦ Ł atw ość zarząd zan ia. W szystkie m aszyny w irtu aln e zam ów ionej przez użytkow nika chm ury są osadzone w jak im ś system ie zarządzania dostaw cy u sług chm ury. Ich kontrola i zarządzanie m m i są w y konyw ane z jed n eg o m iejsca, co je st bardzo znaczącym ułatw ieniem . ♦ E k ologia. D ostaw cy chm ury lo k u ją sw oje centra d anych w m iejscach, w których je st najtańsza energia elektryczna czy też inne zasoby naturalne (paliw a, woda). D zięki organizacji działania centrów danych zasoby naturalne są w ykorzystyw ane najefektyw niej, ja k to m ożliw e, co na pew no pośrednio w pływ a pozytyw nie na środow isko. O graniczeń je st m niej, ale niektóre m o g ą być ważne: ♦ Bezpieczeństw o. D ostaw cy chm ury zapew n iają użytkow ników o całkow itym bezpieczeństw ie danych um ieszczonych w chm urze. N ie m ożna je d n ak zapom inać, że tak napraw dę nie mamy nad m m i kontroli. System zarządzający ch m u rą m oże zdecydow ać, że nasze dane zo sta n ą u m ieszczo n e na serw erze w zupełnie innej części globu. M ożem y nigdy nie dow iedzieć się, gdzie się one znajdują, choć b ęd ą dostępne z każdego m iejsca na świecie. D la niektórych aplikacji brak kontroli nad danym i lub ich lokalizacją je st m e do przyjęcia. ♦ R am y praw ne. W iele państw m a przepisy, które zab ran iają przechow yw ania danych osobow ych ich obyw ateli poza granicam i danego państw a. W szczególności U nia E uropejska nakłada na państw a członkow skie takie w ym ogi. N a szczęście dostaw cy chm ury rea g u ją na takie o graniczenia i oferu ją m ożliw ość w ybrania obszarów geograficznych, do których m o g ą trafić nasze dane. ♦ Prędkość połączenia internetowego. W szystkie usługi chm ury s ą dostarczane przez Internet. A byśm y z nich kom fortow o korzystali, nasze łącze internetow e m usi m ieć określone param etry. W niek tó ry ch rejo n ach św iata je s t to dosyć kłopotliw a bariera przy korzystaniu z usług chm ury.

14

Windows Azure. W prowadzenie do programowania w chmurze

Typowe scenariusze biznesowe Jest pew na grap a aplikacji i przedsięw zięć, któ re w szczególny sposób m o g ą zyskać na korzystaniu z m odelu usług „na żądanie” , najw ażniejszej cechy chm ury: ♦ P rzew id yw any szybki w zrost popularności. W yobraźm y sobie znaczące inw estycje w infrastrukturę, ja k ie m usiały poczynić firm y w chodzące na rynek, gdy przew idyw ały, że w krótce ich serw is będzie bardziej popularny. C hm ura to całkow icie zm ienia. Z am iast p onosić koszty nadm iarow ego sprzętu, który na początku praw dopodobnie nie będzie w ykorzystyw any w pełni, m ożna w dow olnej chw ili zam ów ić w iększe zasoby w chm urze. Z m niejsza się rów nież ryzyko niepow odzenia i strat zw iązanych z projektem . Jeśli prognozy firm y dotyczące popularności serw isu o k azu ją się niesłuszne, po prostu rezygnuje ona z nadm iarow ych serwerów. ♦ Syndrom N aszej-K lasy. C zasem okazuje się, że autorzy nie przew idzieli nagiego w zrostu popularności portalu. W Polsce taki przypadek zdarzył się na serw isie społecznościow ym N asza-K lasa, n ato m iast na św iecie znany je st ja k o „efekt F aceb o o k a” . Jeżeli następ u je skok p o pularności, co je st oczyw iście korzystne dla sam ego serw isu, m oże się to skończyć pow ażnym i problem am i technicznym i spow odow anym i przeciążeniem łączy i sprzętu. W efekcie zniechęceni słabą dostępnością klienci od w racają się od takiej w itryny. C hm ura gw arantuje nam , że taki scenariusz nie skończy się k lęsk ą urodzaju. Ilustracją tego je st rysunek 0.4. W klasycznym podejściu m usim y zainw estow ać w infrastrukturę, która na początku często nie je st w ykorzystyw ana. Przy w zroście popularności (i rów nocześnie obciążenia) dokupujem y kolejne serwery. W pew nym m om encie następuje gw ałtow ny skok p o pularności i m ożem y nie zdążyć n a czas ulep szy ć infrastruktury — w tedy dochodzi do p rzeciążenia serw erów i łączy kom unikacyjnych, w efekcie czego użytkow nicy trac ą zainteresow anie. Rysunek 0.4.

In fra s tru k tu ra

Wykres ilustrujący klasyczne podejście do problem u nagłego wzrostu popularności

CZAS

W stęp

15

♦ C ykliczne lub tym czasow e obciążenie. C hm ura rów nież idealnie spraw dza się w przypadku firm , które dokładnie w iedzą, w ja k im czasie b ęd ą potrzebow ać zw iększonych zasobów . P rzykładem m oże być dział finansow y, który na koniec m iesiąca oblicza pensje, albo system analizujący w ahania giełdow e w trybie com iesięcznym . Z w ykła u trzy m y w an a przez firm ę serw erow nia byłaby w ów czas w ykorzystyw ana w sposób m ało efektyw ny. K orzystając z usług chm ury, m ożem y to cykliczne spodziew ane obciążenie łatw o zaplanow ać i obsłużyć.

Odbiorcy książki K siążka ta je st przeznaczona dla szerokiego kręgu zaw odow o czynnych inform atyków , głów nie program istów. Jednak w ybrane jej fragm enty, w szczególności z części p ierw ­ szej, pow inny zainteresow ać rów nież architektów system ów , m enedżerów IT, a naw et dyrektorów ds. finansow ych firm i przedsiębio rstw z ro zb u d o w an ą infrastrukturą IT. Pow odem tego zainteresow ania m oże być konieczność redukcji lub optym alizacji kosz­ tów tej infrastruktury i dopasow ania jej do zm ieniającej się „rzeczyw istości inform a­ tycznej” . N atom iast czynnych zaw odow o inform atyków i studentów inform atyki p o ­ w inny zainteresow ać przykładow e aplikacje opisane w k o lejn y ch częściach książki. U czytelników tej kategorii zakładamy znajomość koncepcji programowania obiektow e­ go, podstaw ow ą znajom ość języka C#, technologii A SP.N ET oraz tem atyki baz danych. W kolejnych rozdziałach zaczniem y przygodę z p latfo rm ą W indow s Azure. P rzejdzie­ my drogę od om ów ienia koncepcji platform y W indow s A zure i składników jej archi­ tektury, poprzez założenie konta i subskrypcję u słu g w chm urze, aż do w ytw orzenia i um ieszczenia w chm urze W indow s A zure trzech aplikacji. P rzykład pierw szy to aplikacja o nazw ie K alkulator. P rzed je g o rea liza cją opiszem y kroki niezbędne do założenia konta w usłudze W indow s Live, etapy w yboru i subskryp­ cji usług chm ury oraz m echanizm y zarządzania subskrybow anym i usługam i. W ażnym elem entem pierw szego przykładu są rów nież kroki niezbędne do skonfigurow ania śro­ dow iska program istycznego V isual Studio 2010 oraz W indow s A zure SDK. P opraw ­ nie skonfigurowane środowisko program istyczne um ożliw ia testow e uruchom ienie w y ­ tworzonej aplikacji, a następnie um ieszczenie jej w chm urze obliczeniowej. K alkulator to prosta dem onstracyjna aplikacja w technolo g ii A SP.N E T . W ytw orzenie, u m ie sz­ czenie i uruchom ienie tej aplikacji w chm urze A zure nie pow inno spraw iać trudności żadnem u programiście. W ystarczy, że zna on platform ę .NET i języ k C# w stopniu ele­ m entarnym i będzie postępow ał zgodnie ze scenariuszam i w postaci sekwencji kliknięć i szczegółow o podanych poleceń. B ardziej w ym agające są dw a kolejne przykłady — serw isy M oja-M uzyka oraz M oje-Zdjęcia. Serw is M oja-M uzyka w ykorzystuje różne form y m agazy n o w an ia danych oferow ane przez A zure Storage i działa z wykorzystaniem dwóch ról (typów w irtualnych serwerów).

16

Windows Azure. W prowadzenie do programowania w chmurze

Instancje ról kom unikują się z wykorzystaniem A zure Queues, przechow ują obiekty m ul­ tim edialne A zure B lobs oraz składują niew ielkie dane strukturalne A zure Tables. S ą to w ażne i dość zaaw ansow ane konstrukcje oferow ane przez platform ę W indow s A zure. Serwis M oje-Z djęcia ilustruje w y korzystanie bazy danych SQL A zure do składow a­ nia danych relacyjnych. A plikacja je st zbudow ana na podstaw ie w zorca projektow ego M V C , F ram ew ork A SP.N E T M V C 3 oraz E ntity F ram ew ork 4.1 z obiektam i POCO.

Rozdział 1.

Platforma Windows Azure Platform a W indow s A zure to zasadniczo usługa w chm urze typu PaaS (ang. Platform as a Service). Swój projekt chm ury M icrosoft oparł na trzech strategicznych założeniach: 1. Chm ura m usi zapew niać m ożliw ość uruchom ienia dow olnego kodu dostarczonego przez użytkow nika — oferow ać m oc obliczeniow ą. 2. Chm ura m usi zapew niać m ożliw ość m agazynow ania różnych typów danych i dostępu do nich. 3. U sługi (serw isy) um ieszczone w chm urze m u szą być łatw o dostępne. Platform a W indow s A zure spełnia w szystkie w ym ienione założenia i składa się z trzech podstaw ow ych kom ponentów : 1. W in dow s A zure — system operacyjny chm ury, czyli środow isko do zarządzania autom atyzacj ą pracy w irtualnych środow isk z m ożliw ością w ykonyw ania w nich obliczeń i z dostępem do danych nierelacyjnych. 2. W indow s A zure A ppFabric — podsystem z dw om a kom ponentam i w postaci szyny danych (ang. Service B u s) i kontrolera dostępu (ang. A ccess Control)', oba kom ponenty um ożliw iająh o sto w an ie złożonych aplikacji, um ieszczonych całkow icie lub częściow o w chm urze i/lub połączonych poprzez chm urę. 3. SQ L A zure — dostępna w chm urze relacyjna baza danych oparta na system ie M icrosoft SQL Server. R ysunek 1.1 pokazuje te kom ponenty oraz ich otoczenie. Projektanci aplikacji w draża­ nych do chm ury A zure w ytw arzają je najczęściej za p o m o cą V isual Studio 2010 (w y­ m aga doinstalow ania A zure SDK — nie w idać go na rysunku). Podstaw ow ym i ję z y k a ­ m i takich aplikacji są C# i VB, je d n ak nic nie stoi n a przeszk o d zie, aby w ykorzystać w tym celu PH P lub Javę i środow isko E clipse. U żytkow nicy aplikacji m a ją do niej dostęp za pośrednictw em Internetu i urządzeń dostępow ych w postaci: k om puterów stacjonarnych, m obilnych, sm artfonów etc. W spółczesne aplikacje w ebow e nie przesyła ją d o urządzeń tylko dokum entów H TM L, ale często m u szą w ym ieniać dane w form a­ tach JS O N czy X M L w ym aganych przez różne technologie klienckie, takie jak: A jax, S ilverlight lub natyw ne aplikacje smartfonów. W takim przypadku naturalnym ro zw ią­ zaniem je st protokół REST.

18

Windows Azure. W prowadzenie do programowania w chmurze

Tw oja a plikacja w ch m urze

O O Visual Studio | Programiści |------

Użytkownicy końcowi

• 1 i inne języki

Rysunek 1.1. Komponent}’platform y Windows Azare

W arto zauw ażyć, że aplikacja m oże być całkow icie hosto w an a w chm urze, ale m o ż­ liw e są rów nież rozw iązania hybrydow e. O znacza to, że aplikacja je st częściow o h o ­ stow ana w chm urze w tym sensie, że w spółdziała z w cześniej w ytw orzonym o p ro g ra­ m ow aniem , które stanow i jej in te g raln ą część. K o m u n ik acja m iędzy tym i częściam i aplikacji m oże w ykorzystyw ać rozm aite form aty i protokoły, w tym: X M L , SOAP czy R EST . M ożliw y je s t je szc ze inny scenariusz zasto so w an ia chm ury — je s t ona tylko pośrednikiem m iędzy aplikacjam i um ieszczony m i p o za n ią i/lub m iędzy aplikacjam i a użytkow nikam i. R ysunek 1.2 przedstaw ia dokładniejszy podział platform y W indow s A zure. W dalszej części (rozdział 2., „M agazynow anie danych w W indow s A zure”) opisano zasadnicze cechy kom ponentów W indow s A zure, W indow s A zure A ppF abric oraz SQL A zure. Szczegółow y opis bardziej złożonych zagadnień, w tym podsystem u m agazynow ania danych W indow s A zure (A zure Storage) oraz SQL A zure, znajduje się w rozdziale 3., „Przygotow ania do utw orzenia pierw szej aplikacji w W indow s A zure” .

Platforma Windows Azure W indows Azure

SQL Azure

W indow s Azure AppFabric

D ane

K o n tro la

re la c y jn e

d o s tę p u

Rysunek 1,2. Dokładniejszy podział platform y Windows Azare

Rozdział 1. ♦ Platforma Windows Azure

19

1.1. Windows Azure W indow s A zure to sw oisty system operacyjny, który zapew nia hostow anie aplikacji w ro zproszonych centrach danych, u trzym yw an y ch i zarząd zan y ch p rzez M icrosoft. H ostow ana aplikacja, niekoniecznie w ebow a, je st — z pow odu redundancji — w w y ­ sokim stopniu „zaw sze” dostępna, łatw o skalow alna i m oże być urucham iana „na ż ą ­ danie” przez różne program y klienckie funkcjo n u jące w środow isku Internetu. Cala p la tfo rm a w sp ie ra ró żn e p o p u la rn e standardy , ję z y k i i p ro to k o ły , ta k ie jak : SO A P, R EST , X M L czy PHP. N a poziom ie architektury w system ie W indow s A zure w y ró ż­ niono cztery podstaw ow e kom ponenty: ♦ kontroler zarząd zan ia (ang. F abric C ontroller), ♦ obliczenia (ang. C om pute), ♦ p rzestrzeń dla m agazynu danych (ang. A zu re Storage), ♦ sieć C D N (ang. C ontent D elivery N etwork).

1.1.1. Kontroler zarządzania Z ch w ilą w dro żenia aplikacji do chm ury k on troler za rzą d za n ia przejm u je nad m ą pieczę w celu zapew nienia jej niezaw odnego działania i optym alizacji pracy w chm u­ rze. P rzykładow o: gdy w ykryje aw arię aplikacji, to autom atycznie p ow oła do życia now e instancje tej aplikacji. D o kodu aplikacji podczas w drażania je st dodaw ana metainform acja, zw ana także m odelem u sługi (ang. service m odel) lub k onfiguracją apli­ kacji. K ontroler zarządzania używ a m odelu usługi w celach: rozm ieszczenia aplikacji na zbiorze w ęzłów obliczeniow ych, zestaw ienia w szelkich połączeń sieciow ych, skon­ figurow ania komponentu do równoważenia obciążeń (ang. L o a d Balancer) czy w reszcie nadzorow ania cyklu życia aplikacji. K ontroler zarządzania działa autom atycznie i m e je st dostępny dla użytkow nika końcow ego. Jednak program ista poprzez udostępniony interfejs M anagem ent A PI m oże, choć w ograniczonym zakresie, zarządzać aplikacją i np. m onitorow ać jej działanie.

1.1.2. Obliczenia D o dokonyw ania w szelkiego rodzaju obliczeń niezb ęd n e są kom putery w yposażone w system y operacyjne. Te dw a składniki m ożna trak to w ać łącznie jak o w arstw ę, k tó ­ ra dostarcza m oc o b lic z e n io w ą W W indow s A zure m oc obliczeniow a je st dostępna w postaci p rekonfigurow anych m aszyn w irtu alnych. D okładniej je st to środow isko H yper-V osadzone na kom puterach z system em W indow s Server 2008 i procesoram i x64. K ażda aplikacja lub usługa w ebow a hostow ana w W indow s A zure m oże istnieć w w ielu instancjach. M echanizm autom atycznego tw o rzen ia in stan cji zapew nia n ie ­ z b ę d n ą elastyczność działania na w ypadek zarów no aw arii, ja k i gw ałtow nie zw ięk ­ szonego obciążenia.

20

Windows Azure. W prowadzenie do programowania w chmurze

W W indow s A zu re k ażd a m aszy n a w irtu aln a m oże o dgryw ać je d n ą lub w ięcej ról (ang. roles). R ola m oże być utożsam iana z trybem pracy m aszyny w irtualnej w W in ­ dow s A zure. D w a podstaw ow e tryby pracy to W eb R ole oraz W o rk er Role. Pierw szy je st trybem hostow ania aplikacji, która zaw iera interfejs użytkow nika, a kom unikacja je st realizow ana za p om ocą protokołu H TTP. Z w ykorzystaniem tej roli (typu serw era w irtualnego) m o g ą być urucham iane aplikacje: A SP.N E T , A SP.N E T M V C , PH P czy też usługi W CF. Jeśli aplikacja została skonfigurow ana tak, że do działania w ym aga w ielu ról Web R ole, to kontroler zarządzania (ang. F abric C ontroller) um ieści aplika­ cję na m aszynach w irtualnych z zainstalow any m IIS. D ruga ro la m a rów nież dosyć szerokie zastosow anie. Jak sam a nazw a w skazuje, je st to robotnik (ang. w orker), k tó ­ ry m e m a interfejsu użytkow nika i działa w tle. W orker R o le działająca w tle m oże przyjm ow ać zlecenia od Web R ole i przetw arzać je z zastosow aniem różnych m odeli interakcji. P rzykładow o Web R ole m oże być źró d łem ko m u n ik ató w i um ieszczać je w m agazynie danych. W orker R ole m oże pob ierać kom unikaty z m agazy n u danych i dalej je przetw arzać. N ależy pam iętać, że zarów no W eb R o le, ja k i W orker R o le to typy m aszyn w irtualnych w W indow s A zure. N a ich p o d staw ie aplikacja d ziałająca w chm urze tw orzy dow o ln ą liczbę instancji ról. Instancje ról m o g ą być dynam icznie dodaw ane i usuw ane. S ą p o d staw ą dynam iczne­ go skalow ania aplikacji.

1.1.3. Dane R elacyjne bazy danych są znane i stosow ane od w ielu lat i duża część program istów w ykształciła w sobie naw yk składow ania i dostępu do danych tylko w ten sposób. Jed­ nak w raz z rozw ojem Internetu p o ja w iają się now e rodzaje aplikacji, w których dane niekoniecznie m u szą być ograniczone w ięzam i relacji. P rzykładem m o g ą być aplika­ cje w rodzaju albumu zdjęć, m uzyki, film ów czy też aplikacje, które k o lejk u ją n ad ch o ­ dzące żądania w celu ich późniejszego przetw orzenia. A by sprostać tym potrzebom , W indow s A zure zaw iera usługę A zure Storage. Jest to po prostu przestrzeń m agazynow a, która oferuje m ożliw ość składow ania tekstu i d a­ nych binarnych, składow ania danych p ó łstruktu raln y ch z m o żliw o ścią ich przeszu k i­ w ania czy w reszcie kolejkow ania danych i niezaw odnego przekazyw ania ich m iędzy usługam i. P rzestrzeń ta składa się z następujących elem entów : ♦ A zure B lobs — przestrzeń przeznaczona dla danych typu blob (ang. binary large object), czyli zdjęć, dźw ięków czy filmów. W obiektach typu blob m ożna rów nież um ieścić plik w ykonyw alny czy dysk w irtualny (rozszerzenie ,vhd, często w ykorzystyw ane w program ach um ożliw iających paraw irtualizację, np. M icrosoft Virtual PC), a następnie odw ołać się do nich ja k do dysku lokalnego. ♦ A zure T ables — przestrzeń przeznaczona dla dw óch rodzajów danych: tabel haszow ych zn anych z ję zy k a C# oraz struktur p o d o b n y ch do list, które um ożliw iają składow anie danych półstrukturalnych. ♦ A zure Q ueues — system zarządzania kom unikatam i. Z apew nia niezaw odny m echanizm asynchronicznego przetw arzania kom unikatów i w ten sposób je st p odstaw ą budow ania luźno pow iązanych system ów .

Rozdział 1. ♦ Platforma Windows Azure

21

K ażde z pow yższych pojęć oraz SQL A zure opisano dokładniej w rozdziale 2., „M a­ gazynow anie danych w W indow s A zure” .

1.1.4. Sieć CDN N a uw agę zasługuje rów nież sieć CD N , która p o jaw iła się na rysunku 1.2 jak o k o m ­ ponent W indow s A zure. CD N to akronim nazw y C ontent D elivery N etw ork. Jest to globalna sieć firm ow ych centrów danych (ang. D a ta C en ters) utrzym yw anych przez M icrosoft, oferująca replikację często żądanych zasobów do routerów brzegow ych na całym św iecie. W ten sposób m inim alizuje się czas d o starczan ia zaso b u do klienta. Opcję CD N m ożna w łączyć w każdej chw ili z portalu zarządzającego. W ciągu godziny od jej w łączenia dane pow inny zostać rozprow adzone, zapew niając najlepsze tran sfe­ ry w każdym m iejscu na Ziemi. U sługa je st odpłatna, należności są pobierane za każdy transfer do w ęzłów brzegow ych. Jeśli projektow any serw is m a działać tylko w o g ra­ niczonym rejonie geograficznym , to usługa ta je st nieopłacalna. Sposób w łączenia CD N opisano w dalszej części książki.

1.2. Windows Azure AppFabric W indow s A zure A ppF abric oferuje dw ie usługi: zapew nia m echanizm y kontroli d o ­ stępu do zasobów oraz um ożliw ia kom unikację w ielu w spółpracujących ze so b ą h ete­ rogenicznych bądź hom ogenicznych system ów inform atycznych. System y w sp ó łd zia­ łające w ram ach aplikacji m o g ą być um ieszczone całkow icie w chm urze lub są poprzez n ią połączone. U sługi te m ożna scharakteryzow ać następująco: ♦ kontrola dostępu (ang. A ccess Control) — A ppFabric udostępnia program istom m echanizm y kontroli dostępu, które w zn aczn y m stopniu u ła tw iają im plem entację skom plikow anych scenariuszy uw ierzytelniania użytkow ników , ja k również takich, w których w ykorzystuje się zew nętrzne systemy zarządzania tożsam ością, np. A ctive D irectory. M echanizm y kontroli dostępu o p ierają się na otw artych standardach i są niezależne od platform y i technologii. ♦ szyna danych (ang. Service B us) — kom ponent, który zapew nia kom unikację dw óch lub w ięcej różnych, niezależnych system ów inform atycznych. O becnie częstym problem em je s t k onieczność skom unikow ania system ów różnych p artnerów czy organizacji poprzez sieć p u b lic z n ą Szyna d anych d ostarcza rozw iązania, które w sposób łatwy i bezpieczny zapew niają takie połączenie.

1.3. SQL Azure SQL A zure je st u słu g ą p rzezn ac zo n ą dla aplikacji, które w y m ag ają relacyjnego skła­ dow ania danych. U sługa ta je st oparta na znanych i spraw dzonych technologiach W in ­ dow s Server i SQL Server. W centrach danych M icrosoftu zostały zainstalow ane ser­ w ery o olbrzym ich m ocach i p o jem nościach i każdy su bskrybent usługi SQL A zure

22

Windows Azure. W prowadzenie do programowania w chmurze

m oże utw orzyć w nich dow olną liczbę baz danych w ym aganych w projektowanej apli­ kacji. Tak ja k inne usługi platform y W indow s A zure, usługa SQL A zure charaktery­ zuje się w y so k ą skalow alnością, dostępnością i poziom em bezpieczeństw a. Inne w aż­ ne cechy tej usługi to łatw e zarządzanie i znany m o d el program ow ania. SQL A zure udostępnia usługi do zarządzania zarów no instancjam i SQL Server, ja k i instancjam i baz danych, natom iast m odel program ow ania opiera się na system ie TDS i języ k u z a ­ pytań T-SQL. Silnik relacyjnej bazy danych w chm urze W indow s A zure działa na b a ­ zie technologii W indow s SQL Server. S ą tutaj pew ne różnice i ograniczenia. W chw ili pisania tej książki ograniczenia SQL A zure dotyczyły m iędzy m nym i górnego lim itu pojem ności pojedynczej bazy danych, który w ynosi 50 GB. Z tego pow odu w n iek tó ­ ry ch p rzypadkach b azę należy podzielić np. w ed łu g alfabetu (klucz głów ny m iędzy A - L w jednej bazie i M - Z w drugiej). Taki podział pow oduje bardziej skom plikow a­ ny m odel kom unikacji m iędzy b a z ą a aplikacją. Jednak w raz z podziałem bazy zw ięk ­ sza się w ydajność odczytu i łatw iejsza je st realizacja skalow alności, co było celem ar­ chitektów SQL Azure.

1.4. Opłaty za korzystanie z platformy P latform a W indow s A zure m a praw ie sam e zalety. Jedynym m ankam entem je s t k o ­ nieczność w noszenia opłat za korzystanie z różnych jej składników . O płaty są n alicza­ ne w pięciu kategoriach: ♦ m oc obliczeniow a, ♦ w ielkość zajm ow anej pam ięci w m agazynie danych A zure Storage, ♦ transfer danych z chm ury, ♦ w ielkość bazy SQL A zure, ♦ liczba transakcji i połączeń z W indow s A ppFabric. M oc o b liczen io w a je s t w y rażan a w ro zlicze n io w y ch g o d zin ach p racy k o n fig u ra cji E xtra Sm all przydzielan y ch oprogram ow aniu. P latfo rm a W indow s A zure ogranicza ofertę do pięciu p re d e fin io w a n y ch k o n fig u ra cji w irtu aln y ch środow isk (tabela 5.1) różniących się np. liczb ą procesorów czy dostęp n ą p am ięcią operacyjną. P o d staw o w ą je d n o stk ą rozliczeniow ą je st godzina pracy konfiguracji Extra Small, na k tó rą są p rze­ liczane pozostałe w ydajniejsze prekonfigurow ane środow iska. Tabela przeliczeniow a je st dostępna w raz z aktualnym cennikiem . Opłaty za m agazynow anie danych w A zure Storage są naliczane w gigabajtach zajętej pam ięci przez miesiąc. Ponadto dodatkowej opłacie podlega liczba transakcji do A zure Storage. Transfer danych z chm ury je st to ilość danych pobieranych przez użytkow ników w ra ­ m ach w szystkich n aszych aplikacji i k ont A zure Storage. Jeśli p rojektow any serw is czy aplikacja b ę d ą udostępniały dużo zasobów do pobrania lub jeśli b ę d ą intensyw nie kom unikow ały się z usługam i poza chm urą A zure (transfery w ew nątrz chm ury są dar-

Rozdział 1. ♦ Platforma Windows Azure

23

m ow e), m oże to być dosyć kosztowne. W arto rów nież w spom nieć, że transfer w ejścio­ w y do chm ury je st bezpłatny. Opłaty za SQL A zure są n aliczane na p odstaw ie w ielk o ści i typu bazy. M ożliw y je st w ybór baz o różnym predefiniow anym rozmiarze. Liczba transakcji do SQL A zure nie podlega opłatom . Opłaty za W indow s A ppFabric są naliczane za liczbę transakcji zw iązanych z k o n tro ­ lą u w ierzytelniania użytkow ników czy z lic zb ą połączeń dokonyw anych z w yk o rzy ­ staniem szyny danych. Aktualny cennik je st dostępny pod adresem: h ttp ://w w w . 7n ic r o so ft.c o m /w in d o w sa zu r e / o jfers/. Jest on często aktualizow any i zdarzają się okresy prom ocyjne, o których klient platform y je st inform ow any e-m ailem . O sobną ofertę stanow ią pakiety godzin, często sprzedaw ane łącznie z określonym typem i w ielk o ścią przestrzeni m agazynu danych. W ram ach pakietu ceny jednostkow e usług są zw ykle niższe od standardow ych.

24

Windows Azure. Wprowadzenie do programowania w chmurze

Rozdział 2.

Magazynowanie danych w Windows Azure P rzechow yw anie inform acji zaw sze było i pozostanie niezbędnym elem entem k ażd e­ go program u czy system u inform atycznego. K ażd a n ie try w ialn a ap lik acja k o rzy sta z jakiegoś system u plików lub z bazy danych. P rojektując aplikację przed erą chm ury, przyjm ow ało się, że system p lików znajduje się na serw erze aplikacji. Jeśli aplikacja m iała korzystać z bazy danych, to trzeba było zakupić lub w ynająć dedykow any ser­ w er dla takiej bazy danych. Przy w iększych aplikacjach często należało zaprojektow ać solidny, rozproszony system m agazynow ania danych. W przypadku dużych aplikacji budow a dedykowanej infrastruktury do m agazynow ania danych m e je st ani prosta, ani tania. W ręcz przeciw nie: inw estow anie w infrastrukturę w iąże się z dużym i kosztam i. Chm ura zasadniczo zm ienia w ym agania dotyczące infrastruktury i m echanizm y m ag a­ zynow ania danych. W architekturze W indow s A zure za m agazyn o w an ie d anych o d pow iada p odsystem A zure Storage, w którym w yróżniono usługi: A zure Tables, A zure B lobs oraz A zure Queues. W chm urze A zure, pod n azw ą SQ L A zure, je st dostępna rów nież usługa re ­ lacyjnej bazy danych oparta na technologii M S SQL Server. W szystkie w ym ienione sk ład n ik i system u m a g az y n o w a n ia d an y ch w ch m u rze A zu re o p isan o w k o le jn y ch punktach tego przeglądow ego rozdziału. Ostatnim jego punktem je st zagadnienie dysku w irtualnego osadzonego w A zure B lobs, który m oże funkcjonow ać jak o dysk lokalny aplikacji.

2.1. Azure Storage Chm ura w ym aga od aplikacji specyficznej architektury. Przede w szystkim stan apli­ kacji m usi być przechow yw any w m iejscu, któ re zap ew n i je g o u trzy m an ie n aw et po aw arii w irtualnej m aszyny. R ozw iązaniem je st A zure Storage, czyli składnica danych, która oferuje m ożliw ość składow ania tekstu i danych binarnych, składow ania danych półstrukturalnych (nierelacyjnych) z m ożliw ością ich przeszukiw ania czy w reszcie k o ­ lejkow ania danych i niezaw odnego przekazyw an ia ich m iędzy usługam i. W szystko,

26

Windows Azure. W prowadzenie do programowania w chmurze

co zostanie zapisane w A zure Storage, nie będzie u traco n e po ja k iejk o lw iek awarii. D latego A zure Storage je st idealnym m iejscem do przechow yw ania danych k ształtu ­ jący ch aktualny stan aplikacji. A zure Storage je st zaprojektow ana specjalnie dla chm ury A zure, co spraw ia, że m a podstaw ow ą zaletę, ja k ą je st skalowalność. D opóki aplikacja je st niew ielka, tradycyjne rozw iązania składow ania danych spraw dzają się całkiem dobrze. Problem pojaw ia się przy w iększych, bardziej skom plikow anych systemach, w których dotychczasow e m e­ tody stają się nieefektywne. A zure Storage dostarcza now ych technik i koncepcji, które pow odują, że aspekt skalow alności i w ydajności je st prostszy do zaim plem entow ania. K ażda z trzech usług A zure Storage je st przeznaczona dla m nego rodzaju danych. P o ­ niżej krótko je opisujem y: ♦ A zure T ables — przechow uje strukturalne dane tabelo w e w m odelu E A V (ang. E ntity-A ttribute-V alue). M aksym alna w ielkość w szystkich atrybutów jednej encji to 1MB. E ncje m ożna pogrupow ać w partycje, z których każda m oże być przechow yw ana w innym w ęźle chm ury A zure. K ażda tabela m a unikatow y identyfikator o postaci: http://< nazw a konta> .table.core. wm dow s.net/. ♦ A zure B lobs — przechow uje niestrukturalne dane w postaci plików . Bloby przechow uje się w kontenerach. K ontenery m e m o g ą być zagnieżdżane, ale je śli byłby nam potrzebny hierarchiczny system plików , m ożna przeprow adzić jeg o sym ulację, nadając odpow iednią nazw ę blobom . K ażdem u kontenerow i i blobow i m ożna nadać praw a p ryw atne lub publiczne. K ażdy b lob m a unikatow y identyfikator o postaci: http://< nazw a J io n ta > .blob.core.w indows. net/< nazw a kontene ra>/< nazw a b l o ba>. ♦ A zure Q ueues — przechow uje kom unikaty, których źródłem są dow olne procesy i usługi z chm ury lub spoza chm ury. K olejka m oże przechow yw ać n ieograniczoną liczbę kom unikatów . R ozm iar pojedynczego kom unikatu m e m oże przekraczać 8 KB. W procesach stosow anych do pobierania lub usuw ania kom unikatów z kolejek je st zaim plem entow any specjalny algorytm , który zapobiega przypadkow em u zgubieniu kom unikatu. K ażda kolejka m a unikatow y identyfikator o postaci: http://< nazw a_konta> .queue.core, w indow s.net/< nazw a kolejki> . W kolejnych podrozdziałach podano w ięcej szczegółów na tem at każdej z usług.

2.1.1. Bezpieczeństwo danych w Azure Storage Jednym z n ajcz ęstszy c h i n ajw a żn iejsz y ch w y m agań staw ianych przed działam i IT firm i instytucji je st dostępność oferow anych p rzez nie u słu g 7 dni w tygodniu, 24 h na dobę. Z aw sze tow arzyszy tem u żądanie niezaw o d n o ści, czyli gw arancji, że dane przechow yw ane w bazach nie m o g ą pod żadnym pozorem być utracone. A by p rzy b li­ żyć się do spełnienia tego ostatniego postulatu, architekci rozw iązań pow szechnie sto­ su ją serw ery replikujące lub m echanizm y tw orzenia i odzyskiw ania kopii zapasow ych. N ie inaczej je st w W indow s Azure.

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

27

A by zapew nić dostępność i niezaw odność, w szystkie dane um ieszczone w A zure Storage są z reguły replikow ane co najm niej trzy razy w różnych dom enach aw arii1 (ang. F a u lt Domairi). O peracja zapisu nie je st zakończona, dopóki nie zo stan ą zapisane trzy kopie. G w arantuje to, że naw et gdy dw a centra z danym i aplikacji je d n o cześn ie u le ­ g n ą aw arii — co ju ż je s t m ało praw dopodobne — to aplikacja cały czas będzie d zia­ łała dzięki trzeciej kopii danych, znajdującej się w m nym centrum . Gdy system w y ­ kryw a aw arię, b rakujące repliki są autom atycznie odtw arzan e w ko lejn y ch centrach danych. P onadto system A zure w ykorzystuje te rep lik i do szybszego, ró w noległego odczytu danych.

2.1.2. Azure Tables W zasadzie w szystkie istniejące na rynku aplikacje p o trzeb u ją m echanizm ów zap ew ­ niających skuteczne i bezpieczne przechow yw an ie d anych w p ro w ad zan y ch do apli­ kacji. D zisiejszym standardem są relacyjne bazy danych. O statnio p o ja w iają się m ne podejścia, które rozw iązują niektóre problem y w ystępujące przy ich relacyjnych odpo­ w iednikach. Przykładem je st składow anie danych strukturalnych w sposób m erelacyjny, który znacząco poszerza m ożliw ość skalow alności. Jednak żadne rozw iązanie m e je s t idealne ani najlepsze. D ecyzja, które w ybrać, zależy od k o nkretnego przypadku, a dokładniej: od charakterystyki projektow anej aplikacji. N iekiedy bardzo dobre efekty daje hybryda obydw u rozw iązań, tj. relacyjne i nierelacyjne składow anie danych. A zure T ables je s t łatw o skalow alną, n ie re la c y jn ą stru k tu rą do składow ania danych w chm urze A zure. M oże w spom óc bazę relacy jn ą lub całkow icie przejąć jej rolę. Z o ­ stała zaprojektow ana głów nie z m y ślą o architekturze chm ury. Jej w y ró żn ik iem je st w yjątkow a skalow alność, naw et przy ogrom n y ch ilościach w p ro w ad zan y ch danych (w edług zapew nień projektantów — naw et w ilościach liczonych w m iliardach rek o r­ dów czy encji). Słow o Tables w ystępujące w nazw ie je st nieco m ylące, gdyż od razu kojarzy się z m e­ chanizm am i tabel w typow ej relacyjnej bazie danych. W rzeczyw istości A zure Tables zasadniczo różni się od klasycznej, relacyjnej bazy danych. A zure Tables dzieli się na: ♦ tabele (ang. tables), ♦ encje (ang. entities), ♦ w łaściw ości (ang. properties). T ab ela (ang. table) to pojem nik na encje (ang. entity), a encja to pojem nik na w łaści­ w ości (ang. properties). N ie m a stałego schem atu tabeli, w ięc każda encja m oże m ieć m ny zbiór w łaściw ości. W A zure Tables nie zach o d zą żadne relacje pom iędzy tab ela­ mi. R ysunek 2.1 przedstaw ia podział składników w A zure Tables.

1 Domena awarii to fizyczna jednostka awarii; jest ściśle powiązana z fizyczną infrastrukturą w centrach danych.

28

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 2.1.

P odział składników Azure Tables

Konto Storage Tabela Tabela Tabela

Tabela

E n c ja W łaściwość

Eneja Eneja

Właściwość

W łaściwość W łaściwość

Name Type

Eneja PartitlonKey

Value

RowKey Tim eStam p

T abele to pojem niki (kontenery) na encje. Z punktu w idzenia aplikacji tabela je s t je d ­ nostką, do której kieruje się zapytania. Z tabelam i w iąże się kilka ograniczeń: ♦ nie m ożna używ ać skom plikow anych zapytań ze złączeniam i typu JOIN; ♦ zapytanie m oże być skierow ane zaw sze tylko do jednej tabeli: ♦ każde zapytanie m usi być uw ierzytelnione specjalnym kluczem. D la pojedynczego konta Storage liczba tabel jest nieograniczona. K ażda tabela m oże zm ieścić d o w o ln ą liczb ę encji, ale p o je d y n cz e k o n to A zu re S torage (w ięcej n a ten tem at w rozdziale 3., „P rzygotow ania do utw o rzen ia pierw szej aplikacji w W indow s A zure”) m a ograniczenie pojem ności do 100 TB. Encja to struktura porów nyw alna do rekordu lub w iersza w bazie danych. Tabela skła­ da się z encji. Przy każdej operacji odczytu odczytyw any je st cały rekord. Podobnie jest przy zapisie — nadpisyw ane są w szystkie w łaściw ości. O peracja zapisu nie zakończy się, póki w szystkie w łaściw ości nie zostały zapisane. E ncja m oże m ieć rozm iar m ak ­ sym alnie 1 MB. K ażda encja zaw iera takie pola, jak: PartitionKey, RowKey oraz TimeStamp. P ierw sze dw a w spólnie symuluj ą klucz głów ny znany z baz relacyjnych. P a rti t i onKey to klucz p artycjonujący, który u m o żliw ia h o ryzontalny p odział tabeli, czyli na granicach encji, co zw iększa w ydajność zapytań. Filtrow anie z użyciem klucza partycjonującego je st znacznie szybsze niż z użyciem jakiejkolw iek innej w łaściw ości. RowKey to klucz je d n o zn aczn ie identyfikujący w iersz w tabeli. O dpow iada polu „ID ” w typow ych schem atach baz relacyjnych. F iltrow anie z użyciem tego klucza je st b a r­ dzo w ydajne, w szczególności w połączeniu z P arti t i onKey. TimeStamp to tzw. znacznik czasu. Z apisyw any je st w m m dokładny czas ostatniej ope­

racji zapisu rekordu. W przypadku próby jedn o czesn eg o zap isu rek o rd u p rzez kilku klientów TimeStamp pozw ala na w ybór jednego z dw óch przypadków . Pierw szy u zn a­ je zapis tylko pierw szego klienta, a drugi w yłącznie ostatniego. W łaściw ości są o dpow iednikiem kolum ny w b azie danych, jed n ak nie u w zględniają schem atu tabeli. Pow oduje to, że każdy rekord m oże m ieć in n ą liczbę w łaściw ości róż-

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

29

nych typów . K ażda encja m oże m ieć m aksym alnie 255 w łaściw ości, łącznie z Parti t i onKey, RowKey i TimeStamp — do 252. P ojedyncza w łaściw ość składa się z trzech stałych elem entów : ♦ nazw y (ang. nam e), ♦ w artości (ang. value), ♦ typu (ang. type). D ostępnym i typam i dla w łaściw ości są: Boolean, DateTime, Guid, Int32, Int64, Double, S tri ng oraz Bi nary (z ograniczeniem do 64 KB). A zure Tables nie nadaje się do przechow yw ania dużych ilości danych binarnych. Ten typ danych zaleca się przechow yw ać w A zure Blobs. C zęstą p rak ty k ą je st p rzechow y­ w anie w T ables tylko adresu lub referencji do dużego pliku w B lobs (tak ja k w rela­ cyjnej bazie przechow uje się ścieżki do plików ). Podsum ow ując, m ożna łatw o zauw ażyć, że podejście użyte w A zure Tables różni się zasadniczo od św iata w ięzi relacyjnych. B rak schem atu i ograniczeń dbających o spój­ ność danych daje w zam ian duże zyski, je śli chodzi o w ydajność, elastyczność i oczy ­ w iście w ielokrotnie w sp o m in a n ą skalow alność rozw iązań. W klasycznym podejściu relacyjnym g en e raln ą z a sa d ą je st norm alizacja d anych i b rak redundancji. W A zure Tables redundancja i denorm alizacja danych to rzeczy w ręcz pożądane, gdyż gw aran­ tu ją elastyczność. Typow e silniki bazy danych często też w czy tu ją do pam ięci struktu­ ry danych pow iązane z tym i z zapytania. D odatkow o A zure Tables um ożliw ia przecho­ w yw anie poszczególnych partycji rekordów na różnych w ęzłach w chm urze, co m oże zw iększyć w y d ajn o ść o dczytu i b ezpieczeństw o trw ało ści danych. M ożna rów nież łatw o zm odyfikow ać strukturę rekordu bez konieczn o ści w y łączan ia m echanizm ów spójności bazy. Co w ięcej, system m oże in te lig e n tn ie an alizo w ać ró żn e param etry, w tym obciążenie, i w zależności od n ich autom atycznie m o d yfikow ać ro zp ro szo n ą strukturę tabel.

Komunikacja z Azure Tables Z w ykle przy w ytw arzaniu aplikacji projektuje się w łasne klasy opakow ujące zap y ta­ nia do bazy danych. D odanie do system u now ych zapytań w iązało się z koniecznością napisania now ych m etod opakow ujących. Gdy potrzebna była zm iana schem atu bazy danych, należało rów nież aktualizow ać zapytania i strukturę danych. W A zure Tables, dzięki W CF D ata Services (kiedyś A D O .N E T D ata Services), k o m unikacja odbyw a się w sposób b ard zo w ygodny. W C F D ata S erv ices tw o rzy w arstw ę p o śre d n ic z ą c ą m iędzy aplikacją a składnicą danych, natom iast jeg o A PI nie zależy od rodzaju źródła danych. W arstw a tłum aczy żądania R E ST (głów na fo rm a ko m u n ik acji każdej usługi A zure) na odpow iedni form at (JSO N dla A JA X lub XM L dla A T O M PUB). W CF D ata Services udostępnia swoje otw arte API, co w efekcie zaow ocow ało utw orzeniem w ielu d a m o w y ch bibliotek dla w ielu języków program ow ania. D la program istów platform y .NET n a jw ię k s z ą k o rz y ś c ią je s t m ożliw ość uży w an ia składni L IN Q (ang. L ang u a g e Integ ra ted O ueiy).

30

Windows Azure. W prowadzenie do programowania w chmurze

Biblioteki .NET z W indow s A zure SDK zapew niają łatw ą kom unikację z A zure Tables. P rzykłady ich użycia przedstaw iono w studiach p rzy p ad k ó w — rozdziały 5. (serw is M oja-M uzyka) i 6. (serw is M oje-Zdjęcia).

Partycjonowanie W A zure Tables m ożna przechow yw ać ogrom ne ilości danych, często przekraczające m ożliw ości pojedynczej m aszyny. Z tego pow odu platform a A zure m usi je rozpraszać na niezależnych m aszynach. Jest to typow y m ech an izm p arty cjo n o w a n ia poziom e­ go, analogiczny do znanego z relacyjnych baz danych. A by m echanizm działał p raw i­ dłow o, program ista m usi koniecznie uw zględnić przy w prow adzaniu danych o bligato­ ryjne pola encji, takie ja k PartitionKey i RowKey. D zięki partycjom W indow s A zure m ożna b ez przeszk ó d ro zp raszać dane na różnych m aszynach. Przyjęcie odpow iednich ustaleń sposobu partycjonow ania je st kluczem do w ydajności działania tabel w A zure Tables. Z byt rzadkie partycjonow anie (jak również zbyt częste) m oże spow odow ać spadek w ydajności. E ncje z takim i sam ym i w artościam i Partitio nK e y b ę d ą zaw sze um ieszczan e w tych sam ych w ęzłach chm ury A zure. Tym razem n ie m ów im y o m aszynie, lecz o w ęźle. Jedna p artycja n iekoniecznie m usi znajdow ać się n a jed n ej m aszynie, gdyż n iektóre partycje m o g ą przekraczać w ielkością jej m ożliw ości składow ania (tabele o feru jąw łaściw ie n ie o g ran iczo n ą ilość m iejsca). Jednak W indow s A zure u m ieści p oszczególne części partycji tak, aby dostęp do niej byl najbardziej w ydajny przy danej konfiguracji sprzętow ej. P oniew aż A zure autom atycznie zap ew n ia od p o w ied n ie ro zm ieszczenie danych, m ożna przyjąć, że A zure udostępnia „nieskończenie” dużo m iejsca do składo­ w ania danych. W ybór klucza partycjonującego m usi być solidnie uzasadniony na podstaw ie rodzaju danych i treści najczęstszych zapytań. R ozpatrzm y jak o przykład ogrom ny zbiór fak ­ tur w bazie A zure Tables. D okum enty księgow e najczęściej sortuje się i przechow uje w edług roku w ystaw ienia dokum entu, w ięc rok utw orzenia faktury byłby najlepszym kandydatem na PartitionKey, a jej unikalny num er na RowKey. Struktura tabeli w Tables m a rów nie w ażne znaczenie, co schem at w relacyjnej bazie. Przy projektow aniu tabeli należy m ieć na uw adze ch arak ter n ajczęstszy ch k ie ro w a­ ny ch do niej zapytań. N atom iast klucz partycjonujący nie m oże generow ać zbyt d u ­ żych partycji.

2.1.3. Azure Blobs A zure Blobs to pojem nik, który um ożliw ia składow anie danych niestrukturalnych w p o ­ staci plików . M o g ą to być pliki tekstow e, graficzne, dźw iękow e, pliki skom presow ane lub jakiekolw iek inne binarne dane (naw et zserializow ane obiekty klas .NET). Jeden plik m oże m ieć rozm iar naw et do kilkuset gigabajtów . Pliki (bloby) przechow yw ane są w kontenerach (ang. containers), które m ożna traktow ać jak o odpow iedniki kata-

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

31

logów z klasycznego system u plików . R ysunek 2.2 przedstaw ia strukturę i zależności m iędzy elem entam i A zure Blobs. Rysunek 2.2.

Podział struktur Azure Blobs

/’

■ '%

Block Blob Blok Blok Blok

Page Blob Strona Strona Strona

K ontenery to pojem niki na bloby. M ożna je traktow ać ja k foldery w tradycyjnym sys­ tem ie plików . Jednak kontenery nie m o g ą być zagnieżdżane. K łóci się to z klasycznym pojęciem folderu system u plików , gdzie m ożna agregow ać katalogi w dow olny spo­ sób. Z pow odów w ydajnościow ych architektura kontenera je st plaska, ale i to ograni­ czenie m ożna dość łatw o om m ąć. K ażdy ko n ten er o trzym uje unikatow y adres U RL. K on ten er m oże być dostępny publicznie bez ża d n y ch og ran iczeń lub podlegać p ew ­ nym zasadom bezpieczeństw a określonym przez program istów. Z każdym kontenerem m ożna zw iązać m etadane w postaci zbioru p ar i o łącznym ro zm ia­ rze m e w iększym niż 8 KB. B lob m ożna porów nać do pliku. B lob, tak sam o ja k kontener, o trzym uje unikatow y adres U RL. M ożna do niego się odw ołać bezp o śred n io z p aska adresu przeglądarki. Z blobem m ożna rów nież zw iązać m etadane o łącznym ro zm iarze nie w iększym niż 8 KB. Co ciekaw e, nazw a bloba m oże zaw ierać znak „/” . U stalając odpow iednie n a­ zw y dla blobów (na przykład rysunek 2.3), m ożna w ym usić sztuczną hierarchię plików i w ten sposób om m ąć brak m ożliw ości zagnieżdżania kontenerów . Z nane są dw a rodzaje blobów : B łock B lob oraz P age Blob. P ierw szy ich rodzaj je st używ any do m agazynow ania zaw artości, która w ym aga przetw arzania strum ieniow e­ go, np. plików w ideo lub audio; drugi rodzaj blobów je st używ any do m agazynow ania zaw artości, która w ym aga losow ego dostępu do zapisu/odczytu. B łock Blobs to bloby podzielone na fragm enty (bloki, ang. blocks), które m ożna nieza­ leżnie w ysyłać, a które — po stronie serwera — są autom atycznie scalane. M aksym al­ ny rozm iar bloba blokow ego to 200 GB lub 50 000 bloków . Takie bloby um o żliw iają zatrzym anie i późniejsze w znow ienie procesu przesy łan ia pliku. Poniew aż w szystkie żądania do A zure Storage są w ykonyw ane przy użyciu protokołu REST, w ysianie p li­ ku na serw er je st żądaniem PUT. P oniew aż p ro to k ó ł R E S T je st b ezstan o w y , w p rzy­ padku przerw ania w ysyłania dużego plik u należy go ponow nie w ysyłać od początku.

32

Windows Azure. W prowadzenie do programowania w chmurze

P oza tym w iele urządzeń czy zapór sieciow ych nie pozw ala na przesianie zbyt dużego pliku. N ależy w ięc podzielić go na m niejsze k aw ałki, czyli bloki. Co ciekaw e, bloki nie m uszą być w ysyłane sekwencyjnie. K olejność i m iejsce w ysyłania bloków m e m ają znaczenia (m ożna je w ysyłać jednocześnie z kilku różnych lokalizacji). B loki z reguły m a ją taki sam rozm iar. B lok m oże m ieć m aksym alnie 4 M B , ale w z a ­ leżności od potrzeb m ożem y w ybrać odpow iednią jego wielkość. Przesyłanie fragm en­ tam i je st obow iązkow e dla każdego bloba powyżej 64 M B, a zalecane także dla m niej­ szych blobów . B loby blokow e są p olecane w przy p ad k u strum ieniow ego przesyłania danych, takich ja k np. w ideo czy audio. P age Blobs to bloby stronicow ane, które — w przeciw ieństw ie do blobów blokow ych — um ożliw iają losow y dostęp do fragm entu pliku. M aksym alna w ielkość bloba stro­ n ic o w an eg o to 1 TB, a m ak sy m aln a w ielk o ść p o jed y n czej strony to ró w n ież 1 TB. K ażdy blob stronicow any je st podzielony na sektory, do których m ożna się odw ołać niezależnie w dow olnym m om encie. Łatw o zauw ażyć, że bloby stronicow ane są ana­ logiem dysku tw ardego lokalnego kom putera. K o ncepcja P age B lo b s spraw dziła się dobrze i dlatego A zure B lobs w zbogacono o usługę A zure X D rive. U sługa ta u m o ż­ liw ia utw orzenie w irtualnego dysku N TFS osadzonego w A zure B lobs i w y k o n y w a­ nie na m m operacji ja k na typow ym lokalnym dysku tw ardym . W ięcej o tym w p o d ­ rozdziale „D ysk w irtualny w A zure B lobs” . R ysunek 2.3 p rze d staw ia system u n ik a to w y ch adresów U R L kon ten eró w i blobów . Z auw ażm y, że w y k o rz y stu ją c zn ak „/” w n azw ie b lo b a, m o żn a sztu czn ie w y m u sić hierarchię plików . Rysunek 2.3.

Struktura Azare Blobs oraz przykładow y adres URL bloba

http://.blob.core.windows.net// http://mojekonto.blob.core.w indow s.net/IVIuzyka/Blues/EricBibb/ShineOn.m p3

'

2



' ’



'

1

Blob K o n to

K o n te n e r

S to ra g e Muzyka mojekonto

Blues/EricBibb/ ShineOn.mp3 Rock/GuanoApes/ Fire.mp3

Filmy

W Kom edie/Film l.avi

D odatkow ym atutem takiej form y przechow yw ania danych binarnych je st to, że sys­ tem A zure m oże dynam icznie i autom atycznie skalow ać rozproszony system plików , w zależności od obciążenia czy popularności danego bloba. Jeśli ja k iś plik jest w y jąt­ kow o często pobierany, A zure B lobs autom atycznie w y k o n u je dodatkow e replikacje (oprócz trzech podstaw ow ych replik bezpieczeństw a), tak aby w żaden sposób nie ob­ niżyć w ydajności.

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

33

Prawa dostępu do kontenera W ażną cechą A zure B lobs je st m ożliw ość nadania praw dostępu do kontenera. K ażdy now o utw orzony ko n ten er dom yślnie je st pryw atny, czyli tylko autoryzow ani u ży t­ kow nicy m a ją do niego dostęp. P raw a dostępu m ożna zm ien ić przez w ybranie jednej z poniższych opcji: ♦ pełny p ubliczny dostęp do odczytu — w szystkie dane kontenera i blobów m o g ą być pobierane przez anonim ow ych u żytkow ników . A nonim ow i użytkow nicy m o g ą w ylistow ać zaw artość kontenera, ale lista kontenerów konta je st dla nich niedostępna. ♦ publiczny dostęp tylko do blobów — dane z blobów w ram ach kontenera są dostępne do odczytu przez anonim ow ych użytkow ników , ale lista blobów w kontenerze je st dla nich niedostępna. ♦ bez p ublicznego dostępu — kontenery i bloby są dostępne do odczytu tylko dla w łaściciela konta lub autoryzow anego użytkow nika. W ym ienione pow yżej opcje dotyczą tylko odczytu danych. K ażda m na operacja, czyli zapis, m odyfikacja lub usunięcie, w ym aga uw ierzytelnienia.

Współdzielone sygnatury dostępowe (ang. Shared Access Signatures) Z w ykle dostęp do konta Storage w ym aga przetrzym yw ania klucza w kodzie aplikacji często działającej po stronie klienta (np. w tyczka Silverlight). O soba nieupow ażniona m oże kod zdekom pilow ać i odkryć klucze dostępow e do A zure Storage. M echanizm Shared A ccess Signatures elim inuje konieczność przechow yw ania klucza w aplikacji, a tym sam ym podnosi poziom bezpieczeństw a. Shared A ccess Signatures to specjalnie w ygenerow any adres U RL, który je st aktywny tylko przez określoną ilość czasu. Z asada jego budow y i działania je st prosta. Ł ańcuch znaków składających się z różnych param etrów , takich jak: praw a dostępu (odczyt, z a ­ pis, usuw anie etc.), czas uaktyw nienia adresu, czas przeterm inow ania adresu etc., je st przekształcany za p o m o cą funkcji haszującej, tw orząc sw oisty podpis cyfrowy. Jest on następnie w staw iany jak o dodatkow y param etr adresu URL. Tak w ygenerow any adres U RL trafia do aplikacji klienckiej, nie ujaw niając bezpośrednich danych dostępow ych.

2.1.4. Azure Queues A zure Q ueues to system zarządzania kom unikatam i w staw ianym i i pobieranym i asyn­ chronicznie do/z kolejek. System p rzyjm uje i k o lejk u je kom unikaty nadsyłane przez dow olne procesy nadawcze. Procesy nadaw cze niekoniecznie m u szą istnieć w chmurze. R ów nież m o g ą to być (praw ie) dow olne procesy zew n ętrzn e w stosunku do chm ury. Kom unikaty w staw ione do kolejek pozostają w nich do m om entu aż odbierze je proces odbiorczy, ale nie dłużej niż czas przeterm inow ania. M echanizm kolejkow ania k om u­ nikatów je st pow szechnie stosowanym rozw iązaniem dostępnym na w ielu platform ach p ro g ra m isty czn y c h , sz cz eg ó ln ie gdy w y m ag an e je s t asynchroniczne p rzetw arzan ie

34

Windows Azure. W prowadzenie do programowania w chmurze

danych. F irn o w e rozw iązanie M icrosoftu to M SM Q {M icrosoft M essage Q ueueing). Jednak z uw agi na ro zp ro szo n ą n aturę chm ury, a tak że liczbę i intensyw ność p ro c e ­ sów generujących i odbierających kom unikaty, A zure Q ueues różni się od M SM Q z a ­ rów no architekturą, ja k i udostępnionym API. W edług zapew nień architektów chm ury, system kolejkow ania A zure Q ueues je st skalow alny, ale przede w szystkim w y jątk o ­ w o w ydajny, i m oże sprostać naw et bardzo dużym obciążeniom , liczonym w tysiącach kom unikatów na sekundę spływ ających do kolejek. D ziałan ie system u m ag az y n u jąc eg o i k o le jek A zu re Q u eu es m o żn a zilu stro w ać na prostym p rzykładzie serw isu w chm urze, który u d o stęp n ia autorskie nagrania wideo. Po w graniu pliku do serw isu m usi on zostać przetw orzony poprzez użycie jak ich ś k o ­ deków kom presujących. W takim scenariuszu proces w roli Web R ole um ieszcza plik w ideo w A zure B lobs i w ysyła zadanie do kolejki z odnośnikiem do tego pliku. Z ad a­ nie z k o lejki pobiera proces W orker R ole i p rzetw arza plik. D zięk i w ew nętrznej ar­ chitekturze, niezależnie od liczby instancji Web R ole czy W orker R ole, system kolejek będzie działał niezaw odnie, a każda now a instancja roli zw iększy w yd ajn o ść całego serw isu w ideo — i to bez żadnej dodatkow ej ingerencji w kod. W arto podkreślić, że A zure Q ueues nie je st ograniczony tylko do procesów rezy d u ją­ cych w ew nątrz platform y Azure. D zięki otw artem u standardow i H TTP z kolejek A zure m o g ą korzystać niezależne aplikacje zew nętrzne. K onto Storage m oże składać się z w ielu kolejek (ang. queues), a w każdej z nich m oże być w iele kom unikatów (ang. M essages). N a rysunku 2.4 przedstaw iona je st struktura każdego z pow yższych elem entów , a na rysun k u 2.5 pokazano budow ę adresu U RL do danej kolejki. Rysunek 2.4.

K onto S torage

Struktura elementów Azure Queues

f

\

Kolejka

K o le jka

K o m u n ik a t

K o le jka

K o m u n ik a t

K o le jka

K o m u n ik a t

K om unikat M e s s a g e lD V is ib ility T im e o u t M essageTTL P o p R e c e ip t

V

>

M essage

K olejki to pojem niki na kom unikaty. N a jed n y m koncie Storage m ożna utw orzyć d o ­ w o ln ą liczbę kolejek, a każda kolejka m oże po m ieścić d o w o ln ą liczbę kom unikatów . Z ko lejk ą m ożna pow iązać m aksym alnie 8 K B m etadanych. K om unikat to zestaw danych o w ielkości nieprzekraczającej 8 KB. W zam ierzeniu m a on dostarczać tylko inform acji niezbędnych do rozpoczęcia przetwarzania. Kom unikaty są krótkotrw ałym i danym i. Pojedynczy kom unikat m oże pozostać w kolejce najw yżej tydzień, a po tym czasie zostaje usunięty. O dbiorca kom unikatu dostaje go w postaci łańcucha znaków zakodow anego w Base64.

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

Rysunek 2.5.

35

http://m ojekonto.queue.core.w indow s.net/Faktury

Przykładowe komunikaty z zależnościami strukturalnymi

K o m u n ik a ty IDKlienta: 124153

IDKlienta: 151235

ID: 412341 URL: K om edie/Film l.avi Typ: Avi

D ziałanie kolejek A zure Queues łatwiej opisać, śledząc cykl życia kom unikatów . N aj­ pierw trzeba jed n ak scharakteryzow ać w łaściw ości kom unikatu: ♦ MessagelD — unikatow y identyfikator kom unikatu (GU ID ); ♦ Vi si bi 1 i tyTim eout — czas niew idoczności kom unikatu; po zdjęciu z kolejki kom unikat je st niew idoczny dla m nych procesów przez podany czas, a po jeg o upływ ie ponow nie staje się w idoczny; ♦ MessageTTL — czas życia kom unikatu — m aksym alnie 7 dni; po tym okresie

kom unikat zostaje autom atycznie usunięty z kolejki; ♦ PopRecei pt — ciąg znaków , który w p ołączen iu z M essag elD pozw ala

całkow icie usunąć kom unikat z kolejki. Prześledźm y przykładow y cykl życia kom unikatu. 1. P roces typu producent {Web R ole lub W orker R ole) w staw ia kom unikat do kolejki, podając (opcjonalnie) czas życia kom unikatu (MessageTTL). 2. K om unikat pozostaje w kolejce i czeka na pobranie, dopóki nie zostanie

p rzekroczony je g o czas życia określony param etrem MessageTTL. Po przekroczeniu tego czasu kom unikat je st z kolejki usuw any. 3. P roces typu konsum ent (często W orker R ole) pobiera kom unikat z kolejki

i zaczyna przetw arzanie. K om unikat, m im o pobrania go z kolejki, nie znika, a je d y n ie je s t niew idoczny dla m nych kon su m en tó w przez określony czas (V is i b i li tyTimeout). W m om encie zdjęcia k o m u n ik atu z k olejki konsum ent dostaje PopRecei pt. K ażde zdjęcie kom unikatu z kolejki w iąże się z autom atycznym w ygenerow aniem now ego PopRecei pt. Co stanie się dalej z kom unikatem , zależy ju ż od konsum enta: a) K onsum ent obsłużył kom unikat z sukcesem. Z akończył przetw arzanie

i w y korzystując PopRecei pt i MessagelD, żąda od k o lejk i usu n ięcia kom unikatu.

36

Windows Azure. W prowadzenie do programowania w chmurze

b) M o g ą w ystąpić zakłócenia w trakcie przetw arzania kom unikatu. Przykłady m ożna m nożyć: problem y z połączeniem , aw aria m aszyny w irtualnej czy w yjątek podczas działania programu. K ażde takie zdarzenie spowodowałoby „zgubienie” jednego kom unikatu, co zasadniczo je st niedopuszczalne. Tutaj w idać w ażną rolę Vi si bi 1i tyTimeout. Jeśli zdarzyło się coś niepraw idłow ego, to po upływ ie podanego czasu system A zure Q ueues przyw raca kom unikat do k olejki (dokładniej: zm ienia w łaściw o ść w id zialn o ści k o m u n ik atu na true). Pozw ala to innym konsum entom spróbow ać przetw orzyć ten chw ilowo zgubiony kom unikat. System zarządzania A zure Q ueues je st odporny naw et na scenariusz, w którym pierw szy konsum ent nagle odzyskuje spraw ność i próbuje usunąć kom unikat. D zięki unikatow ej w artości PopRecei pt to m u się jed n ak nie uda. Teoretycznie kolejki A zure pow inny realizow ać strategię FIFO. Jednak w rzeczyw isto­ ści je st to strategia „praw ie” FIFO. N ie m a gw arancji, że kom unikaty b ęd ą d ostarczo­ ne ściśle w takiej kolejności, w jakiej zostały w prow adzone do kolejki. Spow odow ane je st to w łaśnie pew nym i w yjątkam i opisanym i w yżej. Jednak dw uetapow y m echanizm pobierania i usuw ania kom unikatów z kolejki daje gwarancję, że każda w iadom ość zo ­ stanie przynajm niej raz przetw orzona. R ów nież w łaściw ość MessageTTL odgryw a p rzy d a tn ą ro lę w system ie k o lejek A zure Queues. W przypadku długotrw ałego braku odbiorcy zapew nia, że kom unikat zostanie trw ale usunięty i nie będzie niepotrzebnie obciążał systemu. A zure Q ueues m a jeszcze je d n ą w ażn ą cechę. M echanizm obsługi kom unikatów m o ­ że spow odow ać p rzetw orzenie p ojedynczego k o m u n ik atu w ięcej niż raz. N ie je s t to błąd projektantów systemu, lecz przem yślana decyzja, ze w zględu na rozproszony ch a­ rakter środow iska.

2.2. SQL Azure W dobie pow szechnego dostępu do Internetu w dalszym ciągu w szy stk ie w arto śc io ­ w e aplikacje k o rzy sta ją z relacyjnych b az danych jak o podstaw ow ego sposobu p rze­ chow yw ania danych. D uże k orporacyjne bazy danych często o bsługują tysiące tran s­ akcji na sekundę i m iliony w ciągu dnia. K ażd a b aza m usi by ć w ydajna, niezaw odna i bezpieczna. Jest sporo dobrych system ów zarządzania b a z ą danych. R o zw iązan ia M icro so ftu są oparte na technologii M S SQL Server, która istnieje w kilku w ersjach. O becnie m ożna korzystać z bazy danych na dw a sposoby. Sposób pierw szy zakłada, że firm a lub k o r­ poracja m a w łasne serw ery, buduje w ła sn ą infrastrukturę d o stęp o w ą i nabyw a licen­ cjonow ane oprogram ow anie serwerowe. Sposób drugi, dostępny od niedaw na, to bazy danych um ieszczone w chm urze. O ba podejścia m a ją w a d y i zalety, ale g łó w n ą zaletą bazy danych w chm urze je st zm niejszenie kosztów. P ropozycją relacyjnej bazy danych w chm urze A zure je st SQL Azure. R elacyjna baza danych SQL A zure elim inuje koszty zakupu i utrzym ania m aszyn (serw erów ), koszty budow y i u trzy m an ia infrastruktury dostępow ej czy w reszcie koszty zakupu licencjonow anego oprogram ow ania.

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

37

B aza danych SQL A zure je st oparta na technologii M S SQL Server i jest do niej p o ­ dobna. Jednak też w iele je różni i trzeba m ieć to na uw adze przy m igracji istniejącej bazy danych do SQL A zure czy przy tw orzeniu nowej bazy danych w chm urze. W arto w skazać korzyści w ynikające z zastosow ania SQL A zure — relacyjnej bazy da­ nych w chm urze — w porów naniu do posiadania w łasnego centrum danych: ♦ Z arządzanie — SQL A zure oferuje funkcjonalność ogrom nego centrum danych bez konieczności utrzym yw ania i zatrudniania w ykw alifikow anych adm inistratorów baz danych i sieci. W budow ane w SQL A zure m ożliw ości autom atycznego zarządzania m o g ą odciążyć adm inistratorów IT w firm ie/ korporacji i um ożliw ić redukcję takiego personelu lub przesunięcie go do m nych zadań. Co w ięcej, baza danych w chm urze m oże zostać uruchom iona w ciągu kilk u m inut bez poprzedzających , często zn aczn y ch kosztów początkow ych. N a p o czątku m ożna uruchom ić w ersję p ilo taż o w ą — z niew ielką b a z ą — a przy zm ianie potrzeb szybko m ożna j ą rozszerzyć do bardziej zaaw ansow anej wersji. ♦ D ostępność — SQL A zure opiera się na spraw dzonej technologii SQL Server i je s t w ystarczająco elastyczna, aby m ogła działać przy każd y m obciążen iu i w w arunkach potencjalnych aw arii sprzętu. W celu zachow ania dostępności i ciągłości biznesow ej usługa SQL A zure tw orzy w iele redundantnych kopii bazy na w ielu różnych fizycznie m aszynach. W przypadku awarii sprzętowej usługa SQL A zure zapew nia autom atyczny plan odzyskiw ania danych. ♦ Skalow alność — to kluczow a zaleta SQL Azure. Z łatw ością m ożna skalować w łasn ą bazę danych. P o odpow iednim party cjo n o w an iu danych b aza rośnie w raz z danym i. M odel płatności „na żądanie” zapew nia, że płacim y tylko za to, czego używamy. W iąże się to z m ożliw ością zm niejszenia bazy danych, gdy potrzeby stają się ograniczone. ♦ Znany m odel program ow ania — program iści znający środow isko SQL Server m o g ą używ ać tych sam ych interfejsów , narzędzi i bibliotek w odniesieniu do SQL Azure. ♦ R elacyjny m odel danych — program iści znający SQL Server m o g ą używ ać praw ie w szystkich elem entów , takich jak: tabele, persp ek ty w y , procedury składow ane i m ne typow e obiekty bazodanow e, w odniesieniu do SQL Azure. K ażda instancja SQL A zure pozw ala na u tw o rzen ie dow olnej liczby baz danych, a podobny m odel danych znacząco ułatw ia m igracje istniejących baz. Łatw o m ożna rów nież zrealizow ać scenariusz, w którym praw ie cala aplikacja je st hostow ana poza chm urą, a chm ura — pop rzez u sługę SQL A zure — hostuje jedynie relacyjną bazę danych.

2.2.1. Architektura SQL Azure U sługa SQL A zure dostarcza użytkow nikow i rela cy jn ą bazę danych, ale je s t to baza logiczna. P rojektanci SQL A zure w yróżnili w tej usłudze cztery w arstw y, których sko­ ordynow ana w spółpraca zapew nia użytkow nikow i końcow em u w łaśnie ta k ą logiczną, skalow alną bazę danych. W yróżnione w arstw y to:

38

Windows Azure. W prowadzenie do programowania w chmurze

♦ w arstw a kliencka, ♦ w arstw a usług, ♦ w arstw a platform y, ♦ w arstw a infrastruktury. A rchitekturę usługi SQL A zure tw o rzą łącznie w arstw y, zasady ich w spółpracy oraz ich podstaw ow e kom ponenty — rysunek 2.6. Rysunek 2.6. Aplikacje SQL Server oraz narzędzia

PHP

Warstwa kliencka

Architektura SOL Azure

W CF Data Services

ODBC

ADO .NET

Tabular Data Stream (TDS) TDS + SSL (Secure Socker Layer)

Provisioning

Billing i zużycie

Billing i zużycie

Billing i zużycie

Routing

Routing

Routing

SQL Server

SQL Server

SQL Server

SQL Azure Fabric

SQL Azure Fabric

SQL Azure Fabric

Zarządzanie

Zarządzanie

Zarządzanie

Warstwa infrastruktury

Warstwa platformy

Provisioning

Warstwa usług

Provisioning

J

O piszm y poszczególne w arstw y: ♦ W arstw a k liencka — leży najbliżej aplikacji i je st przez n ią używ ana do bezpośredniej kom unikacji ze SQL A zure. W arstw a k lien ck a m oże być zlokalizow ana w pryw atnym centrum danych lub h o sto w an a w W indow s Azure. Poniew aż SQL A zure dostarcza tego sam ego interfejsu co SQL Server, m ożna używ ać tych sam ych, znanych narzędzi i bibliotek.

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

39

♦ W arstw a u sług — funkcjonuje ja k o bram a p om iędzy w arstw ą k lie n ck ą i w arstw ą platform y, gdzie zn ajd u ją się dane. W arstw a usług zapew nia trzy funkcj onalno śc i: ♦ P rovisioning — kontroluje abonam ent i zapew nia połączenia z bazam i danych w ram ach konta posiadanego w W indow s A zure; ♦ B illin g i zu życie — rejestruje dane o zu ży w an y ch w ram ach konta zasobach; grom adzone dane są p odstaw ą b ilh n g u usługi; ♦ R ou tin g — SQL A zure to skom plikow any system zbudow any na skalow alnej platform ie składającej się z w ielu fizy czn y ch m aszyn. Ta część w arstw y usług steruje przekierow yw aniem połączeń pom iędzy aplikacją a fizycznym i serw eram i, na których zn ajd u ją się dane aplikacji. ♦ W arstw a p latform y — zaw iera fizyczne serwery i usługi, które w sp ierają w arstw ę usług. W arstw a platform y składa się z w ielu instancji SQL Server, z których każda je st zarządzana przez SQL A zure Fabric. Jest to system rozproszony, złożony z sieci, serw erów i przestrzeni dyskow ych. O bsługuje autom atyczne odzyskiw anie po awarii, rów now aży obciążenia oraz zapew nia au tom atyczną replikację pom iędzy fizycznym i serw eram i. Serw isy zarządzające m onitorują działanie poszczególnych serw erów i autom atycznie instalują aktualizacje oraz łatki program ow e. ♦ W arstw a in frastru ktury — reprezentuje adm inistrację IT fizycznego sprzętu i system ów operacyjnych, które w sp ie ra ją w arstw ę u słu g (tem atyka poza zakresem tej książki).

2.2.2. Protokoły dostępu do SQL Azure D ostęp do SQL A zure realizow any je st przy w ykorzystaniu istniejących znanych p ro ­ tokołów , takich jak: TDS {T abular D ata Stream ), H T TP, H T TPS albo żądania REST. M ożna rozróżnić dw a scenariusze dostępu do bazy danych SQL A zure — rysunek 2.7. W pierw szym scenariuszu aplikacja, najczęściej osadzona na pryw atnym serwerze, łą­ czy się bezpośrednio z bazą, w ykorzystując TDS i ew entualnie szyfrow anie SSL. Drugi scenariusz zakłada w ykorzystanie platform y A zure jako pośrednika. Przeglądarka, w y ­ korzystując H TTP lub H TTP w połączeniu z REST, łączy się z W indow s A zure, gdzie aplikacja obsługuje p ołączenie bezpośrednio z b a z ą w SQL A zure. W indow s A zure udostępnia odpow iednie A PI dla żądań REST. Taki przypadek w ystępuje najczęściej w aplikacjach używ ających W eb Services, W CF czy Silverlight.

2.2.3. Ograniczenia SQL Azure SQL A zure opiera się na SQL Server, je d n a k obie tech n o lo g ie nie są identyczne. Tak napraw dę SQL A zure je st tylko fragm entem pełnego SQL Server. A le SQL A zure je st stopniow o rozbudow yw ana i w p rzyszłości m ożna się spodziew ać pełnej zgodności obu technologii. P rogram iści, którzy d o k o n u ją m ig racji ro zw iązań z SQL S erver do SQL A zure, pow inni przeczytać dodatek F, „M igracja do SQL A zure” .

40

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 2.7.

D wa różne sposoby dostępu do SOL Azure

W tabeli 2.1 je st um ieszczony w ykaz typów danych w spieranych przez SQL Azure. Tabela 2.1. Typy danych wspierane p rzez SO L Azure Kategoria

Typy wspierane przez SQL Azure

W artości numeryczne

bigint. bit, decimal, int, money, numeric, smal lin t, smallmoney, tin yin t

W artości zmiennoprzecinkowe

float, real

Data i czas

date, datetimeż, datetime, datetimeoffset, smalldatetime, time

Znakowe

char, varchar, text

Unicode

nchar, nvarchar, ntext

W artości binarne

binary, varbinary, image

W artości przestrzenne (ang. Spatial)

geography, geometry

Inne

cursor, hierarchyid, sql_variant, table, timestamp, uniqueidenti tie r, xml

Jest też dość obszerna lista elem entów i m echan izm ó w T-SQ L niew spieranych przez SQL A zure. S ą to:

Rozdział 2. ♦ Magazynowanie danych w Windows Azure

41

♦ C om m on L anguage R untim e (CLR), ♦ rozm ieszczenie plików bazy danych, ♦ m irroring bazy danych, ♦ zapytania rozproszone, ♦ transakcje rozproszone, ♦ zarządzanie Filegroup, ♦ globalne tablice tym czasow e, ♦ opcje konfiguracji SQL Server, ♦ SQL Server Service Broker, ♦ tabele system ow e. N iem ała je s t też lista elem entów SQL S erver 2008 R2, 2008, 2005 niew sp ieran y ch przez SQL A zure. S ą to: ♦ SQL Server U tility, ♦ SQL Server P ow erS hell Provider, ♦ M aster D ata Services, ♦ C hange D ata Capture, ♦ D ata A uditing, ♦ D ata Com pression, ♦ E xtended Events, ♦ E xternal K ey M anagem ent/E xtensible K ey M anagem ent, ♦ F ilestream D ata, ♦ Integrated F ull-T ext Search, ♦ L arge U ser-D efined A ggregates (UD A ), ♦ L arge U ser-D efined Types (UDT), ♦ Perform ance D ata C ollection, ♦ P olicy-B ased M anagem ent, ♦ R esource G overnor, ♦ Sparse Colum ns, ♦ replikacja SQL Server, ♦ Transparent D ata E ncryption, ♦ partycjonow anie tabel, ♦ B ackup i Restore,

42

Windows Azure. W prowadzenie do programowania w chmurze

♦ E xtended Stored Procedures, ♦ SQL Server A gent/Jobs/E rror Logs.

2.3. Dysk wirtualny w Azure Blobs D zięki blobom stronicowanym , opisanym w podrozdziale „A zure Blobs”, istnieje m o ż­ liw ość uruchom ienia usługi o nazw ie A zure Drive. D zięki tej usłudze program iści m o ­ g ą zapom nieć o niskopoziom ow ym A PI blobów stronicow anych. U sługa um ożliw ia zm apow anie blobu stronicowanego o konkretnym adresie U RL na lo k aln ą nazw ę i k o ­ rzystanie z niego ja k ze zw ykłego dysku tw ardego zainstalow anego na kom puterze lo ­ kalnym . T łum aczeniem w yw ołań system u p lik ó w zajm ie się W indow s A zure. A zure D rive je st w rzeczyw istości interfejsem dla bloba stronicow anego. W usłudze A zure D rive zastosow ano fo rm at V H D (ang. V irtual H a rd D r iv e ) znany dotąd z program u paraw irtualizującego o nazw ie V irtual PC. W efekcie plik w fo rm a­ cie V HD um ieszczony w A zure Storage m ożna łatw o podłączyć i w ykorzystać w apli­ kacji przez A zure D rive lub też k orzystać z m ego „k lasy czn ie” , stosując niskopoziom ow e R E ST A PI dla blobów stronicow anych. A zure D rive znacząco ułatw ia m igrację dow olnej aplikacji do środow iska W indow s A zure. D okładny opis m ontow ania i w ykorzystyw ania A zure D rive znajduje się w d o ­ datku E, „M ontow anie i używ anie dysku w irtualnego A zure D rive” .

Rozdział 3.

Przygotowania do utworzenia pierwszej aplikacji w Windows Azure Zanim przejdziemy do tworzenia aplikacji, którą docelow o wdrożymy w chmurze Azure, m usim y w ykonać kilka czynności adm inistracyjnych. N iezbędne czynności to: ♦ założenie konta W indow s L ive i uzyskanie identyfikatora W indow s L ive ID; ♦ założenie konta na w itrynie M icrosoft O nline Services i subskrypcja usług platform y W indow s A zure; ♦ założenie projektu i uruchom ienie usług w serw isie/portalu zarządzającym W indow s Azure. Przed przystąpieniem do zakładania kont oraz projektow ania aplikacji pow inniśm y dys­ ponow ać środow iskiem program istycznym składającym się z następujących elementów: ♦ system u W indow s 7, najlepiej w w ersji Professional, ♦ ID E V isual Studio 2010, najlepiej w w ersji U ltim ate, ♦ przeglądarki internetow ej z zainstalow aną w ty czk ą M icrosoft Silverhght, najlepiej IE9. Środow isko p rogram istyczne m oże składać się rów nież z innych elem entów . M ożna je skonfigurow ać z ró żn y c h w ersji system ów o p eracy jn y ch : W indow s 7, W indow s Server 2008, a naw et W indow s V ista SP2 w połączeniu z V isual Studio 2010 w w er­ sji Professional lub w yższej. P odczas typow ego instalow ania V isual Studio 2010 je st instalow any rów nież M icrosoft SQL Server w w ersji Express. Serwer bazy danych b ę­ dzie potrzebny do sym ulacji działania różnych składników W indow s A zure na k om ­ puterze lokalnym . Z am iast V isual Studio 2010 m ożna rów nież w ykorzystać bezpłatne

44

Windows Azure. W prowadzenie do programowania w chmurze

narzędzia M icrosoft V isual W eb D ev elo p er 2010 E xpress w raz z dodatkow o instalo­ w anym SQL S erver E xpress E dition. W spierane system y i narzędzia oraz instrukcje instalacyjne są dostępne pod adresem : http://w w w .m icro so ft.co m /w in d o w sa zu re/sd k/. P rzed zainstalow aniem M icrosoft Silverlight należy spraw dzić, ja k a je st aktualnie d o ­ stępna najnowsza w ersja tego narzędzia. W tym celu w IE9 należy w prowadzić adres: http://w w w .m icro so ft.co m /g etsilverlig h t/. W yśw ietli się inform acja o zainstalow anej w ersji (lub jej braku) oraz odsyłacz do pobrania najnow szej wersji. Jak ju ż w iem y, platform a W indow s A zure je st dostępna online, ale dostarczane usługi są odpłatne i należy je w cześniej subskrybow ać. S ubskrypcja je s t dostępna ty lk o dla posiadaczy konta na w itrynie M icrosoft Online Services {https://m ocp.m icrosoftonline. com). D o założenia takiego konta i subskrybow ania usług je st w ym agana karta kredyto­ w a bądź debetow a i identyfikator W indows Live ID. Z praktyki w ynika, że nie w szystkie karty debetow e są rozpoznaw ane przez system rozliczeniow y W indow s A zure. Z k ar­ tam i kredytow ym i nie m a zasadniczo żadnego kłopotu i w szystkie znane m arki są ak­ ceptow ane. Przy zakładaniu konta trzeba podać dane osobow e, num er karty płatniczej i — je śli w przyszłości m am y zam iar zakładać w chm urze A zure serw isy kom ercyjne — także num er NIP. Jednak w arunkiem n iezbędnym do subskrypcji u słu g platform y W indow s A zu re za p o m o c ą w itryny M icro so ft O nline Services je s t posiad an ie id en ty fik ato ra W indow s L ive ID. Taki identyfikator zapew nia jednorazow ą identyfikację przy pojedynczym lo ­ gow aniu użytkow nika oraz przeprow adzanie bezpiecznych operacji w różnych serw i­ sach oferow anych przez M icrosoft. K ońcow ym k ro k iem przy g o to w ań do w drożenia w łasnej aplikacji w chm urze A zure je st założen ie p ro jek tu i uru ch o m ien ie u słu g na portalu zarządzającym W indow s A zure (https://w indow s.azure.com ). Ta ostatnia czyn­ ność je st niezbędna, aby m óc w ysyłać w łasne aplikacje do chm ury obliczeniow ej.

3.1. Zakładanie konta na witrynie Microsoft Online Services i subskrypcja usług P rzed przystąpieniem do zakładania konta na w itrynie M icrosoft O nline Services m u ­ simy m ieć konto i identyfikator W indow s L ive ID. Jeśli takiego konta jeszcze nie m a­ m y, to m ożem y je teraz założyć, w ykonując kroki 3a) - 3g) z poniższej listy działań: 1. U ruchom przeglądarkę i w pisz adres: https://m ocp.m icrosoftonline.com . 2. W praw ym górnym rogu strony z m enu rozw ijalnego w ybierz ję zy k polski. 3. Po załadow aniu polskiej w ersji strony kliknij odsyłacz Z aloguj w idoczny w praw ym górnym rogu strony. Otworzy się now e okno, a w m m — po prawej stronie — form ularz logowania, zaś po lewej stronie propozycja Z apisz się, której w ybór uruchom i procedurę uzyskania identyfikatora W indow s L ive ID. Jeśli m e m asz konta w usłudze W indow s Live, to założysz je teraz, w ykonując następujące czynności:

Rozdział 3. ♦ Przygotowania do utworzenia pierwszej aplikacji w Windows Azure

a) Kliknij przycisk U twórz konto.

b) P ojaw i się now y ekran, a w m m pytanie o adres e-m ail w u słu d ze M SN Hotmail. Jeśli ju ż go m asz, zaznacz pierw szą opcję: Tak, użyj m ojego adresu e-m ail. Jeśli je szc ze go nie m asz, w ybierz d ru g ą opcję, czyli założenie konta e-m ail w serw isie M S N H otm ail z je d n o czesn y m uzyskaniem identyfikatora W indow s L ive ID, a następnie kliknij przycisk K o n tyn u u j. c) Jeśli w ybrałeś pierw szą opcję, w pisz do form ularza w szystkie niezbędne

dane, w tym istniejący adres e-m ail (który staje się loginem w usłudze W indow s L ive ID), a następnie kliknij przycisk K ontynuuj. d) N a kolejnej stronie w prow adź dodatkow e n iezb ęd n e dane i kliknij

K on tyn u u j. e) P ojaw i się żądanie p otw ierdzenia um ów i licencji. P o tw ierd ź zgodę,

w pisując do jedynej rubryki na stronie swój adres e-m ail (traktow any tutaj ja k podpis). Z akończ rejestrację kliknięciem przycisku K ontynuuj.

f) O tw órz skrzynkę p o cz to w ą dla adresu p o danego podczas rejestracji. P ow inien się w niej pojaw ić e-m ail z p ro śb ą o potw ierdzenie rejestracji. P otw ierdź rejestrację, klikając odpow iedni odsyłacz w e-mailu. g)

P ow róć na stronę https://m ocp.m icroso fto n lin e.co m i zaloguj się, korzystając z adresu e-m ail i hasła z usługi W indow s L ive ID.

4. Jeśli udało nam się zalogow ać do serw isu M icrosoft Online Services, to od

razu pow inien pojaw ić się form ularz, w k tó ry m w prow adzam y dokładne dane osobow e — rysunek 3.1. D ane te są niezb ęd n e do w y staw ian ia fak tu r za korzystanie z platform y W indow s Azure. Jeżeli okno z form ularzem się nie pojawi, należy kliknąć zakładkę Strona głów na, a następnie, z m enu po prawej stronie u góry w itryny, w ybrać odsyłacz E d ytu j p ro fil. Po w prow adzeniu w szystkich w ym aganych danych klikam y przycisk Dalej. 5. N a kolejnym etapie m usim y podać nazw ę firm y, bran żę oraz liczbę pracow ników . Jeśli nie reprezentujem y podm iotu praw nego, to zam iast nazw y firm y w pisujem y sw oje im ię i nazw isko i klikam y przycisk Dalej. 6. N astępnie należy w pisać adres korzystania z usługi, czyli m iejsce, w którym będziem y się rozliczać z podatku dochodow ego. D o m y śln ie adres je st skopiow any z poprzedniego form ularza. N a sam ym dole znajduje się rubryka, do której należy w pisać num er N IP (osoby k o rzy stające z ko n ta w celach dydaktycznych m o g ą ten elem ent pom inąć). P rzed w prow adzeniem num eru N IP do form ularza rejestracyjnego należy zw eryfikow ać jeg o popraw ność. N um er N IP je st popraw ny, je śli dany podm iot je st aktyw ny i zarejestrow any w bazie danych K om isji E uropejskiej, U nia Celna i Podatkow a: http://ec. europa.eu/taxation custom s/vies/. K ończym y w prow adzanie danych, klikając przycisk Zakończ. W ten sposób zakończyliśm y w p ro w ad zan ie praw ie w szystkich n iezbędnych danych do naszego ko n ta w serw isie M icro so ft Online Services. N a koniec pojawi się okno potw ierdzające zm ianę w systemie — kliknij przycisk Zamknij.

45

46

Windows Azure. W prowadzenie do programowania w chmurze

W i i l n.m i Wprowadź informacje.

Informacje o firmie Adres korzystania z usługi Potwierdzenie

* Imię : * Nazwisko: * Adres e-mail:

[email protected]

D Zgadzam się na przesyłanie informacji i ofert dotyczących witryny Microsoft Online Services przez firmę Microsoft na mój adres e-mail. Inform acje adresowe * 1 wiersz adresu: 2 wiersz adresu: 3 wiersz adresu: 4 wiersz adresu: * Kod pocztowy: * Miejscowość: * Województwo: * Kraj lub region: * Preferowany język:

Polska

10

polski [V ]

i pomoc © 2010 Microsoft Corporation. Wszelkie prawa zastrzeżone. Ochrona prywatności | Informacje prawne | Pomoc techniczna

Dalej

Anuluj

Rysunek 3.1. Ekran wprowadzania danych osobowych dla konta MOCP 7. Po w ykonaniu czynności z punktu 6. portal otw orzy się na zakładce Usługi. Tutaj w ybierzem y subskrypcję. O prócz naliczania opłat za norm alne zużycie m ożem y w ybrać tzw. pakiet, który przyniesie o szczędności w p rzypadku prow adzenia dużego serw isu. Jeśli nie planujem y od razu zakładania rozbudow anego serw isu, to z listy dostępn y ch subskrypcji pow inniśm y w ybrać pozycję Z użycie p latform y W indows A zure. W ybór zatw ierdzam y k liknięciem przycisku K up teraz. Jeśli na liście n ie znajdziem y p ozycji Z użycie p la tfo rm y W indow s A zu re , to pow inniśm y się upew nić, że filtr nałożony na usługi nosi nazw ę P latform a W indows A zure. F iltr znajduje się w lewej kolum nie, w panelu o nazw ie F iltr usług. 8. Po kliknięciu przycisku K up teraz załaduje się now a strona, w której m usim y w ykonać dw a końcow e kroki w celu założenia subskrypcji. a) W kroku pierw szym nadajem y subskrypcji d o w o ln ą nazw ę, np. M ojaSubskrypcja. Jeśli planujem y odprow adzać podatek od działalności projektow anego serw isu, to należy rów nież w pisać Identyfikator p ła tn ika VAT, czyli NIP. N a koniec na dole strony należy zaznaczyć pole w yboru, którym potw ierdzam y zrozum ienie um ow y i kupno usługi. W ybór zatw ierdzam y kliknięciem przycisku Dalej. b) W kroku drugim w prow adzam y dane z karty płatniczej, k tó rą regulujem y opłaty. Ta czynność je st niezbędna do założenia subskrypcji, naw et jeśli nie zostaniem y obciążeni żadnym i opłatam i. D o m y śln ie w p olu O pcje

Rozdział 3. ♦ Przygotowania do utworzenia pierwszej aplikacji w Windows Azure

47

płatności pow inna być w ybrana opcja N o w a karta kredytowa. W ypełniam y w szystkie w ym agane pola (oznaczone na początku czerw o n ą gw iazdką) i po w prow adzeniu danych klikam y przycisk Prześlij. 9. N a koniec w yśw ietli się inform acja o u ru ch o m ien iu subskrypcji w raz

z ostrzeżeniem , że cały proces m oże potrw ać do 15 m inut. N ie w yłączam y przeglądarki i cierpliw ie czekam y, aż proces się zakończy. 10. M oże się zdarzyć, że serw is uruchom i procedurę w eryfikacji konta i trzeba

będzie zatelefonow ać do centrum obsługi klienta M icrosoftu. M ożem y tego uniknąć przez w ybranie procedury w eryfikacji za p o m o cą w iadom ości SMS (dla procedury telefonicznej przejdź do punktu 11.). N a razie dla obyw ateli P olski m oże to być kłopotliw e, bo w ym aga n iestan d ard o w eg o działania. K roki, które należy w tym celu w ykonać, to: a) P o p ojaw ieniu się ekranu w eryfikacji w y b ierz z m enu ro zw ijalnego

G erm any i kliknij Use text m essage — rysunek 3.2. Rysunek 3.2.



Wybieranie rodzaju weryfikacji konta dla subskrypcji usług platform y Windów s Azure

1 '| iif https://windows.azure.co.., P

i

û § Ô X | ^ azure.com

x ^

a

☆ b

-

..'W indow sAzurePlatform

W e lc o m e to the W in d o w s A zu re Platform Y o u 'v e s u c c e s s fu lly c re a te d y o u r n e w W in d o w s A z u re u s e r a c c o u n t a n d y o u 'r e al The clo u d is a b ig place and is c o n s ta n tly g ro w in g , To m ake sure it stays a safe place, ’ yo u w ill be u p and running.

V e r ify y o u r a c c o u n t w ith a t e x t m essage.

¡1 No Ver

Use text message

Tol Sup

C hange y o u r lo cation:

□ ^100% ▼

b) N a kolejnym ekranie w pisz swój num er telefo n u kom órkow ego

poprzedzonego prefiksem kraju (w przypadku P olski num er ten będzie m iał postać +48X X X X X X X X X ) — rysunek 3.3. Kliknij przycisk Następne. c) Jeśli pojaw i się błąd, ja k na rysunku 3.4, to ponow nie uzupełnij pola

zgodnie z tym rysunkiem i kliknij przycisk N astępne. d) O trzym asz na swój telefon kom órkow y w iadom ość SM S z czterocyfrow ym kodem , który należy w pisać w pole przedstaw ione na rysunku 3.5. K liknij przycisk Następne.

48

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 3.3. Wpisywanie numeru telefonu komórkowego, na który zostanie wysłany kod

i.

) I ¿I

https:/.':ni!:.live,corn/?ru=http P - i C x ]

t ’ W in d o w s Live-“

Hotmail (0]

Messenger (0]

-| Dodawanie numeru k... X Office

Fotografie

I

MSN

Dodawanie numeru kom órkow ego i weryfikacja konta Ktoś w usłudze Windows Live ► Urządzenia ► Dodawanie numeru komórkowego i weryfil*

W prow adź num er tele fonu kom órkowego W wiadomości tekstowej zostanie wysłany kod weryfikacyjny, Pomoże nam to w eliminowaniu spamu nie będziemy podawać Twojego numeru.

Przykład: (425)555-0100

[ Nastętj^ie ] [ Anuluj ] Ochrona prywatności

© 2011 Microsoft 1

Warunki

I

Ochrona prywatności

Informacje o reklamach

|rr

1 __________________













N ależy rów nież pośw ięcić uw agę plikow i W ebRole.cs i podobnym , np. W orkerRole.es. Z aw ie ra ją one klasy o n azw ach WebRole, WorkerRole etc., k tó re d zied z icz ą po klasie RoleEntryPoint. K lasa RoleEntryPoint zaw iera metody, które m ożna przesłonić i w ten sposób zdefiniow ać reakcje danej instancji roli na zm iany środow iskow e. G łów ne m e­ tody klasy RoleEntryPoint do przesłonięcia to: ♦ OnStart — w yw oływ ana, gdy instancja je st urucham iana po raz pierw szy; ♦ OnStop — w yw oływ ana, gdy instancja je st w łaśnie zatrzym yw ana; ♦ Run— w yw oływ ana, gdy instancja roli zostanie zainicjalizow ana (OnStart);

w m etodzie tej im plem entow ane pow inny by ć dłu g o trw ale zadania obliczeniow e, np. pobieranie asynchroniczne zadań z kolejki. O statni przypadek, czyli m etoda Run, je s t opisan a dokładniej w ro zd ziale 5. (serw is M oja-M uzyka), przy okazji om aw iania roli W orker R ole. System zarządzający apli­ kacjam i w A zure (AppF abric) w yw ołuje przy urucham ianiu instancji roli m etodę On­ S ta rt z klasy WebRole. Gdy ta m etoda zw róci w artość true, system w yw ołuje m etodę A p p lication_Start (znaną z pliku G lobal.asax w klasycznym A SP.N ET). Z ch w ilą gdy instancja roli kończy działanie, najpierw w yw oływ ana je st m etoda Application_End — znana z pliku G lobal.asax — a na ko n iec m eto d a OnStop z klasy WebRo­ le. L isting 4.3 zaw iera klasę WebRole w ygenero w an ą przez V isual Studio. Listing 4.3. Klasa WebRole domyślnie wygenerowana p rzez Visual Studio public class WebRole : RoleEntryPoint

{ public override bool OnStartO

{ / / F o r information on handling configuration changes / / see th eM S D N topic at http://go.microsofit.com/fwlink/?LinkId= 166357.

return base.OnStart():

} } N a potrzeby opisyw anego przykładu nie m usim y niczego w niej zm ieniać. D o działa­ nia aplikacji konieczne je st zw rócenie w artości true przez m etodę OnStart, inaczej rola w ogóle się nie uruchom i.

Rozdział 4. ♦ Kalkulator w chmurze Azure

65

4.3. Strona główna oraz obsługa kontrolek P oznaliśm y ju ż now y rodzaj projektu i dodatkow y plik roli ( W ebR ole.cs). N ajw yższy czas zająć się zasadniczą częścią rozw oju aplikacji K alkulator, czyli rozm ieszczeniem kontrolek na stronie oraz im plem entacją ich obsługi. N a stronie D efault.aspx — zgodnie z opisem projektow ym aplikacji — um ieścim y kilka kontrolek: dw ie kontrolki typu TextBox do w prow adzenia argum entów operacji, czte­ ry kontrolki ty p u Button do w skazyw ania w ym aganej operacji i je d n ą kontrolkę typu Label do w yśw ietlania w yniku. Oto w ym agane czynności: 1. K liknij dw ukrotnie plik D efault.aspx w gałęzi plików projektu. 2. Gdy do środkow ej części ekranu załaduje się kod strony, ustaw j ą w trybie

D esign (kliknij przycisk D esign w lew ym dolnym rogu środkow ego panelu). 3. U suń ze strony tekst pow italny. 4. Z m ień tytułow y napis na stronie z M y A S P .N E T A p plication na K alkulator

w chm urze. W tym celu otw órz i poddaj edytow aniu w trybie D esign plik Site.M aster. Po zm ianie tekstu zapisz i zam knij plik Site.M aster. W róć do edytow ania pliku D efault.aspx. 5. W przyborniku — p anel o nazw ie T oolbox — w yszukaj po trzeb n e kon tro lk i

i po prostu przeciągnij je na stronę D efault.aspx. N a stronie um ieść, jedna pod drugą, dw ie kontrolki TextBox. N astępnie w staw cztery kontrolki Button, po dw ie przy każdej kontrolce TextBox. N a koniec, poniżej kontrolek TextBox, w staw kontrolkę Label. K ontrolkom Button zm ień w łaściw ość T ext na znaki odpow iadające operacjom arytm etycznym — czynności te w ykonaj za p om ocą panelu P roperties. Po tych operacjach strona D efault.aspx pow inna m ieć w ygląd taki ja k na rysunku 4.5. D la przejrzystości kodow ania w arto też nazw ać w szystkie kontrolki w edług jak iejś konw encji, przypisując w artości atrybutom ID. Rysunek 4.5.

Ekran główny kalkulatora p o wstawieniu kontrolek

KALKULATOR W CHM URZE Home

About

M ainConterUCustorn/ülllTt

wynik]

6. K ażdej kontrolce Button, dalej nazyw anej przyciskiem , u staw w łaściw o ść CommandName na nazw ę tek sto w ą danej operacji arytm etycznej: dla + m ech to będzie dodaj, dla - niech to będzie odejmij etc.

66

Windows Azure. W prowadzenie do programowania w chmurze

7. O tw órz plik D efault.aspx.cs i do klasy _Defaul t dodaj m etodę wykonaj

z listingu 4.4. Listing 4.4. Zawartość metody’ wykonaj, odpowiedzialnej za wykonywanie obliczeń kalkulatora protected void wykonaj(object sender. CommandEventArgs e)

{ double dArgl =0.0; double dArg2 =0.0; //za m ia n a danych użytkownika na wartości double

bool wartlOK = Double.TryParse(argl.Text, out dArgl); bool wart20K = Double.TryParse(arg2.Text, out dArg2); 1f (wartlOK && wart20K)

{ double liczba = 0; string op = switch (e.CommandName)

{ case "dodaj": op = "+"; liczba = dArgl break; case "odejmij": op = liczba = dArgl break; case "pomnoz": op = ; liczba = dArgl break; case "podziel": op = "/"; liczba = dArgl break;

+ dArg2;

- dArg2;

* dArg2;

/ dArg2;

} wynik.Text = argl.Text + op + arg2.Text + " = " + liczba;

} else

{ wynik.Text = "Nie można obliczyć wyniku na podstawie wprowadzonych wartości";

8. K olejnym krokiem je st przypisanie do obsługi zdarzenia Command w szystkich czterech przycisków pojedynczej m etody wykonaj. W tym celu w panelu w łaściw ości (ang. P roperties) kliknij sym bol żółtej błyskaw icy i przejdź do listy zdarzeń danego obiektu. D la każdego przycisku znajdź pozycję C om m and i pow iąż z m ą m etodę wykonaj. 9. Z apisz w szystkie zm iany dokonane w projekcie.

Teraz m ożem y przystąpić do przetestow ania działania zbudow anej aplikacji. W ciśnię­ ciem klaw isza F 5 urucham iam y kom pilację i zaczynam y debugow anie lokalne. D ziała ono p odobnie ja k w okienkow ych aplikacjach W indow s. Po naciśn ięciu F 5 zostanie

Rozdział 4. ♦ Kalkulator w chmurze Azure

67

uruchom iona dom yślna przeglądarka internetow a, a w niej aplikacja K alkulator. Jeśli w cześniej nie uruchom iliśm y V isual Studio jak o adm inistrator, m oże pojaw ić się błąd jak na rysunku 4.6. W takim przypadku należy zam knąć p ro jek t oraz V isual Studio, a następnie ponow nie uruchom ić środow isko, ale ty m razem z u p raw n ien iam i ad m i­ nistratora. Ponadto m oże się pojaw ić m onit system u o k o n ieczn o ści dodania w yjątku bezpieczeństw a dla em ulatora W indow s A zure. N ależy w tedy potw ierdzić zgłaszany wyjątek. Rysunek 4.6.

Błąd, któty pojaw ia się w przypadku gdy nie uruchomiliśmy VS ja k o administrator

M icrosoft Visual Studio

W indow s Azure Tools fo r M icrosoft Visual Studio The W indow s Azure com pute emulator must be run elevated, Please restart Visual Studio in elevated administrator m ode in order to run the project,

4.4. Debugowanie lokalne Z ch w ilą gdy w trybie adm inistratora uruchom im y V isual Studio i otw orzym y now o utw orzony projekt K alkulator, uruchom i się em ulator D evelopm ent Fabric. E m ulator ten sym uluje zarów no obliczenia w chm urze, ja k i m agazynow anie danych w chm urze, czyli A zure Storage. U ruchom ienie em ulatora je s t sygnalizow ane b łęk itn y m logo na pasku zadań — obszar obok system ow ego zegara i datow nika — rysunek 4.7. Rysunek 4.7.

Logo D evelopm ent Fabric w pasku ikon powiadom ień

Jeśli po tej czynności logo je st niew idoczne, to trzeba kliknąć biały trójkącik na pasku zadań i w oknie dialogow ym w ybrać ikonę W indows A zu re Sim ulation M onitor, a j a ­ ko zachow anie w skazać P okaż ikony i pow iadom ienia. Z aletą D evelopm ent Fabric je st rów nież m ożliw ość podglądania na bieżąco zachow ań em ulatora chm ury. W ystarczy kliknąć praw ym przyciskiem m yszki na błękitne logo i w ten sposób uruchom ić m enu kontekstow e. Z m enu kontekstow ego (widocznego na rysunku 4.8) m ożna w ybrać ró ż­ ne opcje, m iędzy innym i Show C om pute E m u la to r U l oraz Show S torage E m u la to r Ul. D odatkow o w dowolnej chwili m ożna w yłączyć poszczególne części D evelopm ent Fabric przez w ybranie opcji Shutdow n Com pute E m ulator lub Shutdow n Storage E m u ­ lator. Jeśli w ybierzem y E xit, to natychm iast zam kniem y środow isko em ulujące. K liknijm y opcję Show C om pute E m u la to r U l i zobaczm y, ja k pracuje je d y n a in stan ­ cja roli W eb R o lel, która urucham ia się przy starcie kalkulatora. Z araz po uruchom ie­ niu aplikacji m ożem y w yśw ietlić konsolę naszej roli, w y b ierając j ą z lew ego panelu — rysunek 4.9.

68

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 4.8.

Show C o m p u te Em ulator UI

M enu kontekstowe D evelopm ent Fabric

Show Storage E m ^ t o r UI Shutdow n C o m p u te Em ulator Shutdow n Storage Em ulator Exit

.

g s.„

deployment(lfi5).ICalkulator.WebRoteL.O (Started)

ais™ - ^ Kalkulat ADanielVAppDataALocalXdftmpYaOideployment (185)\res\deploym ent (185) .K alk u lato r. HebRolel [D iagnostics] Info rm ation : C:\Az \HonÄgentHo3t.exe -L ocalFath "C: \directory\D iagnostic5toreV M onit (185). K alk u lato r. HebRolel. 0 \d ir e \Local\dftm p\sO \deployment(185)V -ShutDownEvent WADDM-ShutDown-2 4 6232 -ev en ts [MbnAgentHost] E rro r: MR EVENT:

] ] ] ] ]

Output: Output: Output: Output: Output:

=\ Kalku la to r \ K alkulator Vbin\ DebugVKalloilato r . csx \ r o le s YWebRolelXd ia g n o stic s \.n64 Vmonitor 3ers'sDaniel\ÄppData'vLocalSdf tinpNs O\deploymeat (185) \r e s \ deployment [IBS) .Kal k o la to r. HebRo ' -S ta tic C o n fig F ile "C: VÜ3er3\Daniel\RppData\Local',dftmp\3QVdeploYment[lB5) \reaVdeploym 3ry\D iagno3tic5tore\M onitor\C onfigurationN üLa3taticconfig.xm l” -C onfigFile "C:\U3er3\Dan s\deployment (185) . K alk u lato r. HebRolel. 01directory\.D iagnosticStore\M onitor\Configuration Ea3ecf£e4700ac0fldfb8a3 9c5€9 - I n i t i a l ! zedEvent WADM-Startüp-24eBfa3ecf5e47OOaeOfldfb8a3

Agent w ill e x it when H ill Signal HADM-Star R eg istered as an even Agent w ill e x it when Monitoring Agent S tar

Rysunek 4.9. P anel administracyjny emulatora Windows Azure

Łatw o zauw ażyć, że em ulator D evelopm ent Fabric najpierw w yw ołał m etodę OnStart, a następnie m etodę Run, dokładnie tak, ja k zostało to w cześniej opisane. Jeżeli chodzi o lokalny em ulator składow ania d anych — rów nież m ożem y otw orzyć jeg o interfejs użytkow nika, klikając w m enu kontekstow ym D evelopm ent Fabric opcję Show Storage E m ulator UL M ożna w m m zobaczyć, pod jak im i portam i fig u ru ją o d ­ pow iednie kom ponenty D evelopm ent Storage. M ożem y je rów nież zresetow ać lub z a ­ trzym ać — rysunek 4.10. Rysunek 4.10.

Interfejs użytkownika Developm ent Storage

Storage Emulator File

Help

Service management Name

Status

Endpoint

M

Blob [7] Queue

Running Running

http ://127.0.0.1:10000/ http ://127.0.0.1:10001/

® Table

Running

http ://127.0.0.1:10002/

Stop

Rozdział 4. ♦ Kalkulator w chmurze Azure

69

N a koniec w arto dodać, że dzięki D evelopm ent Fabric m ożem y dokładnie tak samo jak w k lasycznym A SP .N E T debugow ać aplikacje. Jeśli je d n a k istnieje w ięcej niż jed n a instancja danej roli, to pułapki b ę d ą reagow ały tak ja k w aplikacjach w spółbieżnych. Z tego pow odu w arto najpierw przetestow ać aplikację przy jednej instancji, a dopiero potem zw iększać ich liczbę.

4.5. Wdrożenie aplikacji do chmury z wykorzystaniem Visual Studio i Azure SDK N areszcie nadszedł czas, gdy po przetestow aniu aplikacji lokalnie chcem y j ą pokazać całem u św iatu, innym i słowy: w ysłać j ą do chm ury A zure. M ożna to zrobić dw ojako. Sposób pierw szy to przygotow anie specjalnej paczki w drożeniow ej i załadow anie jej do chm ury razem z plikiem k o nfiguracyjnym pop rzez p o rtal https.V /w indow s.azure, com. Sposób drugi to skorzystanie z now ych kom end środow iska V isual Studio, które pojaw iają się w m m po zainstalow aniu W indow s A zure T ools fo r V isual Studio oraz W indow s A zure SDK. Preferow any je st drugi sposób, bo zdecydow anie ułatw ia w dro­ żenie aplikacji w chm urze A zure. D o sukcesu w drożenia z V isual Studio n iezbędne jest zainstalow anie w system ie odpow iedniego certyfikatu X .509. Jeśli zdecydujem y się na opcję drugą, to utw orzenie i zainstalow anie certyfikatu za p o m o cą V isual Studio b ęd ą dość proste. Jeżeli dzięki w iadom ościom zaw artym w p o przed n im rozdziale udało nam się u tw o ­ rzyć projekt na p ortalu h ttps://w indow s.azure.co m , w ykorzystam y go teraz do w d ro ­ żenia zbudow anego kalkulatora. Pam iętajm y, że m usim y m ieć zarów no u ruchom ioną usługę H o ste d Service, jak i założone konto S torage A cc o u n t — zob. ro zd ział 3. Oto konieczne czynności: 1. K liknij praw ym przyciskiem m yszki na ikonkę projektu CloudService (w naszym przypadku K alkulator) i w ybierz opcję Publish. 2. W now ym oknie dialogow ym pojaw i się trzy krokow y kreator. W pierw szym

kroku S ign in (dom yślnie otw artym ) z m enu rozw ijaln eg o C hoose y o u r subscription: w ybierz < M anage... >. P ojaw i się now e okno (rysunek 4.11), w k tórym należy dodać sw oje dane identyfikacyjne. M ożem y to zrobić, klikając przycisk New. W kolejno otw artym oknie pozw olim y program ow i V isual Studio na w ygenerow anie certyfikatu, który później — z portalu zarządzającego — należy dodać do zaufanych certyfikatów . 3. W m enu rozw ijalnym C reate or se lect an ex istin g certificate f o r

authentication w ybierz . W now ym oknie nadaj przyjazną nazw ę sw ojem u now em u certyfikatow i i kliknij OK. Po k liknięciu tego przycisku certyfikat zostaje utw orzony i zainstalow any w systemie. Teraz należy go w ysiać do portalu zarządzającego.

70

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 4.11.

Okno zarządzania poświadczeniam i do Windows Azare

4. N ie zam ykając poprzedniego okna, zaloguj się do portalu https://w indow s.

azure.com. 5. Po zalogow aniu, korzystając z m enu H o ste d Services, S torage A cco u n ts

& CD N , w ybierz odsyłacz M anagem ent Certificates', w tedy w górnej części okna dialogow ego pojaw i się p rzycisk A d d certificate. Po je g o k liknięciu w yśw ietli się now e okno dialogow e, w którym — po kliknięciu przycisku B row se — m ożesz w skazać p lik certyfikatu n a dysk u sw ojego lokalnego kom putera. N ajłatw iej w tym m iejscu będzie w rócić do poprzedniego okna w V isual Studio i kliknąć lm k, od którego zaczyna się drugi punkt, czyli Copy the f u l l path. N astępnie w oknie dialogow ym w y b o ru p lik u certy fik atu po prostu w klej skopiow aną ścieżkę. K liknij przycisk O twórz, a następnie OK. Po chw ili certyfikat zostanie załadow any. 6. W róć do okna V isual Studio. T rzeci p unk t to p ro śb a o w prow adzenie Subscription ID. W artość tę rów nież m ożna znaleźć na portalu zarządzającym . W lew ym panelu w ybierz m enu H o ste d S ervices, zaznacz w ęzeł sw ojego projektu, a po praw ej stronie, w sekcji Subscription ID , zobaczysz w łaściw e ID. Identyfikator ten należy skopiow ać do pola oznaczonego ety k ietą C opy the ID f o r y o u r subscription fro m the W indow s A zu re P ortal. W ostatnim p olu należy w prow adzić d o w o ln ą nazw ę, k tó rą w p rzy szło ści będziem y identyfikow ać teraz w prow adzone dane. Okno po tych operacjach pow inno w yglądać tak ja k na rysunku 4.12. K liknij przycisk O K — w tym m om encie V isual Studio łączy się z serw eram i W indow s A zure i spraw dza, czy w prow adzone dane są popraw ne. 7. Po kliknięciu O K nastąpi pow rót do poprzedniego okna, w którym pojaw i się

na liście konto T w oich pośw iadczeń do A zure. K liknij Close. 8. W oknie, do którego pow róciłeś (rysunek 4.13), w m enu rozw ijalnym Choose

y o u r subscription: pow inny być ju ż w ybrane now o dodane pośw iadczenia. K liknij N e xt >. 9. W kolejnym kroku pojaw i się okno dodaw ania now eg o H o sted Service.

Poniew aż w ykonaliśm y ju ż to poprzez portal zarządzający, pom ijam y ten krok, klikając w oknie Create W indows A zu re Services przycisk Cancel. W idzim y w tym m om encie okno drugiego etapu w drażania aplikacji.

Rozdział 4. ♦ Kalkulator w chmurze Azure

Rysunek 4.12.

71

Ie U

Windows Azure Project Management Authentication

O hio wprowadzania danych do uwierzytelnienia komputera

es -

I'

Set up your credentials to authorize Visual Studio to manage and deploy to your Wi n dows Azu re su bscri pti on. Help me set up mv credentials 1. Create or select an existing certificate for authentication: Windows Azure Tools - mojCertyfikat! 2, Copy the full path of the certificate to the clipboard, browse to the Subscription Certificates page of the Windows Azure Portal and upload the certificate. 3. Copy the ID for your subscription from the Windows Azure Portal; e!7 e783c-5167 -4acQ-891 Name these credentials: Wi n dowsAzu reAccou ntL

Online orivacv statement

Rysunek 4.13.

Pierw szy h-ok wdrażania aplikacji do chmury

I

OK

1

ir

Publish Windows Azure Application

j

W in d o w s A z u r e P u b lis h S ig n In

Credentials are required to connect to your Windows Azure subscriptions Sign in to download credentials

Choose your subscription; I WindowsAzureAccounti.

iline privacy statement

TI

I Import...

I

[ < Previous | L - ^ f — I

10. W oknie tym , w idocznym na rysunku 4.14, z listy rozw ijalnej H o ste d service:

w ybierz założony w p o przednim rozdziale p ro jek t A zu reT est. Z listy E nvirom ent: w ybierz Staging. Środow isko S ta g in g je st środow iskiem testow ym , a P roduction — środow iskiem finalnym , przeznaczonym dla końcow ego użytkow nika. Z aw sze w arto w y siać aplikację n ajp ierw do środow iska Staging, aby po przetestow an iu , ty m razem w praw dziw ej chm urze, przełączyć j ą później do środow iska P roduction. P rzełączenie do środow iska P roduction w ym aga jednego kliknięcia na portalu zarządzającym . 11. Z listy B u ild configuration: w ybierz R elea se, a z S ervice configuration:

w ybierz Cloud. W zakładce A d va n c ed Settings (rysunek 4.15) należy upew nić się, że w polu Storage account: je st w ybrane Tw oje konto Storage. Z atw ierdź ustaw ienia kliknięciem N e xt >.

72

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 4.14.

D rugi krok wdrażania aplikacji do chmury: wybieranie projektu, środowisk i konfiguracji

Publish Windows Azure Application

W in d o w s A z u r e P u b lis h S e ttin g s

Sign in

I Common Settings | Advanced^Settings

Settings

Hosted service:

Summary

I AzureTest

| Staging Build configuration:

Service configuration: I Cloud I7! Enable Remote Desktop for all roles Settings,,. I I Enable Web Deploy for all web roles (requires Remote Desktop)

Online privacy statement

[ < Previous [ |

Next >

|[

Publish

|[

Cancel

Rysunek 4.15.

Zakładka A dranced Settings z miejscem wyboru konta Storage

Publish Windows Azure Application

j

Sign in Settings Summary

W in d o w s A z u r e P u b lis h S e tt in g s

Common Settings Advanced Settings Deployment label: Kalkulator [71 Append current date and time Storage account: I m c je d a n e l

[71 Enable deployment upgrade

E EnableIntelliTrace Settings.,, O Enable profiling

Settings...

Online privacy statement

12. K olejne okno przed potw ierdzeniem pow in n o w yglądać tak ja k n a rysunku

4.16. Aby rozpocząć w drażanie do chm ury, kliknij przycisk Publish. U ruchom i to proces w ysyłania paczki aplikacji do chm ury. Proces ten m oże trw ać kilka m inut. W V isual Studio w szelkie kom unikaty m ożna obserw ow ać w m ałym okienku w dolnym panelu ekranu — rysunek 4.17. 13. Gdy w oknie kom unikatów pojaw i się kom unikat C om plete, m ożesz sprawdzić

działanie aplikacji w środow isku testow ym — Staging. W tym celu kliknij link oznaczony W ebsite URL — rysunek 4.17. Jeżeli stw ierdzisz, że aplikacja działa popraw nie, to m ożesz j ą przełączyć do środow iska Production.

Rozdział 4. ♦ Kalkulator w chmurze Azure

Rysunek 4.16.

73

a r ? 1

Publish Windows Azure Application

Okno podsum owania p rzed ostatecznym wdrożeniem do chmury

W in d o w s A z u r e P u b lis h S u m m a ry

- fl

Target profile: I New profile* Deployment upgrade: Enabled Hosted service:

AzureTest

Environment:

Staging

Storage account:

mojedanel

Deployment label:

Kalkulator - 2011-11-30 20:30:00

Build configuration:

Release

Service configuration: Cloud WebDeploy:

Disabled

IntelliTrace:

Disabled

Remote Desktop:

Disabled

Profiling:

Disabled

Online privacy statement

Rysunek 4.17.

Panel podglądu postępu ładowania aplikacji do chmury

[

Deploying Kalkulator to kalkulator - Staging

Staging

©

Website URL V b S e I711fel54f61bf99ba6ad66109dc.doudapp.net/;

ïm

Deployment ID b8ed2711fel54f61bf99 ba6ad661Q9dc Open in Server Explorer

History

Ulü4:5á ■initializing... 01:54:33 ■Instance0 of role WebRolel is initializing 01:59:40 Instance0 of role WebRolel is busy 02301:56 Instance0 of role WebRolel is ready 02:01:56 Complete.

14. N a p ortalu zarządzającym w ybierz H o s te d S ervices, następ n ie w ęzeł

z subskrypcją, a potem w łaściw e w drożenie (w tym przypadku jego nazw a to „K alkulator — data w ysiania”). N a górze ekranu pojaw i się przycisk Sw ap VIP — rysunek 4.18. Po jego kliknięciu pojaw i się okno potw ierdzenia — rysunek 4.19. K liknij przycisk OK. Z chw ilą potw ierdzenia następuje zam iana adresów w ew nętrznych środow iska Staging na Production. W tedy w sekcji D N S N a m e pojaw i się końcow y adres U RL utw orzonej aplikacji — rysunek 4.20. Rysunek 4.18.

Ekran pokazujący lokalizację przycisku Swap IIP

'4® Upgrade

Configure

■Qy Delete

Start

4® Stop

Swap

Configure OS

Re bo

Deployments Choose Columns Name

Type

P i Certificates Kalkulator - 2011-05-24 20:47:06

Deployment

Jeśli dotarłeś do tego m iejsca opisu, to praw dopodobnie udało Ci się zbudow ać, zała­ dow ać i uruchom ić sw oją pierw szą aplikację w chm urze W indow s A zure — przyjm ij gratulacje!

74

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 4.19.

Swap VIPs

O hio potwierdzenia zmiany środowiska Staging na Production

Move the bits deployed in Staging to Production and the bits in Production to Staging slots. A fte r this operation the Production VIP will point to the bits currently deployed in the Staging slot and the Staging VIP w ill point to the bits currently deployed in the Production slot. More info on VIP swaps Sw ap

MojaS u bskry pcja F ro m

Kalkulator - 2011-05-24 20:47:06 (Staging) To

(Production)

Cancel

Rysunek 4.20. P anel boczny, w którym pojaw i się końcowy adres URL zbudowanej aplikacji

Nam e

Type

IfiOl m ojaSubskrypcja i,;* test-ka lkulato r

Status

Subscription

A ctive

Hosted Service

Created

Environm ent

C re a te d 2011 -09-02 0 8 :2 9 :1 0 UTC C o re s u s e d

P~i Certificates K alk ula to r - 2011-09-02 Deploym ent ^

W e b R o lel SP W e bR o lel_IN _0

Ready

|

i

Production

I

DN S nam e

Role

R eady

Production

Instance

R eady

Production

| http ://test-^ jk u lato r.clou da pp .n et E n v ir o n m e n t Production

Jednak z ch w ilą uruchom ienia aplikacji w chm urze A zure rozp o czy n a się n aliczanie opłat zw iązanych z czasem działania i zużyw anym i zasobam i. D latego od razu w arto w iedzieć, co należy zrobić, aby zatrzym ać to naliczanie.

4.6. Zatrzymanie i usunięcie aplikacji Jedynym sposobem na zatrzym anie licznika płatności A zure je st zatrzym anie aplikacji (H osted Service) i usunięcie konta A zure Storage. P o n iew aż w aplikacji K a lku la to r nie m agazynujem y w chm urze żadnych danych, konta Storage w łaściw ie nie m usim y usuw ać. Jed n ak w arto p o zn a ć sam m e ch an izm u su w an ia i m ie ć p ew n o ść, że żad n e opłaty za nieużyw ane konto nie b ęd ą naliczane i pobierane. A by u sunąć aplikację z chm ury, trzeba j ą najpierw zatrzym ać. Oto w szystkie w ym a­ gane działania: 1. Zaloguj się na sw oje konto na portalu zarządzającym W indow s A zure (https://w indow s.azure.com ). 2. W lew ym m enu w ybierz H o ste d Services. 3. W środkow ej części ekranu pow inny się pojaw ić w ęzły w szystkich aplikacji um ieszczonych w chm urze. W ybierz w ęzeł z aplikacją kalkulatora oznaczony „K alkulator — data i godzina” .

Rozdział 4. ♦ Kalkulator w chmurze Azure

75

4. W m enu w górnej części ekranu pow inien się uaktyw nić przycisk Stop — rysunek 4.21; kliknij go. Rysunek 4.21. Zatrzymywanie aplikacji

itaging yment

©

Upgrade

x.Timestamp). F ir s t ( ): //zapam iętanie odsyłacza do bloba, którego należy usunąć

blobToDelete = toDelete. Link: //usunięcie obiektu z Tables

context.DeleteObject(toDelete): //zapam iętanie zm ian

context.SaveChanges(): //przygotowanie informacji o blobie

CloudBlob cblob = processedAudio.GetBlobReference(blobToDelete): //usunięcie bloba z A zure B lobs

100

Windows Azure. W prowadzenie do programowania w chmurze

cblob.Delete():

} //dodanie obiektu do kontekstu i zapis zm ian

context.AddObject(" la s t " . e n tity ): context.SaveChanges():

//przygotowanie komunikatu do kolejki wyjściowej

CloudQueueMessage mes = new CloudQueueMessage(aud1oGuid + " |" + cb .Uri .AbsoluteUri): //w ysianie komunikatu do kolejki wyjściowej

outputQueue.AddMessage(mes):

} catch (Exception ex)

{ Trace.WriteLineCBłąd p r z y w y s y ła n iu p rze tw o rz o n e g o a u d io do A z u re B lo b s : " + ex.Message):

} fin a lly

{ //końcow e usuwanie plików roboczych

Fi 1e .Delete(1 ocal Vi deoFi1ePath): Fi 1e .Delete(1 ocal Audi oFi1ePath):

} } //uśpienie procesu na sekundę

Thread.Sleep(lOOO): Trace.W riteLine( " P r a c u j ę " , " I n f o r m a t io n " ) :

Po w szystkich opisanych w tym podrozdziale popraw kach projekt M oja M u zyka m o ż­ na skom pilow ać i uruchom ić w lokalnym em ulatorze W indow s A zure Em ulator. Z auw ażm y, że korzystam y z lokalnej w ersji A zure Storage (Q ueues, Tables i B lobs) o nazw ie D evelopm ent Storage. W skazuje na to linijka kodu: csa = CloudStorageAccount. Devel opmentStorageAccount; w m etodach O nStart( ) klas WebRol e i WorkerRol e. W drożenie rozw iązania do chm ury będzie w ym agało zm iany tego polecenia i użycia rzeczyw istych pośw iadczeń do konta w A zure Storage. M ożliw e je st też inne, bardziej elastyczne rozw iązanie, polegające na zapisie pośw iadczeń w pliku konfiguracyjnym (np. m ne pośw iadczenia w pliku ServiceC onfiguration.L ocal.esc fg . a m ne w S erviceC o n fig u ra tio n .C lo u d .c scfg ). T akie rozw iązan ie nie b ęd zie w ym agało zm iany kodu przed w drożeniem do chmury. Zostanie ono przedstaw ione w dalszej części rozdziału. A by dokładnie spraw dzić działanie aplikacji, w arto skorzystać z narzędzia A zure Sto­ rage E xplorer (podrozdział 3.3) oraz debugera V isual Studio, który um ożliw ia w sta­ w ianie p ułapek w kodzie. Za ich p o m o c ą m ożem y n a p rzy k ład p recy zy jn ie p rze śle­ dzić kroki konw ersji i uchw ycić m om ent, gdy po ukończeniu konw ersji w kontenerze processed pojaw ia się blob z plikiem M P3, a w tabeli 1 ast now y w pis z inform acjam i o przetw orzonym pliku.

Rozdział 5. ♦ Studium przypadku: serwis Moja-Muzyka

101

5.10. Zmiany w projekcie przed wdrożeniem do chmury P rzed w ysianiem p rojektu do chm ury A zure należy po czy n ić w m m kilka zm ian. Po pierw sze, do pliku konfiguracyjnego należy dodać pośw iadczenia konta A zure Stora­ ge, a w kodzie klas WorkerRole i WebRole dokonać zm iany instrukcji zw iązanej z tw o ­ rzeniem obiektu Cl oudStorageAccount. D ruga zm iana w ynika z różnicy w strukturze folderów em ulatora lokalnego i środow iska uru ch o m ien io w eg o w chm urze. T rzecia zm iana w ynika z funkcjonalności aplikacji. A plikacja m e w ym agania logow ania u ży t­ kow ników , w ięc rezygnujem y z utrzym yw ania sesji w chm urze. P ierw sza zm iana w ym aga następujących kroków: 1. K liknij dw ukrotnie P rocesorW ideo w folderze R oles projektu M o ja M itzyka . W otw artym k o nfiguratorze w zakładce Settings kliknij A d d Setting. W now o dodanej linijce w pisz w polu N am e nazw ę StorageCredenti al s, w p olu Type w ybierz C onnectio n S trin g , a w p olu Value w pisz: Defaul tEndpoi ntsProtocol=https:AccountName=nazwaKonta:AccountKey=klucz, gdzie nazwaKonta i klucz są przydzielone do konta A zure Storage.

2. N azw ę ko nta Storage i klucz m ożna uzyskać po w ejściu na p o rtal h ttp :// w indow s.aznre.com . Po zalogow aniu się w ybierz z m enu po lewej stronie H o ste d Services, Storage A ccounts & CDN. N astępnie z m niejszego m enu po lewej w ybierz Storage A ccounts. W środkow ej części ekranu w ybierz sw o ją subskrypcję, a potem zaznacz nazw ę sw ojego konta Storage. Po prawej stronie ekranu pow inna pojaw ić się m ożliw ość w yśw ietlenia klucza dostępu. K liknij View w panelu P rim ary access key. W now ym oknie p o jaw ią się dw a klucze — przy pierw szym kliknij ikonkę kopiow ania, tak ja k na rysunku 5.7. 3. Po uzupełnieniu w pisu w konfiguratorze — rysunek 5.8 — zapisz zm iany {Ctrl S). 4. P ow tórz działania dla roli A p lik a cja . K liknij d w ukrotnie w ęzeł A p lika cja w folderze Roles pro] cktu M ojaM uzyka. W otw artym konfiguratorze w zakładce Settings kliknij A d d Setting. W now o dodanej linijce w pisz w polu Nam e nazw ę StorageCredenti al S, w polu Type w ybierz C onnectionString, a w p olu Value w pisz: DefaultEndpoi ntsProtocol=https : AccountName=nazwaKonta:AccountKey= kl ucz, gdzie nazwaKonta i kl ucz są przydzielone do konta A zure Storage. 5. O tw órz plik W ebRole.cs i w m etodzie OnStart odnajdź instrukcję: CloudStorageAccount csa = CloudStorageAccount.DevelopmentStorageAccount:

po czym zam ień j ą na: CloudStorageAccount csa = CloudStorageAccount.Parse( RoieEnvi ronment.GetConfi gurati onSetti ngValue( "StorageCredenti a is " )) :

6. O tw órz plik W orkerRole.es i w m etodzie OnStart odnajdź instrukcję: csa = CloudStorageAccount.DevelopmentStorageAccount:

102

Windows Azure. W prowadzenie do programowania w chmurze

I W in d o w Azure Platform

Storage

| Choose Columns

Custom Domain orage accounts

Name

Type

¡HU mojaSubskrypcja

Subi

t^j mojstoragel

Stor

P ro p e rtie s

P r im a r y a c c e s s k e y

S e c o n d a r y a c c e s s ke y

V ie w S to r a g e A c c e s s K e y s P r im a r y a c c e s s k e y

q40XrWM|HpnMI Hosted Service Accounts & CDP

S e co n d a ry a cce ss key

zJu

Reporting

Rysunek 5.7. Pobieranie klucza do konta Storage z portalu http://windows.aznre.com ProcesorWideo [Role]*

Configuration

Service Configuration:

All Configurations

Settings ^jAdd Setting / \ Remove Setting

Endpoints

Add configuration settings that can be accessed programmatically and dynamically updated.

Local Storage

Name

Certificates

showLatest Virtual Network

Microsoft.WlndowsAzure.Plu... | Connection String StoiageCredentials

Value

T yp e

I String

- 10

1 1UseDevelopmentStorage=true

[[Connection String T

D e f a u It En d p o i n ts P r o t o c o l= h tt ps; A c c o u n t N a m e=

moj s to r a g e l; A c c o l J

Rysunek 5.8. Dodawanie poświadczeń konta Storage do pliku konfiguracyjnego

po czym zam ień j ą na: csa = CloudStorageAccount.Parse( RoieEnvi ronment.GetConfi gurati onSetti ngValue("StorageCredenti a ls " ) ) ; 7.

O tw órz plik D efault.aspx.cs i w m etodzie Page_Load odnajdź instrukcję: csa = CloudStorageAccount.DevelopmentStorageAccount:

po czym zam ień j ą na: csa = CloudStorageAccount.Parse( RoieEnvi ronment.GetConfi gurati onSetti ngValue("StorageCredenti a ls " )):

oraz dodaj przestrzeń nazw Microsoft.WindowsAzure.ServiceRuntime.

j

Rozdział 5. ♦ Studium przypadku: serwis Moja-Muzyka

103

W tym m iejscu — po pierw szej zm ianie w projekcie — skompiluj i uruchom aplikację. Jest to układ, w którym aplikacja k o rzysta z A zure Storage w chm urze, a środow isko uruchom ieniow e i pam ięć lokalna są posadow ione w lokalnym kom puterze. Także przy tej konfiguracji m ożna spraw dzić działanie aplikacji. W szczególności w ar­ to prześledzić zaw artość A zure Storage, tym razem osadzonego w chm urze. M ożna to zrobić po dodaniu odpow iednich pośw iadczeń w A zure Storage Explorer. Pow odem drugiej, koniecznej zm iany są w cześniej opisane ró żn ice m iędzy stru k tu rą folderów em ulatora lokalnego i środow iska uruchom ieniow ego w chm urze. W tym ce­ lu należy otw orzyć plik W orkerRole.es i w m etodzie Run zam ienić instrukcję: string path = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), "approot". "ffmpeg". "ffmpeg.exe"):

na instrukcję: string path = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), "ffmpeg", "ffmpeg.exe");.

T rzecia zm iana to w yłączenie sesji poprzez zm ianę ustaw ień w pliku konfiguracyjnym . W tym celu należy otw orzyć plik W eb.config w projekcie A p lika cja i odnaleźć wpis:

po czym zam ienić go na:

Zm iana w pisu w pliku konfiguracyjnym je st konieczna. B ez niej aplikacja nie uruchom i się w chmurze, ponieważ nastąpi próba utworzenia bazy danych w lokalnym komputerze. P o tych w szystkich zm ianach aplikacji nie da się ju ż uru ch o m ić w em u lato rze lo k a l­ nym , ale je st ona przygotow ana do w drożenia do chm ury. K olejny podrozdział zaw ie­ ra szczegółow y opis tego procesu.

5.11. Wdrożenie aplikacji do chmury Windows Azure W drożenie aplikacji do chm ury W indow s A zure w ym aga k roków tak ich sam ych ja k w przykładzie z rozdziału 4., „Kalkulator w chmurze A zure” . Spodziewany w ynik to apli­ kacja zgodna z wizj ą biznesow ą, której w szystkie składniki są posadow ione w chmurze. W drożenie w ym aga następujących kroków : 1. Jeśli w rozdziale 4. usunąłeś usługę H o ste d Service, to załóż now ą, o nazw ie M ojaM uzyka, zgodnie z instrukcjam i w podrozdziale 3.2.1. 2. W panelu Solution E xp lo rer kliknij praw ym przyciskiem m yszki projekt M ojaM uzyka. W ybierz z m enu kontekstow ego Publish.

104

Windows Azure. W prowadzenie do programowania w chmurze

3. W now ym oknie w m enu rozw ijalnym C hoose y o u r subscription: w ybierz odpow iednie pośw iadczenia. Jeśli popraw nie w prow adziłeś dane subskrypcji i certyfikatu — zob. rozdział 4., pow inien eś m ieć co najm niej je d n ą opcję o nadanej przez siebie nazw ie. K liknij N e xt >. 4. W kolejnym kroku z listy rozw ijalnej H o ste d service: w ybierz M ojaM uzyka. Z listy E nvirom ent: w ybierz Staging. B u ild configuration: ustaw na R elea se, a S ervice configuration: na Cloud. W zak ład ce A d v a n c e d Settin g s należy upew nić się, że w polu Storage account: je st w ybrane Tw oje konto Storage. 5. W ostatnim kroku procedury {Sum m ary) kliknij P ublish. N a dole ekranu pojaw i się now y panel, o nazw ie W indows A zu re A ctivity Log. W m m m ożesz obserw ow ać postęp w ysyłania aplikacji do chm ury. 6. Z ch w ilą zakończenia zadania (trw a to kilk a m in u t z fazam i C rea tin g P ackage, U ploading etc.) i po rozw inięciu pozycji w W indows A zu re A ctivity L og pojaw i się odsyłacz do serw isu M oja-M uzyka w chm urze — rysunek 5.9. R 1 100 %

ín rfv v id p ríi - ł

m

1

► X

I Wi ndows Azu re Activity Log 1 Qjii) Deployment | [j(| Storage |

Log Requests | ^ Remove all completed

Description

Status

^ Deploying MojaMuzyka to MojaSubskrypcja - Staging

Completed

Start Time 2011-08-2515:21:43

History View warnings

4

1

Website URL http://lbd683 a2f0034cf5a2edccc62e700e43.c BLIclapp.nel. Deployment ID 1bd683a2f0034cf5a2edccc62e700e43 Open in Server Explorer

15:27:12 - Instance0 of role ProcesorWideo is initializing 15:27:12 - Instance 0 of role Aplikacja is initializing 15:31:00 - Instance0 of role ProcesorWideo is busy 15:51:00 - InstanceO of role Aplikacja ¡a busy 15:31:35 - Instance 0 of role Aplikacja is ready 15:32:13 - Instance0 of role ProcesorWideo is ready 15:32:13 - Complete.

*

3

Rysunek 5.9. Widok Windows Azure Activity Log po ukończeniu wdrażania aplikacji do chmury 7. K liknij na odsyłacz, ja k w idać na rysunku 5.9. W dom yślnej przeglądarce otw orzy się serw is M oja-M uzyka. 8. Gdy spraw dzisz popraw ność działania serw isu w środow isku Staging, m ożesz przełączyć go na środow isko Production. W portalu http://w indow s.azure.com , po zaznaczeniu odpow iedniej usługi H o ste d Service, kliknij na przycisk Sw ap VIP. Po chw ili serwis przełączy się do środow iska P roduction i będzie dostępny pod końcow ym adresem o strukturze: http://< prefix_D N S> .cloudapp.net. Jeśli postępow ałeś zgodnie ze w szystkim i w skazów kam i z tego rozdziału, to zb udow a­ łeś i w łaśnie uruchom iłeś w łasn ą w ersję serw isu M oja-M uzyka.

5.12. Dodanie nowych instancji ról P odstaw ą skalow alności aplikacji w W indow s A zure je st m ożliw ość dynam icznej zm ia­ ny liczby instancji ról (serw erów wirtualnych). Jeśli w pew nym m om encie zauw ażam y spadek w ydajności działania aplikacji, m ożem y w kró tk im czasie zw iększyć liczbę

Rozdział 5. ♦ Studium przypadku: serwis Moja-Muzyka

105

instancji roli. M ożna rów nież zm ienić konfigurację m aszyny w irtualnej na lep szą (np. w ydajniejszy procesor, w ięcej pam ięci R A M ), lecz nie je s t to m ożliw e po w drożeniu aplikacji do chm ury. W przypadku serw isu M oja-M uzyka zw iększenie instancji roli ProcesorWi deo do trzech pozw oli na jednoczesne przetw arzanie trzech film ów dla trzech użytkow ników . N ato ­ m iast zm iana param etrów m aszyny w irtualnej na lepsze pozw oli szybciej przetw arzać dane. D ostępnych jest pięć konfiguracji m aszyn w irtualnych — tabela 5.1. Zw iększenie liczby instancji w ym aga m odyfikacji pliku konfiguracyjnego. M ożna to zrobić przed w drożeniem , ale także dynam icznie w trakcie działania serw isu w chm urze. N atom iast zm iana konfiguracji m aszyn w irtualnych roli w ym aga zm iany pliku definicji (Se w ic e D efm ition.csdef), co m ożna zrobić tylko przed w drożeniem .

Tabela 5.1. Możliwe konfiguracje maszyn wirtualnych W ielkość maszyny wirtualnej

CPU

Pam ięć RAM

Lokalna przestrzeń dyskow a

W ydajność I/O

Extra Small

1,0 GHz

768 MB

20 GB

niska

$0,05

Small

1,6 GHz

1,75 GB

225 GB

średnia

$0,12

Medium

2x1,6 GHz

3,5 GB

490 GB

wysoka

$0,24

Large

4 1,6 GHz

7 GB

1000 GB

wysoka

$0,48

Extra Large

8 1,6 GHz

14 GB

2040 GB

wysoka

$0,96

Cena za godzinę

Z m iana liczby instancji roli i konfiguracji m aszyn w irtualnych w pliku konfiguracyj­ nym przed w drożeniem w ym aga następujących kroków: 1. W panelu Solution E xp lo rer kliknij dw ukrotnie na P rocesorW ideo w folderze R oles projektu M ojaM uzyka. 2. W okienku konfiguratora znajdź sekcję Instances w zakładce Configuration. 3. Z m ień w artość pola Instance count np. na 3, a I M size np. na M edium . 4. Z apisz zm iany w pliku (C trl+ S). Po w drożeniu aplikacji z tak zm ienionym plikiem konfiguracyjnym uruchom i się ona z trzem a instancjam i roli ProcesorWideo. Z m iana tylko liczby instancji roli je s t m ożliw a rów nież z portalu zarządzającego, i to w trakcie działania aplikacji. W ym aga to następujących kroków : 1. Zaloguj się na portalu http://w indow s.azure.com . 2. W panelu z lewej strony znajdź pozycję H o s te d Services, Storage A ccounts & C D N i kliknij ją. 3. W liście po lewej stronie kliknij H o ste d Services. 4. W środkow ym panelu listy w ybierz swoj ą usługę H o ste d Service. W tedy u góry aktyw uje się przycisk Configure — kliknij go.

106

Windows Azure. W prowadzenie do programowania w chmurze

5. W now ym oknie w ybierz opcję E dit current configuration, która um ożliw i edytow anie pliku konfiguracyjnego bezpośrednio z portalu — rysunek 5.10. Rysunek 5.10.

Configure Deployment

E d y to w a n ie p lik u k o n fig u r a c y jn e g o z p o r ta lu za r z ą d z a ją c e g o W in d o w s A z u r e

S e r v ic e n a m e

TestAzureDrive - 2011-09-01 15:56:25 (J i Upload a new configuration file

*; Edit current configuration

-cServi ceConfi g u rati on xm Ins : xsi= " h tt p ://w w w .w 3 .org/2001/XMLSch em a-i nstan ce

< Instances coun t="3 " / >

m odel.Tytuł)

@Html.Ed1torFor(model => m odel.Tytuł) @Html.Val1dat1onMessageFor(model => m odel.Tytuł)

@Html.LabelFor(model => model.DataOpubllkowani a)

@Html .Ed1torFor(model => model.DataOpubllkowanla) @Html.Val1dationMessageFor(model => model.DataOpubllkowanla)

@Html.LabelFor(model => m odel.Kategoria)

@Html.Ed1torFor(model => m odel.Kategoria) @Html.Val1dat1onMessageFor(model => m odel.Kategoria)

@Html.LabelFor(model => model.Cena)

@Html .EditorFor(m odel => model.Cena) @Html.Val1dat1onMessageFor(model => model.Cena)

@Html.LabelFor(model => m odel.Link)

@Html .Val1dat1onMessageFor(model => m odel.Link)

124

Windows Azure. W prowadzenie do programowania w chmurze





}

@Html .ActionLinkC'Back to L is t", "Index")

W w idoku edytowania — plik E dit.cshtm l — rów nież musimy dodać m ożliw ość w sk a­ zania plik u obrazka i w yśw ietlania obrazka ed y tow anego zd jęcia oraz zapam iętania adresu U RL w cześniej przydzielonego obrazka. Zm iany te u m o żliw ią praw idłow e o b ­ służenie przypadku, w którym użytkow nik zm ieni dane, m e w ybierając now ego obraz­ ka. W rezultacie potrzebne są następujące zm iany: ♦ usunięcie pola Userld', ♦ zm iana w sekcji w prow adzania pola L in k na pole z atrybutem type o w artości fi 1e; ♦ uzupełnienie typu danych form ularza poprzez podanie w artości atrybutu enctype; ♦ dodanie na końcu form ularza pola, które w yśw ietli obrazek edytow anego rekordu; ♦ dodanie pola typu hidden przechow ującego adres U RL do poprzednio przypisanego obrazka. Z aw artość tego pliku po zm ianach je s t w idoczn a na listin g u 6.12. D ata do pola D ata opublikow ania dom yślnie m usi być w prow adzana w postaci MM/DD/RRRR. Przy w y św ie­ tlaniu rekordu do edytow ania rów nież pole C ena dom yślnie je s t w yśw ietlane w p o sta­ ci walutowej — aby poprawnie zakończyć edytowanie rekordu, należy to form atowanie usunąć i ew entualnie w prow adzić n o w ą cenę w postaci dziesiętn ej. Listing 6.12. Zawartość pliku widoku Edit.cshtm l p o modyfikacjach @model MvcWebRolel.Model s . Z d je c ie @{

ViewBag.T i t l e = " E d it " :

}

Edit < s c rip t src= "@ U rl. C ontent( " ~ / S c r ip t s / jq u e r y .v a lid a t e .m in .js " )" ty p e = "te x t/ ja va sc rip t"> < / sc rip t> < s c rip t src= "@ U rl. C o n t e n t (" - / S c r ip t s / jq u e r y .v a lid a t e .u n o b t r u s iv e .m in .js ")" ty p e = "te x t/ ja va sc rip t"> < / sc rip t> @using (H tm l.B e g in F o rm C 'Ed it", " Z d je c ie " .

FormMethod.Post. new { enctype =

"m u ltip a rt/fo rm -d a ta" } ) )

{ @Html .V alid atio nSu m m ary(tru e) < field set> Zdjçci e @Html.HiddenFor(model => m odel.ID)

Rozdział 6. ♦ Studium przypadku: serwis M oje-Zdjęcia

125

@Html.LabelFor(model => model.Tytuł)

@Html.EditorFor(model => model.Tytuł) @Html.ValidationMessageFor(model => model.Tytuł)

@Html.LabelFor(model => model.DataOpubli kowani a)

@Htrol.EditorFor(model => model.DataOpublikowania) @Html.ValidationMessageFor(model => model.DataOpublikowania)

@Html.LabelFor(model => model.Kategoria)

@Html .EditorFor(model => model.Kategoria) @Html .ValidationMessageFor(model => model.Kategoria)

@Html .LabelFor(model => model.Cena)

@Html.EditorFor(model => model.Cena) @Html .ValidationMessageFor(model => model.Cena)

@Html.LabelFor(model => model.Link)



@Html.Label( "Obrazek")







}

@Html.ActionLink("Back to L is t", "Index")

W w idoku szczegółów rekordu — plik D etails.cshtm l — należy w arunkow o w y św ie­ tlać odsyłacz do edytow ania rekordu. O dsyłacz do edytow ania zd jęcia w y św ietla się tylko załogow anem u w łaścicielow i. A by w w id o k u D eta ils.csh tm l rów nież b ył w y ­ świetlany obrazek, należy zm odyfikow ać odpow iednio pole Link. Ponadto należy ró w ­ nież usunąć w yśw ietlanie pola U serld. Z aw artość p lik u po zm ian ach p o d an a je st na listingu 6.13.

126

Windows Azure. W prowadzenie do programowania w chmurze

Listing 6.13. K ońcowa zawartość pliku widoku Details, cshtml @model MvcWebRolel.Models.Zdjęcie @{

ViewBag.Title = "D etails";

}

Details

Zdjęci e

Tytuł

@Html.DisplayFor(model => model.Tytuł)

Data opublikowania

@Html .DisplayFor(model => model.DataOpublikowania)

Kategoria

@Html .DisplayFor(model => model.Kategoria)

Cena

@Html.DisplayFor(model => model.Cena)

Obrazek





@if (Request. IsAuthenticated && Membership.GetUserO .ProviderllserKey. ToString() .Equals(Model .Userld.ToStringO))

{ @Html.ActionLink("Edit ", "Ed it", new { id = Model.ID })

} @Html .ActionLinkCBack to L is t". "Index")



W w idoku potw ierdzenia usuw ania rekordu — plik D elete.cshtm l — należy w y św ie­ tlić użytkow nikow i usuw any obrazek. Z aw artość pliku po zm ianach podana je st na li­ stingu 6.14. N ależy pam iętać o usunięciu z w idoku pola Userld. Listing 6.14. Zawartość pliku widoku D elete.cshtm l @model MvcWebRolel.Models.Zdjęcie @{

ViewBag.Title = "Delete";

Rozdział 6. ♦ Studium przypadku; serwis M oje-Zdjęcia

127

Delete

Are you sure you want to delete this?

Zdj?cie

Tytut

@Html.DisplayFor(model => model.Tytul)

Data opublikowania

@Html ,DisplayFor(model => model.DataOpublikowania)

Kategoria

@Html,DisplayFor(model => model.Kategoria)

Cena

@Html ,DisplayFor(model => model.Cena)

Obrazek



@using (Html .BeginFormO)

{



I

@Html .ActionLinkC'Back to L is t". "Index")



} W przypadku m etody-akcji MojeZdjecia należy dodać specjalny w idok, który w y św ie­ tla odsyłacz do obrazka oraz odsyłacze do edytow ania i usuw ania rekordu. A by dodać now y w idok, należy w ykonać następujące czynności: 1. W proj ckcic M vc W ehliole 1 kliknij praw ym przyciskiem m yszki na folder

Yiew s/Zdjecie i w ybierz z m enu kontekstow ego A d d /V iew .... 2. Pojaw i się now e okno (rysunek 6.5), w którym w polu View name: należy w pisać nazw ę w idoku, w tym przypadku M ojeZdjecia. U pew nij się, że zaznaczone je st pole w yboru Use a layout o r m a sterp a g e, a następnie kliknij Add. 3. W folderze lle w s/Z d je cie pojaw i się now o w ygenerow any w idok o nazw ie M ojeZ djecia.cshtm l. Z m ień je g o kod na taki sam ja k w listingu 6.15.

128

Windows Azure. W prowadzenie do programowania w chmurze

R ysunek 6 .5 . O hio dodawania widoku

Add View

I.______ J

View name: MojeZdjecia| View engine: | Razor (CSHTML) 1 1 Create a strongly-typed view Model class: 1

H

Scaffold template: [ Empty

▼j

171 Reference script libraries

iTl Create as a partial view [7 Use a layout or master page:

~ U (Leave empty if it is set in a Razor_viewstart file) ContentPlaceHolder ID? | MainContent

[

L isting 6 .1 5 . Nowy widok MojeZdjecia. c shtm l ©model IEnumerable

@{

ViewBag.Title = "Index":

}

Index

@Html .ActionLinkC'Create New". "Create")

< tr>

@foreach (var item in Model)

Acj^

J[

Cancel

Rozdział 6. ♦ Studium przypadku: serwis M oje-Zdjęcia

129

{

}
Tytuł Data opublikowania Kategoria Cena Obrazek
@Html .DlsplayFor(modelItem => item.Tytuł) SHtml .DlsplayFor(modelItem => item.DataOpublikowania) @Html.DlsplayFor(modelItem => i tern.Kategoria) @Html .DlsplayFor(modelItem => item.Cena) L1nk do obrazka @Html .A ctionLink("Edit". "Ed it", new { id = item.ID }) | @Html .ActionLink("D etails". "Details". new { id = item.ID }) | @Html .ActlonLinkCDelete", "Delete". new { id = item.ID })


6.3.6. Dodanie metody-akcji i widoku Search A by zw iększyć funkcjonalność aplikacji, w arto dodać m ożliw ość przeszukiw ania zdjęć w prow adzonych do bazy przez w szystkich użytkow ników . Z djęcia będziem y w y szu ­ kiw ali w edług pola T ytuł. W ym aga to uzupełnienia kontrolera o m etodę-akcję Search oraz dodanie pola form ularza w w idoku Index. N ow a m etoda-akcja Search, którą uzupełniamy kod klasy Zdjęci eControl 1er, jest przed­ staw iona na listingu 6.16. Listing 6.16. Metoda-akcja szukania Search public ActionResult Search(string searchString)

{ //pobranie wszystkich zdjęć v a r zdjęcia = (IQueryable)null:

//jeśli szukana nazwa nie je s t pusta, to należy wybrać odpowiednie rekordy

i f ( ¡String. IsNullOrEmpty(searchString))

{ zdjęcia = db.ZbiorZdjec.Where(x => x.Tytuł.Contains(searchString)):

} e ls e

zdjęcia = db.ZbiorZdjec.AsQueryableO; r e t u r n VIew("Index", zdjęcia):

130

Windows Azure. W prowadzenie do programowania w chmurze

Form ularz w yszukiw ania, którym uzupełniam y plik w idoku Index.cshtm l. je s t p rzed ­ staw iony na listingu 6.17. Listing 6.17. Modyfikacje pliku widoku Index.cshml dla metody Search @model IEnumerable

@{ ViewBag.Title = "Index";

}

Index @using (Html .BeglnForml"Search". "Zdjecie". FormMethod.Get))

{

Tytuł: @Html.TextBox("searchString")




} < tr>



Po tych w szystkich m odyfikacjach w prow adzonych w kontrolerze i w w idokach apli­ kację m ożem y skom pilow ać i uruchom ić. A ktualnie aplikacja korzysta z lokalnej b a ­ zy danych SQL E xpress i lokalnego em ulatora A zure Storage (D evelopm ent Storage). Przed zbudow aniem następnej w ersji aplikacji w arto j ą przetestować, rejestrując w ser­ w isie kilku użytkow ników , z których każdy w prow adzi sw oje dane. P rzykładow o, po rejestracji dw óch użytkow ników i dodaniu przez każdego z nich dw óch zdjęć lista zdjęć dla niezalogow anego użytkow nika (http://localhost:xxx/Zdjecie) pow inna w yglądać tak ja k na rysunku 6.6. U żytkow nik niezalogow any m oże w yszukiw ać zd jęcia, w prow adzając do pola Tytuł o dpow iednią frazę.

6.4. Moje-Zdjęcia — wersja w chmurze P ierw szą czynnością poprzedzającą w drożenie aplikacji do chm ury A zure je st zało że­ nie bazy danych SQL Azure. Jest to m ożliw e z portalu zarządzającego http://w indow s. azure.com dla użytkow ników posiadających subskrypcję platform y W indow s A zure. A plikacja z b a z ą danych w chm urze w ym aga także m odyfikacji plików konfiguracyj­ nych, w szczególności zm ian param etrów połączen ia z b a z ą SQL (C onnectionString) oraz A zure Storage.

Rozdział 6. ♦ Studium przypadku: serwis M oje-Zdjęcia

131

Rysunek 6.6.

Ekran niezalogow anego użytkownika p o modyfikacjach

3 I t°] | ^ T

P T § C?XI ¡giindex

* http;//127.0.0l:81/Zdjec

Moje Zdjęcia

Ind ex Tytut:

Wyszukaj j T y tu ł

D a ta o p u b lik o w a n ia

K a te g o ria

Zdjęcie! 2011-12-04 00:00:00 Motocykle

C en a

O b ra z e k

E -m a il

190,00 zł Link do obrazka Details [email protected]

ZdjęcieZ 2011-12-04 00:00:00 Krajobrazy 190,00 zł Link do obrazka Details [email protected] Zdjęcie3 2011-12-04 00:00:00 Portrety

15,00 zł

Link do obrazka Details [email protected]

Zdjęcia4 2011-12-04 00:00:00 Samochody 123,00 zł Link do obrazka Details [email protected]

^ .100%

6.4.1. Zakładanie bazy SQL Azure Z ałożenie bazy SQL A zure w ym aga następujących kroków: 1. Zaloguj się w portalu http://w m dow s.aznre.com . 2. W panelu po lewej stronie kliknij D atabase. W środkow ym panelu kliknij opcję Create a new SO L A zure Server. 3. W now ym oknie dialogow ym w polu Subscription w ybierz sw oją subskrypcję. Przejdź do now ego okna, klikając przycisk N e xt >. 4. W polu R egion w ybierz preferow any rejon geograficzny lokalizacji bazy (z terytorium Polski najlepiej w ybrać opcję N orth Europe). Przejdź dalej, klikając przycisk N e xt >. 5. W polu A dm inistrator L ogin zdefiniuj i w pisz login, a w polu P a ssw o rd i C onfirm p a ssw o rd hasło adm inistratora bazy. P rzejd ź dalej, klikając przycisk N e xt >. 6. W ostatnim kroku zaznacz pole w yboru o nazw ie A llo w other W indows A zure services to access this server. O kno pow inno w yglądać tak ja k rysunku 6.7. Zakończ działanie kliknięciem przycisku Finish. W yjaśnienia w ym aga ostatni krok definiow ania serw era SQL A zure. D o serw era m o ż­ na się podłączyć jedynie z adresów IP zdefiniow anych w tej części działania kreatora. Jeśli zechcem y dodać now y adres, m usim y k lik n ąć p rzy cisk A d d i w ów czas pojaw i się okno, w k tórym m ożem y zdefiniow ać n o w ą regułę firew alla. P rzez zaznaczenie pola A llow other W indows A zu re services to access this server zezw alam y w szystkim

132

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek 6.7.

Definiowanie nowego serwera bazy danych SOL Azure

C re a te S e r v e r

Create a new server

0

Specify one or more firewall rules th a t enable access to your SQL Azure server. I f you do not, you will not be able to connect to or manage the databases on this server.

Rule Name *

IP Range S tart

IP Range End

MicrosoftServices

0.0.0.0

0.0.0.0

| Add | a

Update

Delete

Allow other Windows Azure services to access this server | < Previous ) |

Finish

)|

Cancel

w ew nętrznym serw erom chm ury A zure na dostęp do danego serw era bazy danych, co je st kluczow e dla działania naszej aplikacji (na rysunku 6.7 w pis z adresam i IP 0.0.0.0). R ola MvcWebRolel uruchom iona na w irtualnym serw erze w chm urze A zure m usi się kom unikow ać z serw erem bazy danych rów nież osadzonym w chm urze A zure. N ow o dodany serw er dom yślnie tw orzy bazę danych m aster i na tym etapie rozw oju aplika­ cji nie pow inniśm y tw orzyć żadnej innej bazy. Po zrealizow aniu pow yższych kroków w lew ym panelu pojaw i się ikona sym bolizują­ ca serw er z w ygenerow aną n azw ą serw era obok — rysunek 6.8. Po dw ukrotnym k lik ­ nięciu w yśw ietlonej nazw y serw era poniżej po jaw i się sym bol bazy d anych m aster. Po kliknięciu sym bolu m aster w środkow ym panelu w y św ietlą się inform acje o bazie. Po praw ej stronie ekranu, w panelu P roperties, należy odszukać w łaściw ość o nazw ie C onnection Strings. Po rozw inięciu listy obok napisu I le w zobaczym y param etry p o ­ łączenia bazy danych w w ariantach dla różnych technologii — rysunek 6.9. Rysunek 6.8.

Panel z ikoną i nazwą serwera bazy danych

F? New

Manage Certificates

nr— User Management

Subscription

i Q Subscriptions j yJJ mojaSubskrypcja

[ j master

OF Home

W budow anej aplikacji w ykorzystam y param etry połączenia opcji A D O .N E T.

Rozdział 6. ♦ Studium przypadku: serwis M oje-Zdjęcia

Rysunek 6.9.

Parametry’połączenia z bazą danych

133

Connection S trin g s A D O .N et:

Data base = m a ster; User ID = adm in Zdjęcia alse;E n c ry p t= T n ie ;

Password - m y Pa ssw ord ; Tru ste d_Co n n ect io n = F

O D BC: D riv e r= {S Q L S e rver Native C lient 1 0 . 0 } ; S e r v e r = l* U id=ad m inZ djec a PH P Code:

$ co nne ctio nlnfo = array("U ID " = > " a d m in Z d je c ia © ^ H ^ ^ H ^ p B . "pw d" = > "m yPassw ord", "D atabase" => "m aster"); $serverN am e -

;

$cortn = sq lsrv_co nn e ct{śse rverN am e , $ connectionlnfo);

6.4.2. Modyfikacja plików konfiguracyjnych K oniecznie m usim y zm odyfikow ać dw a pliki konfiguracyjne: W eb.config w folderze M vcW ebR ole 1 oraz ServiceC onfiguration.cscfg w folderze M ojeZdjecia. W pliku W eb.config należy odnaleźć w pis o postaci:

i w jeg o m iejsce w pisać inform ację p o zy sk an ą z p o przedniego po d ro zd ziału , tak ja k poniżej (gdzie Zdjęci aDB to nazw a bazy danych przechow ującej rekordy zdjęć, tw ojLogin i twojeHaslo to odpow iednio login i hasło adm inistratora bazy danych, n ato ­ m iast to p refiks adresu U R L serw era — elem ent zaczerniony na ry ­ sunku 6.6):

A nalogicznie należy odszukać wpis:

i w jego miejsce w staw ić pozyskane wcześniej param etry połączenia, uzupełnione o lo ­ gin i hasło adm inistratora oraz nazw ę bazy danych przechow ującej inform acje o u ży t­ kow nikach serw isu (P rovidersD B ), czyli:

134

Windows Azure. W prowadzenie do programowania w chmurze

< S e rv i c e D e fi n i t i on name="TestAzureDri ve" x m lns= "h t t p ://schemas.mi crosoft.com/Servi ceHosti ng/2008/10/Servi ceDefi n iti on">

< Lo calR e so u rces> < L o c a lS to ra g e name="MyCache" c le a n O n R o le R e c y c le = " fa ls e " size In M B = "100 " /> < /L o c a lR e so u rc e s> < C on fi g u r a t i o n S e t t i ngs> < S e ttin g name="StorageCredentials" /> < /C o n fi g u r a t i o n S e t t i ngs>

< /S e r v i c e D e fi n i t i on>

K olejnym krokiem je st inicjalizacja pam ięci cache oraz przygotow anie kontenera dys­ ków w irtualnych. Ponadto należy utw orzyć blo b a stronicow anego, który będzie p rze­ chow yw ał plik V HD, czyli dysk w irtualny. M ożna to zrobić, w pisując np. do metody Page_Load strony dom yślnej projektu A SP.N ET lub do m etody OnStart dow olnej roli następujący fragm ent: LocalResource cache = RoieEnvironment.GetLocalResource!"MyCache"): CloudDrive. In itializeCache!cache.RootPath. cache.MaximumSizelnMegabytes): CloudStorageAccount csa = CloudStorageAccount.Parse! RoieEnvi ronment.GetConfigurati onSetti ngValue( "StorageCredenti a is " )) : CloudBlobClient cbc = csa.CreateCloudBlobClientO: cbc.GetContainerReference!"d riv e s ").CreateIfNotExist!): Uri driveUri = n u ll: driveUri = cbc.GetContai nerReference!"dri ves" ) . GetPageBl obReference!"dri ve.vhd" ) . U r i;

N ajpierw pobieram y ścieżkę do pam ięci lokalnej instancji roli (poniew aż m e w iadom o, gdzie w docelow ym serw erze zostanie ulokow ana). D latego należy skorzystać z klasy LocalResource. N astępnie inicjalizujem y cache dla w szy stk ich dysków A zure Drive. P otem tw o rzy m y k lie n ta A zure Storage (csa), n astęp n ie k lie n ta A zu re B lo b s (cbc), a w kolejnym kroku w arunkowo tworzymy kontener. W ażne jest, aby połączenie z A zu­ re Storage w tym przypadku w ykorzystyw ało protokół H TTP, a nie H TTPS. M ożna to uzyskać, zm ieniając w artość w łaściw ości StorageCredenti al s w pliku konfiguracyj­ ny m (u stalając jej w arto ść na: DefaultEndpointsProtocol=http:AccountName=.. .). W końcow ym kroku przygotow ujem y U RL do bloba przechow ującego plik VHD. Czas teraz na stw orzenie dysku wirtualnego o podanej pojem ności, a potem na połącze­ nie go z przydzieloną literą dysku lokalnego. U zyskam y to następującym i instrukcjami: CloudDrive cloudDrive = csa.CreateCloudDrive(driveUri .ToStringO); cloudDrive.Create(lOO): driveLetter = cloudDrive.Mount(50. DriveMountOptions.Force);

P oczątkow o tw orzym y dysk w irtualny, w skazu jąc na U R L do blo b a z p likiem V HD i w yw ołując m etodę Create, gdzie w argum encie podajem y pojem n o ść dysku w MB.

Dodatek E ♦ M ontowanie i używanie dysku wirtualnego Azure Drive

165

O statnim krokiem je st w yw ołanie m etody Mount, która zw raca literę dysk u (np. C:). Pierw szy param etr określa rozm iar pam ięci podręcznej dla danego dysku. Teraz m ożem y skorzystać z przestrzeni nazw System. 10, tak ja k w klasycznej aplikacji system u W indows. D ziałanie dysku m ożna przetestow ać na następującym przykładzie: StreamWriter w riter = null: w riter = new System.10.StreamWriter(driveLetter + @ "\ te s t.tx t"): writer.WriteLineC'Hello, World!") : w rite r.C lo s e t):

K orzystam y z obiektu S tream W riter, który zapisuje dane do pliku, w tym przypadku tekst „H ello, W orld!” . M ożem y go teraz odczytać, korzystając z obiektu StreamReader w następujący sposób: StreamReader reader = n u l i; reader = new StreamReadertdriveLetter + @ " \ t e s t . t x t " ) : string text = reader.ReadToEndt): reader.Closet):

T rzeba w iedzieć, że em ulator D evelopm ent Fabric obsługuje A zure D rive inaczej niż środow isko serw era w chmurze. L okalnie tak napraw dę m etoda C reate utw orzy folder, który em uluje działanie dysku w irtualnego. W A zure n ato m iast zo stan ie utw orzony plik VHD. W konsekw encji nie m ożna korzystać z A zure D rive przy lokalnym hostow aniu aplikacji. W sparcie dysków w irtualnych w postaci A zure D rive znacząco upraszcza m igrację ist­ niejących aplikacji, które k o rzy stająz klasycznych operacji w ejścia/w yjścia z przestrze­ ni nazw System. 10 do W indow s A zure. P onadto m ożna lokalnie u tw o rzy ć p lik V HD, w ypełnić go odpow iednim i danym i i w ysiać bezp o śred n io do ko n ten era dla dysków w A zure Blobs. Poniżej zamieszczamy kod przykładowej roli Web R ole testującej działanie A zure Drive. A plikacja udostępnia interfejs do w prow adzenia krótkiej w iadom ości tekstowej i — po kliknięciu Z apisz — zapisanie jej do plik u te st.txt n a dysku w irtualnym zam ontow a­ nym do roli. Po kliknięciu przycisku W yśw ietl tekst z pliku test.txt zostanie w yśw ietlo­ ny poniżej w kontrolce Label. K od klasy _D efault w pliku D efault.aspx.cs przedstaw io­ ny je st na listingu E.2, a kod w arstw y prezentacji (plik D efa u lt.a sp x) n a listin g u E.3. O prócz tego trzeba uzupełnić konfigurację o definicję pam ięci lokalnej dla cache’u dys­ ku w irtualnego (L ocal Storage o nazw ie M yC ach e i rozm iarze np. 100 M B). Listing E.2. Kod klasy JDefault w pliku Default, aspx.cs u s in g System: u s in g System.Col 1ecti ons.Generi c : u s in g System.Linq: u s in g System.Web; u s in g System.Web.Ul ; u s i ng System.Web.U I.WebControl s : u s in g System.10; u s i ng Mi crosoft .Wi ndowsAzure .Servi «Runtime ; u s i ng Mi crosoft.Wi ndowsAzure.StorageCli ent;

166

Windows Azure. W prowadzenie do programowania w chmurze

u s in g Microsoft.WindowsAzure: namespace WebRolel

{ p u b lic p a r t i a l c la s s _ D e fa u lt : System.Web.UI.Page

{ s t r i n g driveLetter = n u l l: p r o t e c t e d v o id P a g e _ L o a d (o b je c t sender, E v e n tA rg s e)

{ if

( IPage.IsPostBack)

{ L o c a lR e s o u rc e cache = RoleEnvironment.GetLocalResource("M yCache" ): C lo u d D ri v e . Ini t i a li zeCache(cache.RootPath.

cache.MaximumSizelnMegabytes): C lo u d S to ra g e A c c o u n t csa = C lo u d S to ra g e A c c o u n t.P a rs e (

RoleEnvironment.GetConfigurationSettingValuet " S to r a g e C r e d e n ti a l s " ) ) : C lo u d B lo b C lie n t cbc = csa.CreatedoudBlobClientO :

cbc.GetContainerReference( " d r i v e s 1') .CreateIfNotExist(): U r i drivellri = n u l l: driveUri = cbc.GetContainerReference( "drives") .GetPageBlobReferenceC'drive.vhd").U r i: C lo u d D r iv e cloudDrive = csa.CreateCloudDrive(drivellri .T oString O ):

cloudDrive.Create(lOO): driveLetter = cloudDrive.Mount(50, D riv e M o u n tO p tio n s .N o n e ):

}

p r o t e c t e d v o id Buttonl_Click( o b j e c t sender. E v e n tA rg s e)

{ S tre a m W rite r w riter = n u l l:

writer = new System.10.StreamWriter(driveLetter + @ "\test.txt" ): writer.WriteLine(TextBoxl.Text): w rite r.C lo set):

p r o t e c t e d v o id Button2_Click(o b j e c t sender. E v e n tA rg s e)

{ Stream Reader reader = n u l l: reader = new S tre a m R e a d e r (driveLetter + @ " \ t e s t . t x t " ) :

Label 1.Text = reader.ReadToEnd(); reader.Closed:

Dodatek E ♦ M ontowanie i używanie dysku wirtualnego Azure Drive

167

Listing E.3. Zawartość pliku Default.aspx

168

Windows Azure. Wprowadzenie do programowania w chmurze

Dodatek F

Migracja do SQL Azure M im o że p latform a SQL A zure opiera się na tech n o lo g ii M icro so ft SQL Server, m e są one identyczne. P ow oduje to, że istniejące rozw iązania hostow ane na SQL Server często m u szą być dostosow ane przy m igracji do SQL Azure. Podstaw ow e różnice m ię­ dzy SQL Server a SQL A zure zostały przedstaw ione w podrozdziale 3.2.3. P roces m igracji m ożna zrealizow ać na kilka sposobów , je d n ak najw ygodniejsze je st zastosow anie odpow iedniego narzędzia autom atyzującego ten proces. W tym dodatku w ykorzystam y narzędzie o nazw ie SQL A zure M igration W izard, w chw ili pisania tej książki dostępne w wersji 3.7.7 (do pobrania ze strony: http://sqlazuremw.codeplex.com/). N arzędzie to um ożliw ia m igrację bazy danych: ♦ ze SQL Server do SQL A zure, ♦ ze SQL A zure do SQL Server, ♦ ze SQL A zure do SQL Azure. K olejne w ersje narzędzia są dystrybuow ane z plikiem NotSupportedByAzureFile.Config, w którym znajdują się klauzule nieobslugiw ane przez platform ę SQL A zure oraz ew en­ tualnie elem enty, którym i m ożna je zastąpić — listing F. 1. Listing F .l. Fragment pliku NotSupportedByAzureFile.Config

< N otS upported Text= "(DENY|GRANT|REVOKE)[\w\W ]*ON\s(Assem bly|

Asymmetri c|Certi fi cate|Endpoi nt|Ful1text|LOGON|XML\sSchema| Server|Servi ce|Symmetri c|Sys|Type)" ReplaceWith=” " S e v e r n t y L e v e l="2" R e p la c e S t r i n g = " fa ls e " Di s p la y W a rn in g = "tru e " D e fa u ltM e s s a g e = "tru e " Warnn'ngMessage="" />

Cały proces m igracji zilustrujem y na standardow ym przykładzie. D em onstracyjną b a ­ zę danych udostępnioną przez M icrosoft, o nazw ie A dventure Works, przeniesiem y ze SQL Server 2008 R 2 do SQL Azure. Z astosow ane narzędzie udostępnia trzy opcje: ♦ tylko przeanalizow anie bazy pod kątem kom patybnlności ze SQL A zure; ♦ analizę zgodności, w ygenerow anie skryptów , a następnie m igrację; ♦ tylko m igrację do SQL Azure. W rozw ażanym przypadku jesteśm y zannteresowani opcją drugą, czyli zbadaniem sche­ m atu istniejącej bazy i jej m igracją do SQL Azure. K orzystanie z narzędzia SQL A zure M igration W izard przebiega następująco: 1. Rozpakuj pobrane archiw um SO L A zureM W v 3 .7.7 R elease B inary.zip. W folderze docelow ym otw órz plik SQ LA zureM W .exe. 2. Pojaw i się now e okno. W ybierz w m m opcję A n a lyze / M igrate dla bazy SQL Server i kliknij przycisk N e xt — rysunek F. 1. 3. W kolejnym kroku autom atycznie otw orzy się okno dialogow e do w prow adzania param etrów połączenia do serw era SQL Server. W polu Server nam e podaj pełny adres lub nazw ę instancji sw ojego serw era (w przypadku bazy zainstalow anej lokalnie), w części A u th e n tica tio n w ybierz opcję Use a sp ecific u ser ID a n d passw ord. W polach User nam e i P assw o rd w pisz odpow iednio nazw ę adm inistratora bazy i jeg o hasło. W sekcji D atabase m ożesz dokonać w yboru m igracji całej bazy (opcja M a ster D B ) lub, w ybierając Specify D atabase, podać nazw ę konkretnej bazy w polu poniżej. W tym przypadku w ybraliśm y M a ster DB. Po pow yższych zm ianach okno pow inno w yglądać tak ja k na rysunku F.2. P ołącz się z bazą, klikając przycisk Connect.

Dodatek F ♦ Migracja do SQL Azure

171

Rysunek F .l.

O hio startowe narzędzia SOL Azare Migration Wizard

« 0 S crip t W iz a rd

S

M . I

%

11

S e le c t P ro c e s s Select the process you want the wizard to talk you through.

SQLAzureM W v3.7.7 Analyze Only This wizard gwes you the options to analyzes. generate scripts, and migrate database schemas and data from:

© SQL Profiler Trace File Analyze / Migrate

1) SQL Server to SQL Azure. 2) SQL Azure to SQL Server 3) SQL Azure to SQL Azure

@ SQL Database © TSQL File

It will also analyze SQL Profiler trace files and TSQL script for compatibility issues with SQL Azure.

Run TSQL without Analyzing © TSQL File

NOTE: You must be DB Owner in order to analyze or migrate a database.

< Back

[

Next > L

1

Rysunek F.2.

Eh-an wprowadzania parametrów połączenia do bazy SQL Server

3

[

Exit

T JD 1

Connect to Server... Server name: Authentication O Use Windows NT Integrated Security (§) Use a specific user ID and password User name:

sqladmin

Password:

**********

Database

m 0

Master DB (List all databases)

m

Specify Database

Database:

Connection

|

[~

seconds

Connect

j [

4. Po pom yślnym p o łączeniu w now ym oknie p o ja w ią się w szy stk ie bazy

danego serw era. Jeśli zainstalow ałeś na niej p rzy k ład dem onstracyjny A dventureW orks lub chcesz w ybrać in n ą bazę, zaznacz na liście odpow iednią linijkę i kliknij N e xt — rysunek F.3. 5. W kolejnym kroku m ożna w ybrać, które elem enty bazy danych chcem y

przenieść. D om yślnie w ybrane je st pole Script all database objects, i tak je pozostaw iam y, klikając przycisk N e xt — rysunek F.4.

172

Windows Azure. W prowadzenie do programowania w chmurze

Rysunek F.3.

Wybranie odpowiedniej bazy do migracji

Rysunek F.4.

Wybranie obiektów bazy do niigracji

» S S c r ip t W iz a r d

[ i= i- | . lg ] |i— 8 U

Choose Objects Select database objects to script

® Script all database objects

0

Select specific database objects

I ® Triggers ] ® Schemas 1 ® Stored Procedures ] ® Tables I ® User Defined Data Types j-®User Defined Functions 1 ® Views ] ®XML Schema Collections

.

|

Select All

]

Deselect All ] [ Advanced

f

< Back

1[

j

Next >

1

011

1

|

Dodatek F ♦ Migracja do SQL Azure

173

6. N astępnie pojaw i się m onit o potw ierdzeniu gotow ości do generow ania skryptów ; kliknij przycisk Yes. 7. W tym oknie następuje generow anie skryptów SQL dla SQL A zure.

N a bieżąco m ożna oglądać postępy pracy i kom unikaty o błędach czy potrzebny ch zm ianach w ykrytych przez narzędzie — ry su n ek F.5. Po zakończeniu generow ania kliknij przycisk Next. Rysunek F.5.

Zakończenie generowania skryptów migracyjnych

.3

S c r ip t W iz a r d

I

ss

I

Results Summary Scripting and Analysis Summary

Done! Result Summary [ SQL Script____________ bcp.exe ^AdventureWorksJ.[Sales].[Individual]" out "c:\SQLAzureMW\BCPData' bcp.exe "[Adve ntureworks].[Sales].[SpecialOffer]" out "c:\SQLAzureMW\BCPDE bcp.exe "[Adve ntu reWorks]. [Sales].[SpecialOfferProd uct],r out "c:\5QLA2UreMV bcp.exe 'r[AdventureWorks].[Sales].[SalesOrderHeader],r out "c:\5QLAzureMW\ bcp.exe ,r[ Adve ntu reWorks]. [Sales].[SalesOrderDetaiQ'r out ,rc:\SQLAzureMW\B( bcp.exe "[Adve ntu reworks]. [Sales].[SalesReason]" out "c:\SQI_AzureMW\BCPDi bcp.exe "[AdventureWorks].[Sales].[SalesOrderHeaderSalesReason]" out "c:\SC bcp.exe "[Adve ntu reWorks]. [Sales].[SalesPersonQuota History]" out "c:\5QLAzu bcp.exe "[Adve ntu reworks]. [Sales]. [SalesTaxRate]" out "c:\SQLAzureMW\BCPC bcp.exe "[AdventureWorks].[Sales].[SalesTerritoryHistory]" out ,rc:\SQI_AzureM\ bcp.exe "[Adve ntu reWorks]. [Sales].[ShoppingCartItem],r out ,rc:\SQI_AzureMW\ bcp.exe "[AdventureWorks].[Sales].[StoreContact]" out "c:\SQI_AzureMW\BCP[ Analysis completed at 2011-09-01 13:08:03 - UTC -> 2011-09-01 11:08:03 Any issues discovered will be reported above. Total processing time: 0 hours, 2 minutes and 34 seconds BCP Command: bcp.exe "Adventu reworks. Sales. StoreContact" in "c:\i 2011-09-01 13:58:21 - > Copied 753 of 753 (100%) Clock Time (ms.) Total : 749 Average : (1005.34 rows per sec.) 2011-09-01 13:58:08 —> Uploading data to SalesOrderDetail - > BCP Command: bcp.exe "Adventureworks.Sales.SalesOrderDetail1' in ,r< ************************ 2011-09-01 13:58:32-> Copied 121317 of 121317 (100%) Processing finished at 2011-09-01 13:58:32 - UTC -> 2011-09-01 11:58:3 Total processing time: 0 hours, 5 minutes and 46 seconds < |

rn

|

[5/] Auto Scroll Display

O prócz pow yższego narzędzia są inne sposoby m igracji bazy: ♦ polecenie B C P w SQL Server, ♦ w ykorzystanie SQL Server Integration Services, ♦ w ykorzystanie sam ego SQL M anagem ent Studio do generow ania skryptów DDL.



176

Windows Azure. Wprowadzenie do programowania w chmurze

Dodatek G

Dostawcy chmur K siążka opisuje architekturę platform y W indow s A zure i je st praktycznym p rzew o d ­ n ikiem p rogram ow ania na tej platform ie. Jedn ak dostaw ców chm ur je s t sporo i c ią ­ gle ich przybyw a. W tabeli G. 1 w ym ienieni są najw ięksi gracze na tym rynku — stan z lipca 2011. Tabela 6.1. Zestawienie największych dostawców chmur Nazwa

laaS

A m azon

Y

PaaS

Y

Y

Engine Yard

SaaS

URL

Opis

http://aws.amazon.com

Amazon jest pierwszą dużą firmą, która zaproponowała swoje usługi w chmurze. Oferuje: Amazon Elastic Compute Cloud — moc obliczeniowa; Amazon SimpleDB — nierelacyjna baza danych; A mazon Simple Storage Service — magazyn dla danych binarnych i multimedialnych; A mazon Elastic Block Store — wirtualny dysk; Amazon Relational Database Service — relacyjna baza danych; A mazon Simple Queue Service — system kolejkowania wiadomości; A mazon CloudFront — replikacja i rozproszenie danych.

http://www.engineyard. Engine Yard oferuje platformę dla com/ aplikacji wytworzonych z użyciem frameworka Ruby on Rails.

GoGrid

Y

http://www.gogrid. com/ GoGrid w swojej ofercie ma serwery wirtualne do wynajęcia (Cloud Servers oraz Dedicated Servers), przestrzeń składowania danych (Cloud Storage) oraz, jako dodatkową darm ową usługę, Load Balancers.

178

Windows Azure. W prowadzenie do programowania w chmurze

Tabela 6 .1 . Zestawienie największych dostawców chm ur — ciąg dalszy Nazwa

laaS

PaaS

SaaS

URL

Opis

http: //code, google, com/ Google oferuje platformę Google intl/pl/appengine/ App Engine oraz mnóstwo aplikacji

Google

http://www.google, com/ biurowych Google Apps. apps IBM

S

Y

Y

http://www. ibm. com/pl/ IB M oferuje szereg usług, począwszy od zdalnych systemów operacyjnych cloud/ po oprogramowanie biurowe dostępne przez przeglądarkę.

NetSuite

Rackspace

Salesforce

S

Y

Y

Y

Y

http://www.netsuite. com/

NetSuite oferuje szeroki wachlarz aplikacji biznesowych, księgowych czy CRM dostępnych przez przeglądarkę.

http://www.rackspace. com/

Rackspace oferuje infrastrukturę do wynajęcia, ale również platformę pozwalającą na uruchomienie frameworków: W ordPress, Drupal, Joomla, DotNetNuke etc. Dodatkowo obsługuje frameworki biznesowe, np. OSCommerce i ZenCart.

http://www.salesforce.

Firma Salesforce.com oferuje szeroką gamę aplikacji księgowych, marketingowych, wspierających sprzedaż i CRM. Dodatkowo poleca platformę Force.com do tworzenia w łasnych aplikacji pomocą przeglądarki.

http://force. corn

Terremark

http://www. terremark.

Terremark ma najbogatszą ofertę infrastruktury do wynajęcia — do 64 różnych możliwości konfiguracyjnych.

Skorowidz A aplikacja jako usługa, SaaS, 10 aplikacja Javy w chmurze, 150, 155 aplikacja webowa, 109 aplikacje hostowane w chmurze, 18 A SP.NET, 20 ASP.NET MVC, 20 PHP, 20 W CF, 20 architektura SQL A zure, 37 archiwum aplikacji webowej, 152 ASP.NET, 20 ASP.NET MVC, 20 ASP.NET MVC 3, 54 A zure Blobs, 16, 20, 26, 30, 42 prawa dostępu do kontenera, 33 struktura, 31, 32 A zure Queues, 16, 2 0 ,2 6 , 33 struktura, 34 A zure Service M anagem ent A PI, 106 A zure Storage, 25 A zure Blobs, 26, 30 A zure Queues, 26, 33 A zure Tables, 26 bezpieczeństwo danych, 26 skalowalność, 26 A zure Tables, 16, 20, 26, 27 encje, entities, 27 komunikacja, 29 partycjonowanie poziome, 30 podział składników, 28 tabele, tables, 27 właściwości, properties, 27

B baza danych SQL Azure, 130, 131 bezpieczeństwo danych, 26 biblioteka Microsoft.WindowsAzure.CloudDrive, 163 biblioteki MVC, 134 billing i zużycie, 39 blob, 30,31 blob podzielony na fragmenty, Block Blob, 31 blob stronicowany, Page Blob, 31, 32, 163 Block Blob, 31 bloki, blocks, 31 BPOS, Business Productivity Online Suite, 12

c chmura, 7 IaaS, infrastruktura jako usługa, 10 modele usług, 9 PaaS, platforma jako usługa, 10 rodzaje chmur, 10 SaaS, aplikacja jako usługa, 10 wady i zalety, 12 chmura A zure, 15 chmura obliczeniowa, 7, 137 chmura prywatna, 9 chmura publiczna, 9 chmura W indows Azure, 103 Cloud Computing, 7, 106, 137 cmd, 143 Code-First, 108 Content Delivery Network, 21 CRUD, Create, Read, Update, Delete, 113

180

Windows Azure. W prowadzenie do programowania w chmurze

cspack, 143 csrun, 144 cykl życia komunikatu, 35

D debuger Visual Studio, 100 definicja chmury, 7 definiowanie dla rob pamięci lokalnej, 90, 163 dekompilowanie kodu, 33 diagnostyka, 160 diagnostyka w Windows A zure, 157 diagnozowanie aplikacji, 162 diagram przypadków użycia, 109 diagram sekwencji, 79 dodanie instancji ról, 104 klasy modelu, 110 kontrolera ZdjecieController, 114 metody-akcji, 129 silnika Razor, 134 w idoku Search, 129 dodatki, 55 dodawanie poświadczeń, 102 bibliotek M VC, 134 widoków, 128 dostawcy chmur, 177 dysk wirtualny, 42, 163 dzielenie przez zero, 158

E emulator Azure Storage, 77 encja, entity, 27, 28 Entity Framework, 107 Entity Fram ework 4.1, 16, 108 etapowe uruchamianie aplikacji, 77 ewolucja infrastruktury IT, 8

F FIFO, 36 folder bin, 143 format VHD, 42 fram ew orkA SP.N ET MVC 3, 16, 107

G generowanie paczki wdrożeniowej, 142 gwarancja jakości, 56 gwarancja SLA, 57

I IaaS, Infrastructure as a Service, 10 infrastruktura jako usługa, IaaS, 10 inicjabzacja pamięci cache, 164 instalacja ASP.NET MVC 3, 54 Visual Studio 2010, 54 W indows A zure SDK, 54 W indows A zure Tools for M icrosoft Visual Studio, 54 instalowanie W indows Azure dla Eclipse, 146 IntelliTrace, 157, 159, 162 interfejs serwisu Moja-M uzyka, 83

J Java w W indows Azure, 150 język C#, 17 język VB, 17 JSP, Java Server Pages, 152

K klasa D e fa u lt 86, 165 definiująca model danych, 93 LocalResource, 164 W orkerRole, 88, 89 Zdjecie, 108 ZdjecieController, 129 klient Azure Blobs, 88, 164 klient Azure Storage, 164 klucz do konta, 102 klucz główny, 28 kod strony index.jsp, 152 kodek FFM PEG, 79 kolejka inputqueue, 78 kolejki, 34 komenda cmd, 143 cspack, 143 csrun, 144 komunikacja pomiędzy rolami, 85 komunikat, 34 M essagelD , 35 M essageTTL, 35 PopReceipt, 35 Visibility Timeout, 35 konfiguracje m aszyn wirtualnych, 105 konta w serwisie M SN Hotmail, 45 kontener, 30, 31 kontener dysków wirtualnych, 164 konto MOCP, 46

Skorowidz

181

konto w Azure Storage, 52 kontroler, 115 kontroler dostępu, Access Control, 17, 21 kontroler zarządzania, Fabric Controller, 19 kontroler ZdjecieController, 113 kontrolka lastBulletedList, 94

L linia komend, 143 LINQ, Language Integrated Query, 29 lista wyników, 92 logi IntelliTrace, 160 logi IntelliTrace pobrane z chmury, 161 lokalne środowisko uruchomieniowe, 77 lokalny emulator chmury, 144

M magazynowanie danych, 25 A zure Storage, 25 SQL A zure, 36 maszyna wirtualna, 20 mechanizm A zure Drive, 163 mechanizm IntelliTrace, 157 metoda Create, 165 Delete, 120 Details, 120 HttpNotFound, 120 M ount, 165 OnStart, 86, 88, 89, 96, 164 P a g e L o a d , 86, 94, 164 parsująca, 84 Run, 89, 90, 97 startB uttonC lick, 94 updateList, 94 wykonaj zmodyfikowana, 157 metody-akcje Create, 116 Delete, 119 DeleteConfirmed, 119 Edit, 117 Search, 129 migracja bazy, 175 migracja do SQL A zure, 169 model uslugi, service model, 19 modyfikacja kontrolera, 115 modyfikacja plików konfiguracyjnych, 133 modyfikacje widoków, 121 montowanie A zure Drive, 163 M P3, 79 M P4, 79 M SM Q, M icrosoft M essage Queueing, 34 M VC, 16

N narzędzie Azure Storage Explorer, 100 do przeglądania baz SQL A zure, 136 SQL Azure M igration W izard, 169

0 obiekt CloudStorageAccount, 86, 101 POCO, 110 Regex, 84 StreamW riter, 165 ViewResult, 120 obiekty bazy, 172 obliczenia, Compute, 19 obsługa zdarzenia kliknięcia, 87 Office 365, 12 opcja CDN, 21 opłaty, 22

P PaaS, Platform as a Service, 10 paczka wdrożeniowa, 141 Page Blob, 3 1 ,3 2 , 163 pamięć lokalna, 77 parametry połączenia do bazy SQL Azure, 174 do bazy SQL Server, 171 do m agazynów danych, 162 parsowanie strony filmu, 84 PartitionKey, 28, 30 PHP w W indows A zure, 146 platforma jako usługa, PaaS, 10 platforma W indows Azure, 7, 16, 17, 137 komponenty, 18 opłaty, 22 podział platformy, 18 SQL Azure, 17,21 W indows A zure, 17, 19 W indows A zure AppFabric, 17,21 plik Layout, cshtml, 121 cmd.exe, 143 Create.cshtml, 114, 122 cspack.exe, 143 csrun.exe, 144 Default.aspx, 83, 167 Default.aspx.es, 80, 83, 165 Delete.cshtm l, 114, 126 Details.cshtml, 114

182

Windows Azure. W prowadzenie do programowania w chmurze

plik Edit.cshtm l, 114, 124 ffmpeg.exe, 89 Index, cshtml, 121 index.php, 147 konfiguracyjny, 106 M ojeZdjecia.cshtm l, 128 M vcW ebR olel, 133 N otSupportedByAzureFile.Config, 169 OutputqueueM P3.cs, 83 O utputqueueM P3DataServiceContext.es, 83 ServiceContiguration. Cloud, cscfg, 100 ServiceContiguration.cscfg, 96, 133, 141, 155 ServiceContiguration.Local.cscfg, 100, 144 ServiceDefinition.csdef, 89, 164 Site.M aster, 83 Tomcat.cspkg, 155 Tomcat.sln, 150 VHD, 163 W AR, 152 W eb.config, 112, 114, 133 W ebRole.es, 82 W orkerRole.es, 82, 103 ZdjecieController.es, 114 pliki .cshtml, 121 cmd Buildme.cmd, 154 cmd Packme.cmd, 154 cmd Runme.cmd, 154 konfiguracyjne, 133 wideo, 79 wykonywalne narzędzia SDK, 143 pobieranie klucza, 102 POCO, 16 pojemniki w chmurze, 162 połączenie z bazą danych, 133 poświadczenie konta, 77, 101 prawa dostępu do kontenera, 33 ProcesorW ideo, 78 projekt JSP, 152 Kalkulator, 137, 157 M oja-M uzyka, 78 M oje-Zdjęcia, 107 PH P A zurel, 147 W indows Cloud Project, 82 protokół REST. 17 SOAP, 18 XM L, 18 provisioning, 39 przechowywanie danych, 27 przekazywanie komunikatów, 78

przestrzeń dla magazynu danych, Azure Storage, 19 przestrzeń nazw System.IO, 165 przetwarzanie plików wideo, 79 przycisk Start, 87

R relacyjna baza danych, 17 relacyjna baza danych w chmurze, 37 rodzaje chmur, 10 rola, roles, 20 W eb Role, 20, 78 W orker Role, 20, 78 rola Aplikacja, 82, 92 rola ProcesorW ideo, 82, 88 routing, 39 RowKey, 28, 30

s SaaS, Software as a Service, 10 scenariusz biznesowy, 14 schemat współdziałania ról, 79 serwer bazy danych, 132 SQL Azure, 131 Tomcat, 151 wirtualny, 145 serwis Moja-M uzyka, 77, 137 M oje-Zdjęcia, 107, 138 Shared Access Signatures, 33 sieć CDN, Content Delivery Network, 19 skalowalność aplikacji, 104 składowanie danych, 25, 30 skrypty migracyjne, 173 SLA, Service Level A greement, 56 SQL Azure, 21, 36, 37, 107, 131, 170 architektura, 37 ograniczenia, 39 protokoły dostępu, 39 sposoby dostępu, 40 warstwa infrastruktury, 38 warstwa kliencka, 38 warstwa platformy, 38 warstwa usług, 38 subskrypcja usług platformy, 44 system kolejkowania, 34 system operacyjny chmury, 17 system zarządzania komunikatami, 33 szyna danych, Service Bus, 17, 21

Skorowidz

183

ś ścieżka do pamięci lokalnej, 164 środowisko .NET, 145 Development Fabric, 153 Eclipse, 17, 145 Hyper-V, 19 Visual Studio, 147 Visual Studio 2010, 15, 54

T tabela, table, 27 TDS, Tabular Data Stream, 39 technologia Ajax, 17 A SP.NET, 15 MS SQL Server, 36, 37 Silverlight, 17 test kodeka, 81 testowanie aplikacji, 148 TimeStamp, 28 T-SQL, 40 tworzenie aplikacji webowej, 150 bazy danych, 174 paczki wdrożeniowej, 143 pierwszej aplikacji, 43 projektu M oje-Zdjęcia, 110 projektu serwisu, 82 wirtualnego dysku w chmurze, 163 W orker Role, 154 typ danych Binary, 29 Boolean, 29 DateTim e, 29 Double, 29 Guid, 29 Int32, 29 Int64, 29 String, 29 typ danych SQL Azure, 40

U usługa A zure Storage, 20 Hosted Service, 50 hostingu, 56 „na żądanie”, 7 W CF, 20 użytkownik anonimowy, 108 użytkownik zarejestrowany, 108

V VHD, Virtual Hard Drive, 42, 163 Visual Studio, 147 Visual Studio 2010, 15, 54

w warstwa infrastruktury, 38, 39 kliencka, 38 platformy, 38, 39 prezentacji, 82 usług, 38, 39 billing i zużycie, 39 provisioning, 39 routing, 39 W CF Data Services, 2 0 ,2 9 wdrażanie aplikacji do chmury, 103, 130, 141 wdrażanie aplikacji PHP do chmury, 149 wdrożenie serwisu do chmury, 135 W eb Role, 20 węzeł, 30 widok Delete, 126 Details, 126 Edit, 124 Index, 129 widok M ojeZdjecia, 128 W indows Azure, 19, 25, 43 dane, 20 Java, 150 kontroler zarządzania, 19 obliczenia, 19 PHP, 146 sieć CDN, 21 W indows A zure Activity Log, 104 W indows A zure AppFabric, 21 W indows A zure SDK, 15, 54, 141 W indows A zure SDK dla Eclipse, 145 W indows A zure Tomcat Solution Accelelator, 151 W indows A zure Tools for M icrosoft Visual Studio, 54 W indows A zure Tools for Visual Studio, 86, 141 W indows Intune, 12 W indows Live SkyDrive, 12 wirtualne środowisko hostingowe, 11 wizja systemu, 78, 108 właściwości komunikatu, 35 właściwość, properties, 27, 29 nazwa, name, 29 typ, type, 29 wartość, value, 29

184

Windows Azure. W prowadzenie do programowania w chmurze

właściwość Clean on role recycle, 90 W orker Role, 20 współdziałanie ról, 79 współdzielone sygnatury dostępowe, 33 wtyczka diagnostyczna, 159 wtyczka Silverlight, 33 w ybór ról, 82 w ybór wzorca projektu, 111 wygenerowanie kontrolera, 113

wygenerowanie widoków, 115 wysyłanie paczki do chmury, 142 wywołanie błędu, 160

Z zakładanie bazy SQL Azure, 131 zakładanie konta, 44 założenie projektu, 49 zmienna środowiskowa Path, 143 zwiększenie instancji roli, 105

Tytuł