Заказчик ICL Services — крупный российский ретейлер с обширной сетью точек продаж. ИТ-инфраструктура компании представляет собой два интернет-магазина, бэк-офис и несколько десятков информационных систем, которые обмениваются данными друг с другом.
За 10 лет информационные системы наслаивались друг на друга: информационные обмены между ними были неэффективными и имели накопленный технический долг. Существующую платформу было сложно развивать и поддерживать, она не выдерживала пиковых нагрузок, а потеря специалистов, работающих с этими системами, могла стать чувствительной для заказчика.
После смены собственника и стратегии развития в компании стали менять инхаус-разработку на стандартные коробочные решения. Однако внедрение любой новой системы в устаревшую за несколько лет структуру представляло сложность.
В первую очередь заказчик планировал развязать потоки информационных обменов и перестроить их. В этом ему помогли специалисты ICL Services, внедрившие на существующем пуле систем шину обмена данных, которая взяла на себя роль роутера всех бизнес-процессов в компании.
Ранее ICL Services оказывала заказчику сервис по поддержке ИТ-инфраструктуры, а летом 2019 года также получила проект по внедрению шины данных. Всего в проекте было задействовано более 20 аналитиков, разработчиков, инженеров и тестировщиков.
Заказчик передал верхнеуровневые схемы алгоритмов информационных обменов, а аналитики ICL Services вместе со специалистами компании актуализировали, уточняли и корректировали эти схемы.
В единой системе должны были работать шесть бизнес-объектов, которые участвуют в нескольких десятках информационных обменах. Бизнес-объект — это набор нескольких сотен полей, которые полностью описывают тот или иной логический объект — например, «продажа» или «покупатель». К каждому такому бизнес-объекту привязаны несколько десятков бизнес-процессов: например, бизнес-объект «покупатель» участвует в процессах «регистрация в розничном магазине», «продажа», «начисление бонусных баллов» и так далее. По каждому из этих информационных обменов готовилась спецификация.
При этом многие процессы были не задокументированы, поэтому в некоторых случаях приходилось изучать, как работают те или иные системы и обмены реверс-инжинирингом. Всего в проекте затронуто 30 информационных систем — начиная от ERP, OMS и CRM и заканчивая клиентских приложениями и внешними облачными решения от партнеров.
Все эти системы участвуют в информационных обменах, которые происходят по-разному: от простого импорта данных из одной системы до сложных процессов вроде регистрации клиента, в котором принимают участие восемь разных систем. Обмены осуществлялись через файлы, через SQL, через протоколы REST и SOAP API, а также через JSON-запросы к веб-сервисам.
Поскольку все фронтенд-системы заказчика работали с API, специалистам ICL Services удалось максимально унифицировать эти обмены и переложить их на веб-сервисы.
Параллельно шли работы по инфраструктурной части проекта. Шина — это три кластера: кластер балансировщиков нагрузки, кластер шины данных и кластер базы данных. Они развернуты в четырех средах: девелоперской, тестовой, пре-продуктивной и продуктивной. Шина базируется на WSO2, база данных — на MongoDB.
В минуту кластеры способны обрабатывать 5000 запросов — в работе задействованы более 20 серверов.
В итоге команда ICL Services реорганизовала всю инфокоммуникационную инфраструктуру для двух интернет-магазинов и более сотни розничных точек.
С внедрением корпоративной шины данных коммуникации между информационными системами стали проще, проходят по понятным правилам и задокументированы. Если раньше все вышеописанные системы передавали данные напрямую друг с другом, образуя хаотичную структуру связей, теперь они коммуницируют только с шиной данных.
Шина данных позволила перевести передачу всех информационных обменов в real-time режим, массово загружать клиентские данные, а также упростить работу BI-систем: атрибуты различных бизнес-объектов можно выгрузить через один веб-сервис, поэтому компания сможет глубже изучать данные, в том числе и на исторических срезах.
Внедрение шины обмена данных позволило:
Заказчик получил устойчивую базу для реализации планов по дальнейшему развитию бизнес-систем, а его инфраструктура готова к высоким нагрузкам и безболезненному масштабированию.