152 55 17MB
Polish Pages [182] Year 2012
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
@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")
I
@Html .ActionLinkC'Back to L is t". "Index")
@Html .ActionLinkC'Create New". "Create")
Tytuł | Data opublikowania | Kategoria | Cena | Obrazek | @foreach (var item in Model) |
---|---|---|---|---|---|
@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 }) |
Tytuł: @Html.TextBox("searchString")
Tytuł |
---|