Как пересобрать производство без вендора: опыт реверс-инжиниринга системы управления для крупного табачного производителя

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

О заказчике

Заказчиком проекта выступил крупный международный производитель табачной продукции с локализованным в России производством.

Об исполнителе

ICL Services – продуктово-сервисная компания, работающая на российском и международном рынках с 2006 года, состоит в реестре аккредитованных ИТ-компаний Минцифры России. Компания предлагает широкий спектр продуктов и услуг: от аудита, бизнес-консалтинга и проектирования до полной интеграции с информационными системами заказчиков, поставки оборудования, выполнения проектов внедрения и дальнейшего сопровождения в режиме 24/7.

Предпосылки проекта

Геополитические изменения поставили заказчика перед фактом: иностранный вендор прекратил обслуживание критичной системы управления производством. Компания одномоментно лишилась не только обновлений, но и физической возможности заменить выходящие из строя аппаратные модули.

Проблема носила экзистенциальный для непрерывного цикла характер. Система плотно завязана на конвейерную логистику — любой сбой в программном обеспечении или отказ «железа» грозил параличом конвейера и прямыми многомиллионными убытками. Для предотвращения производственного коллапса заказчик оперативно привлек команду ICL Services.

Задачи проекта

Перед командой стояла цель не просто «починить», а восстановить полный контроль над производственным софтом. Задачи были поставлены следующие:

  • Обследовать производственную систему в её текущем состоянии;
  • Восстановить и детально описать архитектуру;
  • Получить исходный код, а для модулей, где он утрачен, — восстановить его из существующих сборок;
  • Настроить стабильную сборку и развёртывание системы в тестовом контуре;
  • Отладить бесшовное обновление системы в продуктовой среде;
  • Подготовить команду поддержки для дальнейшего исправления ошибок и реализации улучшений.

Ход проекта: пошаговое восстановление технологического суверенитета

Проект реализовали в четыре этапа, двигаясь от полной «чёрной коробки» к полностью управляемой и поддерживаемой системе.

Этап 1. Реверс-инжиниринг и восстановление структуры. В работу включились два опытных разработчика и проектный менеджер. Задачи разделили по компонентам системы: один специалист погружался в базу данных, второй — в само приложение и логику обмена данными. Инженеры провели реверс-анализ развёрнутых компонентов и восстановили:

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

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

Этап 2. Получение кода и пересборка проекта. Специалисты восстановили сборку и все зависимости — библиотеки, конфигурации, версии, — чтобы проект собирался стабильно и предсказуемо. Подготовили основу для дальнейшего развития: структуру репозитория, правила сборки и инструкции.

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

Этап 3. Стабилизация: исправление ошибок и управляемые релизы. Как только появилась пересобираемая версия системы, команда перешла к самой ценной для бизнеса фазе — возможности вносить изменения в исходный код и развёртывать новые версии на продуктивной среде. Для проверки подхода взяли в работу доработку по одному из приложений: изменение успешно разработали и внедрили в промышленную версию системы.

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

Технологический стек

  • Платформа: .NET 4
  • Пользовательский интерфейс: Windows Forms, Syncfusion UI Component Suite
  • Серверная инфраструктура: Windows OS, Microsoft SQL Server

Итоги проекта: ноль зависимости и снижение рисков простоя

Проект позволил перевести критичную производственную систему из режима «чёрного ящика» в полностью управляемое состояние со следующими бизнес-эффектами:

  • Исходный код и структура проекта восстановлены в документированном, сопровождаемом виде.
  • Восстановлена возможность сборки с изменениями в коде и подготовки релизов без участия вендора.
  • Подготовлена документация по архитектуре, модулям и зависимостям.
  • Зависимость от иностранного вендора в вопросах текущей эксплуатации и модернизации снижена до 0 %.
  • Сняты все барьеры для исправления ошибок и развития системы.
  • Риски простоев производства, связанные с ПО, сведены к минимуму.

Тематики: Интеграция

Ключевые слова: Импорто­замещение, ICL Services , Автоматизация промышленности