Successfully reported this slideshow.

Exactpro Kostroma: High Availability Systems

1,811 views

Published on

Разработка и отказоустойчивость программных систем
высокой доступности
Иосиф Иткин, Exactpro Systems
23 декабря 2013

Published in: Education
  • Be the first to comment

  • Be the first to like this

Exactpro Kostroma: High Availability Systems

  1. 1. Разработка и отказоустойчивость программных систем высокой доступности Иосиф Иткин, Exactpro Systems 23 декабря 2013
  2. 2. Введение Инновационные трейдинговые системы ул. Ленина 20 Создание и применение инструментов для проверки высоконагруженных трейдинговых систем В Костроме – 130 человек http://clubqa.ru http://tmpaconf.org
  3. 3. Критерии высокой доступности • Высокая доступность – High Availability • HA is the proportion of time a system is productive and is usually expressed as a percentage. • Availability is expressed as MTTF / (MTTF+MTTR), where: • MTTF (mean-time-to-failure) is the average time that a system runs (without failing) after it has been set up or repaired. • MTTR (mean-time-to-repair) is the average time needed to repair (or restore) a failed system. • In the spectrum of system availability, HA systems fall between 99.9% and 100% availability. http://www.tpc.org/information/other/articles/ha.asp
  4. 4. Виды простоя систем • Downtime can be categorized as either planned or unplanned • Planned downtime - is time that the system is unavailable due to scheduled maintenance such as software/hardware upgrades and system backups. • Unplanned downtime is time that the system is unavailable due to component faults or environmental faults. Human error and "natural" disasters (including power outages) are examples of "environmental faults."
  5. 5. Способы повышения отказоустойчивости • Minimize the number of faults and the effect/recovery time of faults in a system. • Avoid a single-point-of-failure by utilizing redundant parts and rerouting (failover). • Reduce the impact of environmental faults by using UPS and off-site data mirroring and/or replication provide for "hot" repair of failed components.
  6. 6. Пример архитектуры http://www.cinnober.com/sites/cinnober.com/files/news/Latency_rev
  7. 7. Пример архитектуры http://extentconf.com
  8. 8. Уровни доступности
  9. 9. Два раза моргнуть Типичные требования к биржевой системе Суточный объем > 100 M orders Время отклика < 300 uS Пиковые нагрузки > 40 K orders / sec 7.5 см в 1000 раз быстрее круг по МКАД
  10. 10. Смерть тестирования
  11. 11. Принципы тестирования Три вида воздействия http://www.sec.gov/litigation/admin/2013/34-69655.pdf
  12. 12. USS Yorktown 21 сентября 1997 года CG-47 Aegis пилотная версия «Умного Корабля» Отказ всех систем, включая двигатели на 2.5 часа Неправильные данные введены в Remote Data Base Manager Привели к переполнению базы данных и отключению LAN, включая все терминалы
  13. 13. USS Yorktown 21 сентября 1997 года CG-47 Aegis пилотная версия «Умного Корабля» Отказ всех систем, включая двигатели на 2.5 часа Неправильные данные введены в Remote Data Base Manager Привели к переполнению базы данных и отключению LAN, включая все терминалы Ошибка – деление на ноль
  14. 14. Mizuho Securities 12 октября 2005 года Попытка продать 1 акцию J-Com за 610,000 йен ($5,041) Ошибочно перепутаны объем и цена Не сработали риск системы: a)Mizuho Securities b)Токийской биржи Потери оцениваются в $225 млн. Ошибка такого вида называется Fat Finger
  15. 15. Ariane 5 Type Conversion 4 июня 1996 года Первый полет ракеты Ariane 5 Отклонение курса и разрушение через 40 секунд после старта Автоматический подрыв на высоте 3700 метров Преобразование 64 битного числа в 16 бит Ошибка invalid operand на языке Ada ПО совпадала с предыдущей версией Ariane 4 Но горизонтальная скорость существенно выше Тестирование проводилось на симуляторе без использования самой SRI Ошибку воспроизвели на тестах
  16. 16. Patriot Software 25 февраля 1991 года, Дахран, Саудовская Аравия Батарея Патриот не стала сбивать ракету Scud Попадание в казарму привело к гибели 28 человек Около 97 человек получили ранения Расследование обнаружило ошибку в ПО
  17. 17. Patriot Software Для хранения времени использовалось 24 бита Значение 0.1 секунд в бинарном виде: 0.0001100110011001100110011001100.... (1/24+1/25+1/28+1/29+1/212+1/213+...) Ошибка округления 0.0001100110011001100110011001100.... или 0.000000095 Предполагалось, что комплекс будет работать короткое время Систему не перегружали 100 часов 0.000000095×100×60×60×10=0.34 секунды Скорость Scud 1,673 метра в секунду -> ошибка 568 метров
  18. 18. Patriot Software
  19. 19. Patriot Software
  20. 20. Patriot Software
  21. 21. Patriot Software 25 февраля 1991 года, Дахран, Саудовская Аравия Сообщение об ошибке 11 февраля Ответ – это не баг а фича Workaround рестартовать каждые 8 часов Рестарт 60 – 90 секунд Исправление готово 16 февраля Доставка обновлений в Дахран 26 февраля
  22. 22. Измерение времен отклика
  23. 23. North American Blackout 14 августа 2003 года, США и Канада Каскадное отключение электричества Ситуация гонок привела к переполнению буфера и отключению системы уведомлений Сброс 4% нагрузки мог бы предотвратить потери порядка $10b
  24. 24. Ситуация Гонок http://en.wikipedia.org/wiki/Race_condition
  25. 25. Therac-25 Therac-25 — аппарат лучевой терапии запущенный в 1982 г Этот аппарат был причиной как минимум шести передозировок Две со смертельным исходом
  26. 26. Therac-25 Одна и та же переменная применялась как для анализа введённых чисел, так и для определения положения поворотного круга. Поэтому при быстром вводе Therac мог иметь дело с неправильным положением поворотного круга (так называемое состояние гонки). Настройка положения отклоняющих магнитов занимает около 8 секунд. Если за это время параметры типа и мощности излучения были изменены, а курсор установлен на финальную позицию, то система не обнаруживала изменений.
  27. 27. Therac-25 Деление на величину излучения, приводящее в некоторых случаях к ошибке деления на ноль и к соответствующему увеличению величины облучения до максимально возможной. Установка булевской переменной (однобайтовой) в значение «истина» производилось командой «x=x+1». Поэтому с вероятностью 1/256 при нажатии кнопки «Set» программа могла не пропустить информацию о некорректном положении диска. Кроме этих явных ошибок было замечено множество потенциальных — например, в многозадачной операционной системе не было никакой синхронизации
  28. 28. Deadlock
  29. 29. Smart Order Router
  30. 30. Order Routing in US http://www.nanex.net/FlashCrash/OngoingResearch.html
  31. 31. Knight Capital 1 августа 2012 года, США Knight Capital – одна из наиболее успешных HFT компаний Изменения в связи с Retail Liquidity Program в NYSE Систем SMARS – высокоскоростной роутер заявок В основе изменений старая функциональность – PowerPeg Количество родительских заявок – 212 Количество дочерних заявок – миллионы Потери – $460 млн. или $170 тыс. в секунду Отсутствие механизмов контроля и мониторинга рисков в самой системе SMARS Развертывание изменений на 7 серверов Всего серверов было 8…
  32. 32. TMPA-2014 в Костроме Анализ программ Статическая верификация Мутационное тестирование Необычные инструменты Верификация оборудования Многое другое…
  33. 33. Спасибо! http://www.cs.tau.ac.il/~nachumd/horror.html

×