vývojář a (azure) cloud - internet info - dáváme...
TRANSCRIPT
Vývojář a (Azure) cloud
1
Michael JuřekSoftware ArchitectMicrosoft s.r.o.
Agenda
Aplikační vrstva
Databáze
Úložiště
Ostatní služby
2
Ostatní služby
Některé důležité aspekty
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
3
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
Zlatá střední cesta?Čisté IaaS(Amazon)
WindowsAzure
Čisté PaaS(Google)
Flexibilita Vysoká Střední Nízká
Náklady na správu OS
Ano Ne Ne
Izolace aplikací Vysoká Vysoká Nízká
4
Izolace aplikací Vysoká Vysoká Nízká
Symetrie mezi cloud a on-premise
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č
5
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
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ě:
6
Některé aspekty je třeba řešit různě:Logování, diagnostika – různé mechanismy on-premise a cloud
Lokální souborový přístupPouze do deklarovaných složek a bez záruky zachování dat
Veškerá trvalá data nutno ukládat mimo (SQL Azure, Azure Storage)
Cíl:MASIVNÍ ŠKÁLOVATELNOSTŠkáluje „out” – nikoli „up“ –replikováním worker instancí podle potřeby.
Umožňuje škálovat uživatelské a výpočetní aktivity nezávisle.
Instance dvou typů: Web Role & Worker RoleWindows Azure aplikace se mohou skládat zweb role instancí, worker role instancí nebo kombinací obou.
Architektura „velké“ aplikace
7
Každá instance běží ve svém vlastním VM, replikovaném podle potřeby.
WEB ROLE WORKER ROLE
Interaguje s koncovým uživatelem nebo web službou
Příchozí dotazy přes zvolený protokol
Web a worker role
8
nebo web službou
Zpracovává příchozíHTTP/HTTPS dotazy
Vyvinuty s Microsoft anon-Microsoft nástroji:
ASP.NET, WCF, jiné .NET nástroje Java, PHP, atd.
dotazy přes zvolený protokol
Iniciuje své vlastní dotazy na data nebo
úkoly z fronty
Podobné jako "batch job"nebo Windows service.
Konfigurace - detaily
Velikost VM – impl. S = 1 CPU, 1.7 GB, 250 GBM = 2/3.5/500, L = 4/7/1000, XL = 8/14/2000
Connection stringsSpeciální nastavení pro DevStorage
Počet instancí služeb
Verze OS
9
Verze OSImplicitně – poslední verze s automatickým update
Lokální souborový systémDefinuje alokovanou kapacitu z lokálního souborového systému
EndpointsWeb role 1 (HTTP/S), Worker role 5 (HTTP/S, TCP)
Interní / Externí
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*
10
Visual Studiem*
Eclipse*
MMC*
PowerShell*
Nástroje třetích stran*
Alternativní upload do Azure Storage
*nutné instalovat/registrovat admin certifikát
Upgrade vaší aplikace
Dva modely: VIP Swap a In-Place Upgrade
VIP Swap:Používá Staging a Production prostředí
Umožňuje rychlé přepnutí prostředí
11
Produkční: v1 � Staging: v2, po přepnutí Produkční: v2 Staging: v1.
In-Place UpgradeProvádí vystavení upgradu do živé služby
Celá služba nebo jedna role
Manuálně nebo automaticky napříč doménami
Hello, Azure
12
13
14
15
16
17
21
22
23
Agenda
Aplikační vrstva
Databáze
Úložiště
Ostatní služby
24
Ostatní služby
Některé důležité aspekty
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
25
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
Výhody databáze jako služby
Nižší náklady (TCO)Nulové pořizovací náklady – nekupujete hardware ani licencePředvídatelné provozní náklady
Automatická vysoká dostupnostTři servery s aktuální replikou vašich dat
26
Tři servery s aktuální replikou vašich datAutomatická odolnost proti selháníAutomatická aktualizace a údržba (téměřnulový výpadek)Vysoká symetrie s klasickým SQL serverem:
Stejné znalostiStejný kódStejné nástroje
Síťová topologieAplikace
Load Balancer
TDS (tcp:1433)
Aplikace používající standardní knihovny: ODBC, ADO.NET, …
Load balancer se snaží směrovat vždy na stejnou TDS gateway
27
TDS (tcp: 1433)
TDS (tcp: 1433)
Data Node Data Node Data Node Data Node Data NodeData Node
Gateway Gateway Gateway Gateway Gateway Gateway
Škálovatelnost a dostupnost: překlenutí výpadku, replikace, rozkládání zátěže
Databázové repliky
Replika 1
Replika 2
!
28
Replika 2
Replika 3
DB
Replika 4
Model služby
Každý účet vlastní jeden nebo více serverůSpráva pomocí portálu
Subjekt pro účtování
Každý server má jednu nebo více databázíEkvivalent SQL instance, má DNS jméno
master databáze – metadata o ostatních databázích,
ÚčetÚčet
ServerServer
29
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 objektyTabulky, pohledy, indexy, ...
Jednotka účtování
Jednotka izolace a konzistence
ServerServer
DatabázeDatabáze
Správa serveru
Prostřednictvím portáluVytvoření/zrušení serveruVytvoření/zrušení databázeAdministrátorský účetKonfigurace síťových pravidelReportování o provozu a nákladechEditace schématu i dat v tabulce
Master DB
30
Editace schématu i dat v tabulceSpuštění libovolného SQL dotazu
Prostřednictvím T-SQL Např. pomocí SQL Management Studia 2008 R2Správa uživatelských účtů a rolíVytvoření/zrušení databázeKonfigurace firewalluReporty o provozu a nákladechVeškerá další standardní funkčnost SQL serveru
Správa SQL Azure
31
Portál pro správuPřipojení z SQL Management Studia
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:
37
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)
Agenda
Aplikační vrstva
Databáze
Úložiště
Ostatní služby
38
Ostatní služby
Některé důležité aspekty
Ú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
39
Konkurenční nabídky jsou poměrně podobné
Datové možnosti ve Windows Azure
Relační databáze
Strukturované úložiště
Nestrukturované úložiště
Servisní komunikace
NTFS disk
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ázeNemá Foreign Keys, Joins, Aggregation, apod.
Azure Table
Nemá Foreign Keys, Joins, Aggregation, apod.Pouze jeden indexMožnosti transakcí pouze v rámci partice
Známá a jednoduchá programová rozhraní.NET třídy a LINQREST 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
42
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
Komunikace mezi službami pomocí zprávZajišťuje škálovatelnost aplikaceOdděluje Front End (uživatelské rozhraní) od Back End (business logika)Zajistí korektní funkci v exponovaných momentech
Azure Queue
Zajistí korektní funkci v exponovaných momentechNení 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
44
… pomocí Azure MMC konzole
45
46
47
48
49
50
51
52
53
Dvojklik na jménu containeru !!!
54
55
SQL Azure vs. Azure Storage 1/2Charakteristika 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.
Neserveru funkce, triggery apod.
Indexy 1 clustrovaný, až 999 neclustrovaných
Jediný podle primárníchklíčů
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/2Charakteristika 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 TBMax. 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
Asynchronní komunikace pomocí fronty trvalých zpráv -> Azure Queue
Velké soubory (videa, obrázky apod.) s jasným identifikátorem -> Azure BLOB
Praktické vodítko – co použít?
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
59
Ostatní služby
Některé důležité aspekty
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 on-premise aplikací
60
premise 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ší
Agenda
Aplikační vrstva
Databáze
Úložiště
Ostatní služby
61
Ostatní služby
Některé důležité aspekty
Platba za spotřebu
SQL Azure
čas x počet serverů objem dat
počet transakcí
velikost x počet databázíAzure AppFabricpočty připojení
62
velikost x počet databází
počty ověření
objem dat dovnitř+ ven z cloudu
Metriky pro měření spotřebyPočí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
63
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
BezpečnostFYZICKÁ:• 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
KONTINUITA: • 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
64
Logická:• 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
COMPLIANCE & CERTIFIKACE:• 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
65
Aplikace vyžadují relativně malé úpravy a lze je napsat tak, aby běželi v cloudu i na vlastním hardware
Vývojářská soutěž pro WINDOWS AZUREdo 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
66
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
67
© 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.