Vývojář a (Azure) cloud Michael Juřek Software Architect Microsoft s.r.o.
1
Agenda Aplikační vrstva Databáze Úložiště Ostatní služby Některé důležité aspekty
2
Aplikační vrstva pohledem vývojáře Azure nabízí hostovaný operační systém Windows Server 2008 a 2008 R2 Prakticky cokoliv, co běží na Windows Serveru lze spustit na Windows Azure: ASP.NET, ASP, PHP, Java, Ruby, …, nativní kód Libovolný web server běžící na Windows (IIS předinstalován ve web roli)
Něco mezi IaaS a PaaS
3
Zlatá střední cesta?
4
Čisté IaaS (Amazon)
Windows Azure
Čisté PaaS (Google)
Flexibilita
Vysoká
Střední
Nízká
Náklady na správu OS
Ano
Ne
Ne
Izolace aplikací
Vysoká
Vysoká
Nízká
Symetrie mezi cloud a onpremise
Ano
Ano
Ne
Jednoduchý upgrade
Ne
Ano
Ano
Rozdělení kompetencí My pro vás připravíme operační systém Vy dodáte balíček se „zaZIPovanou“ aplikací My balíček nasadíme do OS a spustíme aplikaci My aktualizujeme a spravujeme virtuální počítač Vaše aplikace nemá administrativní práva k OS Pokud chcete, tak může mít, ale není to z hlediska bezpečnosti doporučená praxe
Vy můžete OS modifikovat, ale na vlastní riziko My můžeme kdykoliv vytvořit nový virtuál 5
Rozdíly mezi během lokálně a v cloudu Téměř stejná aplikace běží v cloudu i na vašem serveru Velká výhoda – flexibilita do budoucna
Některé aspekty je třeba řešit různě: Logování, diagnostika – různé mechanismy onpremise a cloud Lokální souborový přístup Pouze do deklarovaných složek a bez záruky zachování dat Veškerá trvalá data nutno ukládat mimo (SQL Azure, Azure Storage) 6
Architektura „velké“ aplikace Cíl: MASIVNÍ ŠKÁLOVATELNOST Škáluje „out” – nikoli „up“ – replikováním worker instancí podle potřeby.
Instance dvou typů: Web Role & Worker Role Windows Azure aplikace se mohou skládat z web role instancí, worker role instancí nebo kombinací obou.
Umožňuje škálovat uživatelské a výpočetní aktivity nezávisle.
Každá instance běží ve svém vlastním VM, replikovaném podle potřeby.
7
Web a worker role
WEB ROLE
WORKER ROLE
Interaguje s koncovým uživatelem nebo web službou
Příchozí dotazy přes zvolený protokol
Zpracovává příchozí HTTP/HTTPS dotazy
Iniciuje své vlastní dotazy na data nebo úkoly z fronty
Vyvinuty s Microsoft a non-Microsoft nástroji: ASP.NET, WCF, jiné .NET nástroje Java, PHP, atd.
8
Podobné jako "batch job" nebo Windows service.
Konfigurace - detaily Velikost VM – impl. S = 1 CPU, 1.7 GB, 250 GB M = 2/3.5/500, L = 4/7/1000, XL = 8/14/2000
Connection strings Speciální nastavení pro DevStorage
Počet instancí služeb Verze OS Implicitně – poslední verze s automatickým update
Lokální souborový systém Definuje alokovanou kapacitu z lokálního souborového systému
Endpoints Web role 1 (HTTP/S), Worker role 5 (HTTP/S, TCP) Interní / Externí
9
Nasazení aplikace Aplikace přeložena do balíčku (*.cspkg) + konfigurace (*.cscfg) Vytvoření ve VS, Eclipse, z příkazové řádky (cspack) Upload přímo do role některým z nástrojů Web provisioning portál – windows.azure.com Visual Studiem* Eclipse* MMC* PowerShell* Nástroje třetích stran*
Alternativní upload do Azure Storage *nutné instalovat/registrovat admin certifikát 10
Upgrade vaší aplikace Dva modely: VIP Swap a InPlace Upgrade VIP Swap: Používá Staging a Production prostředí Umožňuje rychlé přepnutí prostředí Produkční: v1 Staging: v2, po přepnutí Produkční: v2 Staging: v1.
In-Place Upgrade Provádí vystavení upgradu do živé služby Celá služba nebo jedna role Manuálně nebo automaticky napříč doménami 11
Hello, Azure
12
13
14
15
16
17
21
22
23
Agenda Aplikační vrstva Databáze Úložiště Ostatní služby Některé důležité aspekty
24
Databáze pohledem vývojáře Bez relační databáze se většina aplikací neobejde, „No SQL DB“ ji nenahradí „Jiný připojovací řetězec k databázi“ Ve většině aspektů nerozlišitelná od klasické relační databáze
Ale pozor na rozdíly: Ne všechny schopnosti klasické databáze jsou podporovány Server není jenom pro vás, proto nelze využívat funkce, které by byly rizikem pro bezpečnost, výkonnost, stabilitu celého serveru 25
Výhody databáze jako služby Nižší náklady (TCO) Nulové pořizovací náklady – nekupujete hardware ani licence Předvídatelné provozní náklady
Automatická vysoká dostupnost Tři servery s aktuální replikou vašich dat
Automatická odolnost proti selhání Automatická aktualizace a údržba (téměř nulový výpadek) Vysoká symetrie s klasickým SQL serverem: Stejné znalosti Stejný kód Stejné nástroje 26
Síťová topologie Aplikace
Aplikace používající standardní knihovny: ODBC, ADO.NET, …
Load Balancer
Load balancer se snaží směrovat vždy na stejnou TDS gateway
TDS (tcp:1433)
TDS (tcp: 1433)
Gateway
Gateway
Gateway
Gateway
Gateway
Gateway
TDS (tcp: 1433)
Data Node
Data Node
Data Node
Data Node
Data Node
Data Node
Škálovatelnost a dostupnost: překlenutí výpadku, replikace, rozkládání zátěže 27
Databázové repliky
!
Replika 1
DB
Replika 2
Replika 3
Replika 4 28
Model služby Každý účet vlastní jeden nebo více serverů Účet
Správa pomocí portálu Subjekt pro účtování
Každý server má jednu nebo více databází Server
Ekvivalent SQL instance, má DNS jméno master databáze – metadata o ostatních databázích, uživatelské účty apod. Jednotka autentizace Jednotka umístění (různá datová centra v oblasti)
Každá databáze má standardní SQL objekty Databáze
29
Tabulky, pohledy, indexy, ... Jednotka účtování Jednotka izolace a konzistence
Správa serveru Prostřednictvím portálu Vytvoření/zrušení serveru Vytvoření/zrušení databáze Administrátorský účet Konfigurace síťových pravidel Reportování o provozu a nákladech Editace schématu i dat v tabulce Spuštění libovolného SQL dotazu
Master DB
Prostřednictvím T-SQL Např. pomocí SQL Management Studia 2008 R2 Správa uživatelských účtů a rolí Vytvoření/zrušení databáze Konfigurace firewallu Reporty o provozu a nákladech Veškerá další standardní funkčnost SQL serveru 30
Správa SQL Azure
Portál pro správu Připojení z SQL Management Studia
31
32
33
34
35
36
Pozor na omezení Nelze překročit hranice jedné databáze: Příkaz USE Distribuované transakce Distribuované dotazy
Nelze ovlivnit fyzické atributy databáze: Umístění souborů, mirroring, obnova, …
Chybí funkce, které nejde dobře izolovat od ostatních databází: Fulltext v databázi Nasazení vlastního kódu do databáze A řada dalších (zdokumentováno) 37
Agenda Aplikační vrstva Databáze Úložiště Ostatní služby Některé důležité aspekty
38
Úložiště pohledem vývojáře Náhrada souborového systému v cloudu HTTP/REST přístup Knihovny pro .NET, Javu, PHP zapouzdřují REST protokol objektovým modelem Konkurenční nabídky jsou poměrně podobné
39
Datové možnosti ve Windows Azure Relační databáze
Strukturované úložiště
Nestrukturované úložiště
NTFS disk
Servisní komunikace
Azure Table Poskytuje strukturované úložiště Automaticky škáluje na tisíce serverů podle nárůstu provozu (použitím partition klíče)
Není relační databáze Nemá Foreign Keys, Joins, Aggregation, apod. Pouze jeden index Možnosti transakcí pouze v rámci partice
Známá a jednoduchá programová rozhraní .NET třídy a LINQ REST na libovolné platformě a v jazyce
Azure Blob Úložiště rozsáhlých souborů (mapové podklady, média, obrázky, apod.) společně s jejich metadaty Block Blob Vytvořen pro streamovací scénáře Každý blob se sestává ze sekvence bloků [až do 4MB na blok] Velikostní limit 200GB na blob Page Blob Vytvořen pro náhodné read/write scénáře na úrovni stránek Každý blob se skládá z pole stránek Velikostní limit 1TB na blob
42
Azure Queue Komunikace mezi službami pomocí zpráv Zajišťuje škálovatelnost aplikace Odděluje Front End (uživatelské rozhraní) od Back End (business logika) Zajistí korektní funkci v exponovaných momentech
Není vhodné pro dlouhodobé ukládání dat nebo objemná data Zprávy mohou být do 8KB s životností max. 7 dní
Důležité si uvědomit Zprávy jsou zpracovávány v libovolném pořadí Zpráva může být zpracována vícekrát
Azure BLOB
… pomocí Azure MMC konzole
44
45
46
47
48
49
50
51
52
53
Dvojklik na jménu containeru !!!
54
55
SQL Azure vs. Azure Storage 1/2 Charakteristika
SQL Azure
Azure Storage
Přístup k datům
ADO.NET/ODBC + T-SQL
REST, LINQ
„Velikost“ dotazu
Neomezená velikost, zpracování max. 5 minut
Maximálně 1000 entit a 5 s, stránkování výsledku
Zpracování na straně serveru
Uložené procedury, relace, funkce, triggery apod.
Ne
Indexy
1 clustrovaný, až 999 neclustrovaných
Jediný podle primárních klíčů
Transakce
Nad jedinou databází, max. 5 minut
Pouze nad daty ve stejném oddílu, max. 100 operací a 4 MB dat
Izolace uživatelů
Celá škála možností nabízených databází
Optimistický přístup
SQL Azure vs. Azure Storage 2/2 Charakteristika
SQL Azure
Azure Storage
Škálovatelnost
Omezena na jeden virtuální server, případně možno dělit zátěž již v aplikaci
Prakticky neomezená
Max. kapacita
50 GB
100 TB
Max. velikost 1 položky
2 GB
1 TB
Redundance a vysoká dostupnost
Ano
Ano
Platba za uložení
9.99 USD/GB/měsíc (podle naalokované velikosti)
0.15 USD/GB/měsíc (podle skutečné spotřeby)
Platba za používání
GB přenesené do/z Azure serverovny
GB přenesené do/z Azure serverovny + transakce nad daty
Praktické vodítko – co použít? Asynchronní komunikace pomocí fronty trvalých zpráv -> Azure Queue Velké soubory (videa, obrázky apod.) s jasným identifikátorem -> Azure BLOB Relační data: Mimořádná velikost a zátěž -> Azure Table Všechny ostatní případy -> SQL Azure, nerelační úložištím chybí kritické schopnosti pro běžné aplikace
Agenda Aplikační vrstva Databáze Úložiště Ostatní služby Některé důležité aspekty
59
Další služby platformy Azure Nejsou typickou součástí každé aplikace Jsou nezbytné v některých scénářích Z časových důvodů pouze výčet: Service Bus – bezpečné propojení cloud a onpremise aplikací Access Control – bezpečnost pomocí SAML známek, integrace s Active Directory, Live ID, Google ID, Facebook ID Cache – distribuovaná paměťová cache Připravují se i další 60
Agenda Aplikační vrstva Databáze Úložiště Ostatní služby Některé důležité aspekty
61
Platba za spotřebu objem dat
čas x počet serverů
počet transakcí
počty připojení
Azure AppFabric
SQL Azure
velikost x počet databází
počty ověření
objem dat dovnitř + ven z cloudu
62
Metriky pro měření spotřeby Počítají se podle spotřeby a platí na měsíční bázi
Platba za spotřebu Zcela jiný model, než na jaký jsou vývojáři zvyklí Přestože za svůj mobil platí podle spotřeby a nevadí jim to
Pozitivní i negativní důsledky: Chyba je drahá (nechat něco běžet je jako nezavěsit telefon) Experimentování je levné – prostředí si lze pronajmout krátkodobě – nedocenitelné při nasazování nové verze
63
Bezpečnost
64
FYZICKÁ:
KONTINUITA:
• Microsoft datacentra s nejnovějšími bezpečnostními procesy • Redundantní napájení od oddělených poskytovatelů, baterií a záložních diesel agregátů, klimatizace a ochrana proti požáru
• Datová centra v různých geo-lokacích • Uživatelé si mohou vybrat místo hostingu, jedno místo nebo geo-distribuované • Úložiště je vícekrát replikováno • Fabric je navržen pro zálohování a obnovení z checkpoints
Logická:
COMPLIANCE & CERTIFIKACE:
• Kódování a autentikace úložiště • Po drátu přes zabezpečený HTTPS • Windows Azure běží na modifikovaném Windows 2008 Server, optimalizovaném pro cloud přístup bez admin přístupu k hostům nebo aplikacím • Aplikace nebo uživatelé neupdatují OS
• Microsoft je zavázán k splnění všech právních předpisů. • Průmyslové certifikace jsou základem. • Cílem je dosažení certifikací a standardů jako SAS70 a dalšími. • Uživatelé jsou plně odpovědni za bezpečnost a standardy svých služeb a aplikací - Windows Azure je platformou.
Závěrem PaaS – platform as a service Šetří vám starosti s infrastrukturou Umožňuje provozovat aplikace alternativním způsobem s jinou strukturou nákladů Aplikace vyžadují relativně malé úpravy a lze je napsat tak, aby běželi v cloudu i na vlastním hardware
65
Vývojářská soutěž pro WINDOWS AZURE do konce dubna 2011
-
25 000 Kč na marketing logo a výrazné zviditelnění na trhu pro celkového vítěze cesta a pobyt na WW Partner Conference v LA
Dosavadně vybraní výherci/aplikace: GETMORE, s.r.o. Implementace systému pro obchodníky spol. AFD nad Windows Azure The KITE, s.r.o. The KITE Homeport System - systém pro půjčování kol A&&L soft, s. r. o. eCobra - autentizační server Více na http://www.microsoft.com/cze/azure-contest/fame.aspx
66
© 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.
67