Алексей Шуленин Эксперт по технологиям обработки и анализа информации Департамент стратегических технологий Российское представительство  Microsoft
Краткое введение в (за)облачные вычисления Одними из первых облачную модель вычислений реализовали средства коллективной работы (веб-почты, веб-конференции) лет 8-10 назад Традиционно такого рода софт прятался за файрволы в целях защиты, приватности и т.д., без чего жить вообще казалось немыслимо К описываемому сроку этот рынок благополучно поделили между собой, в основном,  IBM/Lotus  и  Microsoft . Казалось, что все незыблемо устаканилось. Почему поначалу тонкий ручеек в лице  WebEx  (приобретена  Cisco  в 2007 г.),  PlaceWare  (с 2003 г. –  MS   Office Live Meeting ),  WebDialogs (c 2007 – IBM Lotus Sametime Unyte)  и др .  сумел не только пробить новый сегмент рынка, но и изменить бизнес-модель корпоративной совместной работы, вызвав новые правила лицензирования и распространения?
Краткое введение в (за)облачные вычисления Преимущества облачной модели с точки зрения заказчика Не требует крупных предварительных инвестиций Меньше операционных издержек Размещение громадных количеств пользователей на высокомасштабируемом сервере дает стоимость в расчете на пользователя на порядки меньше, чем в случае развертывания системы на предприятии Пересекает границы организации Файрвол не преграда Ценность информации многократно возрастает, если расширить ее на партнеров, поставщиков, клиентов Проще, чем строить экстранет Быстрая подготовка к работе Пользователям не требуется ждать внедрения и настройки специализированных средств Позволяет  IT  сфокусироваться на инновациях
Краткое введение в (за)облачные вычисления Требования к поставщику Эффективность и надежность центра обработки данных Специализированная архитектура приложений Традиционный софт ориентирован на работу с данными организации на выделенном сервере В облачной модели данные и процессы от разных организаций нужно уметь распределять по общей серверной инфраструктуре Корпоративный опыт Которого обычно недостает производителям « public-facing » приложений. Например, в  Gmail  отсутствует механизм надежной пользовательской аутентификации (начали вводить в услуге  Google Enterprise) Гладкая интеграция «стойки» ( on-premise)  и Облака Не все данные и процессы могут быть отнесены в Облако, некоторые останутся локально Должна обеспечиваться прозрачная для пользователя поддержка обоих сценариев, возможность отсоединенной работы
Эволюция хостинга
Отличия Облака от модели хостинга и  SaaS Клиент не оговаривает инфраструктуру Определяется вендором Облака в виде плоского горизонтально масштабируемого серверного слоя, на которой располагаются сервисы Гораздо больший уровень виртуализации, чем в традиционном хостинге Приложение может «размазываться» как по физическим, так и виртуальным инстансам Оплата за потребление ресурсов Ресурсами могут выступать общее процессорное время на задачу и переданные объемы данных, чем фиксированная помесячная арендная плата в зависимости от сервера или пропускной способности Нет жестких сроков контрактов Клиенты вольны прийти и уйти, когда им вздумается Как правило, минимальное действие час, без регистрационных взносов Следствие: идеальный сценарий для разработки, тестирования, прототипирования, ... без отвлечения персонала  IT
DaaS Итак, как мы видели,  SaaS  только выиграет от размещения его в Облаке. А чем не сервис база данных? Справедливыми остаются все названные выше преимущества Снижение затрат, неограниченные ресурсы, обобществление данных в реальном времени, ...
Три модели  DaaS Multitenancy hosted model Несколько организаций шарят одну базу Грубо говоря, каждый эккаунт привязан к своей схеме Стандартный доступ через  SOAP, REST, XML, ODBC, JDBC, SQL Можно создавать таблички,  DRI,  запрашивать, добавлять, изменять данные Нет задачи сопровождать и поддерживать Dedicated database hosted model Каждой организации выделяется по БД Все БД шарят общую инфраструктуру: сервера, сторидж, ... Доступ по стандартным протоколам, что и в пред.случае DBA  клиента может апгрейдить, тюнить базу, вообще делать с ней, что хочет – она же его выделенная Database container model Обращаемся уже не к таблицам, а к сущностям Более высокий уровень абстракции Сущности, вообще говоря, нереляционны, хотя основываются на реляционных таблицах Базовая сущность – набор свойств со значениями, сущности могут наследовать друг от друга Доступ к контейнеру сущностей как к веб-сервису  (REST, SOAP)
Основные игроки Amazon SimpleDB Веб-сервис для хранения, обработки и доступа к информации в Облаке Работает в тесной связке с  Simple Storage Service (S3)  и  Elastic Compute Cloud (EC2) Оптимизирована для работы с небольшими объемами данных, организованными в домены (контейнеры)  Домен = таблица; элементы = строки, атрибуты = колонки, ячейки = значения Простейшая модель данных без определения схемы, не поддерживается ссылочная целостность между доменами API = REST, SOAP SQL  не поддерживается Не требует вовлечения  DBA  для резервного копирования, обеспечения отказоустойчивости и безопасности Позиционируется как альтернатива СУБД в простеньких  Web -приложениях Force.com В основном предлагает  PaaS (Platform), DaaS  идет как встроенный сервис наряду с разработкой приложений и средой выполнения DaaS  позволяет создавать реляционные таблицы и поддерживает ссылочную целостность между сущностями Доступ – через специализированные протоколы  Force.com Web services API  и  Salesforce Object Query Language (SOQL) EnterpriseDB Продукт носит название  Postgres Plus Advanced Server Cloud Edition Интегрирован с веб-сервисами  Amazon’s Elastic   Compute Cloud (EC2)  и  Simple Storage Services (S3) По принципу построения – типичная  Dedicated Hosted Model
Основные игроки Oracle Oracle Application Express (APEX) –  давнишнее средство создания через браузер примитивных оракловых аппликаций Oracle On-Demand  -  hosted database service  для  PeopleSoft  и  Oracle Applications Клиент так же тратит деньги на оракловый софт,  Oracle  только берет на себя функции сопровождения и поддержки в своем центре данных Sun-MySQL MySQL  используется в  DaaS  офферинге  EC2  от Амазона Sun  предлагает всем свои серваки и сторидж в датацентре за  $1  на процессор в год или что-то вроде этого Project Caroline  -  PaaS Google   BigTable Разработанная 2 года назад штука для масштабирования петабайт структурированной информации по потребительским серверам Используется в  Web -индексации,  Google Earth, Google Finance, ... Не есть база данных в строгом смысле слова  –  распределенная разреженная многомерная отсортированная карта Карта индексируется по  Row Key, Column Key, Timestamp . Однотипные колонки объединяются в семейства – базовые единицы контроля доступа. Содержание ячейки – неинтерпретируемый массив байт Пример: адрес страницы (в обратном порядке) – строка; анкеры, откуда на нее идут ссылки, - семейство колонок,  html –  содержание. Хранится 3 последних версии.
Подход  Microsoft   Microsoft   SQL   Server   Data Services Впервые объявлены на конференции  MIX’08 5  марта 2008 г. http://visitmix.com/blogs/2008Sessions/BT05/ Апрель – август – закрытое бета-тестирование (ограниченный круг тестеров) С сентября находятся в стадии открытого тестирования – каждый желающий может зарегистрироваться на участие здесь:  http://www.microsoft.com/sql/dataservices/default.mspx
Подход  Microsoft   Distributed Fabric  Application Service Platform Data Service Platform Integrated Store CloudDB Distributed In-Memory Cache Velocity Queues Data Delivery Identity  User Management  Reporting Service RS Business Intelligence BI Storage Service Stratus Data Archiving Backup Data Warehouse Manageability (Autopilot) External  CloudDB DSP Unified Programming Model Workflow  Distributed Job Framework Distributed Query Resource Allocation and Governance Virtualization Synch Services (Harmonica) Data Fidelity And Cleansing Data Center Services (GFS) Billing Networking Facilities Support Throttling and Metering
SQL Server Data Services : основные наименования Zurich  –   платформа разработки сервисов как строительных блоков приложений, ориентированных на Облако в связке с  on-premise CloudDB  – хостинговая платформа хранения данных и обработки запросов на основе технологии  SQL   Server Dynamically add / remove partition ranges Load balance partition ranges Используются в сервисах Внутренние Windows   Live Внешние Sitka , он же  Stratus –  сервис   хранения данных Exchange Hosted Archive (EHS-A)  – 400 ТБ SharePoint ,  Data Protection Manager ,  BizTalk , ... Франшиза? Включают  “Data Platform Services” Синхронизация, отчетность, анализ Mgmt, Provisioning (AP) CloudDB Sitka EHS-A … Unstructured BLOB Simple Structured Structured,  Rich Query Database Spectrum Building Block Svc Finished Svc
Три ключевых сценария Low Friction  Database Endpoint Rich Query Archive Generic Data Hub Application Cloud DB Sitka Application Cloud DB Archive App. Email / Collab /  LOB App Microsoft Written Cloud DB Sitka Application Integration Synch App
Принципы построения Goal: A storage platform built for  extreme scale  and low cost Commodity hardware to lower CapEx Lights out operations and self healing to lower OpEx  Optimize I/O throughput Achieved via: Partition data Apps are partition aware to exploit data parallelism for high availability, scaling and throughput Partitions are replicated to achieve reliability System is self healing - partition data fails over, load-balances, and scales-up Trade off single system image for scale, throughput, low cost Fan out operations for large scale, cross partition query workloads Optimize code paths for high throughput Easy to deploy and manage No DBA required to manage cluster Job framework for deploying and running scheduled tasks Provisioning, Deployment, Management 1-100 101-200 201-300 301-400 401-500 Client Fetch  Partition Map Cluster Manager Request (Key:=323) Partition Lookup
Масштабирование  CloudDB Table Group Customers Row Group Orders Partition Partitioning Key Column (OrderId) Table : logical relation Has a  partitioning key :  controls partitioning across servers Has a  clustering key : controls ordering of rows within a server Table group : a set of tables with the same  partitioning key Row group : set of rows in table group with same  partitioning key value Always on exactly one server But may not be clustered Напр., в связке  Customer->Orders->LineItems  все три таблы партиционируются по  Customer ID Each table group distributed across nodes Each storage node assigned ranges “ partitions ” of key  values Each partition is replicated for durability Id Name 34 John 57 … 92 … … … Id Oid S 34 1  34 2  92 1  … …
Архитектура  CloudDB Mgmt. Services Data Node SQL Server Fabric Data Node Components Partition Manager Master Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Deployment Health Monitoring AutoPilot Service Management Self-Healing Master Cluster Data Cluster Service Boundary Mid-Tier Node Integrated Client Library Application Mid-Tier Fabric  Replication  Fetch Partition Map SQL Client Mgmt. Services Data Node SQL Server Fabric Distributed Job Framework Distributed Data Services Fabric Distributed Query Reporting Services Caching GMV … … Data Node Components Partition Manager Master Node
Основные компонеты архитектуры Master Cluster Manager Хранение состояния кластера  ( карта партиций ) В высокодоступном состоянии (репликация) Distributed fabric Обнаружение сбоев Выборы лидера Переконфигурация Клиентская библиотека Построена на  ADO.Net  Может работать вместе с  Webstore 5.5  и  Blue Autopilot  и   сторожевые собаки автопилота Сбор алертов, ведение логов, перезагрузка Distributed Job Framework Среда выполнения запланированных и непредвиденных (по ходу дела) заданий
Взаимодействие узлов CloudDB Client Library (ADO.Net) SQL Process Fabric Process SQL Process Fabric Process SQL Process Fabric Process SQL Process Fabric Process CloudDB Master Node SQL Process Fabric Process CloudDB Master Node SQL Process Fabric Process Distributed Fabric Physical Disks CloudDB Data Cluster CloudDB Master Cluster Manager AP WD AP WD AP WD AP WD AP WD AP WD CloudDB Data Node CloudDB Data Node CloudDB Data Node CloudDB Data Node SQL Replication Fabric Messages SQLClient
Создание избыточности SQL Server P S S S Replication Agent Local Partition Map Data Node 100 Data Node 101 P S S S Data Node 102 P S S Data Node 103 P S S S Data Node 104 P S S S Data Node 105 P S S S Master Node (Primary Master) Primary Secondary Secondary Fabric Ring Topology Failure Detector Name Resolution Reconfiguration Agent Replica State Monitor Fabric Hosting Fabric Fabric Hosting Leader Elector Partition Manager Global Replica State Monitor Placement Advisor Load Balancer SQL Server Global Partition Map Fabric
Вспомогательные сервисы Data Node Device Manager Provisioning Deployment AutoPilot Service Manager Watchdogs Management Services Deployment Services Health Monitoring Perf Collection Backup Self Healing Perf Collection Cluster Perf DB (CloudDB TableGroup) Reporting Off-site Backup Trace Collection Trace DB (CloudDB TableGroup) CloudDB Deployment Self Healing Application Deployment AutoPilot
Мониторинг Контроль наиболее важных сервисных компонентов : Производительность Доступность Развертывания (изменения) Сторожевые собаки Пороговые значения  определяются в  SLA  и  KPIs Операционная система ключевых метрик доступна на портале
Операционный цикл
Понятие АСЕ A uthority Единица географического местоположения и биллинга Аналог пространства имен Представляется  DNS- именем типа  mydomain.data.beta.mssds.com , где  mydomain  –  authority , а  data.beta.mssds.com  – сервис Можно заводить несколько Коллекция контейнеров C ontainer Коллекция сущностей Запросы, перечисление, поиск сущностей CRUD  сущностей E ntity Набор  name/value  пар Единица изменения Базовые скалярные  XSD- типы  string ,  base64Binary ,  boolean ,  decimal ,  dateTime Не имеет схемы, свойства разделяются на  metadata (Id, Version, Kind)  и  flexible Blob  не имеет второй группы св-в, первая содержит дополнит.св-во  Content
Пример сущностей Property Type Value Metadata ID EntityId VWGOLF-01 Kind EntityKind Car FlexProps Description String Reliable, one owner, … Price Numeric 12000.00 ListingDate Datetime 01-01-2008 LocationZip String 98052 Property Type Value Metadata ID EntityId MINICOOPER-264 Kind EntityKind FunCar FlexProps Description String Reliable, one owner, … Price Numeric 12000.00 ListingDate String 1 st  January, 2008 LocationZip String 98052 EngineSize Numeric 1600 Additional  property Different  instance  types Different Kinds
Пример сущности <s:EntitySet xmlns:s=&quot;http://schemas.microsoft.com/sitka/2008/03/&quot;  xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;  xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot;>  <UsedBookKind>  <s:Id>5fdc7c86-b3de-4f6f-a424-3e9c4d9215ad_MySampleBook</s:Id>  <s:Version>1</s:Version>  <Title xsi:type=&quot;x:string&quot;>My Book</Title>  <ISBN xsi:type=&quot;x:string&quot;>1-57880-066-36</ISBN>  <Author xsi:type=&quot;x:string&quot;>Mr. Author</Author>  <Publisher xsi:type=&quot;x:string&quot;>Mr. Publisher</Publisher>  <InPrint xsi:type=&quot;x:boolean&quot;>false</InPrint>  <NumberOfCopiesSold xsi:type=&quot;x:decimal&quot;>250</NumberOfCopiesSold> <PublicationDate xsi:type=&quot;x:dateTime&quot;>2004-01-27T00:00:00</PublicationDate> <CoverPhoto xsi:type=&quot;x:base64Binary&quot;>AQID</CoverPhoto>  </UsedBookKind>  <UsedBookKind> … </UsedBookKind>  …  </s:EntitySet>
Работа со свойствами В альфе Entity e1 = new Entity(); // Set required metadata properties e1.Id = Guid.NewGuid().ToString() + &quot;_MySampleBook&quot;; e1.Kind = &quot;UsedBookKind&quot;; e1.Properties = new System.Collections.Generic.List<Property>(); Property p = new Property(); p.Name = &quot;Title&quot;; p.Value = &quot;My First Book&quot;; e1.Properties.Add(p);   Property p1 = new Property(); p1.Name = &quot;ISBN&quot;; p1.Value = &quot;1-57880-066-3&quot;; e1.Properties.Add(p1);   Property p2 = new Property(); p2.Name = &quot;Author&quot;; p2.Value = &quot;Mr. Author&quot;; e1.Properties.Add(p2); … В бете Entity e1 = new Entity(); // Set required metadata properties e1.Id = Guid.NewGuid().ToString() + &quot;_MySampleBook&quot;; e1.Kind = &quot;UsedBookKind&quot;; e1.Properties = new Dictionary<string, object>(); e1.Properties[&quot;Title&quot;] = &quot;My first Book&quot;; e1.Properties[&quot;ISBN&quot;] = &quot;1-57880-066-36&quot;; e1.Properties[&quot;Author&quot;] = &quot;Mr. Author&quot;; …
Архитектура  SSDS CloudDB Data Cluster Fabric  Replication  SQL Client TECHNOLOGY STACK DATA MODEL  Sitka midtier Storage Tier SOAP or REST Sitka Biz Logic Layer Mgmt. Services SQL Server Fabric Data Node Data Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Client Application [CloudDB ADO.Net client] REST SOAP Sitka Runtime
API Протоколы  REST, SOAP Язык запросов по типу синтаксиса С #   LINQ  from  e  in  container   where e.Kind   ==   “Expo:FunCar” &&     e[ “Zip” ]   ==   98053  &&       e[ “Model” ]   ==  “Mini Cooper”  select  e Семантике операторов не требует контракта схемы e[ “Zip” ]   может быть строкой в одной сущности и числом в другой e[ “Tag” ] ==  “CUSTOMER”  означает отыскать все экземпляры, где Tag   – строка и имеет значение   “CUSTOMER” Поддерживаются запросы по данным и метаданным
Итак... CloudDB –  внутренняя система распределения и  обработки данных и обеспечения их избыточности в целях отказоустойчивости, построенная на основе технологии  SQL   Server   Данные партиционируются (распределяются) и реплицируются (обеспечивается избыточность) между узлами Настройкой этих задач занимается специальный слой. Отдельные компоненты следят за состоянием здоровья узлов. SQL   Server   Data Services –  свободно масштабируемый, обращенный в  Web  сервис хранения и обработки данных в виде сущностей на основе  CloudDB  Масштабируемость по требованию Business-ready SLA : высокая надежность, защита данных и производительность Application Agility Гибкая модель данных для быстрой разработки приложений Дружественный интерфейс  Web 2.0 API  Простая модель запросов
Дальнейшие ресурсы Официальная страница проекта http://www.microsoft.com/sql/dataservices/default.mspx Там же регистрация на бета-тестирование Документация http://msdn.microsoft.com/en-us/library/cc512417.aspx SDK http://msdn.microsoft.com/en-us/library/cc678662.aspx   Блог разработчиков http://blogs.msdn.com/ssds/   Сайт конференции  PDC 2008 http://www.microsoftpdc.com/   27-30  октября, Лос-Анджелес

More Related Content

PPTX
Roman Zdebskiy - Windows Azure
PDF
New sql server2008r2
PPT
Ms it cup win-team - мевв
PDF
AZadonsky New Cloud Services
PPT
Презентация Microsoft PowerPoint
PPTX
"Пряники" - система мотивации и Microsoft Azure
PDF
Эффективное управление доступом к ИТ-ресурсам
PPTX
Сеть для реального сектора II
Roman Zdebskiy - Windows Azure
New sql server2008r2
Ms it cup win-team - мевв
AZadonsky New Cloud Services
Презентация Microsoft PowerPoint
"Пряники" - система мотивации и Microsoft Azure
Эффективное управление доступом к ИТ-ресурсам
Сеть для реального сектора II

What's hot (20)

PPTX
Sql azure и все, все, все...
PDF
Бизнес-контекст, совместная работа и согласованность для интеллектуального уп...
PDF
!Mobile cloud for publishing
PDF
Доступность приложений в гибридных ЦОД
PPT
14 расширенные возможности корпоративных субд
PPTX
Business platform company
PPTX
Microsoft Master Data Services - Master Data Management Tool
PDF
Новые возможности по разработке приложений (ADF, SOA, BPM)
PPTX
Архитектура и технологии Pryaniky.com
PPTX
Частное облако как сервис
PPT
VDEL Open Source Enterprise IT Solutions Overview
ODP
Облачные вычисления и сервисы: классификация, основные функции и недостатки
PPTX
Alexey bokov windowsazure_security_mssd
PPTX
Windows Azure - BigData and Hadoop
PDF
Microsoft Karpman
PDF
Интранет: расходы в доходы
PPTX
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
PPT
Microsoft Office Share Point Server 20072
PDF
Предоставление баз данных в виде сервиса (DBaaS)
PDF
Облачные решения на Dell Active System
Sql azure и все, все, все...
Бизнес-контекст, совместная работа и согласованность для интеллектуального уп...
!Mobile cloud for publishing
Доступность приложений в гибридных ЦОД
14 расширенные возможности корпоративных субд
Business platform company
Microsoft Master Data Services - Master Data Management Tool
Новые возможности по разработке приложений (ADF, SOA, BPM)
Архитектура и технологии Pryaniky.com
Частное облако как сервис
VDEL Open Source Enterprise IT Solutions Overview
Облачные вычисления и сервисы: классификация, основные функции и недостатки
Alexey bokov windowsazure_security_mssd
Windows Azure - BigData and Hadoop
Microsoft Karpman
Интранет: расходы в доходы
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Microsoft Office Share Point Server 20072
Предоставление баз данных в виде сервиса (DBaaS)
Облачные решения на Dell Active System
Ad

Similar to Sql Server Data Services (20)

PDF
Сергей Мелехов, Менеджер по развитию бизнеса вычислительных систем Oracle Вос...
PPTX
04.Службы Azure - подробнее
PPTX
облачные вычисления и сервисы
PPTX
облачные вычисления и сервисы
PPT
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
PDF
Александр Шуйсков (NAUMEN): перспективы развития Database as a Service
PPTX
Безопасность гибридных облаков
PPTX
01.Основные концепции
PPTX
Облака для Windows 8 (Windows 8 Summit)
PPT
Rus ibm cloud computing
PPT
GeneSys cloud_облака или туман
PDF
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
PPTX
Alexey Bokov key note - TechDays Armenia 2014
PPT
Cloud Computing
PPT
Cloud Computing Dmitri 12a
PDF
Олег Тягунов Хостинг и облачные сервисы
PDF
Database as a Service
PPT
Потенциал облачных сред для развития бизнеса
PDF
Западный рынок облачных вычислений
Сергей Мелехов, Менеджер по развитию бизнеса вычислительных систем Oracle Вос...
04.Службы Azure - подробнее
облачные вычисления и сервисы
облачные вычисления и сервисы
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
Александр Шуйсков (NAUMEN): перспективы развития Database as a Service
Безопасность гибридных облаков
01.Основные концепции
Облака для Windows 8 (Windows 8 Summit)
Rus ibm cloud computing
GeneSys cloud_облака или туман
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
Alexey Bokov key note - TechDays Armenia 2014
Cloud Computing
Cloud Computing Dmitri 12a
Олег Тягунов Хостинг и облачные сервисы
Database as a Service
Потенциал облачных сред для развития бизнеса
Западный рынок облачных вычислений
Ad

More from Media Gorod (20)

PDF
Itogi2013
PDF
Moneytree rus 1
PDF
Iidf market watch_2013
PDF
E travel 2013 ufs-f
PPTX
Travel shop 2013
PPT
Kozyakov pay u_e-travel2013
PDF
13909772985295c7a772abc7.11863824
PPT
As e-travel 2013
PDF
Ishounkina internet research-projects
PPTX
E travel13
PPTX
Orlova pay u group_290813_
PDF
Ep presentation (infographic 2013)
PDF
Iway slides e-travel_2013-11_ready
PPTX
Data insight e-travel2013
PDF
Электронное Правительство как Продукт
PPTX
Lean мышление / Специфика Lean Startup
PDF
Глобальный взгляд на мобильный мир (Nielsen)
PDF
Как россияне используют смартфоны (Nielsen)
PDF
Мобильный интернет в России (MailRuGroup)
PDF
Meta Mass Media
Itogi2013
Moneytree rus 1
Iidf market watch_2013
E travel 2013 ufs-f
Travel shop 2013
Kozyakov pay u_e-travel2013
13909772985295c7a772abc7.11863824
As e-travel 2013
Ishounkina internet research-projects
E travel13
Orlova pay u group_290813_
Ep presentation (infographic 2013)
Iway slides e-travel_2013-11_ready
Data insight e-travel2013
Электронное Правительство как Продукт
Lean мышление / Специфика Lean Startup
Глобальный взгляд на мобильный мир (Nielsen)
Как россияне используют смартфоны (Nielsen)
Мобильный интернет в России (MailRuGroup)
Meta Mass Media

Sql Server Data Services

  • 1. Алексей Шуленин Эксперт по технологиям обработки и анализа информации Департамент стратегических технологий Российское представительство Microsoft
  • 2. Краткое введение в (за)облачные вычисления Одними из первых облачную модель вычислений реализовали средства коллективной работы (веб-почты, веб-конференции) лет 8-10 назад Традиционно такого рода софт прятался за файрволы в целях защиты, приватности и т.д., без чего жить вообще казалось немыслимо К описываемому сроку этот рынок благополучно поделили между собой, в основном, IBM/Lotus и Microsoft . Казалось, что все незыблемо устаканилось. Почему поначалу тонкий ручеек в лице WebEx (приобретена Cisco в 2007 г.), PlaceWare (с 2003 г. – MS Office Live Meeting ), WebDialogs (c 2007 – IBM Lotus Sametime Unyte) и др . сумел не только пробить новый сегмент рынка, но и изменить бизнес-модель корпоративной совместной работы, вызвав новые правила лицензирования и распространения?
  • 3. Краткое введение в (за)облачные вычисления Преимущества облачной модели с точки зрения заказчика Не требует крупных предварительных инвестиций Меньше операционных издержек Размещение громадных количеств пользователей на высокомасштабируемом сервере дает стоимость в расчете на пользователя на порядки меньше, чем в случае развертывания системы на предприятии Пересекает границы организации Файрвол не преграда Ценность информации многократно возрастает, если расширить ее на партнеров, поставщиков, клиентов Проще, чем строить экстранет Быстрая подготовка к работе Пользователям не требуется ждать внедрения и настройки специализированных средств Позволяет IT сфокусироваться на инновациях
  • 4. Краткое введение в (за)облачные вычисления Требования к поставщику Эффективность и надежность центра обработки данных Специализированная архитектура приложений Традиционный софт ориентирован на работу с данными организации на выделенном сервере В облачной модели данные и процессы от разных организаций нужно уметь распределять по общей серверной инфраструктуре Корпоративный опыт Которого обычно недостает производителям « public-facing » приложений. Например, в Gmail отсутствует механизм надежной пользовательской аутентификации (начали вводить в услуге Google Enterprise) Гладкая интеграция «стойки» ( on-premise) и Облака Не все данные и процессы могут быть отнесены в Облако, некоторые останутся локально Должна обеспечиваться прозрачная для пользователя поддержка обоих сценариев, возможность отсоединенной работы
  • 6. Отличия Облака от модели хостинга и SaaS Клиент не оговаривает инфраструктуру Определяется вендором Облака в виде плоского горизонтально масштабируемого серверного слоя, на которой располагаются сервисы Гораздо больший уровень виртуализации, чем в традиционном хостинге Приложение может «размазываться» как по физическим, так и виртуальным инстансам Оплата за потребление ресурсов Ресурсами могут выступать общее процессорное время на задачу и переданные объемы данных, чем фиксированная помесячная арендная плата в зависимости от сервера или пропускной способности Нет жестких сроков контрактов Клиенты вольны прийти и уйти, когда им вздумается Как правило, минимальное действие час, без регистрационных взносов Следствие: идеальный сценарий для разработки, тестирования, прототипирования, ... без отвлечения персонала IT
  • 7. DaaS Итак, как мы видели, SaaS только выиграет от размещения его в Облаке. А чем не сервис база данных? Справедливыми остаются все названные выше преимущества Снижение затрат, неограниченные ресурсы, обобществление данных в реальном времени, ...
  • 8. Три модели DaaS Multitenancy hosted model Несколько организаций шарят одну базу Грубо говоря, каждый эккаунт привязан к своей схеме Стандартный доступ через SOAP, REST, XML, ODBC, JDBC, SQL Можно создавать таблички, DRI, запрашивать, добавлять, изменять данные Нет задачи сопровождать и поддерживать Dedicated database hosted model Каждой организации выделяется по БД Все БД шарят общую инфраструктуру: сервера, сторидж, ... Доступ по стандартным протоколам, что и в пред.случае DBA клиента может апгрейдить, тюнить базу, вообще делать с ней, что хочет – она же его выделенная Database container model Обращаемся уже не к таблицам, а к сущностям Более высокий уровень абстракции Сущности, вообще говоря, нереляционны, хотя основываются на реляционных таблицах Базовая сущность – набор свойств со значениями, сущности могут наследовать друг от друга Доступ к контейнеру сущностей как к веб-сервису (REST, SOAP)
  • 9. Основные игроки Amazon SimpleDB Веб-сервис для хранения, обработки и доступа к информации в Облаке Работает в тесной связке с Simple Storage Service (S3) и Elastic Compute Cloud (EC2) Оптимизирована для работы с небольшими объемами данных, организованными в домены (контейнеры) Домен = таблица; элементы = строки, атрибуты = колонки, ячейки = значения Простейшая модель данных без определения схемы, не поддерживается ссылочная целостность между доменами API = REST, SOAP SQL не поддерживается Не требует вовлечения DBA для резервного копирования, обеспечения отказоустойчивости и безопасности Позиционируется как альтернатива СУБД в простеньких Web -приложениях Force.com В основном предлагает PaaS (Platform), DaaS идет как встроенный сервис наряду с разработкой приложений и средой выполнения DaaS позволяет создавать реляционные таблицы и поддерживает ссылочную целостность между сущностями Доступ – через специализированные протоколы Force.com Web services API и Salesforce Object Query Language (SOQL) EnterpriseDB Продукт носит название Postgres Plus Advanced Server Cloud Edition Интегрирован с веб-сервисами Amazon’s Elastic Compute Cloud (EC2) и Simple Storage Services (S3) По принципу построения – типичная Dedicated Hosted Model
  • 10. Основные игроки Oracle Oracle Application Express (APEX) – давнишнее средство создания через браузер примитивных оракловых аппликаций Oracle On-Demand - hosted database service для PeopleSoft и Oracle Applications Клиент так же тратит деньги на оракловый софт, Oracle только берет на себя функции сопровождения и поддержки в своем центре данных Sun-MySQL MySQL используется в DaaS офферинге EC2 от Амазона Sun предлагает всем свои серваки и сторидж в датацентре за $1 на процессор в год или что-то вроде этого Project Caroline - PaaS Google BigTable Разработанная 2 года назад штука для масштабирования петабайт структурированной информации по потребительским серверам Используется в Web -индексации, Google Earth, Google Finance, ... Не есть база данных в строгом смысле слова – распределенная разреженная многомерная отсортированная карта Карта индексируется по Row Key, Column Key, Timestamp . Однотипные колонки объединяются в семейства – базовые единицы контроля доступа. Содержание ячейки – неинтерпретируемый массив байт Пример: адрес страницы (в обратном порядке) – строка; анкеры, откуда на нее идут ссылки, - семейство колонок, html – содержание. Хранится 3 последних версии.
  • 11. Подход Microsoft Microsoft SQL Server Data Services Впервые объявлены на конференции MIX’08 5 марта 2008 г. http://visitmix.com/blogs/2008Sessions/BT05/ Апрель – август – закрытое бета-тестирование (ограниченный круг тестеров) С сентября находятся в стадии открытого тестирования – каждый желающий может зарегистрироваться на участие здесь: http://www.microsoft.com/sql/dataservices/default.mspx
  • 12. Подход Microsoft Distributed Fabric Application Service Platform Data Service Platform Integrated Store CloudDB Distributed In-Memory Cache Velocity Queues Data Delivery Identity User Management Reporting Service RS Business Intelligence BI Storage Service Stratus Data Archiving Backup Data Warehouse Manageability (Autopilot) External CloudDB DSP Unified Programming Model Workflow Distributed Job Framework Distributed Query Resource Allocation and Governance Virtualization Synch Services (Harmonica) Data Fidelity And Cleansing Data Center Services (GFS) Billing Networking Facilities Support Throttling and Metering
  • 13. SQL Server Data Services : основные наименования Zurich – платформа разработки сервисов как строительных блоков приложений, ориентированных на Облако в связке с on-premise CloudDB – хостинговая платформа хранения данных и обработки запросов на основе технологии SQL Server Dynamically add / remove partition ranges Load balance partition ranges Используются в сервисах Внутренние Windows Live Внешние Sitka , он же Stratus – сервис хранения данных Exchange Hosted Archive (EHS-A) – 400 ТБ SharePoint , Data Protection Manager , BizTalk , ... Франшиза? Включают “Data Platform Services” Синхронизация, отчетность, анализ Mgmt, Provisioning (AP) CloudDB Sitka EHS-A … Unstructured BLOB Simple Structured Structured, Rich Query Database Spectrum Building Block Svc Finished Svc
  • 14. Три ключевых сценария Low Friction Database Endpoint Rich Query Archive Generic Data Hub Application Cloud DB Sitka Application Cloud DB Archive App. Email / Collab / LOB App Microsoft Written Cloud DB Sitka Application Integration Synch App
  • 15. Принципы построения Goal: A storage platform built for extreme scale and low cost Commodity hardware to lower CapEx Lights out operations and self healing to lower OpEx Optimize I/O throughput Achieved via: Partition data Apps are partition aware to exploit data parallelism for high availability, scaling and throughput Partitions are replicated to achieve reliability System is self healing - partition data fails over, load-balances, and scales-up Trade off single system image for scale, throughput, low cost Fan out operations for large scale, cross partition query workloads Optimize code paths for high throughput Easy to deploy and manage No DBA required to manage cluster Job framework for deploying and running scheduled tasks Provisioning, Deployment, Management 1-100 101-200 201-300 301-400 401-500 Client Fetch Partition Map Cluster Manager Request (Key:=323) Partition Lookup
  • 16. Масштабирование CloudDB Table Group Customers Row Group Orders Partition Partitioning Key Column (OrderId) Table : logical relation Has a partitioning key : controls partitioning across servers Has a clustering key : controls ordering of rows within a server Table group : a set of tables with the same partitioning key Row group : set of rows in table group with same partitioning key value Always on exactly one server But may not be clustered Напр., в связке Customer->Orders->LineItems все три таблы партиционируются по Customer ID Each table group distributed across nodes Each storage node assigned ranges “ partitions ” of key values Each partition is replicated for durability Id Name 34 John 57 … 92 … … … Id Oid S 34 1  34 2  92 1  … …
  • 17. Архитектура CloudDB Mgmt. Services Data Node SQL Server Fabric Data Node Components Partition Manager Master Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Deployment Health Monitoring AutoPilot Service Management Self-Healing Master Cluster Data Cluster Service Boundary Mid-Tier Node Integrated Client Library Application Mid-Tier Fabric Replication Fetch Partition Map SQL Client Mgmt. Services Data Node SQL Server Fabric Distributed Job Framework Distributed Data Services Fabric Distributed Query Reporting Services Caching GMV … … Data Node Components Partition Manager Master Node
  • 18. Основные компонеты архитектуры Master Cluster Manager Хранение состояния кластера ( карта партиций ) В высокодоступном состоянии (репликация) Distributed fabric Обнаружение сбоев Выборы лидера Переконфигурация Клиентская библиотека Построена на ADO.Net Может работать вместе с Webstore 5.5 и Blue Autopilot и сторожевые собаки автопилота Сбор алертов, ведение логов, перезагрузка Distributed Job Framework Среда выполнения запланированных и непредвиденных (по ходу дела) заданий
  • 19. Взаимодействие узлов CloudDB Client Library (ADO.Net) SQL Process Fabric Process SQL Process Fabric Process SQL Process Fabric Process SQL Process Fabric Process CloudDB Master Node SQL Process Fabric Process CloudDB Master Node SQL Process Fabric Process Distributed Fabric Physical Disks CloudDB Data Cluster CloudDB Master Cluster Manager AP WD AP WD AP WD AP WD AP WD AP WD CloudDB Data Node CloudDB Data Node CloudDB Data Node CloudDB Data Node SQL Replication Fabric Messages SQLClient
  • 20. Создание избыточности SQL Server P S S S Replication Agent Local Partition Map Data Node 100 Data Node 101 P S S S Data Node 102 P S S Data Node 103 P S S S Data Node 104 P S S S Data Node 105 P S S S Master Node (Primary Master) Primary Secondary Secondary Fabric Ring Topology Failure Detector Name Resolution Reconfiguration Agent Replica State Monitor Fabric Hosting Fabric Fabric Hosting Leader Elector Partition Manager Global Replica State Monitor Placement Advisor Load Balancer SQL Server Global Partition Map Fabric
  • 21. Вспомогательные сервисы Data Node Device Manager Provisioning Deployment AutoPilot Service Manager Watchdogs Management Services Deployment Services Health Monitoring Perf Collection Backup Self Healing Perf Collection Cluster Perf DB (CloudDB TableGroup) Reporting Off-site Backup Trace Collection Trace DB (CloudDB TableGroup) CloudDB Deployment Self Healing Application Deployment AutoPilot
  • 22. Мониторинг Контроль наиболее важных сервисных компонентов : Производительность Доступность Развертывания (изменения) Сторожевые собаки Пороговые значения определяются в SLA и KPIs Операционная система ключевых метрик доступна на портале
  • 24. Понятие АСЕ A uthority Единица географического местоположения и биллинга Аналог пространства имен Представляется DNS- именем типа mydomain.data.beta.mssds.com , где mydomain – authority , а data.beta.mssds.com – сервис Можно заводить несколько Коллекция контейнеров C ontainer Коллекция сущностей Запросы, перечисление, поиск сущностей CRUD сущностей E ntity Набор name/value пар Единица изменения Базовые скалярные XSD- типы string , base64Binary , boolean , decimal , dateTime Не имеет схемы, свойства разделяются на metadata (Id, Version, Kind) и flexible Blob не имеет второй группы св-в, первая содержит дополнит.св-во Content
  • 25. Пример сущностей Property Type Value Metadata ID EntityId VWGOLF-01 Kind EntityKind Car FlexProps Description String Reliable, one owner, … Price Numeric 12000.00 ListingDate Datetime 01-01-2008 LocationZip String 98052 Property Type Value Metadata ID EntityId MINICOOPER-264 Kind EntityKind FunCar FlexProps Description String Reliable, one owner, … Price Numeric 12000.00 ListingDate String 1 st January, 2008 LocationZip String 98052 EngineSize Numeric 1600 Additional property Different instance types Different Kinds
  • 26. Пример сущности <s:EntitySet xmlns:s=&quot;http://schemas.microsoft.com/sitka/2008/03/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot;> <UsedBookKind> <s:Id>5fdc7c86-b3de-4f6f-a424-3e9c4d9215ad_MySampleBook</s:Id> <s:Version>1</s:Version> <Title xsi:type=&quot;x:string&quot;>My Book</Title> <ISBN xsi:type=&quot;x:string&quot;>1-57880-066-36</ISBN> <Author xsi:type=&quot;x:string&quot;>Mr. Author</Author> <Publisher xsi:type=&quot;x:string&quot;>Mr. Publisher</Publisher> <InPrint xsi:type=&quot;x:boolean&quot;>false</InPrint> <NumberOfCopiesSold xsi:type=&quot;x:decimal&quot;>250</NumberOfCopiesSold> <PublicationDate xsi:type=&quot;x:dateTime&quot;>2004-01-27T00:00:00</PublicationDate> <CoverPhoto xsi:type=&quot;x:base64Binary&quot;>AQID</CoverPhoto> </UsedBookKind> <UsedBookKind> … </UsedBookKind> … </s:EntitySet>
  • 27. Работа со свойствами В альфе Entity e1 = new Entity(); // Set required metadata properties e1.Id = Guid.NewGuid().ToString() + &quot;_MySampleBook&quot;; e1.Kind = &quot;UsedBookKind&quot;; e1.Properties = new System.Collections.Generic.List<Property>(); Property p = new Property(); p.Name = &quot;Title&quot;; p.Value = &quot;My First Book&quot;; e1.Properties.Add(p);   Property p1 = new Property(); p1.Name = &quot;ISBN&quot;; p1.Value = &quot;1-57880-066-3&quot;; e1.Properties.Add(p1);   Property p2 = new Property(); p2.Name = &quot;Author&quot;; p2.Value = &quot;Mr. Author&quot;; e1.Properties.Add(p2); … В бете Entity e1 = new Entity(); // Set required metadata properties e1.Id = Guid.NewGuid().ToString() + &quot;_MySampleBook&quot;; e1.Kind = &quot;UsedBookKind&quot;; e1.Properties = new Dictionary<string, object>(); e1.Properties[&quot;Title&quot;] = &quot;My first Book&quot;; e1.Properties[&quot;ISBN&quot;] = &quot;1-57880-066-36&quot;; e1.Properties[&quot;Author&quot;] = &quot;Mr. Author&quot;; …
  • 28. Архитектура SSDS CloudDB Data Cluster Fabric Replication SQL Client TECHNOLOGY STACK DATA MODEL Sitka midtier Storage Tier SOAP or REST Sitka Biz Logic Layer Mgmt. Services SQL Server Fabric Data Node Data Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Client Application [CloudDB ADO.Net client] REST SOAP Sitka Runtime
  • 29. API Протоколы REST, SOAP Язык запросов по типу синтаксиса С # LINQ from e in container where e.Kind == “Expo:FunCar” && e[ “Zip” ] == 98053 && e[ “Model” ] == “Mini Cooper” select e Семантике операторов не требует контракта схемы e[ “Zip” ] может быть строкой в одной сущности и числом в другой e[ “Tag” ] == “CUSTOMER” означает отыскать все экземпляры, где Tag – строка и имеет значение “CUSTOMER” Поддерживаются запросы по данным и метаданным
  • 30. Итак... CloudDB – внутренняя система распределения и обработки данных и обеспечения их избыточности в целях отказоустойчивости, построенная на основе технологии SQL Server Данные партиционируются (распределяются) и реплицируются (обеспечивается избыточность) между узлами Настройкой этих задач занимается специальный слой. Отдельные компоненты следят за состоянием здоровья узлов. SQL Server Data Services – свободно масштабируемый, обращенный в Web сервис хранения и обработки данных в виде сущностей на основе CloudDB Масштабируемость по требованию Business-ready SLA : высокая надежность, защита данных и производительность Application Agility Гибкая модель данных для быстрой разработки приложений Дружественный интерфейс Web 2.0 API Простая модель запросов
  • 31. Дальнейшие ресурсы Официальная страница проекта http://www.microsoft.com/sql/dataservices/default.mspx Там же регистрация на бета-тестирование Документация http://msdn.microsoft.com/en-us/library/cc512417.aspx SDK http://msdn.microsoft.com/en-us/library/cc678662.aspx Блог разработчиков http://blogs.msdn.com/ssds/ Сайт конференции PDC 2008 http://www.microsoftpdc.com/ 27-30 октября, Лос-Анджелес