Создание отказоустойчивых систем (Hackload.kz)
Образовательная лекция в рамках хакатона: https://hackload.kz.
Лектор – Дмитрий Мельник (https://drim.dev)
Научимся обеспечивать стабильность сервиса при внутренних сбоях и при сбоях внешних API (например, API стадиона). Разберем паттерны Timeouts, Retries, Bulkhead, Circuit Breaker и другие. 00:00 Введение 01:22 Спонсоры хакатона 02:27 Определение отказоустойчивости 03:30 План лекции 04:36 Архитектура системы 09:34 Проблемы с CDN 12:54 Решения для CDN 15:00 Точка отказа и мультиси 16:26 Преимущества и недостатки мультиси 17:13 DNS Failover 19:33 Проблемы с балансировщиком 22:52 Режимы работы балансировщиков 24:41 Репликация балансировщика 26:16 API Gateway 28:37 Проблемы с Cloudflare 29:23 Клонирование инфраструктуры и канареечное развёртывание 31:01 Blue-green Deployment 33:40 Миграция базы данных 36:33 Проблемы микросервисов 39:05 Мониторинг и реагирование 40:19 Перезапуск сервисов 42:37 Роль endpoints 43:18 Использование health checks в .NET 44:13 Работа Redis 45:32 Резервирование и восстановление 46:08 Каскадный отказ 48:21 Последствия медленной работы сервиса 50:03 Профилактика каскадного отказа 51:06 Паттерн Sock Breaker 52:57 Потоки и асинхронность 55:25 Каскадный отказ 56:38 Паттерн Bulkhead 58:06 Состояния Sock Breaker 58:55 Защита баз данных 01:00:45 Кворум и балансировка 01:01:15 Защита данных с помощью бэкапов 01:02:25 Репликация и фейловер 01:03:17 Использование Cloud Native PostgreSQL 01:05:18 Кэширование и изящная деградация 01:08:16 Очереди и брокеры 01:09:55 Внешние зависимости и ретрай 01:11:49 Грейс деградация для внешних зависимостей 01:12:29 Внешние зависимости и запросы 01:12:59 Резервирование и изоляция компонентов 01:13:45 Автоматизация и непрерывный процесс 01:15:12 Повторные вызовы и тайм-ауты 01:16:59 Нагрузочное тестирование 01:21:15 Завершение лекции