ݺߣ

ݺߣShare a Scribd company logo
О тестировании распределенных систем
Никита Макаров
Разработчик
Тестировщик
Менеджер
Инженер
@papaminos
http://test-failed.blogspot.com
Теория
Long time ago, in a galaxy far away…
3
Теория
Long time ago, in a galaxy far away…
4
Теория5
Теория6
Метафора
Калькулятор
7
Метафора
Распределенный калькулятор
8
+
-
x
÷
=
Теория
Носимая электроника
9
Теория
Умные дома и интернет вещей
10
• Распределение
• по географии/ролям/мощности
• Беспроводная и проводная связь
• wifi
• nfc
• gsm (3g/edge/LTE, etc)
Теория
Характеристики
11
• Legacy (20-30 лет в продакшене - это ОК)
• Statefull vs. Stateless системы
• Offline и синхронизация данных
• Дизайн на отказ
Теория
Характеристики
12
Как это все тестировать?
• Цель тестирования та же, но:
• куча нефункциональных требований
• понимание архитектуры
• Latency, fault tolerance, network split, balancing
• Кэширование всего и eventual consistency
Практика
Так же !!!
14
Практика
Архитектура
15
Практика
Архитектура - real life
16
Практика
Нефункционал!!!
17
• Latency
• Fault tolerance
• Network split
• Restart
• Поломанные данные
• «Сумасшедшие» соседи и клиенты
Практика
Страшные слова
18
• Денормализация данных
• Polyglot persistance
• Eventual Consistency
• Кэширование
• клиент
• сервер
Практика
Отношение к данным
19
А что с инструментами?
Практика
Unit тесты зеленые
21
Практика
Любые тесты
22
• VMWare + VIX|ESX API
• VirtualBox + VirtualBox CLI
• Chaos Monkey и Simian Army
• Vagrant
• Docker
• Compose
• Swarm
Название презентации
Инструменты тестирования
23
• Anomaly Detection
• Fault Injection Testing
• Fuzzing
• Log Monitoring
• Synthetic Monitoring
Практика
Методики
24
Да, тестировать продакшен
можно!
Да, даже когда там пользователи!
Да, даже на реальных деньгах!
… только аккуратно
Практика
Про тестирование продакшена
25
• О Legacy
• Сергей Высоцкий о тестировании
микросервисной архитектуры в Spotify
• Мартин Фаулер и микросервисах и их
тестировании
• Unit-тесты внутри клиента - это ок!
• Simian Army в Netflix
Практика
Куда идти и что читать?
26
Никита Макаров
nikita.makarov@odnoklassniki.ru
@papaminos

More Related Content

тестирование распределенных систем