4. SQL Azure – Database As a Service As a Service DB
5. Преимущества SQL Azure Реляционный движок на базе SQL Server Отказоустойчивость (для каждой базы хранится 2 реплики) Масштабируемость Знакомые инструменты управления Возможность сосредоточиться на разработке
6. Стоимость решения Web Edition – размер базы до 1Гб – $9.99 Business Edition размер базы до 10 Гб - $99.9 Входящий трафик - $0.10 за Гб Исходящий трафик - $0.15 за Гб Трафик между SQL Azure Database и приложением, находящимся в Windows Azure не тарифицируется
7. TicketDirectо SQL Azure TicketDirect is an alliance of more than 90 independent venues across New Zealand and Australia that have come together to give customers and promoters a national event ticketing service. It has more than 80 venues in New Zealand and Australia that sell various tickets online to major concerts and sporting events. TicketDirect considered various approaches to lowering the cost of its platform, including SQL Azure and other cloud platforms, but at first decided that SQL Azure, which at the time supported only 10 GB per database, was not sufficient for its needs. TicketDirect wanted a solution that could scale out to support many nodes and deliver 99.99% uptime, with no limit on database size, even though it wanted to store only a few hundred Gigabytes. In addition, it wanted to further limit costs by ensuring that it did not have to manage or support the database platform. TicketDirectconsidered Amazon EC2 and other cloud platforms but ultimately chose SQL Azure and Windows Azure because it offered the ability to scale out in the cloud by sharding data across as many databases, overcoming the 10 GB limit, and also because it was the most cost-effective platform. Although using SQL Azure’s approach to sharding did require some programming skills and extra
12. SQL Azure Network Topology Applications use standard SQL client libraries: ODBC, ADO.Net, PHP, … Application Internet Azure Cloud TDS (tcp) Security Boundary Load balancer forwards ‘sticky’ sessions to TDS protocol tier LB TDS (tcp) Gateway Gateway Gateway Gateway Gateway Gateway Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to CloudDB TDS (tcp) SQL SQL SQL SQL SQL SQL Scalability and Availability: Fabric, Failover, Replication, and Load balancing
13. SQL Azure Database provisioning TDS Gateway 1 Front-end Node Protocol Parser TDS Session 2 3 Gateway Logic Master Node Master Cluster Master Node Components 4 7 5 6 8 Backend Node 1 Backend Node 2 Backend Node 3 SQL Instance SQL Instance SQL Instance SQL DB SQL DB SQL DB Scalability and Availability: Fabric, Failover, Replication, and Load balancing Scalability and Availability: Fabric, Failover, Replication, and Load balancing
14. Основные изменения 2010 Поддержка пространственных типов данных Geography и Geometry Поддержка типа данных HierarchyId Database copy CREATE DATABASE destination_database_nameAS COPY OF [source_server_name.]source_database_name Новый портал (+ Проект “Houston”) … Анонсирована концепция Federations
17. Масштабирование Scale up Купить мощный сервер Мощные сервера дорогие! Загрузить сервер по полной Что делать если нагрузка меняется? Резервы для пиковой нагрузки - нерентабельно! Scale-out Распределить данные и нагрузку между несколькими серверами Маленькие сервера дешёвые! Scale linearly 800 маленьких серверов работают олчень быстро Способность противостоять пиковым нагрузкам Распределение нагрузки внутри датацентра
19. SQL Azure Federations: Основные понятия Root Federation Root База данных, содержащая информацию о федерации Federation Представляет данные с шардов Federation Key Значение, которое определяет маршрутизацию данных Federation Member (aka Shard) Физическое хранилище для atomic unit Atomic Unit Все строки с одинаковым значением federation key value: всегда вместе! Federation “CustData” (Federation Key: CustID) Member: [min, 100] AUPK=5 AUPK=25 AUPK=35 Member: [100, 488] AUPK=105 AUPK=235 AUPK=365 Member: [488, max] AUPK=555 AUPK=2545 AUPK=3565
20. Создание Federation SalesDB Создание root базы данных CREATE DATABASE SalesDB Содержит метаданные секций Централизованное хранилище данных Создание federation в root CREATE FEDERATION Orders_Fed (RANGE BIGINT) Указание имени и типа ключа Создание первого member, покрывающего все даные Federation “Orders_Fed”(Federation Key: CustID) Member: [min, max]
21. Создание схемы SalesDB Products Federated tables CREATE TABLE orders (…) FEDERATE ON (customerId) Значение federation key будет определятьто где будут находиться данные Reference tables CREATE TABLE zipcodes (…) Отсутствие FEDERATE ON указывает на reference table Centralized tables Создаются в root database Federation “Orders_Fed”(Federation Key: CustID) Member: [min, max) orders zipcode
22. Разделение и слияние SalesDB Splitting a member Когда слишком большие или высоконагруженные ALTER FEDERATION Orders_Fed SPLIT (100) Создаёт 2 новых члена Online! Merging members Когда слишком малькие ALTER FEDERATION Orders_Fed MERGE (200) Создаёт новый член, удаляет старые Products Federation “Orders_Fed” Member: [min, max) orders zipcode Member: [min, 100) orders zipcode Member: [100, max) orders zipcode
23. Соединение и операции Connect to atomic unit USE FEDERATION Orders_Fed (56) WITH FILTERING=ON Только данные со значением federation key 56 видимы + reference data Safe: atomic unit никогда не может быть разделён Connect to entire federation member USE FEDERATION Orders_Fed (56) WITH FILTERING=OFF Все данные члена федерации видимы Dangerous: federation member может быть разделён App Member: [min, 100) AUPK=5 AUPK=25 AUPK=56 zipcode
24. Sharding in SQL Azure: Future Multi Column Federation Keys Federate on enterprise_customer_id+account_id Schema Management Поддержка управления схемами членов федерации. Fan-out Queries Единичный запрос, который получает данные с нескольких членов федерации. Auto Repartitioning Автоматическое разбиение базы данных в зависимости от определённого критерия (время отклика, размер базы данных и т.п.)
27. Ключевые особенности Масштабируемость Сервис масштабируется по мере роста требований к ресурсам No-Code конфигурация синхронизации Легко определить данные для синхронизации Синхронизация по расписанию Гибкий выбор графика синхронизиции
28. Ключевые особенности Обработка конфликтов Обработка ситуаций, когда одни и те же данные изменяются в разных базах данных Логирование и мониторинг Инструменты для отслеживания процесса синхронизации и потенциальных проблем
29. Roadmap продукта Лето 2011 – CTP3 UI интегрированный с порталом SQL Azure Выбор подмножества столбцов или строк для синхронизации Изменения схемы баз, без пересинхронизации Политики разрешения конфликтов Улучшение usability 2011 г. – Релиз SQL Azure Data Sync
32. SQL Azure Reporting - Факты Основаны на SQL Server Reporting Services Поддерживается большая часть элементов SQL Server 2008 R2Reporting Services Разработка при помощи Business Intelligence Studio Отчёт генерируется в облаке Всегда, независимо от того размещаете вы его на репорт сервере или встраиваете в своё приложение SQL Azure Reporting является частью платформы Windows Azure Использование портала Масштабируемость
33. SQL Azure Reporting - Факты Data Source - SQL Azure Источником данных для отчёта может выступать только база данных SQL Azure Отчёты в том же формате Отчёты работающие на SQL Server Reporting Services могут быть легко портированы в облако Ничего не нужно дополнительно устанавливать Отчёты доступны из любого места Не нужно разворачивать сайт с репорт сервером
36. Для разработчиков http://www.microsoft.com/en-us/sqlazure/database.aspx http://www.microsoft.com/windowsazure/free-trial/
37. Полезные ссылки SQL Azure product site Блог команды разработчиков SQL Azure Forrester: SQL Azure Raises The Bar On Cloud Databases Free e-book: Developing Applications for the Cloud on the Microsoft Windows Azure™ Platform SQL Azure Videos Video: Building Scale-Out Database Solutions on SQL Azure Whitepaper: Inside SQL Azure Whitepaper: Gaining Performance Insight into SQL Azure Whitepaper: SQL Azure Reporting Overview Whitepaper: SQL Azure Data Sync - How to Get Started Whitepaper: SQL Azure Data Sync - Best Practices Whitepaper: Sharding with SQL Azure
38. ДенисРезник Руководитель департамента веб-разработки, DCT Trainer, Microsoft Innovation Center Microsoft MVP (SQL Server) Microsoft Certified Trainer DenisReznik@live.ru http://reznik.uneta.com.ua/ http://twitter.com/DenisReznik Вопросы
39. ДенисРезник Руководитель департамента веб-разработки, DCT Trainer, Microsoft Innovation Center Microsoft MVP (SQL Server) Microsoft Certified Trainer DenisReznik@live.ru http://reznik.uneta.com.ua/ http://twitter.com/DenisReznik