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 IaaSa PaaS 3
Zlatá střední cesta? Čisté IaaS (Amazon) Windows Azure Čisté PaaS (Google) Flexibilita Vysoká Střední Nízká Nákladyna správu OS Ano Ne Ne Izolace aplikací Vysoká Vysoká Nízká Symetrie mezi clouda onpremise Jednoduchý upgrade Ano Ano Ne Ne Ano Ano 4
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 cloudui 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álovatuž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 workerrole WEB ROLE WORKER ROLE Interaguje s koncovým uživatelem nebo web službou Zpracovává příchozí HTTP/HTTPS dotazy Vyvinuty s Microsoft a non-microsoft nástroji: ASP.NET, WCF, jiné.net nástroje Java, PHP, atd. Příchozí dotazy přes zvolený protokol Iniciuje své vlastní dotazy na data nebo úkoly z fronty Podobné jako "batch job" nebo Windows service. 8
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), Workerrole 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 10 *nutné instalovat/registrovat admin certifikát
Upgrade vaší aplikace Dva modely: VIP Swap ain- Place 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
12 Hello, Azure
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 26 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
Síťová topologie Aplikace Aplikace používající standardní knihovny: ODBC, ADO.NET, TDS (tcp:1433) Load Balancer Load balancer se snaží směrovat vždy na stejnou TDS gateway TDS (tcp: 1433) Gateway Gateway Gateway Gateway Gateway Gateway TDS (tcp: 1433) Data Node Data Node Data Node Data Node Data Node Data Node 27 Škálovatelnost a dostupnost: překlenutí výpadku, replikace, rozkládání zátěže
Databázové repliky! Replika 1 DB Replika 2 Replika 3 Replika 4 28
Model služby Účet Server Databáze 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, uživatelské účty apod. Jednotka autentizace Jednotka umístění (různá datová centra v oblasti) Každá databáze má standardní SQL objekty Tabulky, pohledy, indexy,... Jednotka účtování Jednotka izolace a konzistence 29
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 Master DB Spuštění libovolného SQL dotazu 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í 37 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)
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 WindowsAzure 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álujena 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řídya 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ý blobse 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ý blobse 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
54 Dvojklik na jménu containeru!!!
55
SQL Azure vs. Azure Storage1/2 Charakteristika SQL Azure Azure Storage Přístup k datům ADO.NET/ODBC + T-SQL REST, LINQ Velikost dotazu Zpracovánína straně serveru Neomezenávelikost, zpracování max. 5 minut Uložené procedury,relace, funkce, triggery apod. Indexy 1 clustrovaný,až 999 neclustrovaných Transakce Izolace uživatelů Nad jedinou databází, max. 5 minut Celá škálamožností nabízených databází Maximálně 1000 entita 5 s, stránkování výsledku Ne Jediný podle primárních klíčů Pouze nad daty ve stejném oddílu, max.100 operací a 4 MB dat Optimistický přístup
SQL Azure vs. Azure Storage 2/2 Charakteristika SQL Azure Azure Storage Škálovatelnost Omezenana jeden virtuální server, případně možno dělit zátěž již v aplikaci Max. kapacita 50 GB 100 TB Prakticky neomezená Max. velikost1 položky 2GB 1 TB Redundancea vysoká dostupnost Platba za uložení Platba zapoužívání Ano 9.99 USD/GB/měsíc (podle naalokované velikosti) GB přenesenédo/z Azure serverovny Ano 0.15 USD/GB/měsíc (podleskutečné spotřeby) 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šechnyostatní 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 on- premise aplikací Access Control bezpečnost pomocí SAML známek, integrace s ActiveDirectory, 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 čas x počet serverů objem dat 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 Metriky pro měření spotřeby Počítají se podle spotřeby a platí na měsíční bázi 62
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 FYZICKÁ: Microsoft datacentras 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 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: Microsoftje 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. 64
Závěrem PaaS platformas 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 cloudui 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 WWPartner 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
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.