Интеграция без драмы
Как внедрять сторонние решения и не потерять деньги бизнеса и свой собственный сон?
Однажды один разработчик имплементировал свою первую интеграции и её наконец-то доставили в продакшн. На следующий день рано утром его разбудил звонок продакт-менеджера: у клиентов списывались деньги, а информация в системе не отображалась. Проблему пофиксили, но часть заказчиков из-за негативного опыта ушла.
Маргарита Моногарова больше восьми лет назад начала работать backend-разработчиком и более двух лет возглавляет команду интеграций в Altenar. За это время она собрала много историй, когда что-то пошло не так, и теперь точно знает, что можно сделать, чтобы избежать драматических последствий third party интеграций. Делимся советами Маргариты.
📝 Не верьте документации на 100 процентов
Разработчики привыкли к инструкциям, где можно узнать что-то новое, например, о фреймворке, понять подводные камни. Но провайдеры не будут сообщать обо всех возможных проблемах. Никто не на напишет: «Извините, пожалуйста, у нас бывают сбои». В документации просто максимально опишут свой API. Дай Бог, чтобы хорошо описали. Это просто контракт, не более. Кроме того, само решение может «убежать» вперёд, а документация ещё не успела обновиться.
🧪 Не верьте тестам
Они никогда не покроют все кейсы. Вы не сможете иногда даже додуматься до тех кейсов, которые случаются. Если ты делаешь какую-то бизнесовую фичу, которая в твоей системе, чаще всего ты можешь учесть и прописать большинство кейсов, если додумаешься. Но в случае внедрений не все кейсы очевидны. Интеграция — это сторонняя система. Очень многое зависит от неё. Тест на то, что она не отработала корректно, предусмотреть можно, но, что именно пойдёт не так, предугадать очень сложно.
👀 Всегда ждите подвох
Прислушивайтесь к своей интуиции. Если же речь идёт о платёжных интеграциях, даже малейшее сомнение — повод, например, не обрабатывать платеж и выбросить alert. Будьте аккуратны.Логируйте все, что может пригодиться при разборе инцидента!Некоторые проблемы могут прятаться очень долго. Если вы используете какое-то неперсистное хранилище, где логи хранятся только месяц, вы просто не раскопаете всю необходимую информацию, а это не те вопросы, которые вы можете оставить неотвеченными. Как-то мы трижды отправляли запросы на вывод денежных средств на счёт пользователя, потому что провайдер падал по таймауту. В итоге деньги были списаны три раза. Но мы сохранили все логи и смогли предоставить провайдеру доказательства, что ответственность за списание средств на нём. Деньги клиенту компенсировал провайдер.
🛠 Проектируйте на берегу
Это не значит, что нужно сразу продумывать миллион вариантов и заниматься оверинжинирингом. Речь о том, чтобы предусмотреть очевидные ситуации. Например, не так много времени займет сделать решение, которое позволяет работать сразу нескольким провайдерам одновременно. Однако это избавит вас от огромного количества головной боли при добавлении нового провайдера.
🏃 Будьте проактивны!
У бизнеса бывают нереалистичные ожидания. Не стоит бояться говорить о каких-то рисках и проблемах, потому что решать их придётся именно разработчикам, а в случае с интеграциями ещё и экстренно. Кроме того, бизнес может просто не знать какие-то нюансы. Поэтому, если ты работаешь, например, с платёжным провайдером и видишь дыры в безопасности, тебе стоит об этом сказать. Какие-то проблемы бизнес все-таки учтёт на берегу. Не всё, конечно, будем реалистами, но по крайней мере так у вас получится избежать хотя бы части инцидентов и экстренных фиксов.
Хотите услышать больше историй об IT? Если да, то подписывайтесь на наш основной блог в Telegram, чтобы получить больше опыта от экспертов из Altenar.