Промышленность и оборудование
Октябрь 2023
International Packaging Group Association — международная ассоциация производителей упаковки из картона, работающая с 1963 года. Организация формирует прозрачный рынок отрасли и поддерживает обмен данными между участниками.
Цифровая инфраструктура ассоциации — ключевой инструмент этой работы: через сайт участники получают доступ к технической информации, отчётам и статистике отрасли.
На момент обращения у ассоциации существовали два отдельных сайта на Drupal 7:
- информационный сайт-визитка;
- система с отчётами, статистикой и личным кабинетом участников.
- оба решения развивались независимо друг от друга и со временем накопили значительный технический долг, усложняющий поддержку и развитие системы.
Перед веб-студией НАДО стояли задачи:
- перенести оба проекта с Drupal 7 на Drupal 8;
- объединить их в единую систему;
- сохранить всю существующую функциональность без редизайна;
- снизить стоимость дальнейшей поддержки и развития.
Первый сайт представлял собой контентный портал с относительно простой структурой.
Второй — сложную систему работы с данными, накопленными за десятки лет. На его основе формировались:
статистические отчёты;
гистограммы производительности оборудования;
сравнительный анализ производственного оборудования.
Функциональность была реализована через административную панель Drupal и личные кабинеты участников.
Ключевая сложность заключалась в том, что система была построена как набор слабо связанных между собой модулей, часть логики существовала в виде кастомного PHP-кода вне стандартных подходов Drupal.
Каждый участник ассоциации имел доступ к закрытой панели управления.
Внутри системы реализованы функции:
ведение базы технических характеристик оборудования;
сравнение станков по параметрам;
построение гистограмм производительности;
доступ к отчётам и материалам встреч;
работа с контактной базой участников.
В разделе Machines пользователи добавляли новые единицы оборудования через Drupal-админку. Каждая запись содержала набор технических параметров, определяющих структуру дальнейших расчётов.



За годы работы системы накопился большой объём данных о промышленном оборудовании:
производительность;
износ;
параметры обслуживания;
исторические изменения характеристик.
При миграции особую сложность представляла неоднородность данных: даже одинаковые типы оборудования могли отличаться набором параметров, что исключало возможность унифицированного переноса таблиц без переработки структуры.

Ключевые параметры (тип оборудования, производитель, диапазон дат изготовления) были сохранены как базовые для построения аналитических отчётов.


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


На этапе глубокой разработки команда столкнулась с существенным объёмом legacy PHP-кода.
Система содержала:
нестандартные реализации форм и отчётов;
отсутствие единых архитектурных паттернов Drupa;l
слабую связанность данных между модулями;
ручные и частично дублирующиеся вычисления.
Это создавало накопленный технический долг, который ограничивал масштабирование и усложнял любые изменения.
В рамках проекта был выполнен рефакторинг критических частей системы, что позволило:
привести код к более предсказуемой структуре;
снизить сложность поддержки;
уменьшить количество скрытых зависимостей;
подготовить систему к дальнейшему развитию.
Отдельной сложностью стала разница между Drupal 7 и Drupal 8: архитектурные изменения потребовали не прямого переноса, а фактически пересборки логики данных и модулей.
Несмотря на сложность legacy-архитектуры и накопленный технический долг, команде НАДО удалось:
объединить два независимых сайта в единую систему;
сохранить всю функциональность без потери пользовательских сценариев;
перенести сложную расчётную логику и формулы;
переработать устаревший код и снизить объём технического долга.
Оптимизация архитектуры и кэширования позволила значительно повысить производительность системы. Время отображения первого интерактивного элемента страницы снизилось с 7,1 до 1,1 секунды, что ускорило работу с отчётами и построение гистограмм.