Содержание
В этой статье эксперты KT.Team дадут ответы на частые вопросы, которые возникают перед IT-директорами на пороге внедрения ESB: будет ли новая архитектура эффективной для бизнеса его компании? На какой бюджет реально рассчитывать и как этот бюджет защитить перед CEO или иным бизнес-заказчиком? Как отслеживать результаты каждого из этапов проекта?
К внедрению ESB-слоя компании походят с разным набором задач и разной проблематикой. Клиенты KT.Team, которые планируют внедрение ESB, чаще всего указывают такие причины:
Если вы регулярно сталкиваетесь с этими проблемами, то, вероятно, тоже задумывались об интеграционной шине. Но чтобы начать проект трансформации, необходимо учесть все риски и понять, насколько затянется переход. И не выйдет ли он дороже для компании, чем стратегия «оставить всё как есть».
Но, как писали Брайан Фут и Джозеф Йодер в статье Big ball of mud, «если вы считаете, что построить правильную архитектуру дорого, посчитайте, сколько вам стоит плохая архитектура».
В этой статье эксперты KT.Team дадут ответы на частые вопросы, которые возникают перед IT-директорами на пороге внедрения ESB: будет ли новая архитектура эффективной для бизнеса его компании? На какой бюджет реально рассчитывать и как этот бюджет защитить перед CEO или иным бизнес-заказчиком? Как отслеживать результаты каждого из этапов проекта?
Проект по внедрению ESB-шины можно разделить на три больших этапа:
Точно предсказать длительность проекта довольно сложно: она зависит от количества систем и потоков. В среднем без учета предпроектного периода внедрение ESB-слоя занимает полтора-два месяца до запуска MVP.
Откуда тогда берутся кейсы про полтора–два года (в лучшем случае)? Однозначного ответа нет. Иногда запуск MVP обновлённой архитектуры затягивается, потому что нужно связать десятки и сотни систем и выстроить тысячи коннекторов. Но чаще такой срок связан с тем, что пропущен этап предпроектного обследования. Как следствие, проект реализации не учитывает важных деталей по взаимосвязи систем, источникам и потокам данных, требованиям к пропускной способности middleware и т. д. Проектной команде приходится «на ходу» вносить изменения в проект, менять приоритеты, возвращаться к уже готовым потокам и переосмысливать их.
Почему так происходит? Чаще всего, причина в том, что в компании нет единого выстроенного центра знаний по всем процессам и взаимосвязям. Каждый из инженеров глубоко понимает свой участок: кластер систем и интеграций. Но полной картины нет ни у кого, потому что нет и потребности в ней.
Закрыть это слепое пятно позволяет предпроектный этап внедрения ESB-слоя.
Длительность: от 30 рабочих часов до 2–3 недель (в зависимости от количества систем и сложности проекта).
Результаты этапа:
Первая задача, которая стоит перед командой внедрения, — понять, с какой проблемой пришел клиент и какие требования к системе должны покрываться внедрением ESB. Само по себе внедрение никогда не является целью — только средством для решения проблем или бизнес-задач.
Например, стартап по автоматизации получения путевых листов для автопарков, обращаясь в KT.Team, хотел упростить будущее масштабирование и снизить количество ошибок при передаче данных. Рост количества партнёров приводил к перегруженности системы уже на первом десятке подключенных таксопарков, так как прямая интеграция занимала много памяти на серверах компании.
Отсутствие единого формата данных и потенциальная уязвимость прямых интеграций также были фактором при выборе будущей архитектуры.
Проанализировав запросы клиента, команда KT.Team составила список требований к новому решению:
Отталкиваясь от этих требований, команда внедрения смогла проработат конфигурацию новой архитектуры и перейти к выбору стека для проекта.
Иногда этот этап выглядит как необязательный и может восприниматься как бесполезная трата денег. Понять IT-директора, который отказывается от аналитики и просит сразу приступить к формированию новой архитектуры, легко: он уверен (или почти уверен), что:
Это справедливо, но с некоторыми оговорками. Как правило, команда действительно знает, как взаимосвязаны системы и как работают действующие интеграции. Но — локально, то есть отдельные инженеры «до запятой» знают свой участок архитектуры и весьма туманно представляют себе остальные её части. Единого представления, скорее всего, нет нигде.
Чем это опасно? Велик риск перенести старые проблемы в новый ландшафт. А ведь основная задача внедрения ESB — не «внедрить», а «улучшить».
Поэтому прежде чем переходить непосредственно к этапу внедрения ESB-слоя, нужно описать текущую архитектуру, установить все связи между сущностями системы и маршруты обмена данными, выявить конфликты и дублирования, зафиксировать мастер-системы по каждому типу данных.
Потребуются десятки интервью и схем, разработанных вместе с техническими специалистами компании и описывающих текущее состояние дел. На основе этих схем и будет сформирована карта As-Is — полное представление об IT-ландшафте компании на старте проекта со всеми трудностями, отказами, узкими местами и удачными решениями. Она поможет разработать новую архитектуру, более гибкую и масштабируемую.
Фаза аналитики — одна из самых трудоемких и времязатратных в рамках предпроектного этапа внедрения. Но впоследствии она позволяет сэкономить в три-пять раз больше времени, чем на неё затрачено.
На основе результатов анализа задачи и существующей архитектуры проекта, команда внедрения переходит к этапу выбора инструментов.
Этот этап предполагает работу с гипотезами и тесное взаимодействие с заказчиком, чтобы избежать откатов проекта из-за неподходящего инструмента на этапе разработки.
Сетевая компания, специализирующаяся на распространении эко-продуктов, обратилась к команде KT.Team для внедрения ESB-слоя. Основными требованиями заказчика были: разгрузить систему-источник (CMS), устранить проблему дубликатов сообщений в системе, сделать систему более отказоустойчивой и обеспечить защиту от ошибок при доставке сообщений.
Перед стартом проекта мы провели аналитику и выбрали инструментарий для проекта:
Однако в процессе обсуждения такой конфигурации с заказчиком, на нашей стороне появились сомнения, что с такой комбинацией мы сможем обеспечить быстрое подключение новых систем и реализовать функционал повторной отправки сообщений за определенный период времени.
В ходе решения проблемы, команда KT.Team выдвинула гипотезу, что для решения задач проекта стоит использовать промежуточное хранилище данных MongoDB вместо брокера сообщений. Использование промежуточного хранилища также позволило бы заказчику в последствии использовать BI-систему для подробной аналитики.
Благодаря внесенным изменениям, проект решения стал более функциональным и смог покрыть все требования заказчика. Финальная конфигурация была согласована, и мы перешли на этап реализации.
Последний шаг предпроектного этапа — валидация архитектуры проекта внутри команды и финальное согласование с заказчиком.
Чтобы минимизировать риск затягивания проекта, откатов и переделок, KT.Team разработала бизнес-процесс по подготовке к реализации интеграций:
Средняя длительность: около 40 часов одного разработчика на один поток. Общая длительность зависит от сложности и количества потоков, а также от количества разработчиков в команде внедрения.
Основные результаты этапа:
Конфигурирование промежуточного слоя часто требует большого объема работы по маппингу. Например, когда в системе-источнике 200 атрибутов, а в системе-приемнике — 100, часть из них составные, а некоторые берутся из другой системы-источника. Или системы содержат разные типы данных и разные поля. Всю логику надо выстроить и учесть, чтобы данные не терялись и попадали в системы-приемники в нужном объёме.
Наиболее трудоемкая часть этапа разработки — реализация самого сложного потока. По сути, на нем строятся все остальные потоки системы, выявляются подводные камни, а также решаются инфраструктурные ограничения, связанные с настройкой разрешения, публикации сервисов на стендах разработки.
Если команда пропустила или недостаточно проработала предпроектный этап, именно сейчас это начнет сказываться на скорости и качестве внедрения ESB.
Так, в проекте для стартапа по работе с таксопарками команда KT.Team тоже пропустила предпроектный этап. Как результат, коннекторы пришлось переделывать трижды, чтобы обеспечить работоспособность архитектуры. В первой версии все базы данных таксопарков опрашивались с помощью одного сервиса. Это экономило ресурсы сервера, но не обеспечивало отказоустойчивости: любая ошибка стопорила все последующие запросы.
Во второй версии шина подключалась к каждой базе через отдельный сервис — это исключало массовый сбой из-за одной недоступной базы данных, хотя и требовало больше ресурсов. Но такое решение включало в себя много дополнительных этапов, например, сбор и запись в лог всех ошибок.
Финальная версия архитектуры тоже была основана на отдельных сервисах для каждой точки подключения, но все они работали по единой схеме. Это облегчило добавление элементов в систему: чтобы добавить новый таксопарк, нужно скопировать один из существующих сервисов и немного изменить маппинг. Эта задача не требовала от сотрудников глубокого знания кода. В результате, реализованная сервисная шина позволила стартапу подключить более 10 таксопарков за 2 месяца.
Средняя длительность: 25–30 часов (в зависимости от сложности проекта)
Для того, чтобы поддерживать и масштабировать решение, заказчику нужны инструменты, которые позволят быстро вносить изменения в систему. Сама концепция ESB призвана облегчить эту работу: если в монолитных системах изменение в одной означало необходимость ручной доработки всех остальных, то промежуточный слой позволяет перевести этот процесс с разработки на конфигурирование. Достаточно всего лишь изменить настройки, чтобы поддерживать работу интеграции с новыми вводными.
Для того, чтобы облегчить поддержку системы сотрудникам компании-заказчика, на финальном этапе проекта команда внедрения готовит подробную документацию по построению интеграций: куда идти, чтобы выполнить нужное действие, какие блоки, элементы и подпрограммы использовать, как проверять работоспособность интеграций и т. д. Этот этап частично запараллелен с внедрением и настройкой.
Подробно составленная документация позволяет команде заказчика самостоятельно настраивать новые интеграции и поддерживать старые, в том числе и усилиями citizen-developer’ов — опытных пользователей, которые не являются разработчиками.
Ваша заявка отправлена успешно
Отправить снова
С вами свяжется персональный менеджер Сергей Влазнев