Доступность
Раз сегодня День знаний, то я подумал, что было бы неплохо обзавестись академической рубрикой #knowledge_day, в которой напоминать про вещи, которые хорошо бы знать и помнить каждому. И сегодня начнём с “девяток”.

Вы когда-нибудь пытались собрать несколько человек в одном месте в одно и то же время? Согласитесь, что это бывает нелегко даже для компании из трёх человек. И даже если двое уже на месте, третий может серьёзно опоздать. Примерно то же самое может произойти и в программной системе, когда для выполнения какой-то операции нужен доступ к нескольким службам одновременно. Например, сходить в парочку микросервисов и БД.
Как только вы слышите на очередном собрании, что кто-то предлагает усложнить алгоритм добавлением еще одного звена, вспоминайте о доступности. Я давно заметил, что в пылу обсуждений об этом нередко забывают: “Для ускорения роутинга мы сделаем в PostgreSQL специальную таблицу…” Если PostgreSQL будет недоступен, то стабильный, но медленно работающий роутинг перестанет работать. Вы к этому готовы?
Доступность – это способность системы долго и непрерывно находиться в рабочем состоянии. Она измеряется в процентах. 100% означает, что сервис всегда работоспособен, но такой показатель практически недостижим, поэтому говорят о “девятках”. Сервис с доступностью 99.99% недоступен 8.64 секунды в сутки.
Как вычислить общую доступность? Если компоненты работают последовательно, то вероятность полного отказа равна произведению вероятностей отдельных отказов. Допустим, у вас есть три компонента системы с известной доступностью: A=99%, B=98%, C=97%. Общая доступность равна: A*B*C=0.99*0.98*0.97=0.9411. Это значит, что такая система будет недоступна (1-0.9411)*24=1.41 часа в сутки. Многовато, не так ли?
Я не специалист по этой теме, но знаю, где можно получить такие знания и попросить консультации:
- Telegram-канал The Last of 9s
- Telegram-чат QA — Load & Performance
- Telegram-чат ALLSLO - все про SLO
Понравилась статья?
Посмею напомнить, что у меня есть Telegram-канал Архитектоника в ИТ, где я публикую материал на похожие темы примерно раз в неделю. Подписчики меня мотивируют, но ещё больше мотивируют живые дискуссии, ведь именно в них рождается истина. Поэтому подписывайтесь на канал и будем оставаться на связи! ;-)
Статьи из той же категории: