Управление данными
для высоконагруженных

- КиТ :: Будь в СЕТИ!

Без ЦОДа сейчас не обойтись? Как построить надежную архитектуру данных с оптимальными издержками Вряд ли в 2022 г. есть смысл писать отдельный текст про соблюдение требований к сбору, хранению и обработке данных в высоконагруженных приложениях. Но всегда ли необходим «физический» дата-центр для эффективного управления данными и исключения рисков их потери? На одном из кейсов Smartup Technology рассмотрим, как построить масштабируемую информационную систему data-intensive приложения в облаке. Для чего нашему заказчику нужны данные? Сервис SourceESB - это веб-агрегатор поиска электронных компонент. Назначение сервиса - предоставить пользователю подробную актуальную информацию о компонентах, включая номера, описания, изображения и информацию от поставщиков о ценах, наличии, особенностях упаковки. Для этого заказчик постоянно работает над привлечением к сотрудничеству все большего числа поставщиков и производителей.

Основной процесс остается за кадром - SourceESB обрабатывает огромное количество файлов инвентаризации в частично ручном режиме. Именно сбор и обработка инвентарных списков, в конечном счете, приносят деньги SourceESB.

Некоторые поставщики предоставляют API для загрузки данных. Благодаря интеграции с такими API SourceESB может показывать информацию о ценах и наличии в реальном времени.

    Поговорим о первом направлении - о получении, обработке, хранении и предоставлении данных множества источников в централизованной системе.

    Начнем изучение продукта с верхнеуровневой архитектуры. В системе можно выделить 3 слоя работы с данными.

    Слой первый - сбор данных. Это набор внешних интерфейсов, которые позволяют вводить данные в систему. Одни сервисы позволяют представителям производителей и поставщиков загружать каталоги через интерфейс администратора, загрузку файлов на FTP-сервер или отправку email. Другие сервисы работают с API поставщиков для извлечения данных.

    Слой второй - обработка данных, приведение разнообразных данных из множества источников к единому виду, объединение и обогащение, наполнение данными хранилищ. Подготовка статистических данных.

    Хранение и представление - организация быстрого доступа к данным, обеспечение разных сценариев использования системы: списки компонент, детальные данные, поиск, подбор.

    Что происходит с собранными данными

    Рассмотрим внимательно процесс подготовки данных.

    1. Собранные из разных источников данные хранятся на сетевом диске EC2 инстанса, пока не будут обработаны.
    2. Начинаем обрабатывать данные - фильтруем, оставляя лишь те, что удовлетворяют обязательным критериям. На этом шаге мы отсеиваем некорректную и бесполезную информацию, чтобы не захламлять систему. Работа с данными на этом этапе происходит во временных таблицах.
    3. Объединяем данные - выявляем совпадения компонент у разных поставщиков, собираем максимум информации, для новых записей конфликты решаем в пользу более полных (длинных) значений. Для уже редактированных вручную отдаем предпочтение установленным данным.
    4. Удаляем из базы компоненты, информация по которым не поступала более 30 дней.
    5. На основе обновленных данных заполняем отдельные таблицы агрегированными значениями для отображения статистики.
    6. Переключаем приложение на данные из временных таблиц - они готовы к использованию.
    7. Создаем новый поисковый индекс каждый день и отдаем данные из него. Устаревшие индексы хранятся 5 дней для обеспечения возможности отката.
    8. Очищаем кэш и «прогреваем» его - наполняем наиболее часто встречающимися запросами.

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

    Инфраструктура AWS

    Система развернута в облаке AWS. Сервера запущены на виртуальных машинах сервиса EC2. Там, где серверов несколько, настроены группы с балансировкой нагрузки входящего трафика. Запросы конечных пользователей проходят через кластер кэширующих прокси на Varnish.

    Специальный сервис PDAA запрашивает в режиме реального времени данные о наличии и цене компонент у поставщиков. Ответы сервиса PDAA проходят через промежуточный кэш на Redis, так как эта информация может быть использована на разных экранах интерфейса пользователя.

    AWS Simple Email Service (SES) принимает письма с вложенными файлами инвентаризации и отправляет уведомления и предупреждения. Принятые вложения хранятся в специальной папке сервиса S3.
    Центральное хранилище реализовано на MS SQL. Поиск на AWS OpenSearch.

    Выводы

    Задача сбора, хранения и представления данных от разных источников имеет свои трудности и тонкости. Удачная архитектура позволяет поддерживать систему расширяемой, обслуживаемой и развиваемой. Добавление нового источника данных не требует изменений в системе до тех пор, пока состав данных не будет расширен.

    Развертывание в облаке дает возможность уйти от необходимости создания собственного дата-центра и оперативно масштабировать ресурсы системы Токен: Рекламодатель:

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

    Тренды и прогнозы развития Data Governance в 2023 году

    После ухода с рынка зарубежных вендоров разработка продуктов в области управления данными Data Governance снизила свой темп. Новые игроки оказались не способны моментально предоставить полный спектр качественных решений, но каким будет 2023 год?

    Академия «Точка входа» запускает курсы Data governance и Data management

    В конце 2022 г. Smartup Technology анонсировала планы по развитию Академии «Точка входа». Появятся образовательные программы, нацеленные на углубленную подготовку ИТ-специалистов в области Data governance и Data management.

    Дмитрий Пашкевич, Smartup Technology:
    Вселенная интернета сейчас есть только у США, Китая и России

    В 2022 г. данные превратились в ключевое конкурентное преимущество компаний. Как сейчас развивается российский рынок заказной разработки ПО в сегменте Data Management.

    ПодпискаБудь в СЕТИ! Новости социальных сетей - всегда актуальное
     
    Группы: ВК | OK | Tg