`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Платформа для платформ

+44
голоса

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

Многие разработчики, рассказывающие «Компьютерному Обозрению» о своих проектах для Windows Azure, подчеркивают, что на первых порах им действительно требовались тренинги и консультации (за предоставление которых Microsoft достойна отдельной похвалы), пришлось вникать в различные детали и пр. Впрочем, это закономерный процесс при освоении любой новой технологии и концепции, и тем более — такой всеобъемлющей, как облачные вычисления. Но результат того стоит.

Освоив специфику Windows Azure, разработчик получает в свое распоряжение возможности, осознанно рассчитывать на которые прежде вряд ли приходилось. Это касается доступа не только к практически неисчерпаемому источнику вычислительных ресурсов, но и к программной инфраструктуре, предоставляющей готовые функциональные блоки для реализации хранения данных, управления доступом или оптимизации трафика. Таким образом, разработчик избавляется он необходимости самостоятельно решать ряд сравнительно низкоуровневых (и довольно сложных) задач и получает возможность сосредоточиться на собственных идеях, думать и планировать на шаг вперед. В целом это позволяет ему создавать более сложные или универсальные в функциональном плане системы либо даже строить высокоуровневые программные платформы, которые составят основу будущих приложений или будут предлагаться сторонним коллективам.

Наши читатели уже знакомы с одним подобным примером: IngressPoint.RCC — это прежде всего платформа, на базе которой можно строить уже готовые решения для различных заказчиков. Правда, в данном случае основные платформенные идеи закладывались изначально, еще до миграции в Windows Azure. Но именно облачная инфраструктура позволила им развиться в полной мере и не случайно конечной целью разработчиков из IngressPoint является перевод решения на принципы PaaS. В любом случае, этот пример не единственный.

Украинская компания Digital Cloud Technologies (DCT) — разработчик широкого спектра ПО, от мобильных и настольных до высоконагруженных веб- и облачных приложений. В своей практике ее специалистам частенько доводилось консультировать и проводить аудит проектов, связанных с бронированием авиабилетов и других подобных услуг. С накоплением опыта стало ясно, почему многие из них терпят неудачу — не завершаются в срок, не укладываются в бюджет или даже вовсе не запускаются в эксплуатацию. Основная проблема заключалась в необходимости фактически с нуля реализовывать ядро системы, которое управляло бы сохранением и доступом к информации и при этом обеспечивало бы надлежащий уровень масштабируемости и отказоустойчивости.

Задачи эти в самом деле нетривиальны, так как необходимо учитывать как потенциальный рост аудитории сервиса, так и кратковременные пиковые нагрузки, которые характерны для любых систем продажи билетов и могут быть следствием праздников, масштабных событий и пр. Но важно, что они практически неизменны в большинстве подобных проектов и их решение вполне можно возложить на некую универсальную, отлаженную программную платформу, которая дополнительно обеспечивала бы адаптацию к специфике конкретного сервиса, т.е. к видам предоставляемых услуг. Так родилась идея проекта Booking API — универсального хранилища данных, полностью отвечающего описанному классу задач и доступному через специальный прикладной интерфейс. Платформа Windows Azure была выбрана для его реализации, благодаря дешевому и надежному сервису хранения; простоте администрирования, в том числе — добавления и уменьшения ресурсов; прозрачной ценовой политике и оплате строго потребленных ресурсов. Для раздельного масштабирования операций чтения и записи архитектуру проекта построили с использованием принципа CQRS. А все сервисы, необходимые для ее реализации, предоставила Windows Azure: реляционную СУБД SQL Azure для записи, нереляционное хранилище Azure Table Storage для чтения и отказоустойчивые очереди для обеспечения передачи данных.

В итоге Booking API представляет собой REST-подобный сервис, размещенный в Windows Azure, который принимает и возвращает данные в универсальном формате JSON. Клиенту доступны базовые методы бронирования: категории услуг, список услуг, детальная информация об услуге, бронирование услуги, проверка статуса брони. Поставщикам услуг сервис предоставляет административную панель, где они могут зарегистрировать очередную услугу или добавить новый товар. Система безопасности сервиса позволяет гибко управлять правами и аутентификацией, ограничивать доступ анонимным пользователям и пр.

Платформа для платформ

Архитектура Booking API

Для обеспечения отказоустойчивости и масштабируемости сервиса применяются ряд возможностей Windows Azure и дополнительных архитектурных решений:

  • для каждой очереди, таблицы в Azure Table Storage и базы данных в SQL Azure хранятся две синхронные копии;

  • для увеличения производительности в систему можно добавлять новые Web Role и Worker Role, а также новые очереди, причем остановка текущих экземпляров не потребуется;

  • масштабирование собственно хранилищ данных достигается за счет формирования различных разделов в Azure Table Storage и шардинга на основе механизма федераций в SQL Azure.

Таким образом, в DCT создали масштабируемую прикладную платформу для сервисов бронирования, на основе которой можно легко строить реальные приложения, способные выдержать практически любую нагрузку. Booking API в полной мере полагается на высочайшие показатели масштабируемости и отказоустойчивости Windows Azure и дополнительно реализует ряд архитектурных особенностей для независимого масштабирования отдельных подсистем. Благодаря этому, сервисы на ее основе будут «расти» вместе с основным бизнесом, причем плата будет взиматься исключительно за потребленные на текущем этапе ресурсы. В частности, отсутствие больших начальных затрат обеспечивает легкий старт новых проектов.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+44
голоса

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT