Darmowy fragment publikacji:
Tytuł oryginalny: Windows Azure Platform
Tłumaczenie: Radosław Meryk
Original edition copyright © 2011 by Tejaswi Redkar and Tony Guidici.
All rights reserved.
Polish edition copyright © 2013 by HELION SA.
All rights reserved.
ISBN: 978-83-246-4879-5
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji
w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także
kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich
niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne.
Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne
naruszenie
praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również żadnej odpowiedzialności
za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/plawia.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/plawia
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis treĂci
O autorach .............................................................................................................13
O recenzencie technicznym ....................................................................................15
PodziÚkowania ......................................................................................................17
Wprowadzenie ......................................................................................................19
PrzeglÈd informacji o platformie Windows Azure ..................................................21
Rozdziaï 1.
Wprowadzenie w tematykę przetwarzania w chmurze .................................................................. 21
Terminologia związana z przetwarzaniem w chmurze ........................................................... 22
Dostawcy usług w chmurze ......................................................................................................... 24
Migracja do paradygmatu chmury .................................................................................................... 25
Ekosystem chmury obliczeniowej ..................................................................................................... 27
Dostawcy usług ............................................................................................................................. 27
Twórcy oprogramowania ............................................................................................................ 28
Niezależni dostawcy oprogramowania ...................................................................................... 28
Integratorzy ................................................................................................................................... 28
Przedsiębiorstwa ........................................................................................................................... 28
Strategia firmy Microsoft w zakresie chmury obliczeniowej ........................................................ 29
Ogólne informacje o platformie Windows Azure .......................................................................... 30
Architektura przetwarzania na platformie Windows Azure .................................................. 32
Windows Azure ................................................................................................................................... 33
Usługa Compute ........................................................................................................................... 35
Usługa Storage ............................................................................................................................... 40
Usługa Management .................................................................................................................... 42
SQL Azure ............................................................................................................................................. 43
Windows Azure AppFabric ................................................................................................................ 46
Cennik usług na platformie Windows Azure .................................................................................. 48
Portal zarządzający — konfigurowanie usług ................................................................................. 51
Windows Azure Marketplace DataMarket ...................................................................................... 53
Popularne scenariusze użycia platformy Windows Azure .................................................................. 54
Scenariusze podstawowe .............................................................................................................. 54
Scenariusze korporacyjne ............................................................................................................ 55
Scenariusze dla niezależnych dostawców oprogramowania .................................................. 56
SPIS TRE¥CI
Podsumowanie ..................................................................................................................................... 57
Bibliografia ............................................................................................................................................ 57
Rozdziaï 2. Windows Azure Compute ......................................................................................59
Usługa Compute .................................................................................................................................. 59
Domeny aktualizacji i awarii ....................................................................................................... 62
Bezpieczeństwo usługi Compute ................................................................................................ 65
Programowanie usług Windows Azure ........................................................................................... 65
Struktura API systemu Windows Azure ................................................................................... 66
Środowisko programistyczne ...................................................................................................... 66
Programy narzędziowe pakietu SDK Windows Azure ........................................................... 80
Modele usług ................................................................................................................................. 81
Lokalne środowisko testowe ....................................................................................................... 90
Lokalny emulator magazynu danych ......................................................................................... 91
Diagnostyka .......................................................................................................................................... 93
Rejestrowanie ................................................................................................................................ 95
Programowanie usług Windows Azure z mechanizmami komunikacji pomiędzy rolami ...... 98
Cele ................................................................................................................................................. 99
Dodanie mechanizmów diagnostycznych oraz komunikacji pomiędzy rolami ................. 99
Uruchamianie usługi HelloAzureCloud ................................................................................. 106
Publikowanie aplikacji w chmurze Windows Azure ............................................................. 107
Geolokalizacja .................................................................................................................................... 115
Włączanie opcji powinowactwa geograficznego .................................................................... 115
Zarządzanie usługami na platformie Windows Azure ................................................................. 117
Struktura API zarządzania usługami ....................................................................................... 117
Programowanie z wykorzystaniem API zarządzania usługami ........................................... 118
Cykl życia projektowania usługi Windows Azure ........................................................................ 120
Dobre praktyki projektowe .............................................................................................................. 121
Podsumowanie ................................................................................................................................... 122
Bibliografia .......................................................................................................................................... 122
Rozdziaï 3. Windows Azure Storage, czÚĂÊ I — usïugi Blob i Drives ......................................125
Taksonomia usługi Storage .............................................................................................................. 126
Architektura usługi Storage .............................................................................................................. 128
Usługa Blob ......................................................................................................................................... 129
Ograniczenia obiektów blob ..................................................................................................... 130
Architektura usługi Blob ................................................................................................................... 130
Konto w usłudze Windows Azure Storage ............................................................................. 130
Kontenery .................................................................................................................................... 131
Obiekty blob ................................................................................................................................ 132
Typy obiektów blob .................................................................................................................... 133
API REST ............................................................................................................................................ 134
Żądanie ......................................................................................................................................... 134
Odpowiedź ................................................................................................................................... 136
Interfejs API StorageClient ....................................................................................................... 138
Działania dotyczące konta ................................................................................................................ 143
Przykład programowania ................................................................................................................. 146
Działania na kontenerach ................................................................................................................. 148
Utwórz kontener ......................................................................................................................... 150
6
SPIS TRE¥CI
Ustaw metadane kontenera ....................................................................................................... 152
Pobierz listę obiektów blob ....................................................................................................... 154
Działania na obiektach blob ............................................................................................................. 159
Wgraj obiekt blob ....................................................................................................................... 163
Pobierz obiekt blob ..................................................................................................................... 167
Kopiuj obiekt blob ...................................................................................................................... 170
Sieć Content Delivery Network ....................................................................................................... 172
Windows Azure Drives ..................................................................................................................... 174
Przegląd informacji .................................................................................................................... 174
Działania na dyskach usługi Windows Azure Drives .............................................................. 175
Scenariusze użycia dysków Windows Azure Drives ............................................................. 181
Scenariusze wykorzystania usługi Blob .......................................................................................... 183
Przekazywanie dużych ilości danych ....................................................................................... 183
Pamięć masowa jako usługa w chmurze ................................................................................. 184
Synchronizacja plików w przedsiębiorstwie ........................................................................... 185
Podsumowanie ................................................................................................................................... 187
Bibliografia .......................................................................................................................................... 187
Rozdziaï 4. Windows Azure Storage, czÚĂÊ II — usïuga Queue .............................................189
Ograniczenia usługi Queue .............................................................................................................. 190
Architektura usługi Queue ............................................................................................................... 190
Konto Windows Azure Storage ................................................................................................ 191
Kolejki ........................................................................................................................................... 191
Komunikaty ................................................................................................................................. 192
API REST ............................................................................................................................................ 193
Żądanie ......................................................................................................................................... 193
Odpowiedź ................................................................................................................................... 195
Interfejs API StorageClient ....................................................................................................... 196
Działania dotyczące konta ................................................................................................................ 198
Działania na kolejkach ...................................................................................................................... 202
Utwórz kolejkę ............................................................................................................................ 203
Ustaw metadane kolejki ............................................................................................................. 205
Działania na komunikatach ............................................................................................................. 207
Umieść komunikat w kolejce .................................................................................................... 207
Pobierz komunikaty ................................................................................................................... 210
Asynchroniczne wywołania API ..................................................................................................... 215
Scenariusze użycia usługi Queue ..................................................................................................... 216
Scenariusz 1. Komunikacja pomiędzy rolami Windows Azure Web i Worker ................ 216
Scenariusz 2. Rozkład obciążenia pomiędzy role Worker .................................................... 217
Scenariusz 3. Interoperacyjny system przesyłania komunikatów ....................................... 218
Scenariusz 4. Gwarantowane przetwarzanie .......................................................................... 219
Podsumowanie ................................................................................................................................... 220
Bibliografia .......................................................................................................................................... 220
Rozdziaï 5. Windows Azure Storage, czÚĂÊ III — usïuga Table ..............................................221
Architektura usługi Table ................................................................................................................. 222
Konto Windows Azure Storage ................................................................................................ 222
Interfejs API REST ............................................................................................................................ 226
Żądanie ......................................................................................................................................... 227
7
SPIS TRE¥CI
Rozdziaï 6.
Rozdziaï 7.
8
Odpowiedź ................................................................................................................................... 229
Biblioteka ADO.NET Data Services (.NET Client) ............................................................... 231
Przykład modelu tabeli ..................................................................................................................... 234
Działania dotyczące konta ................................................................................................................ 238
Operacje na tabelach ......................................................................................................................... 238
Utwórz tabelę ............................................................................................................................... 239
Wyświetl listę tabel ..................................................................................................................... 242
Działania na encjach .......................................................................................................................... 245
Wyświetl encje ............................................................................................................................. 246
Dodaj encję .................................................................................................................................. 252
Scal encję ...................................................................................................................................... 255
Storage Analytics ............................................................................................................................... 259
Rejestrowanie .............................................................................................................................. 259
Metryki ......................................................................................................................................... 260
Włączanie usługi Storage Analytics ......................................................................................... 261
Usługa Table czy SQL Azure? .......................................................................................................... 262
Scenariusze użycia usługi Table ........................................................................................................ 263
Scenariusz 1. Odczytywanie wskaźników wydajności z usługi Table ................................. 263
Scenariusz 2. Stronicowanie z wykorzystaniem usługi Table .............................................. 265
Podsumowanie ................................................................................................................................... 267
Bibliografia .......................................................................................................................................... 267
Role VM i Windows Azure Connect .....................................................................269
Rola VM .............................................................................................................................................. 269
Korzyści płynące ze stosowania ról VM i konieczne kompromisy ..................................... 270
Scenariusze ................................................................................................................................... 270
Tworzenie maszyny wirtualnej ................................................................................................. 271
Komponenty integracji z platformą Windows Azure ........................................................... 271
Wgrywanie obrazu na platformę Windows Azure ................................................................ 273
Windows Azure Connect ................................................................................................................. 277
Windows Azure Connect a Service Bus .................................................................................. 277
Konfiguracja usługi Windows Azure Connect ....................................................................... 278
Aktywne punkty dostępowe, grupy i role ............................................................................... 279
Instalacja i aktywacja punktu dostępowego Azure na lokalnym komputerze ................... 279
Włączanie usługi Windows Azure Connect dla roli ............................................................. 281
Tworzenie grupy Connect ......................................................................................................... 282
Podsumowanie ................................................................................................................................... 283
Bibliografia .......................................................................................................................................... 284
AppFabric — usïuga Access Control Service ........................................................285
Co to jest tożsamość cyfrowa? ......................................................................................................... 285
Co to są oświadczenia? ...................................................................................................................... 286
Model zarządzania tożsamościami bazujący na oświadczeniach ............................................... 288
Scenariusze użycia usługi ACS ........................................................................................................ 290
Scenariusz 1. Aplikacja korporacyjna działająca w chmurze ............................................... 290
Scenariusz 2. Aplikacja przedsiębiorstw-partnerów .............................................................. 292
Scenariusz 3. Usługa w chmurze niezależnych dostawców oprogramowania ................... 294
Pobieranie tokenów z usługi ACS ............................................................................................ 296
Portal zarządzający usługi Access Control Service ....................................................................... 297
SPIS TRE¥CI
Definiowanie przestrzeni nazw usługi ACS ............................................................................ 297
Dostawcy tożsamości ................................................................................................................. 299
Aplikacje zależne ......................................................................................................................... 306
Grupy reguł .................................................................................................................................. 307
Certyfikaty i klucze ..................................................................................................................... 309
Tożsamości usług ........................................................................................................................ 310
Administratorzy portalu ............................................................................................................ 311
Usługa zarządzania ..................................................................................................................... 311
Integracja aplikacji ...................................................................................................................... 312
Programowanie aplikacji korzystających z usługi Access Control Service ............................... 315
Pasywna federacja z ACS ........................................................................................................... 315
Aplikacja webowa — wielu dostawców tożsamości i ACS ................................................... 315
Dodanie dostawcy WS-Federation ........................................................................................... 318
Podsumowanie ................................................................................................................................... 323
Pojęcia i terminologia ........................................................................................................................ 323
Dostawca tożsamości .................................................................................................................. 324
Aplikacje zależne ......................................................................................................................... 324
Token zabezpieczeń (token SAML) ......................................................................................... 324
Usługa STS ................................................................................................................................... 324
Żądanie bezpiecznego tokenu (Request for Security Token — RST) ................................. 324
Odpowiedź na żądanie bezpiecznego tokenu
(Request for Security Token Response — RSTR) ............................................................... 324
Oświadczenie ............................................................................................................................... 325
Federacja tożsamości .................................................................................................................. 325
Windows Identity Foundation (WIF) ..................................................................................... 325
Serwer ADFS 2.0 (Active Directory Federation Server 2.0) ................................................. 325
Protokoły WRAP (Web Resource Authorization Protocol)
i SWT (Simple Web Token) ................................................................................................... 326
Bibliografia .......................................................................................................................................... 326
AppFabric ServiceBus ..........................................................................................327
Wprowadzenie ................................................................................................................................... 327
Architektura firmowej magistrali usług (ESB) .............................................................................. 328
Zabezpieczenia i kontrola dostępu ........................................................................................... 329
Infrastruktura połączeń ............................................................................................................. 329
Korporacyjna usługa nazw ......................................................................................................... 329
Kontrakty interfejsu ................................................................................................................... 329
Ewolucja do internetowej magistrali usług (ISB) .......................................................................... 329
Usługa przekazywania ................................................................................................................ 331
Wprowadzenie w tematykę usługi AppFabric Service Bus ......................................................... 332
Zabezpieczenia ............................................................................................................................ 333
Usługa nazw ................................................................................................................................. 336
Rejestr usług ................................................................................................................................ 338
Blok komunikatów ..................................................................................................................... 340
Programowanie usługi AppFabric Service Bus ............................................................................. 343
Przykład usługi ProAzure Energy ............................................................................................ 345
NetOnewayRelayBinding .......................................................................................................... 347
netEventRelayBinding ................................................................................................................ 360
9
Rozdziaï 8.
SPIS TRE¥CI
Rozdziaï 9.
NetTcpRelayBinding .................................................................................................................. 365
Dowiązania komunikacji HTTP ............................................................................................... 373
Bufor komunikatów .......................................................................................................................... 383
Programowanie aplikacji korzystających z bufora komunikatów ....................................... 385
Silnik komunikatów AppFabric: usługi Queues i Topics ............................................................ 388
AppFabric Service Bus Queues ........................................................................................................ 388
Porównanie usługi AppFabric Service Bus Queues z usługą Azure Storage Queues .............. 389
AppFabric Service Bus Topics ......................................................................................................... 390
Reguły subskrypcji ...................................................................................................................... 391
Programowanie usług Queues i Topics .......................................................................................... 391
.NET Client API .......................................................................................................................... 391
Interfejs API REST ..................................................................................................................... 396
Podsumowanie ................................................................................................................................... 407
Bibliografia .......................................................................................................................................... 407
AppFabric: Caching ..............................................................................................409
AppFabric Caching a inni dostawcy usług buforowania ................................................................. 410
Konfigurowanie usługi AppFabric Cache ...................................................................................... 410
Klienty AppFabric Cache ................................................................................................................. 411
Referencje do bibliotek ............................................................................................................... 411
Konfigurowanie klienta AppFabric Cache .............................................................................. 411
Programowanie usługi AppFabric Cache ............................................................................... 415
Dostawca stanów sesji dla aplikacji ASP.NET ............................................................................... 416
Włączenie obsługi stanów sesji w AppFabric Cache ............................................................. 416
AppFabric Cache jako bufor wyników aplikacji ASP.NET ............................................................... 416
Podsumowanie ................................................................................................................................... 417
Bibliografia .......................................................................................................................................... 417
Rozdziaï 10. SQL Azure ............................................................................................................419
Przegląd informacji na temat SQL Azure ...................................................................................... 419
Architektura usługi SQL Azure ....................................................................................................... 420
Warstwa infrastruktury .............................................................................................................. 420
Warstwa platformy ..................................................................................................................... 420
Warstwa usług ............................................................................................................................. 422
Warstwa klienta .......................................................................................................................... 422
Ograniczenia SQL Azure i obsługiwane własności ....................................................................... 422
Technologie bazodanowe .......................................................................................................... 423
Technologie aplikacyjne ............................................................................................................ 423
Technologie administracyjne .................................................................................................... 423
Dostęp do danych usługi SQL Azure .............................................................................................. 424
Połączenia typu code-near ......................................................................................................... 424
Połączenia typu code-far ............................................................................................................ 424
SQL Azure — podstawy .................................................................................................................... 426
Tworzenie serwera SQL Azure ................................................................................................. 426
Tworzenie bazy danych SQL Azure ......................................................................................... 429
Nawiązywanie połączenia z bazą danych SQL Azure ........................................................... 429
Programowanie usług Windows Azure korzystających z bazy danych SQL Azure ................ 445
Opis usługi ................................................................................................................................... 445
Procesy związane z redukcją ..................................................................................................... 445
10
SPIS TRE¥CI
Architektura techniczna .............................................................................................................. 446
Projekt bazy danych o cenach i bramkach .............................................................................. 448
Tworzenie bazy danych proazuredemres ................................................................................ 449
Strategie migracji baz danych .......................................................................................................... 460
Migracja definicji danych .......................................................................................................... 460
Migracja danych .......................................................................................................................... 461
Migracja logiki biznesowej ........................................................................................................ 462
Migracja aplikacji ........................................................................................................................ 462
Strategie rozwoju i rozbudowy bazy danych ................................................................................. 463
Raportowanie w SQL Azure ............................................................................................................. 464
Przykładowy raport .................................................................................................................... 465
Tworzenie raportów ................................................................................................................... 465
Obsługiwane własności pakietu SSRS ............................................................................................. 467
Synchronizowanie danych ................................................................................................................ 467
Projekt mechanizmu synchronizacji danych ................................................................................. 468
Opcje synchronizacji .................................................................................................................. 468
Podsumowanie ................................................................................................................................... 468
Bibliografia .......................................................................................................................................... 468
Skorowidz ...........................................................................................................469
11
SPIS TRE¥CI
12
R O Z D Z I A 1
PrzeglÈd informacji
o platformie Windows Azure
W ciągu ostatnich kilku lat tzw. przetwarzanie w chmurze (ang. cloud computing) wywarło ogromny wpływ
na branżę IT. Skalę jego oddziaływania można porównać do takich zjawisk jak internet czy też offshoring.
Według badań prowadzonych przez firmę Gartner Research przetwarzanie w chmurze znalazło się wśród 10
najbardziej przełomowych technologii lat 2008 – 2012. W opinii firmy Gartner za przełomową można uznać
technologię, która wprowadza zasadnicze zmiany w przyjętym modelu rozwiązywania określonych problemów.
Dla programistów, architektów oprogramowania i projektów przetwarzanie w chmurze oznacza istotną zmianę
w sposobie budowania, wytwarzania i pielęgnacji oprogramowania.
Przetwarzanie w chmurze demokratyzuje branżę IT na podobnej zasadzie, na jakiej internet zdemokratyzował
rynek konsumencki. Internet otworzył cały ocean dostępnych zasobów dla konsumentów — począwszy od
darmowego przeszukiwania reklam, a skończywszy na usługach bankowych online. Przetwarzanie w chmurze
przynosi korzyści podobnej skali zarówno dla małych, jak i dużych firm. Mogą teraz korzystać z olbrzymiej
elastyczności nowej technologii. Wystarczy uiścić opłatę za opublikowanie własnego oprogramowania w centrum
obliczeniowym zarządzanym przez zewnętrzny podmiot. Dzięki dostawcom usług w chmurze z rachunku
ekonomicznego całkowicie odpadają koszty sprzętu. Na pierwszy rzut oka opis przetwarzania w chmurze
pasuje do usług hostingowych, z których od dawna korzystamy w celu przechowywania witryn internetowych.
Pomiędzy hostingiem a przetwarzaniem w chmurze istnieje jednak wielka różnica — w tym drugim mamy do
czynienia z modelem narzędziowym bazującym na wysoce skalowalnych platformach centrów obliczeniowych.
Fala przetwarzania w chmurze stała się tak potężna, że nawet tak duża firma jak Microsoft zaczęła przebudowywać
własny model biznesowy w celu zainwestowania w nową technologię.
W niniejszym rozdziale omówię podstawowe wiadomości dotyczące usług w chmurze, a następnie przejdę
do wprowadzenia w tematykę platformy Windows Azure. W poprzednim wydaniu tej książki omawiałem
modele programowania stosowane przez niektórych dostępnych na rynku dostawców usług w chmurze.
Przyjąłem takie podejście, ponieważ technologia była nowością i chciałem, by czytelnicy poznali różnice
w oferowanych produktach. W niniejszym wydaniu także porównuję dostawców usług w chmurze, ale nie na
tym samym poziomie szczegółowości, co w wydaniu poprzednim. Dostępna powszechnie literatura dotycząca
tych platform dojrzała na tyle, aby opis niektórych z nich można było wyeliminować z niniejszej książki.
Wprowadzenie w tematykÚ przetwarzania w chmurze
W ramach wprowadzenia rozważmy typowy scenariusz realizowany we współczesnych średnich i dużych
przedsiębiorstwach. Załóżmy, że firma ma potrzebę natychmiastowego wdrożenia wysoce interaktywnej niszowej
aplikacji internetowej (mikrowitryny) dla nowego produktu, który ukaże się za pięć miesięcy. Aplikacja ma
szczegółowo zaprezentować użytkownikom produkt, a także umożliwić zdefiniowanie indywidualnego
PLATFORMA WINDOWS AZURE
zamówienia i wysłanie go wprost z witryny internetowej. Firma dysponuje budżetem, ale nie ma czasu i środków
potrzebnych do implementacji aplikacji. Tymczasem premiera aplikacji musi być gotowa w trzy miesiące.
Rodzimy zespół IT firmy rozumie potrzeby, ale wdrożenie aplikacji o tego rodzaju zasobach wymaga
koordynacji sprzętu, oprogramowania oraz zespołów projektowych i pomocniczych. Załóżmy, że zamówienie
sprzętu i przygotowanie kompilacji systemu operacyjnego zajęło dwa miesiące. Po tym okresie zespół IT
musi przeprowadzić standardowe procesy testowania, aby mieć pewność, że wszystkie potrzeby funkcjonalne
zostały właściwie zidentyfikowane. Z analizy wynika, że aplikację można wdrożyć najwcześniej za sześć miesięcy.
Właściciel firmy podkreśla ważność zadania, ale nie może wyjść poza granice wytyczonych procedur
obowiązujących w przedsiębiorstwie. Ostatecznie podejmuje decyzję o zleceniu projektu firmie zewnętrznej.
Dzięki temu uzyskuje działającą aplikację w trzy miesiące. Pomimo że aplikacja została dostarczona, firma
nie gwarantuje odpowiedniego poziomu wsparcia dla klientów ani jakości działania. Tak wcale być nie musi
— dział IT firmy powinien być preferowanym i wystarczającym źródłem do spełnienia wszystkich potrzeb
biznesowych. Pomimo że skorzystanie z outsourcingu gwarantuje dużą stopę zwrotu z inwestycji, w dłuższej
perspektywie firma poniesie straty na tej innowacji. Własny dział IT posiada zdolność wprowadzania innowacji
w firmie. Członkowie tego działu powinni mieć możliwości realizacji tych innowacji bez sztucznych blokad
ustanawianych przez wymogi proceduralne.
Z opisanymi powyżej scenariuszami spotykam się na co dzień. Nie widzę innego rozwiązania problemu,
jak całkowite odnowienie procedur i struktur działania organizacji albo powszechne wdrożenie takich technologii
jak przetwarzanie w chmurze.
W jaki sposób przetwarzanie w chmurze może pomóc? Aby to zrozumieć, wróćmy do pierwotnego
wymogu: właściciel firmy chce jak najszybszego wdrożenia aplikacji — najpóźniej w ciągu trzech miesięcy.
Ogólnie rzecz biorąc, firma potrzebuje zwinności działu IT. Jeśli stworzenie aplikacji trwa tylko jeden miesiąc,
to czy naprawdę warto marnować sześć miesięcy na koordynację działań związanych z nabywaniem sprzętu?
Przetwarzanie w chmurze natychmiast daje infrastrukturę potrzebną do wdrożenia aplikacji. Zadania
związane z dostarczeniem sprzętu, systemu operacyjnego i oprogramowania są zautomatyzowane i spadają
na dostawców usług przetwarzania w chmurze.
Terminologia związana z przetwarzaniem w chmurze
W celu ustandaryzowania ogólnej terminologii związanej z przetwarzaniem w chmurze w branży utrwaliły się
trzy główne kategorie usług chmurowych: infrastruktura jako usługa (IaaS), platforma jako usługa (PaaS)
oraz oprogramowanie jako usługa (SaaS).
IaaS to usługa narzędziowa, która zapewnia sprzęt i wirtualne systemy operacyjne działające w wysoce
skalowalnych centrach danych dostawcy chmury obliczeniowej. Użytkownik może wynająć tę infrastrukturę
do wdrożenia własnego oprogramowania i zarządzania nie tylko aplikacją w całym cyklu jej życia, ale także
systemem operacyjnym, w którym ta aplikacja działa. W IaaS użytkownik jest odpowiedzialny za aktualizowanie
i utrzymywanie systemów operacyjnych oraz aplikacji działających na wynajętym sprzęcie. Z tego powodu
klientem docelowym usługi IaaS są administratorzy systemowi i inżynierowie projektu. W skrócie: IaaS oferuje
klientowi abstrakcję infrastruktury sprzętowej i wirtualizację.
PaaS to usługa narzędziowa, która zapewnia sprzęt, systemy operacyjne oraz środowisko wykonawcze
potrzebne do uruchomienia aplikacji w wysoce skalowalnych centrach danych dostawcy chmury obliczeniowej.
PaaS zarządza systemami operacyjnymi i utrzymaniem sprzętu, ale klient musi sam zarządzać swoimi
aplikacjami i danymi. Z tego powodu grupą docelową dla PaaS są zazwyczaj deweloperzy. Choć ostateczne
wdrożenie i utrzymanie jest zarządzane przez zespoły operatorów, platforma umożliwia programistom
podejmowanie pewnych decyzji projektowych za pośrednictwem konfiguracji. W skrócie: PaaS oferuje klientowi
abstrakcję infrastruktury sprzętowej i systemu operacyjnego.
SaaS to usługa narzędziowa, która zapewnia klientowi oprogramowanie aplikacyjne. Odbiorca usługi musi
zarządzać tylko danymi biznesowymi, które rezydują w aplikacji i są przez nią przetwarzane. Sprzętem, systemami
operacyjnymi i oprogramowaniem zarządza dostawca SaaS. Dlatego grupę docelową dla SaaS stanowią zazwyczaj
właściciele firm. Ich zadanie sprowadza się do odwiedzenia witryny internetowej dostawcy SaaS, zarejestrowania
konta w usłudze i używania jej.
22
ROZDZIA 1. PRZEGLkD INFORMACJI O PLATFORMIE WINDOWS AZURE
Zgodnie z naturalnym postępem SaaS jest zbudowany na bazie PaaS, a PaaS jest zbudowany na bazie IaaS.
Dlatego dostawcy PaaS oferują możliwości usług IaaS, które są wbudowane w PaaS. Czasem, w zależności od
przyjętej strategii, IaaS jest oferowana jako oddzielna usługa. Typowe zakresy odpowiedzialności w usługach
IaaS, PaaS i SaaS pokazano na rysunku 1.1.
Rysunek 1.1. Zakresy odpowiedzialności dla usług IaaS, PaaS i SaaS
Zarządzanie kontami użytkowników może być różne w różnych scenariuszach. Niektóre przedsiębiorstwa
decydują się na stworzenie jednolitej usługi zarządzania kontami użytkowników, natomiast w innych konta
użytkowników wewnątrz firmy i w usłudze SaaS są odrębne. Na przestrzeni kilku ostatnich lat można było
także spotkać kilka innych terminów, np. DaaS (od ang. Data as a Service — dane jako usługa), IT as a Service
— IT jako usługa, Security as a Service — bezpieczeństwo jako usługa i wiele innych. W niniejszej książce dla
uproszczenia wszystkie usługi przypisałem do kategorii IaaS, PaaS i SaaS.
Typy chmur
W branży mówi się nie tylko o typach usług w chmurze, ale także o typach chmur występujących na rynku.
Chmura to architektura centrów danych będąca „silnikiem” usług w chmurze. Jaka jest zatem różnica pomiędzy
dostawcą usług hostingowych a dostawcą usług w chmurze? Doskonałe pytanie!
Zgodnie z moimi doświadczeniami i wiedzą o chmurze mówię tylko wtedy, kiedy architektura centrum
obliczeniowego dostarcza następujących usług:
23
PLATFORMA WINDOWS AZURE
x Płać na bieżąco (ang. pay as you go) — chmura musi dostarczać modelu usług narzędziowych, w którym
klienci ponoszą opłaty wyłącznie za zużyte zasoby bądź za liczbę użytkowników korzystających z usługi.
Cena powinna wzrastać lub maleć w sposób dynamiczny, proporcjonalnie do stopnia korzystania z usługi.
x Portal samoobsługowy (ang. self-service provisioning portal) — chmura musi dawać klientowi dostęp do
portalu samoobsługowego pozwalającego na alokację i zwalnianie zasobów w sposób ręczny i programowy.
x Abstrakcja sprzętu serwerów (ang. server hardware abstraction) — chmura musi zwalniać klienta
z konieczności alokowania i (lub) utrzymywania serwerowych zasobów sprzętowych niezbędnych
do uruchomienia aplikacji.
x Abstrakcja sprzętu sieciowego (ang. network hardware abstraction) — chmura musi zwalniać klienta
z konieczności alokowania i (lub) utrzymywania sieciowych zasobów sprzętowych niezbędnych
do działania aplikacji.
x Dynamiczna skalowalność (ang. dynamic scalability) — chmura musi dostarczać ręcznej i (lub)
programowej opcji dynamicznego skalowania aplikacji (w górę lub w dół) w zależności od wymagań.
x Umowa dotrzymania wysokiej dostępności (SLA) (ang. Service Level Agreement) — chmura musi
jasno definiować umowę SLA określającą gwarantowaną dostępność platformy.
Typ chmury determinuje także jej lokalizacja. Chmury mogą być prywatne bądź publiczne. Dla zapewnienia
prostoty opisu zdefiniuję tylko te dwa typy chmur.
Chmura publiczna to centrum obliczeniowe dostępne publicznie przez internet. Chmurą publiczną
zarządza dostawca usług w chmurze. Niektóre platformy chmur publicznych zapewniają integrację z usługami
intranetowymi firmy za pośrednictwem sieci federacyjnych, wirtualnych sieci prywatnych lub podobnych
mechanizmów łączności. Główne aplikacje i dane w dalszym ciągu rezydują w centrum obliczeniowym dostawcy
usług w chmurze.
Chmura prywatna to infrastruktura działająca we własnym ośrodku obliczeniowym przedsiębiorstwa.
Ze względu na to, że termin „chmura” może być różnie interpretowany, spotyka się różne definicje chmur
prywatnych. Osobiście za niezbędne minimum do tego, by nazwać coś „chmurą” publiczną bądź prywatną,
uznaję spełnienie wymienionych wcześniej wymagań. Jeśli chmura prywatna nie spełnia żadnego z nich, to jest
to jedynie zoptymalizowane centrum obliczeniowe. Niekoniecznie musi to oznaczać coś złego. W niektórych
scenariuszach zoptymalizowane centra obliczeniowe sprawdzają się lepiej od chmur obliczeniowych. Zasadniczą
różnicą pomiędzy chmurami prywatną i publiczną jest wielkość kapitału, jaki trzeba zaangażować, aby dostarczyć
infrastrukturę. Chmury publiczne nie wymagają tworzenia infrastruktury.
Uwaga W niniejszej ksiÈĝce w zaleĝnoĂci od kontekstu bÚdÚ zamiennie uĝywaï terminów usïuga w chmurze oraz
aplikacja w chmurze w ogólnym znaczeniu przetwarzania w chmurze. UsïugÚ w chmurze moĝna czasami uznaÊ za zbiór
aplikacji w chmurze, ale w kontekĂcie niniejszej ksiÈĝki oba terminy oznaczajÈ to samo.
Definicje terminów używanych w książce
Zanim zagłębię się w tematykę chmury obliczeniowej, zaprezentuję terminologię stosowaną w niniejszej
książce. Dla zapewnienia spójności stworzyłem ten podrozdział w celu zdefiniowania ważnych terminów.
Używane pojęcia wraz z opisem znaczenia, w jakim występują one w tej książce, zestawiono w tabeli 1.1.
Dostawcy usług w chmurze
W ciągu kilku ostatnich lat niektóre duże firmy z branży oprogramowania i platform internetowych zaczęły
oferować usługi w chmurze. Dla takich firm jak Amazon, Google i Microsoft, które już wcześniej uzyskały
wysoką pozycję w internecie, była to naturalna transformacja. Firma VMware zbudowała ofertę usług w chmurze
na drodze przejęcia innych firm, na przykład Springsource lub Zimbra. Oferty dostawców chmury obliczeniowej
24
ROZDZIA 1. PRZEGLkD INFORMACJI O PLATFORMIE WINDOWS AZURE
są różnorodne. Czasami są trudności w zaprezentowaniu wachlarza usług oferowanych tylko przez jednego
dostawcę. W tabeli 1.2 wyszczególniłem kilku dostawców oferujących dojrzałe usługi w chmurze. Tę samą
tabelę można zastosować do dowolnego dostawcy usług w chmurze, zarówno obecnie, jak i w przyszłości.
Tabela 1.1. Terminologia stosowana w książce
Termin
Azure lub Windows Azure Platforma Microsoft Windows Azure
Aplikacja w chmurze
Definicja
Platforma chmury
W siedzibie
Poza siedzibą
Rozwiązanie
Aplikacja wdrożona na platformie chmury obliczeniowej. Zazwyczaj część
większej usługi w chmurze
Usługa PaaS oferowana przez dostawcę chmury obliczeniowej do wdrażania
usług w chmurze (np. platforma Windows Azure oferowana przez Microsoft)
Dotyczy aplikacji lub usług zainstalowanych i zarządzanych przez przedsiębiorstwo
w jego własnych centrach obliczeniowych
Dotyczy aplikacji bądź usług w chmurze
Termin użyty samodzielnie dotyczy zbioru aplikacji i (lub) usług w chmurze
zaprojektowanych w celu spełnienia specyficznego celu biznesowego (np.
system płacowy składający się z trzech usług w chmurze i czterech aplikacji
działających w siedzibie klienta)
Tabela 1.2. Właściwości chmur obliczeniowych
Właściwość
Publiczne
IaaS
Amazon EC2Windows
Rackspace.com
PaaS
Platforma Windows Azure
Windows Azure AppFabric
Force.com
Google AppEngine
SaaS
Office 365
Salesforce.com
Google Apps
Prywatne
VMWare vSphere Hyper-V Windows Azure Appliance
SharePoint jako usługa IT
(jeszcze niedostępne)
Na podstawie tabeli 1.2 można oceniać dostawców usług w chmurze spełniających określone wymogi.
Zazwyczaj trudno znaleźć jednego dostawcę chmury obliczeniowej, który odpowiadałby wszystkim kryteriom,
ale podobnie jest w przypadku oprogramowania działającego w siedzibie przedsiębiorstwa.
Migracja do paradygmatu chmury
Jak wynika z poprzedniego podrozdziału, możliwość wyboru wynikająca z szerokiej oferty usług w chmurze
może stwarzać dylematy. Zwykle przed podjęciem decyzji o wyborze konkretnej usługi w chmurze trzeba
przetestować co najmniej dwie. Migracja od tradycyjnego modelu oprogramowania działającego w siedzibie
klienta do modelu chmury jest dla firm fundamentalną zmianą paradygmatu. Zazwyczaj firmy, które wewnętrznie
zarządzają swoimi zasobami IT, osiągnęły pewien stan komfortu. Decydując się na model przetwarzania
w chmurze, firmy muszą opuścić strefę komfortu i przeprowadzić migrację paradygmatu do chmury
obliczeniowej. Tylko w ten sposób mogą bowiem sprostać konkurencji. Migracja nie odbywa się w ciągu jednej
doby, zwykle rygorystyczna analiza, planowanie i implementacja zajmuje kilka miesięcy. W zależności od
25
PLATFORMA WINDOWS AZURE
kosztów, korzyści, ryzyka i wymagań bezpieczeństwa firma może pozostać przy rozwiązaniu oprogramowania
„w siedzibie”, w pełni przejść na chmurę obliczeniową bądź też zdecydować się na model hybrydowy,
gwarantujący oszczędności, a jednocześnie zachowanie najważniejszych aplikacji „w siedzibie”. Na rysunku 1.2
zaprezentowano odpowiedzialność za kluczowe zasoby przy zastosowaniu scenariuszy „w siedzibie”, „w chmurze”
oraz modeli hybrydowych.
Rysunek 1.2. Scenariusze „w siedzibie”, „w chmurze” i hybrydowe
Zalecanym sposobem migracji jest przechodzenie krok po kroku — po jednej aplikacji. Kiedy w początkach
tego wieku zaczął zyskiwać popularność offshoringowy model wytwarzania oprogramowania, firmy stawały
przed podobnym dylematem. Obecnie wiele firm w dużym stopniu korzysta z offshoringu i zdecydowanie im się
to opłaca. Przeprowadzenie migracji paradygmatu do offshoringowych projektów wytwarzania oprogramowania
zajęło firmom sporo czasu i wymagało nauki. Aby chmura obliczeniowa odniosła sukces, firmy ponownie
muszą przeprowadzić podobną migrację paradygmatu.
26
ROZDZIA 1. PRZEGLkD INFORMACJI O PLATFORMIE WINDOWS AZURE
Scenariusze „w siedzibie” i „w chmurze” zaprezentowane na rysunku 1.2 są dość łatwe do zrozumienia,
ponieważ albo wszystkie zasoby są umieszczone w siedzibie klienta, albo w chmurze obliczeniowej. Profile
użytkowników zwykle są wymagane po obu stronach ze względu na wymóg pojedynczego logowania dla usług
„w siedzibie” i „ w chmurze”. W modelach hybrydowych firmy muszą prowadzić negocjacje i w ich wyniku
podjąć decyzję co do tego, które zasoby i usługi powinny być umieszczone w siedzibie, które w chmurze,
a które w obu tych lokalizacjach. W scenariuszu „hybrydowy 1” profile użytkowników i mechanizmy hostingu
występują po obu stronach, aplikacje biznesowe są umieszczone w chmurze, natomiast aplikacje narzędziowe,
systemy operacyjne, magazyn danych i sprzęt działają w siedzibie przedsiębiorstwa. W scenariuszu
„hybrydowy 2” profile użytkowników, systemy operacyjne, magazyn danych i sprzęt występują po obu
stronach, natomiast aplikacje biznesowe, aplikacje narzędziowe i mechanizmy hostingu działają w chmurze
obliczeniowej. Większość firm zwykle decyduje się na jakiś model hybrydowy, który najbardziej odpowiada
ich potrzebom.
Ekosystem chmury obliczeniowej
Ekosystem chmury obliczeniowej obejmuje pięć głównych ról, które zaprezentowano na rysunku 1.3.
Rysunek 1.3. Ekosystem chmury obliczeniowej
Dostawcy usług
Dostawcami usług są firmy, które dostarczają chmurę obliczeniową firmom i konsumentom. Firmy te prowadzą
olbrzymie centra obliczeniowe, w których działają wysoce zwirtualizowane i redundantne systemy sprzętu
i oprogramowania. Do kategorii dostawców usług można zaliczyć takie podmioty jak Amazon z usługą EC2
oraz Microsoft z platformą Windows Azure. Firmy te nie tylko mają doświadczenie w zarządzaniu centrami
obliczeniowymi, ale także potrafią zarządzać skalowalnymi systemami oprogramowania. Dostawcy usług mogą
oferować swoje usługi bezpośrednio firmom, indywidualnym konsumentom bądź niezależnym dostawcom
oprogramowania.
27
PLATFORMA WINDOWS AZURE
Twórcy oprogramowania
Oprogramowanie przeznaczone do działania w siedzibie przedsiębiorstwa znacząco różni się od oprogramowania
przeznaczonego do działania w chmurze. Pomimo że jedno i drugie dostarcza użytkownikom tych samych
funkcjonalności biznesowych, to bardzo różnią się one pod względem architektury. W oprogramowaniu
działającym w chmurze znacznie większego znaczenia niż przy architekturze oprogramowania w siedzibie
przedsiębiorstwa nabierają takie cechy jak wielofirmowość (ang. multi-tenancy), skalowalność, niezawodność
i wydajność. Oprogramowanie w chmurze działa w centrach obliczeniowych udostępnianych przez dostawców
chmur obliczeniowych. W niektórych przypadkach role dostawców usług i twórców oprogramowania nakładają
się na siebie. Na przykład platforma Microsoft Windows Azure, Microsoft Office 365 oraz Google Apps
to oprogramowanie w chmurze działające w centrach obliczeniowych swoich producentów. W celu
zoptymalizowania dostarczania sprzętu wraz z oprogramowaniem za pośrednictwem chmury obliczeniowej
firmy te uznały za ekonomicznie uzasadnione umieszczenie ich we wspólnych centrach obliczeniowych.
Niezależni dostawcy oprogramowania
Niezależni dostawcy oprogramowania (ang. Independent software vendors — ISVs) odgrywają kluczową rolę
w sukcesie usług w chmurze ze względu na swe doświadczenie w dziedzinowych aplikacjach biznesowych.
Zazwyczaj budują oni aplikacje dziedzinowe na bazie istniejących platform. Identyfikują wymagania biznesowe
dla konkretnego rozwiązania i oferują rozwiązanie na bazie gotowej platformy. Chmura obliczeniowa to doskonała
platforma dla niezależnych dostawców oprogramowania, świetnie nadająca się do tworzenia aplikacji
dziedzinowych. Na przykład można stworzyć w chmurze rozwiązanie naliczania opłat za usługi medyczne
i zaoferować je wielu lekarzom oraz placówkom medycznym. Infrastruktura potrzebna do zbudowania
wielofirmowego, skalowalnego oprogramowania jest dostarczana przez dostawcę chmury obliczeniowej.
Niezależni dostawcy oprogramowania mogą zatem skoncentrować się na tworzeniu rozwiązania biznesowego.
Dzięki temu zdobywanie nowych rynków może odbywać się błyskawicznie.
Integratorzy
Integratorzy (nazywani także implementatorami) to firmy oferujące usługi kompletnych rozwiązań tworzonych
na bazie integracji oprogramowania wytwarzanego przez różnych producentów. Wiele firm zakupuje od
producentów licencje na oprogramowanie, ale ze względu na brak strategicznej inicjatywy lub doświadczenia
z produktem nigdy nie dochodzi do wdrożenia. Integratorzy wypełniają istniejącą lukę poprzez oferowanie
usług konsultingowych dla zakupionego oprogramowania. Takie firmy jak Microsoft Consulting Services oraz
IBM Global Services oferują usługi niezależnie od platformy. Integratorzy odgrywają kluczową rolę, ponieważ
scalają usługi „w siedzibie” z usługami w chmurze lub tworzą kompletne rozwiązania w chmurze spersonalizowane
pod kątem wymagań konkretnego odbiorcy. Chmura obliczeniowa daje integratorom możliwość rozszerzenia
oferty poza rozwiązania działające „w siedzibie”.
Przedsiębiorstwa
Przedsiębiorstwa są końcowym odbiorcą i źródłem zapotrzebowania na produkty i usługi oprogramowania.
Jeśli firmy dostrzegą wartość lub oszczędności finansowe w konkretnym rozwiązaniu, nie zawahają się przed
jego wdrożeniem. Aby pozostać konkurencyjnymi na współczesnym rynku, firmy muszą zachować aktualność
swoich portfeli zasobów IT i aplikacji i tam, gdzie to możliwe, czerpać tzw. korzyści skali. Usługi w chmurze
obliczeniowej zostały zaprojektowane z myślą o osiąganiu korzyści skali, ponieważ wspierają wiele przedsiębiorstw
na skalowalnej i zautomatyzowanej platformie. Aby oferta chmury obliczeniowej odniosła sukces, dostawcy
usług, twórcy oprogramowania, niezależni dostawcy oprogramowania i integratorzy muszą działać wspólnie
w kierunku tworzenia aplikacji i usług w chmurze. Aplikacje te nie tylko przynoszą oszczędności finansowe,
ale także podnoszą konkurencyjność firm, a przez to dają korzyści konsumentom.
28
ROZDZIA 1. PRZEGLkD INFORMACJI O PLATFORMIE WINDOWS AZURE
Strategia firmy Microsoft
w zakresie chmury obliczeniowej
Aby firma mogła stworzyć skuteczny biznes bazujący na chmurze obliczeniowej, musi najpierw zainwestować
w utworzenie globalnych centrów danych, które są wysoce zautomatyzowane, wydajne i odpowiednio połączone.
Stworzenie takich centrów obliczeniowych wymaga znaczących inwestycji, a czerpanie z nich zysków jest możliwe
tylko przy wsparciu partnerów biznesowych zajmujących się wytwarzaniem oprogramowania i systemów
operacyjnych. Z tego powodu usługi chmury obliczeniowej na globalną skalę oferują tylko duże firmy, takie
jak Microsoft czy Amazon.
Firma Microsoft to największy producent oprogramowania na świecie. Działająca w jej ramach grupa
Global F
Pobierz darmowy fragment (pdf)