Обеспечиваем устойчивость интеграции
-
-
40 мин
Ошибки обработки операций возникают тогда, когда их не ждут. Причиной может быть как ошибка в софте, так и нештатная операция под нагрузкой, например, deadlock транзакций или падение по памяти. Монолитная архитектура позволяла обернуть обработку запроса пользователя в транзакцию и при ошибке выполнить откат. Распределённая архитектура не даёт такой возможности. Необходимо обеспечивать устойчивость работы приложения другими средствами, а также проверять её при тестировании.
Как тестировать устойчивость работы интеграции и приложения в целом? Придумывать сценарии тестирования, опираясь на описания архитектуры? Что делать в легаси-проектах, когда описания архитектуры неточны? Как в этом помогает понимание бизнес-архитектуры? И как исправлять ситуацию, если взаимодействие систем неустойчиво? Понятно, что в рамках одного доклада невозможно полностью раскрыть все эти вопросы, тема слишком обширна. Но я расскажу о практиках, которые помогают мне получить ответы, и надеюсь, это будет полезно.