Tomasz Kopacz tkopacz@microsoft.com Aplikacje a chmury Tomasz Kopacz tkopacz@microsoft.com
Plan Definicja „chmury” (…) Podstawowa charakterystyka platformy Cloud Computing Przegląd i pierwsze demo platformy Azure Wybrane szczegóły platformy Azure
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ż: 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 „wewnętrzne” Aplikacje w chmurze Aplikacje „wewnętrzne” Inne Windows Mobile Vista/XP/7 Server
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 Centra danych to nowe „Intelectual Property” 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ów komunikatów na miesiąc Nowe inwestycje Quincy, WA: zakończona, około 13 km2 San Antonio, TX: zakończona w 2008, około 12 km2 Chicago, IL: wiosna/lato 2009, około 14 km2 Dublin, Irlandia: lato 2009, około 14,5 km2 Des Moines, Iowa: Niedawno nabyty teren Centra danych to nowe „Intelectual Property”
Windows Azure Rozszerzyć Windows w „chmurę” Obliczenia Przechowywanie Zarządzanie 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)
Scenariusz przykładu
Platforma Windows Azure Demo Windows Azure Platforma Windows Azure
Demo: Hello Windows Azure Scenariusz: Środowisko do uruchomienia kodu Maszyny, szafy, przełączniki, połączenie… Automatyczne wdrożenie i konfiguracja Izolacja, redundancja, rozkład obciążeń Elastyczność Abstrakcja „datacenter” Azure zapewnił: Prosta aplikacja ASP.NET Visual Studio 2008 SP1 Role, instancje w konfiguracji Śledzenie kodu lokalnie Portal Azure Wgranie w chmurę Wersje, staging, produkcja
Kilka(+) szczegółów
Tematy Hosting Azure Skalowalność i wydajność Współpraca i komunikacja
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ędzia deweloperskie
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
Skalowalność i wydajność
Obliczenia, kolejki i role TechReady7 Breakout Chalktalk Template 3/28/2017 Obliczenia, kolejki i role Skalowanie = dodanie więcej Web Role ASP.NET, WCF, itp. Worker Role main() { … } 1) Otrzymanie zadania 4) Praca 2) Zadanie do kolejki 3) Pobranie zadania do wykonania Kolejka Dowolna liczba klientów Tylko raz komunikat „wybrany” Rozmiar komunikatów – do 8 Kb © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Obliczenia i role
Opcje przechowywania Zaprojektowane dla chmury; 3 repliki Azure Queue Kolejka; komunikacja Web-Worker role Azure Blob System plików; ścieżka + dane binarne Azure Table Arkusz z miliardami wierszy z różnymi zestawami kolumn w każdym wierszu. Wersjonowanie wierszy, izolacja snapshot SQL Services Dane relacyjne, join, kwerendy, TSQL, ADO.NET, geolokalizacja; ADO.NET Data Services 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ć taki PartitionKey któ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 (Azure Table) Spójny widok od początku zapytania Bez „dirty reads” 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
Współpraca i komunikacja
.NET Services .NET Service Bus .NET Workflow Service Aplikacja Usługa .NET Service Bus Service Bus Aplikacja http://service./ Usługa .NET Workflow Service .NET Access Control Service Aplikacja Usługa Przepływ SDS Access Control
Access Control Services – 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”
Zarządzanie
Service Bus - zadanie Dwukierunkowa komunikacja z/w Kilka szczegółów: Klient w hotelu, na lotnisku, współdzielone biura Udostępnienie lokalnie hostowanej usł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 WCF Binding Service Bus Relay Binding BasicHttpBinding BasicHttpRelayBinding WebHttpBinding WebHttpRelayBinding WSHttpBinding WSHttpRelayBinding WS2007HttpBinding WS2007HttpRelayBinding WSHttpContextBinding WSHttpRelayContextBinding WS2007HttpFederationBinding WS2007HttpRelayFederationBinding NetTcpBinding NetTcpRelayBinding NetTcpContextBinding NetTcpRelayContextBinding [pewne podobieństwa do NetMsmqBinding] NetOnewayRelayBinding [pewne podobieństwa do NetTcpPeerBinding] NetEventRelayBinding
Połączenie NetTcp Direct / Hybrid Service Bus sb://projekt.servicebus.windows.net/a/b/ Zaplecze Nazwy Routing Taśma Oneway Kom. kontrolne Węzły frontend Połączenie typu relayed relayed znalezione NAT Probing NAT Probing TCP/SSL 818, 819 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
Live Operating Environment Live Services Usługi „użytkowe” które pozwalają na: Dostęp do danych użytkownika Dostęp do usług Windows Live Users Devices Applications Data Sync Identity Directory Storage Comms & Presence Search & Geospatial Live Framework Live Operating Environment Programming Model
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ółdzielenie danych Synchronizacja danych użytkownika Dostęp do profilu Wiadomości (app / dane) Zarządzanie aplikacjami Kontrola dostępu do danych użytkownika!
Typy aplikacji Live Framework Mesh-enabled Web Applications Hostowana i wdrażana w Mesh Działa na pulpicie albo na Live Desktop Pełne wykorzystanie Live Services Strony Web wykorzystujące Live Framework Witryna GET https://user-ctp.windows.net/v0.1 Aplikacja może uzyskać dostęp do danych Musi być udzielone zezwolenie na dostęp
Jak zacząć? (kody dostępu) Są 3 typy kodów: Windows Azure .NET & SQL Services Live Framework & Services Jak je uzyskać? Iść na http://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