Миграция

Чему зависимость от одного небольшого провайдера учит о рисках поставщика

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

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

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

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

Подход на основе совместимости несколько меняет этот расчёт, потому что уменьшает ту часть стоимости миграции, которая приходится на ваш собственный код разбора. My Geocode предоставляет 17 совместимых хостов, которые в точности воспроизводят структуру запросов и ответов крупных провайдеров, включая Google Maps Platform, Mapbox, HERE, ipstack и другие, с документацией на /compatibility/. Это значит, что самой рискованной части вынужденной миграции, переписывания логики разбора в условиях нехватки времени, часто можно избежать, если для провайдера, от которого вы уходите, уже есть подходящий совместимый хост.

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