Pull to refresh

Облако Microsoft Azure в реальных проектах

Reading time 21 min
Views 51K
Microsoft Azure хорошо знакома как открытая и гибкая платформа облачных вычислений на уровне компаний и даже больших корпораций. Но это еще и постоянно растущая коллекция интегрированных облачных служб. Мы собрали пять сценариев работы компаний в Microsoft Azure – очевидных, популярных, интересных. А если и вы заинтересованы в интеграции облачных сервисов в ваш бизнес, советуем вступить в закрытую программу поддержки компаний-разработчиков на облачных технологиях Microsoft Azure. Технические консультации и совместные маркетинг-активности гарантированы.
Подайте заявку, чтобы попасть в программу прямо сейчас.
Содержание
Кейс 1. Big data
Как облако Azure помогает считать КАСКО







Пример компании Raxel Telematics
демонстрирует, как можно использовать облако Azure для сбора Big Data. А если немного углубиться в подробности, показывает особенности сбора Big Data в сегменте страхования автомобилей Usage Based Insurance (UBI).


Raxel One – один из первых в России сервисов, позволяющих страховым компаниям использовать гибкую политику по расчету стоимости полиса КАСКО. Для этого в автомобилях их клиентов устанавливаются небольшие телематические устройства, которые подключаются к OBD2-разъему и собирают информацию о стиле езды.
Данные передаются в облачное хранилище, где их анализ на основе разработанной Raxel Telematics скоринговой модели помогает классифицировать водителей, выделяя среди них сторонников безопасной езды.
Интересно, что система не собирает информацию о местоположении – только текущее время, скорость, ускорение и пробег (дополнительно считывается VIN автомобиля). По задумке создателей, это должно убедить автовладельцев в отсутствии слежки и тем самым повысить их доверие к новинке. Сервис также фиксирует резкие маневры – ускорение, торможение, развороты – и позволяет сообщить страховой компании о ДТП (функция реализована через мобильное приложение – пока автовладелец посылает уведомление сам).
Аккуратному водителю такой подход обещает скидку на полис КАСКО. Для тех же, кто любит полихачить, «черный ящик» в виде телематического устройства как минимум станет стимулом «сбавить обороты».
Дополнительно сервис автоматически формирует список рекомендаций, которые могут помочь водителю повысить свой рейтинг безопасности в системе.
Со стороны страховщиков сервис также выглядит привлекательным. Во-первых, чем аккуратнее будет водитель, тем меньше выплат им придется провести. Во-вторых, зависимость стоимости страховки от стиля вождения позволит привлечь больше выгодных, «безаварийных» клиентов.
Для доступа к сервису автовладелец использует брендированное страховой компанией мобильное приложение (Android или iOS): с его помощью он может отправить уведомление о ДТП, просмотреть статистику езды и увидеть рекомендации по выбору страхового тарифа от партнеров Raxel One. Страховые компании получают информацию через веб-интерфейс онлайн. Дополнительно сервис может быть интегрирован с их IT-системами.
Инфраструктура сервиса
Ядро сервиса – облачная платформа Microsoft Azure. Развернутая на ней система обеспечивает сбор и анализ телематических данных и формирует отчеты для страховых компаний.
Решение изначально проектировалось исходя из облачной архитектуры. Во время пилотного тестирования на арендованных у провайдера серверах выяснилось, что очень много времени уходит на настройку и отладку сред и выстраивание правильной инфраструктуры. Разработчики решили перебраться в облако, чтобы избежать проблем с «железом» и упростить масштабирование решения под новых клиентов или проекты.
«Выбор Azure был продиктован тем, что это единственный крупный сервис в России с должным уровнем администрирования и отличной скоростью развития», – комментируют в Raxel.
Microsoft Azure позволил Raxel Telematics оптимизировать затраты на инфраструктуру и персонал, не жертвуя при этом гибкостью и отказоустойчивостью. Еще один фактор, определивший выбор в его пользу, – программы поддержки стартапов BizSpark и BizSpark +, позволяющие не вкладываться в решение на старте. Являясь участником этой программы, Raxel Telematics смогла на старте воспользоваться сервисом бесплатно.
«Участие в стартаперских программах BizSpark и BizSpark + является бесценной помощью на начальном этапе развития стартапа. Мы первый год существовали как раз благодаря программе», – признаются специалисты Raxel.
Развертывание решения проводилось собственными силами Raxel Telematics при консультативной поддержке Microsoft (в частности, при развертывании инфраструктуры SQL).
Архитектура
За анализ и обработку информации отвечает развернутый в облаке Microsoft SQL Server. Информация с телематического оборудования, установленного в автомобилях, передается через принимающий сервер в облако, где она обрабатывается, анализируется и хранится. Для повышения производительности используется технология SQL In-Memory. Отчеты создаются в нескольких различных сервисах – Reporting Services, Excel Services, SharePoint PerformancePoint.
Microsoft Azure позволяет точно настроить параметры каждого виртуального сервера в рамках инфраструктуры.
Результаты
Raxel One уже используют восемь страховых компаний из разных стран, в том числе из России. В автомобилях уже установлены более 20 тыс. устройств, которые сгенерили информацию о более чем 100 млн км. пробега.
В год каждое телематическое устройство отправляет более 500 тыс. пакетов с телематической информацией. Это значит, что в облако ежедневно поступает свыше миллиона записей.
Эксперты компании уверены, что благодаря использованию облачной инфраструктуры и уникальных алгоритмов сжатия на базе Microsoft Azure появляются неограниченные возможности по хранению и обработке этих колоссальных объемов информации.
Несмотря на огромный массив данных, с которым работает система, само решение получилось гибким, а его развертывание даже в крупных страховых компаниях – быстрым и прогнозируемым.
Специалисты Raxel Telematics всегда могут в течение одного дня развернуть инфраструктуру под проект, работать несколько месяцев с ней, платить за время, а после завершения — погасить.
При этом, по оценкам экспертов компании, расходы на обслуживание решения вполне предсказуемы, а использование облачной платформы позволяет не держать в штате дорогостоящих специалистов (например, администраторов БД).
Использование «облачной основы» позволило разработчику создать надежный и отказоустойчивый сервис. «За три года использования облачной инфраструктуры Azure у нас только один раз был простой на 30 минут. В то время как с единственным железным сервером у нас уже дважды были проблемы, которые полностью останавливали работу компании и требовали серьезных усилий для их решения», – делятся сотрудники компании.
При необходимости систему можно комплектовать дополнительными опциями. К примеру, с помощью мобильного приложения водитель сможет и без телематического оборудования оценить свой стиль вождения. Анализ данных с приложения на основе Machine Learning позволяет определить, когда водитель едет на автомобиле (а, допустим, не на общественном транспорте). Дополнительно в систему могут интегрироваться устройства других производителей (сигнализации, устройства мониторинга для логистики и т.п.).
Интересно, что сервис уже успел стать плацдармом для экспериментов с used-based insurance на российском рынке. В частности, с его помощью проводилось тестирование системы расчета полиса КАСКО по пробегу. А вы всегда можете устроить свои тесты и попасть в закрытую программу поддержки компаний-разработчиков на облачных технологиях Microsoft Azure.
Кейс 2. Интернет вещей
Облачная телеметрия






Мечта многих «цифровизированных»
автовладельцев – возможность следить за машиной и управлять ее функциями со смартфона. Мечта автодилеров – лояльный покупатель, готовый проходить ТО и ремонтировать автомобиль только у них. Исполнить оба желания, причем в рамках одной платформы, позволяет концепция IoT. Именно она лежит в основе сервисов Remoto и Dealer Mobility, разработанных Bright Box.




Remoto предназначен для автовладельцев и позволяет им дистанционно управлять автомобилем с помощью смартфона. Решение состоит из Telematics Ciontrol Unit – TCU, устанавливаемого в машину, мобильного приложения пользователя и аналитической системы, развернутой в облаке.
Dealer Mobility – это по сути мобильная коммуникационная платформа для контроля за состоянием машины и общения автовладельца с дилером. В состав решения входит OBD-устройство, которое устанавливается в автомобиле, и брендированное дилером мобильное приложение.
Приложение позволяет автовладельцу проверить техническое состояние своей машины, получить консультацию специалиста дилерского центра, записаться на ремонт и предупреждает о поломках и запланированных визитах в автоцентр.
Дилер же работает с системой через дилерский портал, где отслеживает статус подключенных автомобилей, следит за изменениями пробега, вероятностью приезда клиентов на ТО.
Инфраструктура
В основе продуктов Bright Box лежит облачная платформа Microsoft Azure. Ядром решений является набор микросервисов Service Fabric. Данные хранятся в Blob Storage, SQL Database, плюс используются средства распределенного кэширования Azure Redis Cache. Для работы с географическими данными есть PostgreSQL с расширениями Postgis и pgRouting.
Service Fabric использует для обмена данными широкий пул протоколов, включая Mobile API, MQTT, REST, AMQP. Есть четыре группы пользователей. Первая – автомобилисты с установленными мобильными приложениями. Вторая – автомобили с установленными телематическими устройствами, подключенные через сеть мобильной связи. Третья – внешние партнеры, занимающиеся страхованием, арендой, каршерингом. Четвертая – бизнес-пользователи, получающие доступ к данным через веб-портал.
Ключевой компонент решений Bright Box – глубокая аналитика. Для хранения неструктурированной информации большого объема используется система Azure Data Lake. Все события из Service Fabric попадают в Azure Event Hub, а из него идут в два потока - в Azure Stream Analytics (горячий анализ данных) и Data Lake (вдумчивая аналитика с применением Machine Learning, OLAP).
Принцип отбора
При поиске технологической платформы для своих продуктов специалисты Bright Box опирались на пять критериев: безопасность, масштабируемость, отказоустойчивость, невысокая стоимость и минимум администрирования – и рассматривали представленные на рынке облачные PaaS-решения, исходя из них.
В процессе отбора победила облачная платформа Microsoft Azure. Стек Microsoft был хорошо известен сотрудникам, и использование привычных технологий для новых решений облегчало и создание, и работу с ними. Но наибольшую роль сыграла возможность бесплатного использования облачных сервисов в рамках программы Microsoft BizSpark.
«Сloud-платформа решает все вопросы администрирования за нас. Я покупаю базу данных, и мне не надо нанимать системного администратора, я просто начинаю использовать ее», – рассказал менеджер по продукту Remoto Виталий Баум.
Работа в облаке Azure позволила компании сосредоточиться на развитии своего продукта. Со временем разработчики начали использовать ряд инфраструктурных компонентов по хранению и обработке поступающей с телематики информации. На данный момент активны сервисы Data Lake Store, Azure Storage, Blob Storage и File Storage, Machine Learning, Stream Analytics, Data Lake Analytics.

Активный рост клиентской базы и объема обрабатываемой платформой Remoto информации требовал частого расширения мощностей, подключения новых сервисов. Возможности Azure позволяли решить эти вопросы без привлечения дополнительных ресурсов.

Сейчас решениями Bright Box пользуются более 700 дилеров, к платформе подключено более 250 тысяч автомобилей, телеметрическое оборудование генерирует более 3 миллионов сообщений в день.

Ваш бизнес может быть и не таким масштабным, но это не помешает попасть в закрытую программу поддержки компаний-разработчиков на облачных технологиях Microsoft Azure.
Кейс 3. Dev & Test
Юзабилити-тесты в облаке Azure






Компания «Фабрика Юзабилити» разработала уникальное для российского рынка решение, позволяющее заказчикам самостоятельно выявлять проблемы любого сайта или мобильного приложения, а также тестировать прототипы на реальных пользователях с применением макетов Axure, InVision, UXPin и т. д. С его помощью можно сравнить собственные наработки с проектами конкурентов или проверить качество и восприятие контента пользователями.


Бизнес «Фабрики Юзабилити» построен на созданном компанией сервисе Fabuza, развернутом в облачной среде Microsoft Azure — нагрузки во время тестирования нерегулярны и оплата только фактически используемых вычислительных ресурсов дает возможность значительно снизить накладные расходы и стоимость услуг.
От конкурентов Fabuza отличается количеством и качеством предоставленной партнерами «Фабрики Юзабилити» базы респондентов — на сегодняшний день их более 12 000 000 (около 2 000 000 активных участников находятся в России). Респонденты привлекаются к проекту только на время теста, помимо этого, заказчики могут работать с собственной аудиторией.
Инфраструктура сервиса
Обычно разработчики переносят существующие информационные системы в облачную среду, но решения Fabuza изначально создавались в расчёте на инфраструктуру Azure и основаны на специальных объектах-сервисах, позволяющих использовать возможности платформы Microsoft максимально эффективно.
При необходимости система может тиражироваться и целиком копироваться в аккаунт заказчика — таким образом устраняются проблемы конфиденциальности. Если заказчик не хочет хранить данные в публичном облаке, ему доступна гибридная инсталляция — система работает в Azure, но сохраняет информацию на серверах клиента, связываясь с ними через шифрованный туннель (VPN). Такой вариант развертывания используют банки и другие организации с повышенными требованиями к безопасности.
Как это работает?
Тестирование сайтов, программ для настольных систем и мобильных приложений делается удаленно с помощью специального программного обеспечения. Чтобы самостоятельно провести тест, затрагивающий сотни участников из разных стран, потребуются несколько дней и один компьютер — все остальное клиенту предоставит «Фабрика Юзабилити». Такой подход позволяет сделать систему масштабируемой и уменьшает затраты.
«Заказчику не нужно приобретать физические серверы и лицензии на ПО, а также оплачивать труд высококвалифицированных системных администраторов. Получение гранта BizSpark делает первую версию нашего решения для небольшой нагрузки практически бесплатной», — поясняет Фёдор Аксёнов, технический директор сервиса дистанционного юзабилити-тестирования.
Архитектура
Front-end решения представляют собой набор веб-приложений Azure, способных масштабироваться в зависимости от нагрузки. Есть основной сайт, а также личный кабинет с редактором тестов. Респонденты заходят на сайт test.fabuza.ru по уникальной ссылке и выполняют задания, проходя тест от начала до конца.
Конструктор тестов позволяет работать с различными видами активностей: опросами, задачами по тестированию контента (в т. ч. мультимедийного) и другими заданиями, связанными с тестированием сайтов и приложений. Чаще всего клиенты проверяют юзабилити своих сайтов и сайтов конкурентов, юзабилити мобильных версий приложений, прототипов и макетов сайтов. Для выполнения этих задач требуется установить расширение в Chrome/Safari или клиентское приложение для мобильных устройств, взаимодействующее с сервисом с помощью специального API — работа пользователя протоколируется и передается в облако для анализа.
Весь процесс максимально автоматизирован и не требует от респондентов выполнения сложных сценариев.
Система может делать скриншоты и видеозаписи экрана участников, записывать лицо и голос респондентов, собирать оценки и отзывы, показывать исходы и время выполнения тестов, а также создавать карты кликов и формировать статистику посещения страниц.
Анализ событий (нажатия кнопок и т. д.) помогает автоматизировать обработку результатов, сокращая количество ошибок и уменьшая объем бесполезных данных. Это снижает затраты бизнеса на персонал, поскольку людям не приходится отсматривать сырое видео всех респондентов. Вносить изменения в код не нужно, но с помощью JavaScript система может модифицировать сайты на лету, фактически создавая тестовую среду.
Fabuza также позволяет проводить дневниковые тесты, при которых наблюдение за респондентами идет на протяжении недель или месяцев. Специальное расширение записывает действия пользователей на определённых вкладках браузера или с контентом определённого типа и делает дайджест для анализа их поведения. Подобная методика может применяться для тестирования сайтов вакансий, досок объявлений, онлайн-кинотеатров и тому подобных сервисов.
Back-end устроен достаточно просто — для промежуточного кэширования в облаке Azure развернуто хранилище Redis, взаимодействующее с Microsoft SQL Server через общую шину Bus. Решение легко масштабируется для любой нагрузки с использованием репликации. Для обработки видео пока применяется Workers от Azure, но со временем разработчики планируют перейти на Windows Azure Media Services. Часть данных находится в специальном хранилище (Storage) — это уменьшает нагрузку на СУБД. Стоит также отметить наличие стороннего облачного решения tokbox для записи видео и голоса с использованием технологии WebRTC.
«Мы собираем скриншоты и генерируем видео понемногу, но постоянно — практика показала, что если накапливать их в больших количествах, генерировать и обрабатывать видео на машине пользователя и только затем передавать, что-нибудь пойдет не так, и данные будут теряться», — комментирует Аксенов.
Результаты
Решения Fabuza используют Альфа-Банк, ВТБ24, Райффайзен Банк, Уральский банк реконструкции и развития, БКС, Ренессанс страхование, Финам, Билайн, Мегафон, QIWI, Kaspersky lab, Mail.ru group, Л'Этуаль, РБК, Ozon, Lamoda и другие крупные российские и зарубежные компании.
«Самым сложным тестом, с которым мы столкнулись, был дневниковый тест для Mail.ru. Стандартными способами провести его было невозможно, поскольку протестировать требовалось не обычный сайт, а другое веб-расширение. В результате мы сделали обработку данных респондентов в виде дайджестов и получили свыше 1000 часов видео в HD-качестве, — рассказывает Аксенов. — Потом было еще одно исследование для Mail.ru, и там требовалось записывать действия респондентов на всех устройствах сразу, включая мобильные. Эти тесты делались с использованием сервисов Azure, которые легко справляются с любыми задачами».
В данный момент самая ресурсоемкая для Fabuza операция — обработка видео. Примерно 40 ГБ скриншотов в день трансформируются в 1 ГБ видео, но иногда объем операций может быть и в 20 раз большим.
Характер всех нагрузок на нашу инфраструктуру — нерегулярный, что привело бы к огромным расходам при решении аналогичных задач на собственных вычислительных мощностях — компании пришло бы покупать серверы с большим запасом.

Возможности инструментов разработки и тестирования Azure позволяют «Фабрике Юзабилити» быстро масштабироваровать свое решение под любую нагрузку, которая требуется клиентам. Поминутная тарификация в Microsoft Azure дает возможность платить только за используемые ресурсы, не тратя деньги впустую и не заботясь о технической стороне вопроса. Таким образом платформа Microsoft Azure стала оптимальным решением для тестирования юзабилити сайтов и приложений. Подайте и вы заявку, чтобы попасть в закрытую программу поддержки компаний-разработчиков на облачных технологиях Microsoft Azure.
Кейс 4. Blockchain
Облако на службе банка






Разрабатывать приложения на blockchain – легко и быстро, если использовать готовые компоненты и широкие возможности облака Microsoft Azure. Один из примеров – история от «РосЕвроБанка», когда на создание системы удаленной идентификации для банков IDChain потребовалось всего два месяца.


Представьте: чтобы получить банковскую услугу, вам не надо тащиться через весь город (или еще хуже – за 100 километров в райцентр) в свое отделение. Можно зайти в ближайшее финансовое учреждение и через него получить доступ к огромному набору сервисов от десятка банков. Сделать реальностью такой сценарий способно внедрение в России удаленной идентификации. Для этого банкам нужно объединиться в консорциум и начать обмен и сравнение идентификационных данных.
Кто нуждается в удаленной идентификации:
  • лица с ограниченными возможностями;
  • лица, проживающие в труднодоступной местности;
  • клиенты сторонних организаций (брокерские компании, АИЖК, МФО).
И вот тут начинаются сложности. Классический процесс удаленной идентификации OAuth 2.0 подразумевает передачу персональных данных в явном виде и никак не контролирует ее результаты. Возникает проблема недоверия банков друг к другу, так как факты передачи данных и успешного сравнения нигде не зафиксированы и могут быть оспорены как с одной стороны, так и с другой.
Система IDChain, разработанная АКБ «РосЕвроБанк», реализует механизм удаленной идентификации на технологии Blockchain. Благодаря ей, банкам не придется делиться персональными данными, а каждая операция будет фиксироваться в blockchain-цепочке.
Как это работает
При первом посещении банка-участника консорциума клиент фиксируется в системе (1). На него заводится уникальный ключ – токен, после чего вычисляется пара значений: хеш токена и хеш сложенных между собой персональных данных клиента и токена. Эта пара значений помещается в смарт-контракт.
Затем, когда клиент обращается к одному из членов консорциума за услугой, он предоставляет свои личные данные: ФИО, дату рождения, номер паспорта, адрес регистрации и ИНН (2). Организация предоставляет ему выбор, в каком из банков авторизоваться (3). Клиент переадресовывается на интерфейс системы ДБО банка (4) для прохождения аутентификации. В рамках ДБО банк проводит аутентификацию (5), при ее успешном прохождении – шифрует открытым ключом организации токен клиента (6). Зашифрованный токен отправляется в организацию через смарт-контракт для фиксации факта передачи (7).
Система IDChain, разработанная АКБ «РосЕвроБанк», реализует механизм удаленной идентификации на технологии Blockchain. Благодаря ей, банкам не придется делиться персональными данными, а каждая операция будет фиксироваться в blockchain-цепочке.
Инфраструктура сервиса
IDChain реализована на базе Microsoft Azure с использованием Ethereum Multi-Member Consortium Network. Консорциум представляет собой набор виртуальных сетей участников. Один из участников выбран регулятором, его виртуальная сеть состоит из субсети для майнинга, субсети для обработки транзакций, распределителя нагрузки и модуля регулятора. Модуль позволяет регулятору добавлять, удалять или изменять параметры участников.
Виртуальные сети всех остальных участников состоят из субсети для майнинга, субсети для обработки транзакций, распределителя нагрузки и API приложения с авторизацией. API приложение необходимо для работы со смарт-контрактом для идентификации клиентов. Это приложение, написанное на Node JS, может обращаться к смарт-контрактам с GET и POST-запросами, что сильно облегчает работу со смарт-контрактами. Субсети в свою очередь состоят из одной или нескольких Ethereum нод.
На стороне банка устанавливается модуль участника, состоящий из четырех компонентов. Event receiver отслеживает и отображает все относящиеся к участнику события, которые формирует смарт-контракт. Customer Add module принимает на вход JSON файл со списком пар значений, а затем помещает каждую пару в соответствующий смарт-контракт через API-приложение. Customer Identification module обеспечивает перенаправление клиента на сайт ДБО и обработку вводимых персональных данных. Именно он высчитывает хеши. Customer Authentification module получает от ДБО результат аутентификации и формирует вызов функции смарт-контракта.
Всего в системе используется четыре смарт-контракта. Один отвечает за хранение хешей, второй – за сравнение значений, остальные два нужны для авторизации и администрирования.
При фиксации контрактов Ethereum использует принцип Proof of work, когда цепочку blockchain строит тот, у кого больше вычислительных ресурсов. Но в случае с закрытым консорциумом, когда количество майнеров ограничено, у них нет задачи перехватить работу друг у друга. Соответственно, для работы IDChain не требуется больших вычислительных мощностей.
Выбор Azure
Разработчики «РосЕвроБанка» изначально решили не использовать собственную инфраструктуру. Настройка серверов, виртуальных машин и сетей, администрирование blockchain-экосистемы собственными силами весьма трудозатратно. Выбирали из существующих облачных платформ, поддерживающих blockchain.
Первый претендент, платформа IBM Bluemix, на которой можно развернуть Hyperledger Fabric, оказалась слишком сложной в изучении и использовании. Выбор пал на второго претендента – платформу Azure с Ethereum Multi-Member Consortium. Ethereum – открытая blockchain-система, она активно тестируется, вокруг нее выросло большое сообщество разработчиков. Возможность быстро найти ответ на любой вопрос в этом сообществе стала одним из главных преимуществ данного решения.
В процессе работы над IDChain проявил себя еще один плюс платформы Azure – наличие большого числа готовых сервисов, плотно интегрированных в облако. Так, в модуле авторизации был использован компонент KeyVault для хранения паролей. А для безопасного соединения с банком был поднят VPN с помощью встроенных в Azure служб. Много удобств принес готовый API-менеджер, также имеющийся в облаке. В процессе знакомства с возможностями платформы Azure разработчики добавляли новые функции в свое решение.
В результате создание собственного финтех-решения на базе blockchain заняло у «РосЕвроБанка» всего два месяца. В настоящий момент идет подготовка к пилотированию с ограниченным количеством банков и клиентов. По его результатам будет приниматься решение о выводе IDChain в промышленную эксплуатацию. Подать заявку и попасть в закрытую программу поддержки компаний-разработчиков на облачных технологиях Microsoft Azure можно по ссылке.
Кейс 5. Неравномерная нагрузка
Как «Черная пятница» переехала в облако Azure







Сервис распродаж, характеризующийся большими пиковыми нагрузками несколько раз в год при минимальном трафике в обычные дни, переехал из облачного сервиса Amazon в Microsoft Azure. Полностью скопировать продукт не удалось, но адаптация архитектуры под Azure позволила повысить управляемость и прозрачность решения.


Особенности BlackFridaySale
Многие слышали о гигантских распродажах, приуроченных к «Черной пятнице». В России эта схема активно продвигается с 2013 года одноименным сервисом, партнерами которого являются более 300 интернет-магазинов.
Несколько раз в год под руководством сервиса проводятся массовые распродажи, объявления о которых публикуются на ресурсе BlackFridaySale – так что потенциальным покупателям удобнее искать подходящие товары здесь, а не в каталогах каждого из магазинов-партнеров. Магазины, в свою очередь, имеют возможность привлекать к своим распродажам дополнительное внимание и новых клиентов, управляя предложениями на сайте «Черной пятницы».
Характер нагрузки и выбор платформы
Основная особенность IT-инфраструктуры BlackFridaySales – крайне неравномерная нагрузка. В периоды затишья – между акциями – трафик минимален, но на старте распродаж показатели увеличиваются в тысячи раз.
«В обычные дни throughput прыгает в пределах 0,5 – 3 Мбит/с, в обеденные часы может подниматься до 15 – 20 Мбит/с. За два-три дня до акции показатели подрастают до 600 Мбит/с, а за несколько минут до старта увеличиваются до 1,2 – 1,5 Гбит/с. Во время старта распродажи throughput около 7 – 8 Гбит/с, в пике достигая максимума 14 Гбит/с. Примерно через четыре часа значение опускается до 3 – 4 Гбит/с и находится в этих границах до конца акции», – рассказывает co-founder и CTO BlackFridaySale, Александр Усунов.
Разработчики учли неравномерность нагрузки и изначально выбрали облачную модель реализации сервиса. Специалисты рассматривали Rackspace, ряд локальных облачных решений, но на тот момент с Amazon конкурировать никто из них не мог.
С 2014 года BlackFridaySales использовал облачные сервисы Amazon Web Services:
управление конфигурацией OpsWorks, API Gateway, Auto Scaling Groups, ElastiCache, Aurora СУБД и CloudFront. Однако ряд сложностей с Amazon в России, в первую очередь – проблемы с оплатой крупных счетов Amazon для российских юридических лиц – побудили разработчиков сервиса искать альтернативу. В итоге было выбрано облако Microsoft Azure.
Миграция
Естественно, разработчики рассматривали и другие облачные площадки. Но внимание BlackFridaySale к Azure привлек подход представителей Microsoft к продажам. Технические специалисты своими силами постарались найти решение для существующих задач BlackFridaySale в рамках Azure. Т.е. они не просто предоставили доступ к некоему сервису, а вложились в большую часть принимаемых решений.
Планирование миграции заняло порядка двух месяцев. «Мы изучали документацию, общались со специалистами Azure, которые проанализировали нашу существующую инфраструктуру и предложили ряд решений, тем самым избавив нас от необходимости самим подбирать какие-то пути удовлетворения потребностей. Также мы были на нескольких мероприятиях Microsoft, где рассказывалось о продуктах, их сильных и слабых сторонах. Потом непосредственно во время миграции это очень помогло», – говорит Александр Усунов.
Сами работы по переносу сервиса заняли еще примерно два месяца. В ходе миграции BlackFridaySales столкнулись с рядом сложностей, но большая часть из них была решена за счет внесения изменений в архитектуру решения.
«Когда мы только начинали общаться с инженерами из Microsoft по поводу переезда инфраструктуры, в первую очередь мы искали в Azure какие-то инструменты, позволяющие заменить то, что у нас есть в Amazon. Сейчас, оборачиваясь назад, могу сказать, что это сыграло негативную роль во всем нашем переезде. У нас не получалось подстроить Azure под Amazon, мигрировать на Microsoft SQL или использовать где-то Redis. Все работало ощутимо медленнее. Практически в каждом узле, с которым работаем, мы наталкивались на какие-то нюансы. Но как только мы перестали думать об Azure как о клоне Amazon, все стало намного проще. MSSQL, Redis нам в принципе не потребовались», – комментирует Александр Усунов.
Подходы к решению возникавших проблем хорошо иллюстрирует ситуация с переездом на рекомендованные командой Azure Web Apps. Выяснилось, что Web Apps медленно работает с файловой системой (т.е. если приложение активно работает с файловой системой, Web Apps очень медленно его обрабатывает). Сразу после переезда – еще на стадии простого копирования решения из Amazon в Azure – на генерацию сетов уходило порядка 50 секунд против 500 мс на обычной машине Linux. Для решения этой проблемы приложение было разделено на части: что-то переписали под .NET, а процессы, которые не требуют доступа к большому количеству файлов, также вынесли в Web Apps. Эти процессы в основном обрабатывают поступающие сообщения в очередях. Если очередь быстро заполняется, масштабируется все именно в Web Apps – регулируется количество воркеров, которые обрабатывают процессы.
Еще один пример проблемы, которую удалось обойти, – отсутствие Custom SSL для CDN. Сначала ее пытались решить «в лоб» – через общение с поддержкой и запрос новых возможностей. Но потом удалось абстрагироваться от этого API, прекратив отдавать основной контент через CDN.
Результатом миграции стало снижение использования виртуальных облачных машин за счет применения легко масштабируемых SaaS-инструментов. Иными словами, изменилась не только платформа, но и само решение. Многие вещи теперь работают по-другому. Сами работы по переносу сервиса заняли еще примерно два месяца. В ходе миграции BlackFridaySales мы столкнулись с рядом сложностей, но большая часть из них была решена за счет внесения изменений в архитектуру решения.
Раньше, при использовании Amazon, решение условно включало в себя четыре компонента: кэширующий пул, бэк-энд пул, пул, обеспечивающий рендеринг, и СУБД. В процессе перехода в Azure архитектура была изменена – компоненты были раздроблены на более мелкие составляющие.
Переход на новую инфраструктуру прошел без отключений (несмотря на невозможность ассоциировать Web App или CDN с доменом без внесения соответствующих записей в DNS). Летнюю серию распродаж в 2016 году в Германии BlackFridaySale провел уже на новой инфраструктуре. Первый пик нагрузки также прошел хорошо.
Осенью 2016 года инфраструктура на базе Azure отработала на акциях во всех регионах деятельности BlackFridaySale. Как отмечает Александр Усунов: «У нас было разделение по регионам и группам для России, Австрии и Германии. На каждую группу приходилось около 7 – 8 Гбит/с в первые часы после старта. В первые минуты был небольшой лаг на Application Gateway, которые отдавали SSL-трафик, их не «прогрели» перед стартом. Но глобально это не сказалось на доступности ресурса».
Результаты
Как было отмечено выше, миграция на Azure сопровождалась перестройкой инфраструктуры, которая сама по себе имела положительный эффект. Уменьшились масштабы каждого самостоятельного компонента инфраструктуры BlackFridaySale, что повысило прозрачность и отказоустойчивость архитектуры, упростило регулировку нагрузки.
«Реализованный переезд – это хороший шаг в нашей системе, она стала лучше. Еще на этапе запуска сервиса BlackFridaySale, предполагая пиковые нагрузки лишь 2-3 раза в год, мы не планировали использовать собственные сервера. Мы хотели облако, где можно было бы легко и быстро регулировать мощности. Нужно тебе, чтобы система работала быстро, – подвинул ползунок, и сервис готов к пиковой нагрузке. Подвинул в другую сторону – работают только простые калькуляторы для лендинг-страниц. Как ни странно, переезд в Azure побудил нас активнее использовать SaaS-решения, тем самым приближая к первоначальной цели – гибкому регулированию мощностей. Да и экономический эффект от переезда был заметный», – резюмирует Александ Усунов.
На текущий момент почти все потребности сервиса BlackFridaySale закрыты возможностями Azure. Единственный сторонний инструмент, который использует компания, – сервис SMTP для рассылки писем. При этом в компании отмечают, что гораздо удобнее было бы пользоваться внутренним сервисом.
Платформа BlaskFridaySale постепенно развивается, и пока облако Azure имеет весь необходимый инструментарий для поддержки этого развития.
Подайте заявку, чтобы попасть в закрытую программу поддержки компаний-разработчиков на облачных технологиях
Microsoft Azure или получить бесплатный облачный грант Microsoft Azure, если вы стартап.
Tags:
Hubs:
+31
Comments 2
Comments Comments 2