Виктор Молодцов, «БКС Мир инвестиций» - о развитии брокерского бизнеса на технологиях Open Source и микросервисах
Развитие брокерского бизнеса можно успешно вести на основе стека современных технологий, широко используя свободное ПО, контейнеризацию и микросервисы. При этом проектные команды имеют высокую степень самостоятельности, работая по принципам Agile. Об этом в интервью TAdviser рассказал Виктор Молодцов, CTO направления Broker business финансового холдинга «БКС Мир инвестиций».
Какова роль Open Source в ИТ-системах БКС? Возрастает ли она?
Виктор Молодцов: Наш принцип подбора инструмента достаточно прагматичен - мы ориентируемся на те средства, которые позволяют наиболее эффективно решить конкретную задачу. Действительно, в последнее время многие компании стали активно интересоваться продуктами на базе открытого кода. Если ранее большие компании были озабочены созданием монолитных ERP-систем, под которые требовались высокопроизводительные базы данных.
Естественно, в тех случаях выбор СУБД был весьма ограничен: найти среди Open Source решений что-то сравнимое с Oracle или хотя бы с Microsoft SQL было почти невозможно. В настоящее время строить монолитные системы – это в какой-то степени моветон. Например, мы уже давно ориентируемся на микросервисную архитектуру, при которой использование проприетарных продуктов и покупка лицензий становятся весьма затратными мероприятиями. Как следствие, роль свободного ПО только возрастает.
Мы стараемся использовать Open Source там, где это возможно. Это, прежде всего, базы данных (PostgreSQL, Mongo DB, Redis, Apache Kafka). Там, где нет достойной замены проприетарным решениям, мы, конечно, не будем переходить на Open Source. Так, одна из последних крупных закупок включала лицензии AppDynamics от компании Cisco. Это ПО позволяет проводить мониторинг различных сервисов – от фронт-офисных приложений до набора глубоких бэк-офисных программ – и наглядно демонстрировать результаты. Аналогов этому продукту мы пока не видим, хотя широко используем Grafana – мультиплатформенное приложение на основе открытого кода, предназначенное для мониторинга, аналитики и визуализации. Как DevOps-сервис помогает «разгрузить» высоконагруженные системы BPMSoft
Могу сказать, что у нас в компании нет запретов на использование Open Source, различные решения довольно легко проходят аудит информационной безопасности, новые фреймворки и базы данных принимаются очень быстро. Мы постоянно изучаем новые продукты на основе свободного ПО и оцениваем их перспективы для внедрения. Единственный негативный момент здесь связан с поддержкой: чем больше Open Source решений мы привносим, тем выше накладные расходы на DevOps-инженеров и службы эксплуатации. Но с этим сталкиваются все.
Расскажите о вашей команде. Какие специалисты у вас в штате, а каких вы привлекаете на аутсорсинге?
Виктор Молодцов: На сегодня в моей команде более 150 человек. В настоящее время она активно доформировывается, и мы перераспределяем зоны ответственности. Я отвечаю за весь технологический стек брокерского направления «БКС Мир инвестиций»: это и различные бэк-офисные системы, где ведутся расчеты по сделкам клиентов, начисляются комиссии, проводится работа по удовлетворению требований ЦБ и т.д., а также фронт-офис, то есть системы, которыми непосредственно пользуются клиенты брокерского бизнеса: торговые терминалы QUIK, популярные у профессиональных трейдеров, и торговая часть, относящаяся к нашему мобильному решению «БКС Мир инвестиций». Стек технологий достаточно широкий – он начинается от 1С и старых версий платформы .NET и заканчивается передовыми средствами – микросервисами на Java, .NET Core, Python, обвязка из автотестов и многое другое.
Что касается аутсоринга, то мы его используем, но не очень активно. Мы используем аутсорс для увеличения capacity внутренних команд при необходимости. Кроме того, потребность в аутсорсинге часто возникает в процессе запуска новых проектов. Бывает так, что нужно оперативно собрать команду, но все текущие команды в это время оказываются заняты. В этом случае мы обращаемся к сервисной компании, которая подбирает коллектив специалистов, готовых выполнить для нас задачу «под ключ».
Вряд ли кто-то будет отрицать, что необходимо постоянно вкладываться в обучение сотрудников и развитие их компетенций. И на мой взгляд, все равно лучше инвестировать в развитие собственных команд, чем регулярно тратить деньги на привлечение специалистов со стороны. На собственном опыте мы убедились, что внутренние команды в целом эффективнее аутсорсинговых.
Есть ли направления, где вы не готовы доверить выполнение работ аутсорсерам и полностью полагаетесь на собственные команды?
Виктор Молодцов: Как правило, не стоит отдавать на аутсорсинг поддержку функционала, выступающего основным для бизнеса. Если говорить о брокерском бизнесе, то это все, что связано с торговлей ценными бумагами, соответствующие системы полностью разрабатываются собственными силами. Все-таки брокерская деятельность достаточно сложная, и только в последнее время люди начали понимать ее специфику. Чтобы качественно реализовать ИТ-проект для бизнеса, необходимо достаточно глубокое погружение в тему, доскональное понимание того, почему надо делать оптимальные алгоритмы и как это влияет на клиентов. И здесь со своими командами намного проще, чем с аутсорсерами.
Поскольку мы относимся к числу финансовых организаций, то специалисты компании-аутсорсера не имеют никакого доступа к «боевой системе» и базе данных. Но внутри себя мы можем организовать DevOps-команду, которая будет заниматься развитием системы и ее сопровождением, что дает хороший импульс производительности.
Вы уже упомянули о методологиях разработки. Каковы принципы выбора методологии приняты в вашей компании?
Виктор Молодцов: Как раз недавно у нас возникла дискуссия по выбору методологии. Я давно являюсь сторонником методологии Scrum, но это не значит, что я отрицаю Kanban или другие принципы. Существует модель Кеневин (Cynefin Framework), согласно которой все задачи подразделяются на четыре подвида. Простыми задачами можно управлять методом инструкций. Для сложных, но понятных задач хорошо работает линейная модель потока (Waterfall), она позволяет экономить ресурсы. Если же задачи сложные и непонятные, тогда необходимо применять Agile. Наиболее справедливо это для продуктовой разработки, когда постоянно приходится делать что-то новое. Поэтому мне приходится чаще всего работать именно с Agile, выбирая между Scrum и Kanban.
На своих тренингах внутри компании я всегда заостряю внимание слушателей на том, что нельзя противопоставлять Scrum и Kanban. Если повестка или бэклог формируются внутри команды, то лучше ориентироваться на Scrum. Если же задача поступает извне (например, тикеты от пользователей в службу эксплуатации), то речь идет о сервисной разработке, поэтому здесь мы обычно выбираем Kanban.
Как ваша компания трансформировала ИТ-инфраструктуру в последние годы исходя из планов цифровизации? Какие наиболее яркие проекты вы можете отметить?
Виктор Молодцов: Пожалуй, ключевым проектом, над которым мы работали в последнее время, стало создание мобильного решения «БКС Мир инвестиций» - оно полностью базируется на микросервисном слое. Мы использовали довольно свежий стек технологий: Kubernetes, Docker, CI/CD, обвязка непрерывными средствами мониторинга. В плане цифровизации мы подошли к задачам по реализации двух глобальных проектов. Во-первых, это развитие приложения, где очень важна доступность решений, поэтому нам предстоит перейти на гибридное облако. Во-вторых, у бизнеса есть потребность в развитии глубоких бэк-офисных систем: их работу необходимо проанализировать, в результате чего мы должны будем определиться с тем, какие системы можно оставить, а какие необходимо будет заменить с учетом вызовов, которые принес 2021 год, и которые могут возникнуть в следующие годы. В рамках этой части проектов наша команда, скорее всего, будет унифицировать технологический стек и постепенно переводить всю платформу на микросервисы. Мы боремся за максимально гибкую архитектуру, чтобы любые задачи можно было решать быстро.
Какие технологии вы считаете перспективными для развития стека своих корпоративных решений?
Виктор Молодцов:На сегодня многие компании делают ставку на стек микросервисов и Java. Но есть определенная проблема с Java-разработчиками: их относительно несложно растить в компании, но довольно тяжело удержать. Поэтому мы не привязываемся к конкретному языку программирования и научились работать с гетерогенными микросервисами. Они у нас разработаны не только на Java, но и на таких языках, как .NET Core, Python. Думаю, если мы найдем еще какой-нибудь подходящий язык, то мы и его без проблем «затянем» в свой стек. Большой плюс микросервисов в том, что их можно писать практически на любом языке. Скорее всего, вскоре мы попробуем средства JavaScript.
Ориентируясь на микросервисы, мы внимательно отслеживаем новые технологии, прежде всего Open Source, чтобы оперативно подтягивать их в наш технологический стек.
С точки зрения инфраструктурных решений, пока у нас есть два лабораторных проекта, которые мы можем начать через некоторое время. Речь здесь об ARM-серверах, которые показывают очень высокую плотность процессоров. Кроме того, мы надеемся, что у нас получится использовать для вычислений графические процессоры (GPU).
Какие принципы позволяют грамотно управлять проектными командами?
Виктор Молодцов: Так как мы почти везде используем Agile, то этот процесс практически немыслим без института Владельцев Продуктов (Product Owner). Поэтому мы внутри нашего коллектива выстроили весьма понятное разделение. Я, как CTO, обеспечиваю методологии разработки и технологический стек, помогаю решать командам сложные технические вопросы.
При этом Владельцы Продуктов обеспечивают бизнес-ценность, которую генерируют проектные команды. То есть каждый Product Owner непосредственно управляет ожиданиями бизнес-заказчиков, воспроизводит проектную повестку каждой команды. В такой структуре мы отводим большую роль именно самостоятельности команды. Мы добились того, что некоторые команды не имеют тимлидов, а каждый сотрудник подчиняется непосредственно мне. При этом участники команды прекрасно работают за счет того, что для них понятно поставлены задачи и у них развито командное взаимодействие. В решение каждой задачей они включаются не по отдельности, а именно командой.
Как это ни странно звучит, но моя конечная цель состоит в том, чтобы я вообще перестал быть нужным командам. И она вполне реальна. Если все команды станут самостоятельными, то моя роль сойдет практически на нет и я буду заниматься только верхнеуровневыми задачами. Именно поэтому мы много сил тратим на обучение сотрудников, развитие командных практик. В результате люди сами приходят к пониманию того, как делать лучше.
Расскажите о готовящемся мероприятии BCS Coding Days. Каковы его основные цели?
Виктор Молодцов: Это онлайн-мероприятие пройдет 4-5 декабря. На нем будут соревноваться системные аналитики, а также Android- и Java-разработчики. Участникам предстоит побороться за призовой фонд в размере 1,5 млн рублей, решая предложенные нами задачи по созданию различных инструментов. Онлайн-формат подобного мероприятия новый для нас, но я считаю его очень интересным, поскольку это индивидуальные соревнования. Сам я по образованию математик, и еще в школе мне доводилось участвовать в различных олимпиадах, связанных с программированием. И мы решили провести собственную олимпиаду, на которой силами могут померяться разные разработчики. На BCS Coding Days, прежде всего, можно показать свои индивидуальные навыки, свой «скилл».
Для нас подобное мероприятие – это некий вызов, но он хорошо мотивирует команду, так как мы должны предоставить участникам возможность проверять свои разработки в равных условиях, то есть на одинаковой инфраструктуре. Необходимую облачную инфраструктуру нам предоставит резидент фонда «Сколково» компания [G-Core Labs], а мы со своей стороны разработали CI/CD-пайплайны, чтобы каждый участник соревнований мог оперативно оценить оптимальность написанного им кода, время выполнения авторских алгоритмов и т.д.
Главная цель мероприятия – найти для нашей команды перспективных кандидатов, которые смогут помочь нам в реализации различных проектов. Я абсолютно искренне считаю, что у нас очень интересные задачи и у нас увлекательно работать. Также немаловажно то, что в мероприятие вовлечены действующие сотрудники: для них всегда важно сделать что-то новое и классное. Можно сказать, что BCS Coding Days – это соревнование, где можно и себя показать, и на людей посмотреть.