Hitech logo

Кейсы

Системы будущего: инженер Роман Дубинин об инновационной платформе Mockachu и работе с Atlassian

TODO:
София Головина19 декабря 2025 г., 09:35

Роман Дубинин — инженер и архитектор с 20-летним опытом создания масштабируемых и отказоустойчивых платформ в Java-экосистеме. Запускал новые технологические продукты для Atlassian, ВТБ и ряда российских high-tech компаний: от системы аварийного восстановления для Managed Data & Analytics в США до онлайн-брокера и централизованной платформы управления корпоративной цифровой инфраструктурой.

Самые интересные технологические и научные новости выходят в нашем телеграм-канале Хайтек+. Подпишитесь, чтобы быть в курсе.

Роман на протяжении всей карьеры инженера-разработчика ПО работает с ведущими ИТ-компаниями, в том числе с EPAM. Его заслуги отмечены на международных конкурсах, а профильные хакатоны стараются заполучить специалиста в качестве жюри.

Мы встретились с Романом и обсудили, в чем основные принципы проектирования отказоустойчивых систем, какие условия необходимы для развития современных облачных систем и в чем особенность работы с крупными финтех-компаниями. В интервью Роман эксклюзивно делится своей разработкой — платформой Mockachu, за которую 3 декабря он получил награду как ИТ-инноватор на втором всероссийском конкурсе «Эра Инноваций».

— Роман, вы более 10 лет работаете над проектированием отказоустойчивых систем, в том числе создавали проекты для таких компаний как ВТБ — одного из ведущих банков в России. В чем заключаются главные принципы внедрения технологических инноваций в такой крупной компании?  

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

И заканчивается все вопросом «Как?». Я выбираю быстрые эксперименты и прототипы (так появилась созданная мной платформа Mockachu), управление рисками проекта и взаимодействие с другими командами.

— Вы разработали платформу Mockachu, инновационный инструмент для Java-разработчиков, который повышает качество и надежность сервисов. Расскажите, какие задачи она решает?

— Mockachu — это платформа для автоматизированного мокирования и тестирования API, ориентированная на Java-разработчиков и команды, создающие распределенные системы.

Платформа сокращает время разработки и тестирования API за счёт мгновенной генерации mock-сервисов на основе OpenAPI-спецификаций, а также быстрого создания и изменения моков прямо во время функционирования системы. Снижение времени на создание моков составляет от 50% (при отсутствии готовой OpenAPI-спецификации) до 90% при ее наличии, а риск ошибки устраняется вовсе.

Если говорить проще, сервис устраняет один из ключевых барьеров в Java-разработке — сложность интеграционного тестирования в условиях отсутствующих или нестабильных внешних систем.

Mockachu одновременно поддерживает мокирование и привычных API и Kafka, что делает его особенно важным для команд, работающих с event-driven архитектурами и высоконагруженными Java-системами. Платформа снижает стоимость тестирования, ускоряет time-to-market и уменьшает риски ошибок интеграции — факторы, критически важные для современной enterprise-разработки.

— Звучит впечатляюще, а есть ли примеры интеграции платформы в реальные проекты?

— Да, безусловно. Решение уже доказало свою ценность на проекте для ВТБ как инструмент, повышающий качество разработки, скорость поставки и надежность сервисов. Была задача создать сервисно-ориентированное финтех решение. Но после старта разработки мы поняли, что сервисы, от API которых мы зависим, не будут реализованы в срок, и дедлайны нашего проекта тоже будут сдвигаться.

Поэтому мы создали моки внешних сервисов. Это решение оказалось очень своевременным, так как позволило нам полностью забыть о графиках других команд. В итоге система была создана вовремя. Более того, я получил ценный опыт применения Mockachu на реальном проекте. Если бы на данном проекте мы не применяли моки, то отставание сроков проекта могло бы составить до 6 месяцев, до 40%.

Также платформа Mockachu была применена в компании Солар на одном из проектов для решения аналогичной проблемы. Сервис, с которым шло взаимодействие, еще не был готов. Чтобы не тормозить разработку, наша команда создала моки на основе контракта API (без готовой OpenAPI документации) буквально за 10 минут. В результате мы реализовали проект быстрее и смогли избежать ограничений во время разработки. Экономия времени для данного этапа проекта составила около 10%.

— Вы много лет работали в международной IT компании EPAM и управляли разработкой на проекте для Atlassian. Какие фреймворки использовали, чтобы повысить производительность?

— Это был интересный проект, в результате которого удалось создать систему восстановления после сбоев (Data Recovery). Мы использовали Java 11, фреймворк Spring, базу данных Postgres, платформы AWS (я являюсь AWS Certified Developer) и Databricks. В итоге удалось создать мощное облачно-ориентированное решение. Также в рамках проекта у меня в команде был QA инженер, 2 дата-инженера, SRE-инженер и 3 BE.

Основная сложность заключалась в том, чтобы система смогла перемещать огромные объемы данных (несколько петабайт) согласно оговоренному SLA. Потребовался анализ нескольких отраслевых решений и подходов, в результате которого было представлено несколько вариантов архитектуры с их плюсами и минусами.

Еще одним осложняющим фактором стало требование минимизировать риски намеренной порчи данных внутри компании. Для этого мне пришлось изучить все предоставляемые внутренними платформами инструменты.

— Мы всегда надеемся, что оборудование и инфраструктура будут работать чётко, надёжно, и без поломок. Тем более в компаниях, где сбои ведут к большим финансовым потерям. Но без ошибок современные сервисы практически не бывают. В чем главные принципы построения отказоустойчивых систем?

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

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

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

— Какие условия необходимо соблюдать для разработки масштабируемой системы? Какие самые частые ограничения вам приходилось преодолевать?

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

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

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

— В каких сферах сложнее всего создавать отказоустойчивые и масштабируемые системы?

— Чем выше нагрузка, требования к работе в реальном времени и цена ошибки, тем сложнее будет создать систему. Это сферы, связанные с здравоохранением, финансами (в том числе высокочастотной торговлей) и критическими для функционирования общества системами и инфраструктурой. Там требуется максимальная точность в решениях, поскольку любая ошибка сказывается на миллионах пользователей или ведет к финансовым потерям.

— Вы как-то отмечали, что предпочитаете оставаться Hands-on инженером и стараетесь оставлять время на разработку кода. При этом вы неоднократно участвовали в хакатонах как жюри (Good for tech, Summit Fall 2025), состоите в ассоциации AITEX…Как удается совмещать профессиональную деятельность с развитием индустрии?

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

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

Участие в жюри, ассоциациях и конкурсах к тому же расширяет кругозор: я вижу, куда движется рынок, какие подходы и технологии появляются. Могу осознанно привносить знания в свою работу.