420 likes | 597 Views
Aplikacje a chmury. Tomasz Kopacz tkopacz@microsoft.com. Plan. Terminologia i próba definicji. Cloud Computing to styl wykonywania obliczeń w którym wysoce skalowalna infrastruktura IT jest udostępniona jako usługa zewnętrznym klientom. Obecnie, termin stosowany jest też:
E N D
Aplikacje a chmury Tomasz Kopacz tkopacz@microsoft.com
Terminologia i próba definicji • Cloud Computingto styl wykonywania obliczeń w którym wysoce skalowalna infrastruktura IT jest udostępniona jako usługa zewnętrznym klientom. • Obecnie, termin stosowany jest też: • Jako wyróżnik typu rozwiązania (wielopodmiotowość, elastyczność, SaaS, „cloud enabled” app). • Określenie związane z infrastrukturą i wirtualizacją (“utility computing"). • Praktycznie: NOWA PLATFORMA DO URUCHAMIANIA APLIKACJI
Dlaczego platforma „w chmurze”? Zmiana w „ekonomii” oprogramowania • Redukcja inwestycji i kosztów operacyjnych • Uproszczone wdrażanie i zarządzanie • Elastyczność: aplikacji i infrastruktury • Uproszczone skalowanie rozwiązań masowych (internet) • Tania obsługa obciążenia w szczycie • Pozwala skupićsięna funkcjonalności – nie infrastrukturze
Aplikacje w chmurze Aplikacje „wewnętrzne” Windows Server Windows Vista/XP/7 Windows Mobile Inne
Możliwości Azure Services Elastyczna platforma usług dla skali Internetu • Proste scenariusze są proste – skomplikowane można realizować • Usługi hostowane w centrach danych Microsoft • Zaprojektowany pod kątem wysokiej dostępności i skalowalności Oparty o standardy internetowe • Obsługa wielu protokołów, w tym HTTP, REST, SOAP, AtomPub • Inwestycje w otwarty dostęp (we współpracy ze społecznością) Bazuje na istniejących inwestycjach • Znane narzędzia, języki i frameworki – .NET& Visual Studio • Pozwala wybrać: „on-premise”, w „chmurze” lub rozwiązania pośrednie • Integracja z istniejącymi zasobami: AD, aplikacje zainstalowane lokalnie…
Skala serwisów Obecne obciążenie: • 30 miliardów autoryzacji Live ID na miesiąc • 2 miliardy zapytań Live Search na miesiąc • 10 miliardów wizyt na stronach MSN na miesiąc • 240 miliardówkomunikatów na miesiąc Nowe inwestycje • Quincy, WA: zakończona, około 13 km2 • San Antonio, TX: zakończona w 2008, około12 km2 • Chicago, IL: wiosna/lato 2009, około 14 km2 • Dublin, Irlandia: lato 2009, około14,5 km2 • Des Moines, Iowa: Niedawno nabyty teren Centra danych to nowe „Intelectual Property”
Obliczenia: Zwirtualizowane środowisko komputerowe bazujące na Windows Server Przechowywanie:Trwałe, skalowalne i olbrzymie Zarządzanie:Zautomatyzowany mechanizm zarządzania cyklem życia serwisu (w oparciu o model) Windows Azure Rozszerzyć Windows w „chmurę” Obliczenia Przechowywanie Zarządzanie
Demo Windows Azure Platforma Windows Azure
Demo: Hello Windows Azure Scenariusz: • Prosta aplikacja ASP.NET • Visual Studio 2008 SP1 • Role, instancje w konfiguracji • Śledzenie kodu lokalnie • Portal Azure • Wgranie w chmurę • Wersje, staging, produkcja Azure zapewnił: • Środowisko do uruchomienia kodu • Maszyny, szafy, przełączniki, połączenie… • Automatyczne wdrożenie i konfiguracja • Izolacja, redundancja, rozkład obciążeń • Elastyczność • Abstrakcja „datacenter”
Co oferuje Windows Azure? Obliczenia Pojemnik Narzędzia developerskie
Co oferuje Windows Azure? • Obliczenia • .NET 3.5 sp1 na IIS7 • Server 2008 – 64bit • Medium Trust* • Web Role • Witryna WWW (ASP.NET) • Usługa Web (WCF) • Worker Role • Zadanie obliczeniowe • Serwer bez sesji! • Http(s) Pojemnik Narzędziadeweloperskie
Co oferuje Windows Azure? • Pojemnik • Trwałość, skalowalność, dostępność • Blobs • Tabele • Kolejki • Interfejs REST • Można używać bez obliczeń Obliczenia Developer Tools
Co oferuje Windows Azure? Obliczenia Pojemnik • Infrastruktura • Sprzętowe urządzenia Load Balancers • Serwery • Sieć • DNS • Monitorowanie • Automatyczne zarządzanie serwisami Narzędzia developerskie
Co oferuje Windows Azure? • Narzędzia deweloperskie • Windows Azure SDK • Lokalną „symulację” środowiska w chmurze • Obliczenia + pojemnik • Narzędzia z linii poleceń • API do zarządzania (proste) • Logowanie, monitoring • Dodatek do Microsoft Visual Studio 2008 Compute Storage
Obliczenia, kolejki i role Skalowanie = dodanie więcej main() { … } Worker Role Web Role 1) Otrzymanie zadania 4) Praca ASP.NET, WCF, itp. 2) Zadanie do kolejki 3) Pobranie zadania do wykonania Dowolna liczba klientów Tylko raz komunikat „wybrany” Rozmiar komunikatów – do 8 Kb Kolejka
Demo Obliczenia i role
Opcje przechowywania • Zaprojektowane dla chmury; 3 repliki • Gwarantowana spójność • Dostępność bezpośrednio z Internetu, przez REST API (opis na MSDN) • Bardzo pomocny przykład StorageClient • Prawdopodobnie przyszłe formalne API
Azure Table - zasady partycjonowania • Każda encja ma 2 klucze – klucz głowny oraz partycjonujący (PartitionKey) • Filtry wymagają podania PartitionKey • Wydajność • Wybrać takiPartitionKeyktóry często używany jest w kwerendach • Encje z tym samym PartitionKey są klastrowane • Skalowalność • Azure monitoruje ruch i rozkłada obciążenie dobierając gdzie przechowywana jest partycja • Im więcej partycji – tym ten proces jest łatwiejszy
Transakcje i spójność • Spójne pojedyncze wywołanie • Create, Update, Delete, Select • Izolacja klientów i snapshot (AzureTable) • Spójny widok od początku zapytania • Bez „dirtyreads” • Nie blokuje aktualizacji (wersjonowanie!) • Nie ma spójności pomiędzy kolejnymi wywołaniami kwerendy • Kilka tabel – odpowiedzialność aplikacji • Pamiętać o kolejce!
Demo Opcje przechowywania
.NET Services .NET Service Bus Usługa Service Bus Usługa Aplikacja Aplikacja Aplikacja .NET Workflow Service Usługa http://service./ .NET Access Control Service Usługa AccessControl Przepływ SDS
Access ControlServices – zadanie • Poświadczenie prawa użytkownika do wykonania danej operacji (autoryzacja + stwierdzenia) • Założenia • Federacja • Serwis | Strona poświadczająca (łańcuch) | Klient • Składniki • Portal • API klienckie • Używane w • SQL Data Services (akceptuje oprócz uużytkownika i hasło oraz tokeny z ACS • .NET Service Bus; .NET Workflow Service • Usługi (STS) • Wydaje tokeny • Współpraca z frameworkiem“Geneva”
Service Bus - zadanie • Dwukierunkowa komunikacja z/w • Klient w hotelu, na lotnisku, współdzielone biura • Udostępnienie lokalnie hostowanejusługi w Internecie • + Autoryzacja + integracja z workflow itp.. • Kilka szczegółów: • Konwencja nazewnicza • sb://<projekt>.servicebus.windows.net/test1/MulticastService/ • Rejestr: po prostu Feed (Atom 1.0 / WS-Transfer) • http://<projekt>.servicebus.windows.net • API R/W
Service Bus –kanały komunikacyjne • Model programowania: WCF • Do tego: Publish/Subscribe, kolejki i wiele innych mechanizmów
Połączenie NetTcp Direct/Hybrid Service Bus • sb://projekt.servicebus.windows.net/a/b/ ZapleczeNazwy RoutingTaśma Oneway Kom. kontrolne Węzły frontend TCP/SSL 818, 819 NAT Probing NAT Probing Połączenie typu relayed relayed znalezione Kontrolne aktualizacja aktualizacja Nadawca Odbiorca Połączenie NAT Traversal
Workflow Service - zadanie • Mechanizm orkiestracji w chmurze • Pod spodem • Windows Workflow Foundation • Operacje: • IfElse ; Sequence ; Suspend ; Terminate ; While • .NET Workflow Service • CloudDelay • CloudHttpSend ; CloudHttpReceive • CloudServiceBusSend • CloudXPathRead ; CloudXPathUpdate • API do tworzenia przepływu, uruchamiania instancji, wysyłania komunikatu
Demo .NET Services
Live Services • Usługi „użytkowe” które pozwalają na: • Dostęp do danych użytkownika • Dostęp do usług Windows Live Applications Data Sync Devices Users Identity Storage Directory Search & Geospatial Comms & Presence Live Framework Programming Model Live Operating Environment
Co można zrobić? Dostęp do danych użytkownika Dostęp do informacji na urządzeniach klienta Dostęp do „grafu powiązań społecznych” Współdzieleniedanych Synchronizacjadanych użytkownika Dostęp do profilu Wiadomości (app / dane) Zarządzanie aplikacjami Kontrola dostępu do danych użytkownika!
Typy aplikacji Live Framework Witryna Mesh-enabled Web Applications • Hostowana i wdrażana w Mesh • Działa na pulpicie albo na Live Desktop • Pełne wykorzystanieLive Services Strony Web wykorzystujące Live Framework • Aplikacja może uzyskać dostęp do danych • Musi być udzielone zezwolenie na dostęp GET https://user-ctp.windows.net/v0.1
Jak zacząć? (kody dostępu) • Są 3 typy kodów: • Windows Azure • .NET & SQL Services • Live Framework & Services • Jak je uzyskać? • Iść nahttp://www.azure.com • Wysłać zgłoszenie (przez Microsoft Connect) • .NET Services, SQL Services, Live Services • Azure Hosting / Storage - dostępne • Czas oczekiwania od 20 lutego – 2 dni (pracujące)
Podsumowanie • Wszechstronna platforma w chmurze: Aplikacje i dane • Bez martwienia się o infrastrukturę (abstrakcja) • Elastyczność – dowolne łączenie usług • Łączność z systemami „on-premises” • Znane narzędzia i model programowania • Dużo opcji związanych z UX dzięki Live Services • Standardowe protokoły i formaty (HTTP, REST, WS-Trust...)
Pytania? tkopacz@microsoft.com