Наша интеграция с Яндекс.Едой
Продолжаем развивать сервис доставки еды. Осенью мы выпустили новое приложение для наших курьеров, чтобы доставка была ещё качественнее и лучше. А этой зимой планируем завершить интеграцию с Яндекс.Едой, что позволит большему количеству людей узнать о высоком качестве нашей продукции. Также упростит заказ вкусной еды, ведь чем больше способов, тем удобнее.
Интеграция информационных систем (ИС) — это процесс формирования сквозных бизнес-процессов между несколькими информационными системами.
Информационные системы интегрируют для того, чтобы ускорить выполнение бизнес-процессов, уменьшить вероятность ошибок информационного обмена между организациями и отделами, минимизировать ручные операции в процессах и упростить клиентский путь.
Планирование «свадьбы»
Взявшись за выработку решения для соединения двух систем — нашей Единой системы автоматизации (далее ЕСА) и Яндекс.Еды, разработчики из команды R, которые взялись за этот эпик, могут описать опыт так: поиск оптимальных решений занимает больше времени, чем реализация самого решения. И всё оказалось гораздо сложнее, чем простой перебор вариантов на мозговом штурме.
В процессе аналитики и составления плана работ мы очень часто обращались к технической поддержке Яндекс.Еды.
И, не кривя душой, мы были разочарованы этим аспектом нашего знакомства. Ответы были долгими; иногда «не в тему» (уточняем спецификацию, а нам рассказывают, как настроить что-то в iiko). Обращения закрывались после двух суток тишины, и приходилось начинать объяснять сначала один и тот же вопрос, всего лишь для уточнения деталей, прорываясь через несколько линий технической поддержки. Несоответствие доступной технической документации и реальности (несколько раз тех. поддержка опровергла собственную спецификацию и вносила в неё изменения после указания ошибок).
Взаимодействие с технической поддержкой Яндекс.Еды сопровождалось задержками в ответах, не всегда релевантными рекомендациями и несоответствиями между документацией и реальными возможностями системы. Постоянная необходимость уточнений и корректировок плана существенно замедлила процесс.
Первые шаги
Первое, что было нетипично для нашей системы, — это модель взаимодействия между системами. Яндекс.Еда хочет, чтобы мы реализовали несколько эндпоинтов на стороне нашей ЕСА. Соответственно, это предполагает, что источником истины для цен и характеристик заказа служат запросы из Яндекс.Еды. Для этого нужно было настроить наши собственные протоколы безопасности.
Сложность увеличивается
Следующим действием стала «свадьба» между нашим меню и тем, как меню хочет видеть Яндекс. Так как это агрегатор, который собирает предложения меню с абсолютно разных систем и ресторанов, то его спецификации максимально упрощены. Наша же ЕСА направлена на улучшение работы каждого аспекта процессов предприятия и имеет более сложную и взаимосвязанную структуру.
И с каждым новым уточнением тех. поддержки Яндекса, мы все дальше отдалялись от финальной планируемой реализации и вновь обдумывали, как эффективнее и проще решить сложности новых условий. Нам пришлось изменить давно устоявшийся код создания заказа — модули «Оператор» и «Логист».
Интеграция нашей системы автоматизации с Яндекс.Едой оказалась непростым процессом. Первоначальное планирование существенно недооценило сложность задачи. Согласование двух систем с принципиально разной архитектурой потребовало значительных усилий. Наша ЕСА, ориентированная на детальное управление внутренними процессами, столкнулась с упрощённой системой Яндекс.Еды, предназначенной для агрегации данных от множества ресторанов.
Но реализация всё ближе
Мы реализовали специальные функции для выгрузки зон доставки. Добавили новые характеристики продукции в меню. Реализовали новый канал создания заказа, где истиной ценой является внешний сервис и ещё много других изменений. Из-за особенностей работы сервиса Яндекс.Еды нам было необходимо добавить некоторое количество новых проверок, потому что сервис работает не с маленькой задержкой. Обновление тех же стоп-листов происходит с периодичностью 5-15 минут, когда у нас всё резервируется и проверяется «на лету».
Выводы
Проект интеграции с Яндекс.Едой продемонстрировал значительные сложности, связанные с различиями в архитектуре и принципах работы интегрируемых систем. Процесс потребовал существенных изменений в коде ЕСА и значительных временных затрат на согласования и уточнения. Общение с технической поддержкой Яндекс.Еды было затруднительным пунктом, помимо остальных трудностей. Полученный опыт подчёркивает важность тщательного планирования и оценки сложности при интеграции с внешними сервисами, а также необходимость чёткой и оперативной технической поддержки со стороны партнёров.
К сожалению, изменения в сфере разработки — это неизбежность. Требования меняются постоянно, от этого не застрахован никто. Но если процессы внутри компании прозрачные и гибкие, а документация позволяет обосновать каждое решение, то крутой поворот не собьёт вас с толку даже на финальных этапах проекта.
В целом, проект показал значительную сложность интеграции систем с различной архитектурой. В таких делах критически важно закладывать дополнительные временные и ресурсные резервы на подобные проекты, чтобы минимизировать риски задержек и отклонений от плана.
В конечном итоге, успех реализации любой интеграции зависит от правильного планирования, технической подготовки, соблюдения стандартов и обеспечения безопасности данных, а также от учета потребностей пользователей и обратной связи.