Как объединить бэки двух ритейлеров на SAP за 12 часов

в 10:27, , рубрики: meetup, sap, бэкенд, митап, Серверная оптимизация, серверная часть, Серверное администрирование

Эта статья расскажет о масштабном проекте внедрения SAP в нашей компании. После слияния компаний «‎М.Видео»‎ и «‎Эльдорадо»‎ перед техническими отделами была поставлена нетривиальная задача — перевести бизнес-процессы в единый бэкенд, основанный на SAP.

Перед стартом у нас была дублированная IT-инфраструктура двух сетей магазинов, состоящая из 955 розничных точек, 30 000 сотрудников и трёхсот тысяч чеков в день.

Теперь, когда все успешно запущено и работает, мы хотим поделиться историей — как нам удалось сделать этот проект.

В этой публикации (первой из двух, чем черт не шутит, может и трех) мы презентуем вам некоторые данные по проведённым работам, подробнее о которых можно узнать на SAP ME meetup в Москве.

Как объединить бэки двух ритейлеров на SAP за 12 часов - 1

Полгода проектировки, полгода написания кода, полгода оптимизации и тестирования. И 12 часов, чтобы запустить общую систему в 1 000 магазинов по всей России (от Владивостока до Калининграда).

Может звучать нереально, но мы это сделали! Подробности под катом.

В процессе объединения компаний «М.Видео» и «Эльдорадо» перед нами встала задача оптимизации расходов и сведения бизнес-процессов двух разных компаний к единому бэкенду.

Наверное, это можно назвать удачей или совпадением — оба ритейлера для организации процессов пользовались системами SAP. Нам пришлось заниматься только оптимизацией, а не полной перестройкой внутренних систем сети «Эльдорадо».

Функционально задача была разбита на три (на самом деле четыре) этапа:

  1. Проектирование «на бумаге» и согласование нашими бизнес-аналитиками и SAP-консультантами новых процессов (а также модернизация старых) внутри уже работающих систем.

    После анализа ряда показателей уже работающего бэкенда двух компаний за основу для разработки единой системы был взят бэкенд «М.Видео». Одним из главных критериев, по которым был сделан выбор — эффективность компании в целом, бОльшая выручка и прибыль при более низких затратах на бизнес-операцию.

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

  2. Реализация в коде. Приведем немного цифр по итогам проекта:
    • 2 000 маршрутов в день, планируемых с помощью модуля логистики.
    • 38 000 пользователей фронт и бэкенда.
    • 270 000 товаров на складах объединённого предприятия.

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

    Расчет зарплат, авансов и премий для 30 000 сотрудников каждый месяц.

    В проекте была задействована команда из 300 технических специалистов, которые работали на протяжении десяти месяцев. Путем несложных арифметических подсчётов получим две цифры, наглядно отображающие масштаб проделанной работы: 90 000 человеко/дней и… 720 000 часов работы.

    image

    Далее — оптимизация отдельных подпрограмм модулей SAP, порядка сотни подпрограмм было ускорено в пять-шесть раз путём оптимизации кода и запросов в БД.

    По отдельным кейсам, нам удалось сократить время выполнения программы с шести часов до десяти минут с помощью оптимизации запросов к СУБД

  3. Третий этап, пожалуй, самый сложный — тестирование. Он состоял из нескольких циклов. Для их проведения мы собрали команду из 200 сотрудников, они были задействованы в функциональном, интеграционном и регрессионном тесте.

    Отдельным пунктом опишем нагрузочные тесты, они состояли из 15 циклов для каждого из модулей SAP: ERP, POS, DM, PI.

    По результатам каждого теста проводилась оптимизация кода и параметров СУБД, а также индексов баз данных (они у нас работают на SAP HANA, часть на Oracle).

    После всех нагрузочных тестов к расчетным вычислительным мощностям было добавлено ещё порядка 20% процентов, а также сформирован резерв примерно такого же (20%) объема.
    Ко всему прочему, после проведения вышеописанных циклов начался анализ 100 наиболее ресурсоёмких программ, по результатам которого мы отрефакторили код и ускорили их работу в среднем в пять раз (что в очередной раз подтверждает важность рефакторинга и оптимизации кода).

    Последним из проводимых тестов стал «cut over». Для него была создана отдельная тестовая зона, которая копировала наш продуктивный дата-центр. «Cut over» мы делали дважды, каждый раз на это уходило порядка двух недель, в которые мы проводили замеры скорости выполнения операций таких как: перенос настроек программ из тестовой зоны в продуктивную, загрузка открытых позиций по запасам товаров и периоды недоступности операций.

  4. И четвертый этап — непосредственный запуск после прохождения тестов. Задача стояла, прямо скажем, сложная: за 12 часов переключить порядка 955 магазинов по всей стране, и при этом не остановить продажи.

В ночь с 24 на 25 февраля, команда из десяти самых лучших специалистов нашей компании заступила на «вахту» в дата-центре, и началась магия перехода. О ней мы подробно расскажем на нашем meetup’е, а после вторую статью посвятим техническим подробностям нашей магии SAP.

Результаты.

Итак, результатом работы стало увеличение таких показателей как:

  • Нагрузка на бэкенд увеличилась приблизительно вдвое.
  • Количество чеков в день увеличилось на 50% с 200 тысяч до 300 тысяч.
  • Количество пользователей фронтенда увеличилось с 10 тысяч до 20 тысяч.
  • По модулю расчета зарплат количество сотрудников увеличилось с 15 тысяч до 30 тысяч человек.

Обо всех технических подробностях мы будем рассказывать на нашем SAP митапе в Москве, который состоится 6 июня в офисе «М.Видео-Эльдорадо». Эксперты поделятся опытом внедрения. По результатам встречи молодые специалисты смогут попасть на оплачиваемую стажировку в компанию с перспективой дальнейшего трудоустройства.

Узнать подробности и зарегистрироваться можно по этой ссылке

Автор: mvideo

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js