Programowanie w chmurach Windows Azure Tomasz Kopacz Microsoft 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1
Agenda Co to platforma w chmurze? Podstawowe cechy Windows Azure Kto i jak może skorzystać? Kilka szczegółów AppFabric Podsumowanie 2
Pytanie jak? 1 litr -> ¼ tony ładunku ; 20 km ale Jedzie dowolną drogą Jedzie w dowolnym czasie 1 litr -> 1 tona ładunku; 436 km ale Zwykle jedzie z miejsca A do B Wyrusza 2 razy na dzień o 9 i 18 Wysoka Niska Kontrola Efektywność kosztowa Niska Dobra
Co wybrać? On-Premises Servers Własna maszyna Pełna kontrola I pełna odpowiedzialność Inwestycje z góry Kupione licencje Pudełko Hosted Servers Wynajęta maszyna Ograniczona kontrola Podział odpowiedzialności Płacimy za zmiany Kupujemy SPLA Cloud Platform Współdzielona infrastruktura Odpowiedzialność dostawcy chmury Zwirtualizowana i dynamiczna Chcę więcej/mniej NATYCHMIAST Płacimy za użycie
Czyli co to chmura? Cloud Computing to styl wykonywania obliczeń w którym wysoce skalowalna infrastruktura IT jest udostępniona jako usługa zewnętrznym klientom. Praktycznie: NOWA PLATFORMA DO URUCHAMIANIA APLIKACJI
Rodzaje chmury Infrastructure as a Service (IaaS) Sprzęt w chmurze Platform as a Service (PaaS) Sprzęt w chmurze Specjalne oprogramowane (platforma do programowania) Software as a Service (SaaS) Sprzęt w chmurze Platforma w chmurze Aplikacja dla klienta w chmurze
Dlaczego platforma w chmurze? 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
Dlaczego to się opłaca? Duże DC jest bardziej efektywne kosztowo! Inwestycje są DUŻE Budowa bardzo dużego Data Center jest kosztowna Technologia 100+ mln (minimum); Microsoft: 500 mln $ Koszty w średnim DC Koszty w dużym DC Ilerazy? Sieć $95 na Mbit/sek/miesiąc $13 per Mbit/sek/miesiąc 7.1 Przechowywanie $2.20 na GB/miesiąc $0.40 per Gbyte/miesiąc 5.7 Administracja 140 serwerów na administratora > 1000 serwerów na administratora 7.1 Lokalizacja zależy głównie od ceny za energię elektryczną Większość korporacji buduje w podobnych miejscach: Quincy, WA: Google, Microsoft, Yahoo!, i inni San Antonio, TX Microsoft, US NSA, i inni James Hamilton, Internet Scale Service Efficiency, Large-Scale Distributed Systems and Middleware (LADIS) Workshop Sept 08
Co to znaczy Rozmiar boiska do piłki nożnej DUŻE
Z CZEGO SKŁADA SIĘ WINDOWS AZURE
Windows Azure - role Web Web Site Site Web Role (ASPX, ASMX, (ASPX, ASMX, (ASPX, WCF) WCF) WCF) L B Internet Worker Worker Service Role Serwis (aplikacja) L B Tabele Kolejki Pojemnik Bloby Datacenter Windows Azure (>=1)
Możliwości Windows Azure Hosting i dane (Windows Azure): Web Role słucha na porcie 80/443, aplikacja WWW, serwisy WCF, inne Worker Role przetwarza zadania (obliczenia) CGI Role hosting generujący HTML jakoś FastCGI - Java, PHP Azure Storage (Tabele, Kolejki, Bloby) SQL Azure (SQL Server w chmurze) Azure AppFabric Azure AppFabric Service Bus kanał komunikacyjny Azure AppFabric ACS kontrola dostępu
Narzędzia do pisania dla Windows Azure Azure SDK, Azure Tools for Visual Studio Też Azure Tools for Eclipse (Java), PHP Narzędzie do Visual Studio Typ projektu Lokalnie Hostowanie ról, Azure Storage, Deployment Działa: Debugging, Monitorowanie Management API Azure Portal do zarządzania
AZURE W DZIAŁANIU - TWORZENIE ROZWIĄZAŃ - MINIATURY - AZURE I SERWER ON PREMISE
Azure i serwer on-premises
Skalowalność Azure (kolejki) Skalowanie = dodanie więcej 1) Otrzymanie zadania Web Role ASP.NET, WCF, itp. Worker Role main() { } 4) Praca 2) Zadanie do 3) Pobranie kolejki zadania do wykonania Kolejka
KTO MOŻE SKORZYSTAĆ, CENY I OKOLICE
Model sprzedaży Konsumpcja pay as you go Subskrypcja Ale też np. jako oferta dodana do MSDN-a Duże wolumeny ; VL / EA, Chmura kojarzy się z pay as you go Ale inne opcje będą ostatecznie tańsze przy dużym i przewidywalnym obciążeniu Możliwe łączenie modeli Zniżki
Windows Azure Dotyczy: Windows Azure Web role Windows Azure Worker role Azure Tables, Azure Queues, Azure Blob Scenariusze: Transfer z/do strony WWW (Przepustowość) Przechowanie obrazków (Pojemnik) Posiadanie maszyny z wgranym kodem która coś robi. (Obliczenia) $0.12 / godzinę $0.15 GB/miesiąc $0.01/10K poleceń dostępu $0.10 GB Ingress $0.15 GB Egress
Doprecyzowanie: $0.12 = 1x1.6 Ghz, 01.75 GB RAM $0.24 = 2x1.6 Ghz, 03.50 GB RAM $0.48 = 4x1.6 Ghz, 07.00 GB RAM $0.96 = 8x1.6 Ghz, 14.00 GB RAM
Podobnie AppFabric $0.15/100K czynności (komunikatów) Transfer: $0.10 GB Ingress $0.15 GB Egress SQL Azure $9.99/miesiąc (maks 1 GB) $99.99/miesiąc (maks 10 GB) Transfer: $0.10 GB Ingress $0.15 GB Egress
Monitorowanie instancji i restart ról Wszystkie role są ciągle monitorowane Jeżeli rola nie jest zdrowa (zwróci false/nic false/nic nie zwróci) następuje korygowanie (zwykle restart) Automated Systems Management Połączenie Dostępność DB Dostępność pojemników Serwis jest podłączony i widoczny z Web Baza jest podłączona do bramki internetowej Pojemnik jest dostępny z zewnątrz (REST działa) Web Role ma zewnętrzne połączenie i je widać Dostępność monitorowana co 5 minut Operacje na pojemniku są wykonywane prawidłowo >99.95% >99.9% >99.9% Dostępność usług Service Bus ma zewnętrzne połączenie Operacje na komunikatach są wykonywane prawidłowo >99.9%
Dla kogo? Mały klient alternatywa do hostingu ISV własne aplikacje SaaS Sklepy, portale Środowisko testowe/developerskie każdy Tanie, i łatwo mieć duże testy Aplikacje oddziałowe Lepsze SLA niż serwer pod biurkiem Enterprise?...
Enterprise? Wyjazd firmowy Ale w ramach większej firmy (100 000 osób) Rejestracja na spotkanie 48h (2 dni) = 34 osoby / minutę Ale czas pracy to 8h No spotkania z klientem/kawa/lunch, inne 5h w biurze Co daje 10h na zarejestrowanie 100 000 osób 10000 osób na 1h 166 osób na minutę A to DUŻE obciążenie Porównanie: gazeta.pl : 2240,143 odwiedzin na minutę Stary MSN.pl : 224 odwiedzin na minutę Mail przypominający -> wzrost obciążenia. Czyli realnie będzie 5 osób/minutę, a potem 3000 osób / min. Ps. to wszyscy znają: Rozliczenia na koniec miesiąca, billing, raporty kwartalne, inne okazje systemy nie działają wtedy tak szybko jak powinny
Koszty Jest potrzebnych 10 serwerów Web Ale to potrzebne na 2 dni (+ 4 dni na testy i przygotowanie prostego formularza i zebranie wyników) W sumie 144h Kupno serwera? (nawet wirtualnego)? 10 x 189.00$ + SPLA + (płacimy za miesiąc) około 3000$ Koszty setupu, czas oczekiwania lepiej zacząć planowanie wcześniej Azure: 0.12$ * 144h = 17,28$ / serwer; wgranie i start WSZYSTKICH : 10 minut Danych (100000 imion, nazwisk itp.) to około 0,095367431640625 GB Przechowanie kosztuje: 0.15$ (trzeba niestety zapłacić za GB na miesiąc) Przesłanie kosztuje: 0.10$ (wprowadzenie do Azure) i potem 0.15$ pobranie wszystkich zarejestrowanych(płacimy też za GB) W sumie na Azure wydamy: 172,8 + 0,15 + 0,10 + 0,15 = 173,2$ Ps: a da się tak zrobić by np. serwer w Azure działał TYLKO 10h, co wtedy koszty sprowadzi do ok. 14$...
A CO Z SYSTEMAMI ON PREMISES? AZURE APPFABRIC
AppFabric - funkcjonalności Scenariusz: System zaplecza Laptop na lotnisku Sieć w skali Internetu łącząca IP, NAT, Firewall z federacyjną kontrolą dostępu Sieć słucha/wysyła z dowolnego urządzenia dołączonego do Internetu Ujednolicony sposób nazewnictwa i wyszukiwania usług (ATOMPub) Przechodzi przez NAT/FW za pośrednictwem TCP, TCP/Direct i HTTP Web Streams
Podsumowanie Platforma dostosowana do modelu chmury Ale programowana w.net Też SQL Server Trochę opcji, które trzeba poznać Wygodne narzędzia do Visual Studio 2010 Skalowalne Tj. tak samo się zachowa dla 10 i 10000 równoczesnych użytkowników Nie systemy low latency!
PYTANIA? TEŻ MAILEM: TKOPACZ@MICROSOFT.COM