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

Изображение: Magnific.com
Когда иностранный вендор покинул российский рынок, один из крупнейших международных табачных холдингов остался без техподдержки критичной производственной системы. Поломка любого аппаратного модуля грозила полной остановкой конвейера. Команда продуктово-сервисной компании 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 , Автоматизация промышленности