ПРАКТИЧЕСКИЙ ОПЫТ КОМПАНИИ ABBYY ПРИ ПОСТРОЕНИИ СЕРВИСА НА WINDOWS AZURE Руководитель группы веб- разработки Lingvo ABBYY Eugene_A@abbyy.com Евгений Агафонов.

Презентация:



Advertisements
Похожие презентации
DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft.
Advertisements

Подход к построению приложений, когда особенно важны масштабируемость и гибкость к текущим условиям вашего бизнеса.
Windows ® Azure Platform. 3 Время Вычислительные ресурсы Фактическая нагрузка Выделенные ресурсы Слишком много Недостаточно Прогноз нагрузки.
Облачные вычисления Сценарии использования Дмитрий Мартынов Microsoft blogs.msdn.com/dmitrim.
App Engine Cloud Computing платформа от Google Петр Чардин, Михаил Дайчик Апрель 2009.
Новая парадигма ИТ – Облачные Технологии Гартнер говорит что Облачные Технологии будут иметь такое же влияние на мир как электронный бизнес – Июнь, 2009.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 2 Понятие об облачных вычислениях. Обзор платформ.
Физический Виртуальный IaaS PaaS «Традицион- ный» ЦОД Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime ПотребительInfrastructure.
SysAdmin Anywhere Облачный сервис для удаленного администрирования рабочих станций Игорь Маркин /
Azure vs AWS Боков Алексей Содержание Вычислительные ресурсы Хранилища данных Базы данных – реляционные бд и NoSQL Дополнительные сервисы.
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 6 Windows Azure Storage Сафонов Владимир Олегович Профессор кафедры информатики Заведующий.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 6 Windows Azure Storage Сафонов Владимир Олегович.
Программное обеспечение как услуга (SaaS) Лекция 8.
Евгений Воднев Microsoft Certified Application Developer Microsoft Certified Professional Developer.
9 класс--Облачные технологии. Облачные технологии (cloud computing) это технологии распределённой обработки данных в которой компьютерные ресурсы и мощности предоставляются.
Время Ресурсы Реальная нагрузка Добавили лишних ресурсов Нужно добавить ресурсы Облако Дата-центр.
Облачные технологии. Это технологии обработки данных, в которых компьютерные ресурсы предоставляются Интернет - пользователю как онлайн - сервис. Слово.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура Microsoft.
Microsoft, Azure, Drupal OOO «ИСФБ» Артём Паньков.
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура новой версии платформы Microsoft Windows Azure.
Транксрипт:

ПРАКТИЧЕСКИЙ ОПЫТ КОМПАНИИ ABBYY ПРИ ПОСТРОЕНИИ СЕРВИСА НА WINDOWS AZURE Руководитель группы веб- разработки Lingvo ABBYY Евгений Агафонов

СОДЕРЖАНИЕ Что такое «Облако» Облачные сервисы Windows Azure Описание Развертывание Очереди Таблицы Хранилища Масштабирование

СОДЕРЖАНИЕ Практика Сервисы ABBYY ABBYY FineReader Online ABBYY OCR SDK

Возможность легкого масштабирования в зависимости от нагрузки Экономия на обслуживании оборудования Возможность быть ближе к пользователю Размещение сервисов в датацентрах по всему миру Оплата за сервис основывается на основании потребляемых ресурсов ОБЛАКО

ОБЛАЧНЫЕ СЕРВИСЫ Custom Software Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime You manage Infrastructure (as a Service) Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Managed by vendor You manage Platform (as a Service) Managed by vendor You manage Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Software (as a Service) Managed by vendor Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data

IaaS теоретически позволяет, не изменив ни строчки кода, сделать сервис «облачным» PaaS провоцирует разрабатывать масштабируемую и надежную архитектуру, но и накладывает ограничения SaaS работает, когда нужен конкретный сервис МОДЕЛИ УСЛУГ

АРХИТЕКТУРА Cloud Storage (blob, table, queue) Web Role LB n Worker Role m

WINDOWS AZURE Platform as a Service (PaaS) Предоставляет необходимую инфраструктуру для построения масштабируемых приложений Модель оплаты – за использованные ресурсы Процессор, диск, транзакции, БД, траффик

WINDOWS AZURE Общее правило Языки Фреймворки.Net, Rails, Zend, ExpressJS, etc.

WINDOWS AZURE Web RoleWorker RoleVM Role

WINDOWS AZURE Практика Extra Small нужно использовать только для самых минимальных задач Скорость дисков в Extra Small ниже, Small – лучше, начиная с Medium - максимум Размер временной папки – 100Мб Обращайте внимание на размещение ваших сервисов Anywhere in Europe Affinity Group

РАЗВЕРТЫВАНИЕ Если нужно развернуть несколько проектов или дополнительные сущности, то на них должна быть ссылка из основного проекта Есть ограничения на размер пакета Решение: Все необходимые проекты и прочие сущности предварительно архивируются и выкладываются в BLOB Storage При развертывании все извлекается из облачного хранилища, распаковывается и устанавливается Внимательно относиться к инсталляторам компонентов При перезагрузке VM процесс развертывания начинается заново

WINDOWS AZURE Хранение данных Azure Drive Реализован поверх Blob Storage, кешируется на локальном диске BLOB Storage Файл + метаданные Table Storage Хранит набор сущностей. Сущность – набор свойств Azure Queue SQL Azure

BLOB STORAGE BLOB Storage REST API Возможность читать часть BLOB-а по смещению Возможность создавать публичные ссылки с разными ограничениями

TABLE STORAGE Только один индекс, состоящий из 2-х частей Можно хранить только ограниченный набор типов Нельзя использовать Enum Не очень удачно реализована библиотека для взаимодействия POCO объекты должны содержать определенные поля Плохая диагностика Нельзя использовать сортировку

ОЧЕРЕДИ СООБЩЕНИЙ Azure Queue Минимальный функционал Нельзя изменить время обработки сообщения Максимальное время обработки 2 часа Нет приоритетов Нельзя фильтровать сообщения

SQL AZURE Притворяется одним сервером На самом деле данные хранятся на многих серверах SQL Azure Data Sync Позволяет синхронизировать данные между локальным SQL и SQL Azure, а также между несколькими SQL Azure SQL Azure Reporting Облачные reporting services SQL Azure Federations Управление масштабированием Ограничения Из-за ограничений платформы функциональность системы тоже ограничена

WINDOWS AZURE Еще сервисы Service Bus Мощная система обмена сообщениями Уведомления, приоритеты, выборка по фильтру,... App Fabric Распределенный кэш Access Control Различные сценарии аутентификации

СЕРВИСЫ ABBYY ABBYY FineReader Online Распознавание документов для конечных пользователей Оплата берется за страницы

ДЕТАЛИ РЕАЛИЗАЦИИ IPlatformQueue AzureQueue – реализация очереди для Azure IPlatformBlobStorage AzureBlobStorage – реализация облачного хранилища IPlatformData AzureSqlData – реализация для SQL Azure AzureTableData – реализация для AzureTable (успехом не увенчалась)

ОТКАЗОУСТОЙЧИВОСТЬ Минимум два экземпляра каждой роли По одному процессу распознавания на ядро. Периодический опрос процессов При исключении, отсутствии ответа, превышении времени обработки задания процесс убивается. Задание возвращается в очередь

МАСШТАБИРУЕМОСТЬ Процессы обработки заданий поднимаются динамически, если есть необходимость Задачам можно назначать приоритеты Комплект из WebRole + WorkerRole развернут в нескольких географических регионах Обработчики из одного региона могут брать задания из других регионов, если кто-то не справляется

AUTOSCALE APPLICATION BLOCK Два типа правил Constraint Работают на основе временных границ Помогают держать в рамках бюджет Имеют ранги для определения победителя, если времена пересекаются Reactive Динамически подстраивают число «инстансов» или выполняют другие действия руководствуясь указанными предусловиями Предусловия формируются из счетчиков или произвольных бизнес-метрик Помогают динамически подстраиваться вашему приложению под текущую нагрузку

WASABI Брьба с «осцилированием» - «Yo-yo» проблема Разные условия для поднимания и выключения дополнительных инстансов Не включать/выключать дополнительные инстансы на границе часа Ограничивать «масштабы масштабирования»

СЕРВИСЫ ABBYY ABBYY Cloud OCR SDK OCR SDK для разработчиков Оплата берется за страницы Предоставляет Web API для распознавания текста Высокая точность распознавания Распознавание на 198 языках Легкая масштабируемость Доступные цены, он-лайн регистрация и оплата

СЕРВИСЫ ABBYY Почему OCR в облаке лучше Масштабируемость Экономия ресурсов Кроссплатформенность Любой язык программирования Простота разработки Оплата за ресурсы

АРХИТЕКТУРА Web Role Worker Role Blob Storage изображения результаты OCR SQL Azure … User App запрос статус запрос статус изображение результат OCR статус задание URL задание статус задания настройки Worker Role

ИТОГИ Не смотря на недавний старт, Azure является достаточно взрослой платформой для развертывания отказоустойчивых и масштабируемых сервисов PaaS подход в перспективе предпочтительнее Azure активно развивается и с каждым релизом предоставляет новый интересный функционал Service Bus, Azure Cache, Access Control, etc…

СПАСИБО ЗА ВНИМАНИЕ Руководитель группы веб-разработки Lingvo ABBYY Евгений Агафонов