Sql azure и все, все, все...


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Sql azure и все, все, все...

  1. 1. SQL Azure ивсе, все, все...<br />Денис Резник<br />Digital Cloud Technologies<br />http://reznik.uneta.com.ua | http://twitter.com/DenisReznik<br />
  2. 2. Сегодня мы поговорим о…<br />SQL Azure<br />SQL Azure DataSync<br />SQL Azure Federations<br />SQL Azure Reporting<br />
  3. 3. SQL Azure<br />
  4. 4. SQL Azure – Database As a Service<br />As a Service<br />DB<br />
  5. 5. Преимущества SQL Azure<br />Реляционный движок на базе SQL Server<br />Отказоустойчивость (для каждой базы хранится 2 реплики)<br />Масштабируемость<br />Знакомые инструменты управления<br />Возможность сосредоточиться на разработке<br />
  6. 6. Стоимость решения<br />Web Edition – размер базы до 1Гб – $9.99<br />Business Edition размер базы до 10 Гб - $99.9<br />Входящий трафик - $0.10 за Гб<br />Исходящий трафик - $0.15 за Гб<br />Трафик между SQL Azure Database и приложением, находящимся в Windows Azure не тарифицируется<br />
  7. 7. TicketDirectо SQL Azure<br />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. <br />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. <br />Although using SQL Azure’s approach to sharding did require some programming skills and extra<br />
  8. 8. Kelly Blue Book о SQL Azure<br />Kelley Blue Book (KBB) is a leading provider of new and used car information. Since 1926, it has provided vehicle buyers and sellers with the information they need to accomplish their goals with confidence. Today, kbb.com has more than 16 million unique visits each month. <br />SQL Azure<br /><ul><li>Offers a scalable platform. With less than 5 GB of data, growing by about 500 MB per year, KBB’s workload was its key concern. With more than 16 million unique visits per month, a number that is likely to grow even higher in the coming years, KBB found that SQL Azure’s ability to dynamically grow to support peak loads was a key decision criterion.
  9. 9. Improved application availability. SQL Azure offered KBB a platform for improving the availability of its most critical application. As Mr. Lapin pointed out, “Instead of paying for availability via a second data center, we chose to go to with Azure platform. It was not only a cost-effective strategy but also made our life simpler.”</li></li></ul><li>XEROX о SQL Azure<br />MSDN: What exactly have you created with SQL Azure?<br />Shustef: We've created a service called Xerox Cloud Print that allows mobile workers to print to any available public printer from their smartphones, iPads, and other mobile devices.<br />MSDN: Why is SQL Azure a good fit for this application?<br />Shustef: SQLAzure provides multitenancy, dynamic scalability, and cost effectiveness. We can securely  stack data from multiple customers in a single SQL Azure instance, which makes it very cost effective. Also, our development staff is Microsoft trained. We used Microsoft SQL Server 2008 for the predecessor to Xerox Cloud Print, a private-cloud version of the service that enables phone-based printing from inside a corporate firewall. We wanted to reuse that SQL Server development investment, and SQL Azure provided the most economical way to do so.<br />Eugene Shustef, Chief Engineer, Global Document Outsourcing, Xerox<br />
  10. 10. Case Studies<br />http://www.microsoft.com/windowsazure/evidence/<br />
  11. 11. Составные части<br />
  12. 12. SQL Azure Network Topology<br />Applications use standard SQL client libraries: ODBC, ADO.Net, PHP, …<br />Application<br />Internet<br />Azure Cloud<br />TDS (tcp)<br />Security Boundary<br />Load balancer forwards ‘sticky’ sessions to TDS protocol tier<br />LB<br />TDS (tcp)<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to CloudDB<br />TDS (tcp)<br />SQL<br />SQL<br />SQL<br />SQL<br />SQL<br />SQL<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />
  13. 13. SQL Azure Database provisioning<br />TDS Gateway<br />1<br />Front-end Node<br />Protocol Parser<br />TDS Session<br />2<br />3<br />Gateway Logic<br />Master Node<br />Master Cluster<br />Master Node Components<br />4<br />7<br />5<br />6<br />8<br />Backend Node 1<br />Backend Node 2<br />Backend Node 3<br />SQL Instance<br />SQL Instance<br />SQL Instance<br />SQL DB<br />SQL DB<br />SQL DB<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />
  14. 14. Основные изменения 2010<br />Поддержка пространственных типов данных Geography и Geometry<br />Поддержка типа данных HierarchyId<br />Database copy<br />CREATE DATABASE destination_database_nameAS COPY OF [source_server_name.]source_database_name<br />Новый портал (+ Проект “Houston”)<br />…<br />Анонсирована концепция Federations<br />
  15. 15. Demo<br />
  16. 16. SQL Azure Federations<br />
  17. 17. Масштабирование<br />Scale up<br />Купить мощный сервер<br />Мощные сервера дорогие!<br />Загрузить сервер по полной<br />Что делать если нагрузка меняется? <br />Резервы для пиковой нагрузки - нерентабельно!<br />Scale-out<br />Распределить данные и нагрузку между<br />несколькими серверами<br />Маленькие сервера дешёвые! Scale linearly<br />800 маленьких серверов работают олчень быстро<br />Способность противостоять пиковым нагрузкам<br />Распределение нагрузки внутри датацентра<br />
  18. 18. Sharding: Проблемы<br />
  19. 19. SQL Azure Federations: Основные понятия<br />Root<br />Federation Root<br />База данных, содержащая информацию о федерации<br />Federation<br />Представляет данные с шардов<br />Federation Key<br />Значение, которое определяет маршрутизацию данных<br />Federation Member (aka Shard)<br />Физическое хранилище для atomic unit<br />Atomic Unit<br />Все строки с одинаковым значением federation key value: всегда вместе!<br />Federation “CustData”<br />(Federation Key: CustID)<br />Member: [min, 100]<br />AUPK=5<br />AUPK=25<br />AUPK=35<br />Member: [100, 488]<br />AUPK=105<br />AUPK=235<br />AUPK=365<br />Member: [488, max]<br />AUPK=555<br />AUPK=2545<br />AUPK=3565<br />
  20. 20. Создание Federation<br />SalesDB<br />Создание root базы данных<br />CREATE DATABASE SalesDB<br />Содержит метаданные секций <br />Централизованное хранилище данных<br />Создание federation в root<br />CREATE FEDERATION Orders_Fed (RANGE BIGINT)<br />Указание имени и типа ключа<br />Создание первого member, покрывающего все даные<br />Federation “Orders_Fed”(Federation Key: CustID)<br />Member: [min, max]<br />
  21. 21. Создание схемы<br />SalesDB<br />Products<br />Federated tables<br />CREATE TABLE orders (…)<br />FEDERATE ON (customerId)<br />Значение federation key будет<br />определятьто где будут<br />находиться данные<br />Reference tables<br />CREATE TABLE zipcodes (…)<br />Отсутствие FEDERATE ON<br />указывает на reference table<br />Centralized tables<br />Создаются в root database<br />Federation “Orders_Fed”(Federation Key: CustID)<br />Member: [min, max)<br />orders<br />zipcode<br />
  22. 22. Разделение и слияние<br />SalesDB<br />Splitting a member<br />Когда слишком большие или высоконагруженные<br />ALTER FEDERATION Orders_Fed SPLIT (100)<br />Создаёт 2 новых члена<br />Online!<br />Merging members<br />Когда слишком малькие<br />ALTER FEDERATION Orders_Fed MERGE (200)<br />Создаёт новый член, удаляет старые<br />Products<br />Federation “Orders_Fed”<br />Member: [min, max)<br />orders<br />zipcode<br />Member: [min, 100)<br />orders<br />zipcode<br />Member: [100, max)<br />orders<br />zipcode<br />
  23. 23. Соединение и операции<br />Connect to atomic unit<br />USE FEDERATION Orders_Fed (56) WITH FILTERING=ON<br />Только данные со значением federation key 56 видимы<br />+ reference data<br />Safe: atomic unit никогда не может быть разделён<br />Connect to entire federation member<br />USE FEDERATION Orders_Fed (56) WITH FILTERING=OFF<br />Все данные члена федерации видимы<br />Dangerous: federation member может быть разделён<br />App<br />Member: [min, 100)<br />AUPK=5<br />AUPK=25<br />AUPK=56<br />zipcode<br />
  24. 24. Sharding in SQL Azure: Future<br />Multi Column Federation Keys<br />Federate on enterprise_customer_id+account_id<br />Schema Management<br />Поддержка управления схемами членов федерации.<br />Fan-out Queries<br />Единичный запрос, который получает данные с нескольких членов федерации. <br />Auto Repartitioning<br />Автоматическое разбиение базы данных в зависимости от определённого критерия (время отклика, размер базы данных и т.п.)<br />
  25. 25. SQL Azure Data Sync<br />
  26. 26. Сценарии использования<br />SQL Azure Database<br />CTP1<br />Sync<br />Sync<br />SQL Azure <br />Data Sync<br />Retail Stores<br />Remote Offices<br />Sync<br />Sync<br />Sync<br />Sync<br />CTP2<br />On-Premises (Headquarters)<br />
  27. 27. Ключевые особенности<br />Масштабируемость<br />Сервис масштабируется по мере роста требований к ресурсам<br />No-Code конфигурация синхронизации<br />Легко определить данные для синхронизации<br />Синхронизация по расписанию<br />Гибкий выбор графика синхронизиции<br />
  28. 28. Ключевые особенности<br />Обработка конфликтов<br />Обработка ситуаций, когда одни и те же данные изменяются в разных базах данных<br />Логирование и мониторинг<br />Инструменты для отслеживания процесса синхронизации и потенциальных проблем<br />
  29. 29. Roadmap продукта<br />Лето 2011 – CTP3<br />UI интегрированный с порталом SQL Azure<br />Выбор подмножества столбцов или строк для синхронизации<br />Изменения схемы баз, без пересинхронизации<br />Политики разрешения конфликтов<br />Улучшение usability<br />2011 г. – Релиз SQL Azure Data Sync<br />
  30. 30. Demo<br />
  31. 31. SQL Azure Reporting<br />
  32. 32. SQL Azure Reporting - Факты<br />Основаны на SQL Server Reporting Services<br />Поддерживается большая часть элементов SQL Server 2008 R2Reporting Services<br />Разработка при помощи Business Intelligence Studio<br />Отчёт генерируется в облаке<br />Всегда, независимо от того размещаете вы его на репорт сервере или встраиваете в своё приложение<br />SQL Azure Reporting является частью платформы Windows Azure<br />Использование портала<br />Масштабируемость<br />
  33. 33. SQL Azure Reporting - Факты<br />Data Source - SQL Azure<br />Источником данных для отчёта может выступать только база данных SQL Azure<br />Отчёты в том же формате<br />Отчёты работающие на SQL Server Reporting Services могут быть легко портированы в облако<br />Ничего не нужно дополнительно устанавливать<br />Отчёты доступны из любого места<br />Не нужно разворачивать сайт с репорт сервером<br />
  34. 34. Demo<br />
  35. 35. Summary<br />Beyond<br />2010<br />Launch-PDC09<br />
  36. 36. Для разработчиков <br />http://www.microsoft.com/en-us/sqlazure/database.aspx<br />http://www.microsoft.com/windowsazure/free-trial/<br />
  37. 37. Полезные ссылки<br />SQL Azure product site<br />Блог команды разработчиков SQL Azure<br />Forrester: SQL Azure Raises The Bar On Cloud Databases<br />Free e-book: Developing Applications for the Cloud on the Microsoft Windows Azure™ Platform<br />SQL Azure Videos<br />Video: Building Scale-Out Database Solutions on SQL Azure<br />Whitepaper: Inside SQL Azure<br />Whitepaper: Gaining Performance Insight into SQL Azure<br />Whitepaper: SQL Azure Reporting Overview<br />Whitepaper: SQL Azure Data Sync - How to Get Started<br />Whitepaper: SQL Azure Data Sync - Best Practices<br />Whitepaper: Sharding with SQL Azure<br />
  38. 38. ДенисРезник<br />Руководитель департамента веб-разработки, DCT<br />Trainer, Microsoft Innovation Center<br />Microsoft MVP (SQL Server)<br />Microsoft Certified Trainer<br />DenisReznik@live.ru<br />http://reznik.uneta.com.ua/<br />http://twitter.com/DenisReznik<br />Вопросы<br />
  39. 39. ДенисРезник<br />Руководитель департамента веб-разработки, DCT<br />Trainer, Microsoft Innovation Center<br />Microsoft MVP (SQL Server)<br />Microsoft Certified Trainer<br />DenisReznik@live.ru<br />http://reznik.uneta.com.ua/<br />http://twitter.com/DenisReznik<br />