Size: a a a

SPb Reliability Meetup

2019 June 14

p

pragus in SPb Reliability Meetup
Dmitry Nazarov
1) какие паттерны и техники (инженерного характера) можно применить, чтобы снизить зависимость от такого? кэшить данные / написать на неё мониторинг / всюду ожидать что данные могут не дойти / логать ответы от неё? что я забыл?
Зависит же от того как с ней ты работаешь и что за данные в ней, насколько они часто меняются и можешь ли ты прожить без них
источник

DN

Dmitry Nazarov in SPb Reliability Meetup
pragus
Зависит же от того как с ней ты работаешь и что за данные в ней, насколько они часто меняются и можешь ли ты прожить без них
справедливо
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
Dmitry Nazarov
2) система изображает из себя stateless, а ведёт себя как stateful, причём в худшем проявлении (очень неявно внутри себя хранит какой-то стейт, вследствие чего падает при попытке поменять порядок обращений к ней). аналогичный вопрос: какие есть техники чтобы обложить такую фигню соломкой? только интеграционные тесты?
постоянные работающие интеграционные тесты, мониторинг к ним, специальный человек, который бьёт партнёра по голове при их поломке.

По моему опыту такие интеграционные тесты хорошо оформляются как unit тесты клиента.
источник

DN

Dmitry Nazarov in SPb Reliability Meetup
Vitaliy Levchenko
постоянные работающие интеграционные тесты, мониторинг к ним, специальный человек, который бьёт партнёра по голове при их поломке.

По моему опыту такие интеграционные тесты хорошо оформляются как unit тесты клиента.
про по голове хорошо. Что если партнёр больше тебя дак в тысячу раз? =)
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
Пути использования временами расходятся с документацией, с этим редко что-то можно сделать.

Если на уровне бизнес логики можно отвязаться от партнёра — здорово. Мы делали кеш, который отдавали, если get методы отвечали больше секунды (но сами запросы дожидались ответа и сохраняли результат в кеш).
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
Dmitry Nazarov
про по голове хорошо. Что если партнёр больше тебя дак в тысячу раз? =)
это вообще не важно
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
тут же классика бизнеса: подписался, что работает — отвечай.
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
вообще же ты более-менее все методы описал.
источник

p

pragus in SPb Reliability Meetup
Vitaliy Levchenko
постоянные работающие интеграционные тесты, мониторинг к ним, специальный человек, который бьёт партнёра по голове при их поломке.

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

VL

Vitaliy Levchenko in SPb Reliability Meetup
pragus
Я бы каждый поход в такую интеграцию обложил метриками и использовал естественный трафик как пробы
лучше и синтетику, и пользователей мониторить.
источник

p

pragus in SPb Reliability Meetup
Vitaliy Levchenko
Пути использования временами расходятся с документацией, с этим редко что-то можно сделать.

Если на уровне бизнес логики можно отвязаться от партнёра — здорово. Мы делали кеш, который отдавали, если get методы отвечали больше секунды (но сами запросы дожидались ответа и сохраняли результат в кеш).
Ну вы фактически изолировали общение с внешним миром :) и это правильно
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
первое лучше объясняет, что сломалось, второе — лучше описывает масштабы бедствия
источник

DN

Dmitry Nazarov in SPb Reliability Meetup
Vitaliy Levchenko
Пути использования временами расходятся с документацией, с этим редко что-то можно сделать.

Если на уровне бизнес логики можно отвязаться от партнёра — здорово. Мы делали кеш, который отдавали, если get методы отвечали больше секунды (но сами запросы дожидались ответа и сохраняли результат в кеш).
это получение инфы. Основная проблема в запросах на изменение
источник

DN

Dmitry Nazarov in SPb Reliability Meetup
получение ещё куда ни шло, да.
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
Dmitry Nazarov
это получение инфы. Основная проблема в запросах на изменение
очередь же
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
как в банкинге
источник

VL

Vitaliy Levchenko in SPb Reliability Meetup
т.е. отвечаешь пользователю — ок, запрос принят. И обрабатываешь, пока не получится
источник

p

pragus in SPb Reliability Meetup
Vitaliy Levchenko
лучше и синтетику, и пользователей мониторить.
Сильно от рейта зависит. Если у тебя всегда есть даже минимальный трафик - можно из без синтетики
источник

p

pragus in SPb Reliability Meetup
Vitaliy Levchenko
т.е. отвечаешь пользователю — ок, запрос принят. И обрабатываешь, пока не получится
Дедлайны, таймауты, отмена :( это будет больно. Лучше сразу в своем сервисе это сделать, а наружу только результат или ошибку
источник

p

pragus in SPb Reliability Meetup
Dmitry Nazarov
это получение инфы. Основная проблема в запросах на изменение
А много меняется? Часто? Удаленная сторона как-то подтверждает?
источник