290 likes | 395 Views
SQL Azure. Wirtualna baza SQL zgodna z SQL Server SQL as a Service. 60 % rozwiązanie MS 40% działanie w praktyce (napisanie prostej aplikacji typu „Hello World ” Kilka słów o podobnych rozwiązaniach. Wybór bazy danych - opcje. Cechy : Pełna kontrola h/w 100% kompatybilności
E N D
SQL Azure Wirtualna baza SQL zgodna z SQL Server SQL as a Service
60% rozwiązanie MS • 40% działanie w praktyce (napisanie prostej aplikacji typu „Hello World” • Kilka słów o podobnych rozwiązaniach
Wybór bazy danych - opcje • Cechy: • Pełna kontrola h/w • 100% kompatybilności • Własne HA/DR/skala • Cechy: • 100% API Dedykowany On-premise SQL Server on-premise Zarządzanie zasobami @ serwerze Bezpieczeństwo @ DB Server/OS • Cechy: • Auto HA, Fault-Tolerance • Bezproblemowe skalowanie • Self-provisioning • Wysoka zgodność Zasoby Hosted Hostowany SQL Server Zarządzanie zasobami @ VM Bezpieczeństwo @ DB Server/OS SQL Azure (RDBMS) Wirtualny serwer DB Zarządzanie zasobami @ LDB Bezpieczeństwo @ LDB Współdzielone Niska Kontrola Wysoka SQL Azure V1 to scenariusz w lewym dolnym rogu!
Typy Blob • Block • Blob składa się z indywidualnych „bloków” • Zoptymalizowany pod steaming • Każdy blok może mieć rozmiar 4MB • Całkowita wielkość Blob może być 200 GB • Strona • Blob jest kolekcją indywidualnych „stron” • Zoptymalizowany dla losowych operacji read/write operations • Strona jest zakresem danych podobnym do bufora • Całkowita wielkość Blob może być 1 TB
Scenariusze dla SQL Azure • Aplikacje departamentowe • Proste aplikacje budowane indywidualnie lub na potrzeby departamentu • Potrzebne proste, samozarządzalne IT • Trochę „poza” klasycznym IT • Klientem może być Access • Lub hostowana lokalnie aplikacja ASP.NET / PHP / … • Aplikacje Web • Skalowanie na życzenie, łatwe instalowanie itp.. • ISV • ISV hostujący oprogramowanie dla klientów • Łatwe wsparcie systemów multitenant (w różnych scenariuszach) • Data Hub • Współdzielenie i agregacja danych pomiędzy warstwami i pomiędzy enterprise • Zcentralizowane miejsce dla danych, skalowalne, synchronizacja z istniejącymi źródłami danych • Ładne połączenie z innymi pojemnikami! (np. BLOB)
Przykładowe topologie SQL Azure dostępne z poza DC (On-premises – ADO.NET / ODBC / …) SQL Azure używane wewnątrz DC (Azure compute – gł. ADO.NET / EF) Aplikacja / przeglądarka Aplikacja / Narzędzia ADO.NET Data Svcs/REST - EF HTTP/S SOAP/REST HTTP/S App Code (ASP.NET) Windows Azure T-SQL (TDS) T-SQL (TDS) SQL Data Services SQL Data Services MS Datacenter MS Datacenter Kod daleko Kod blisko
Model provisioningu • Każda subskrypcja ma zero lub więcej serwerów • W ramach Azure • Określa element opłat • Każdy serwer ma • Nazwę (DNS) i domenę autoryzacji • Bazę master • Jedną lub więcej baz użytkowych • Każda baza ma standardowe obiekty SQL • Użytkowników, tabele, widoki itp • Jednostka spójności (transakcji) Subskrypcja Server Baza
Architektura • Współdzielona infrastruktura na poziomie SQL • Wymaga routingu, odpowiedniego bezpieczeństwa i izolacji • Technologia „skalowalnego HA” zapewnia odpowiednie narzędzia do replikacji i failover • Połączony z Resource Governor • Provisioning, pomiar użycia i infrastruktura bilingowa Machine 5 Machine 4 Machine 6 SQL Instance SQL Instance SQL Instance SQL DB SQL DB SQL DB UserDB1 UserDB1 UserDB1 UserDB2 UserDB2 UserDB2 UserDB3 UserDB3 UserDB3 UserDB4 UserDB4 UserDB4 SDS Provisioning (bazy, konta, role, …, pomiar, i billing Scalability and Availability: Fabric, Failover, Replication, and Load balancing Scalability and Availability: Fabric, Failover, Replication, and Load balancing
Repliki baz danych ! Pojedyncza DB Wiele replik Replica 1 Single Primary Replica 2 DB Replica 3 Replica 4
SQL AzureWdrożenie skryptu SkryptDB SQL Azure TDS Gateway
SQL AzureDostęp do bazy Change Connection String Aplikacja SQL Azure TDS Gateway
Model programowania • Mały zestaw danych (<50 GB) • Wykorzystać pojedynczą bazę • (jak w przypadku on premise SQL Server) • Duże zbiory danych i/lub olbrzymia przepustowość • Database Sharding (będzie później) • Partycjonować pomiędzy wiele baz danych • Wykorzystać PLINQ / TPL • Kod aplikacji musi to uwzględniać
SQL Azure • SQL „Express” w chmurze • Limit 1GB / 10GB / 50G / …. • Bo: sensowny czas replikacji; „tani” hardware • Partycjonowanie poziome (klient 100TB) • Dzięki partycjonowaniu kwerenda z 100 minut zeszła do 10 sekund (patrz niżej) • Dokładniej – kwerenda + masywny merge • ADO.NET – działa • Enterprise Library Data Access – działa • Entity Framework – działa • Zapytanie/połączenie ma 5 minut nim zostanie ubite • Po 30 minutach połączenie jest zamykane • Narzędzia: OSQL, SSMS (SQL 2008 R2), Access • Migration Kit
Database Editions • Dwa SKU dla SQL Azure: Web & Business • Web Edition: 1 GB @ $9.99/miesiąc | 5 GB @ $49.95/miesiąc • Business Edition: do 50 GB @ $99.99/10 GB/miesiąc10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @ $499.95 • Należy określić Web lub Business Edition • Web: EDITION = Web • Business: EDITION = Business • Należy określić MAXSIZE • Web: MAXSIZE = 1GB| 5GB • Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB • Jest to rozmiar poza który baza NIE UROŚNIE • Opłata jest za realne użycie (uśredniane dziennie) • CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB); • Rośnie dowolnie, do 50 GB • CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB); • CREATE DATABASE bar1 (EDITION='web', MAXSIZE=5GB); • CREATE DATABASE bar2 (EDITION='web'); -- Domyślnie 1GB Business Edition Do 50 GB 10 GB przyrostu Web Edition Do 5 GB Albo 1 GB albo 5 GB
Skąd ograniczenie? • SLA • DataCenter ma 5 minut na podniesienie nowej instancji. • Obecne algorytmy dają rade podnieść bazę do 50GB • Stąd limit
SQL Azure – topologia Aplikacja używa normalnych bibliotek : ODBC, ADO.Net, …Ale też Microsoft Access działa Aplikacje TDS (tcp:1433) Load balancer przesyła sesję do warstwy TDS Load Balancer TDS (tcp: 1433) Gateway Gateway Gateway Gateway Gateway Gateway Data Node Data Node Data Node Data Node Data Node Data Node TDS (tcp: 1433) Skalowalność i dostępność : Fabric, Failover, Replikacjai Load balancing
Kompatybilność (skrót) Wspierane Nie wspierane Distributed Transactions Distributed Query CLR Service Broker Physical server or catalog DDL and views • Tables, indexes and views • Stored Procedures • Triggers • Constraints • Table variables, session temp tables (#t) • Spatial • …
T-SQL – elementy które działają • Stałe • Więzy • Kursory • Zarzadzanie indeksami • Lokalne tymczasowe tabele • Procedury składowane • Zarządzanie statystykami • Transakcje • Triggery (ale po co…) • Tabele, join, zmienne tabelaryczne • DDL: • Create/drop databases • Create/alter/drop tables • Create/alter/drop users • Create/alter/drop logins • … • Funkcje użytkownika • Nie CLR! • Widoki • Synonimy
Co nie działa… • Common Language Runtime (CLR) • Zmiany lokalizacji plików i zarządzanie FileGroup • Database mirroring • Rozproszone kwerendy • Rozproszone transakcje • Globalne tabele tymczasowe • W SP - można • Typy Spatial i indeksy • Zmiany opcji w SQL Server • SQL Server Service Broker • Tabele systemowe • TraceFlags • Resource Governor • BACKUP / RESTORE • Full TextSearch • Service Broker • BULK INSERT • Ale BCP z klienta działa! • CDC • CHANGETABLE (CT) • Indeksy XML • DBCC i sprawdzanie spójności • FILESTREAM • KILL • OPENQUERY / OPENROWSET • USE do zmiany kontekstu • SQL Agent • Ale mamy Worker Role
Model połączenia • Dowolne API • ADO.NET, ODBC, PHP • Biblioteki klienckie preinstalowane w rolach Azure • Wsparcie kontrolek ASP.NET • Wsparcie designera EF • Klient podłącza się BEZPOŚREDNIO do bazy • Nie ma USE – patrz SQL Azure - topologia
Logiczna a fizyczna administracja • SQL Azure pozwala skupić się na logicznej administracji • Schematy • Optymalizacja kwerend • Bezpieczeństwo • Usługa zajmuje się elementami fizycznymi • Lokalizacja plików • Replikacje, HA • Przeźroczysty failover • LoadBalancing
Model bezpieczeństwa • Standardowy model SQL • Login • Użytkownik • Rola • Ograniczone do autoryzacji SQL • Username + password !!!! • Przyszłość, AD, Windows Live ID itp. • Technicznie: Service Bus + ACS z kodem który pracuje z SQL Model bezpieczeństwa jest w 100% zgodny z on-premise SQL