Промышленные компании работают с сотнями цифровых и математических моделей. Мы в «Северстали» разработали схему, которая стандартизирует этот процесс. Я, Максим Андреев, архитектор MES "Северстали" расскажу, как мы к ней пришли. Моделирование в промышленности применяют уже десятки лет. Речь не только о визуализации трехмерных предметов, но о подходах, позволяющих воспроизвести в виртуальном пространстве все зависимости и взаимосвязи объектов друг с другом, окружающей средой и инфраструктурой. Особенно часто цифровые модели находят применение в условиях, когда построить физическую установку и воспроизвести производственный процесс или невозможно, или цена ошибки высока. Например, нефтегазовые компании используют моделирование для оценки воздействия морской среды на колонны буровых вышек.  Так, еще несколько лет назад специалисты из Калифорнийского университета разработали метод их защиты от поверхностных волн. Они предложили установить на морское дно рядом с нефтевышкой специальные бетонные блоки, ослабляющие поверхностные волны. Их точное расположение и форму как раз определили с помощью компьютерного моделирования. Если говорить о предприятиях металлургического сектора, они используют виртуальные модели для отладки технологических процессов (горячей и холодной прокатки, шихтования доменных печей и износа футеровки сталь-ковшей). Мы в «Северстали» применяем конечно-элементное моделирование, чтобы определить параметры намотки стальных труб на катушки. Такой подход позволяет нам определить максимальную толщину стенок трубы, марку стали и какое усилие необходимо для смотки и размотки. Подробнее о том, как это устроено, мы уже рассказывали на Хабре. Обычно крупные холдинги и заводы работают с десятками, если не сотнями цифровых моделей. Это могут быть алгоритмические, имитационные или статистические модели, и масштабировать такой зоопарк достаточно сложно. Дело в том, что доступ к моделям чаще всего имеют только сотрудники, занимающиеся их поддержкой и развитием. При этом пользователи, которые работают с данными симуляций, получают результаты в формате электронных таблиц или распечаток. Такой подход замедляет производственные и усугубляет бюрократические процессы.  Бизнес-процессы предприятия станут более прозрачными, если сделать результаты компьютерного моделирования доступными широкому кругу пользователей. Для этих целей мы выработали единую схему внедрения и сопровождения моделей. Нашей целью было объединить на одной платформе задачи CI/CD и мониторинга, а также вопросы, связанные с хранением результатов расчетов в БД (Oracle) для их дальнейшего тиражирования.  В основу нового подхода мы решили положить микросервисную архитектуру. У нас уже были определенные наработки в этом направлении, так как незадолго до начала нового проекта мы внедрили MES-систему. Нам удалось адаптировать ключевые сервисы, связанные с авторизацией, созданием инцидентов, работой со справочниками и gateway. Но дополнительно пришлось интегрировать сервисы, отвечающие за производство, качество и графикование. Что важно, переход на микросервисы положительно отразился поддержке моделей. Так, каждая из них представляет собой отдельный сервис, который можно независимо масштабировать. Изолированность позволяет развивать и сопровождать их без риска «сломать» другие функционирующие модели. В итоге имеющиеся наработки и подготовленная аппаратная среда позволили нам оперативно запустить систему управления моделями. На первом этапе инженеры от бизнеса прорабатывают MVP новой модели. Они начинают с исследования предметной области и изучают уже написанные НИР. Иногда в этом процессе участвуют сотрудники центра технического развития и подрядчики. Как правило, все модели реализуются на Python, но бывают и исключения — например, модель для расчета ферросплавов в Цехе внепечной обработки конвертерной стали (ЦВОКС) построена на C#. Когда MVP готов, к процессу подключается наша команда разработки. В неё входит несколько frontend- и backend-разработчиков, а также три DevOps-инженера. Двое отвечают за настройку CI/CD и мониторинг сервисов, а третий — за работоспособность всей инфраструктуры. Мы разрабатываем графический интерфейс и адаптируем модель к работе на предприятии. Для этого DevOps-специалисты выгружают код в наш репозиторий и настраивают соответствующие сценарии развертывания. Для построения UI мы используем возможности MSA, поэтому пользовательские интерфейсы получаются в едином стиле. Обычно на создание UI уходит от двух до четырех недель, в зависимости от сложности модели. Если говорить о полном пайплайне разработки, то он занимает от полугода до года. Общую схему работы можно представить следующим образом: Мы продолжим развивать свою схему работы с моделями внутри компании. Одно из перспективных направлений — автоматизация подключения новых моделей к сервису. Так, разработчики смогут самостоятельно регистрировать свои модели и открывать к ним доступ для широкого круга пользователей. Конечно же, по мере развития продукта мы будем делать ставку на его гибкость, возможности и эффективность работы. Поделитесь с нами опытом управления моделями процессов в комментариях. А мы продолжим рассказывать о ходе разработки решения в нашем блоге на Хабре. Больше о процессах внутри металлургической компании: Как создавать дашборды, которыми реально будут пользоваться Зачем инженеру-конструктору нужны свойства материала и где их взять Смотрим на металлолом глазами Хищника: как это помогает в производстве стали