Вопрос: 100% время безотказной работы для веб-приложения


Сегодня мы получили интересное «требование» от клиента.

Они хотят 100% времени безотказной работы с офф-сайт отказоустойчивость в веб-приложении. С точки зрения нашего веб-приложения это не проблема. Он был разработан, чтобы иметь возможность масштабирования на нескольких серверах баз данных и т. Д.

Однако из сетевой проблемы я просто не могу понять, как заставить ее работать.

Вкратце, приложение будет работать на серверах в сети клиента. Доступ к нему осуществляется как внутренними, так и внешними людьми. Они хотят, чтобы мы поддерживали внесистемную копию системы, которая в случае серьезного сбоя в их помещении немедленно подхватила бы и завладела.

Теперь мы знаем, что нет абсолютно никакого способа разрешить это для внутренних людей (несущий голубь?), Но они хотят, чтобы внешние пользователи даже не замечали.

Честно говоря, у меня нет туманного представления о том, как это возможно. Похоже, что если они потеряют подключение к Интернету, нам нужно будет сделать DNS-изменение для перенаправления трафика на внешние машины ... Что, конечно, требует времени.

Идеи?

ОБНОВИТЬ

Сегодня у меня была дискуссия с клиентом, и они разъяснили эту проблему.

Они застряли на 100%, заявив, что приложение должно оставаться активным даже в случае наводнения. Однако это требование только начинается, если мы принимаем его за них. Они заявили, что будут обрабатывать требования времени безотказной работы, если приложение полностью работает на своих серверах. Вы можете догадаться о моем ответе.


304
2017-09-29 00:31


Источник


Не недооценивайте огромный простои, вызванные взломом, посмотрите на Sony и сеть PlayStation. вы можете гарантировать, что они имели ту же самую% 100 uptime идею и деньги / оборудование, чтобы поддержать это. уточните с клиентом, что 100% -ное время безотказной работы является неосуществимым ожиданием, даже технические специалисты Google не решаются бормотать «100% время безотказной работы». подсказка btw заключается в том, чтобы изучить использование динамического DNS, они только кэшируют в течение 60 секунд, это должно включать ОС и локальные DNS-серверы. - Silverfire
Я лично БЕГ от этого клиента как можно быстрее. Я подозреваю, что это не будет последней безумной идеей, которую они могут иметь (с технологической точки зрения). - GregD
Хотел бы я сфокусировать вашего клиента. - joeqwerty
Если вы выясните 100% времени безотказной работы, дайте мне знать. Я создам бизнес с ним и продаю его google. Невозможно гарантировать 100%. Даже такие компании, как microsoft, amazon или google, не будут так высоко, потому что они знают, что это невозможно. Лучшее, что я видел, составляет 99,999%, и даже это растяжение (5 минут в году). Лучшее, что вы, вероятно, можете сделать, - 99,99% надежно. - Matt
Просто создайте безумно высокий ценовой тег, чтобы ответить на их безумный запрос. Это, вероятно, вернет их в чувство. Либо, либо, или он отправит их искать кого-то, желающего лгать им. - Nate C-K


Ответы:


Здесь Википедияудобный график преследования девяток:

enter image description here

Интересно, что только 3 из 20 лучших веб-сайтов смогли достичь мифических 5 девяток или 99,999% времени безотказной работы в 2007 году. Это были Yahoo, AOL и Comcast. В течение первых 4 месяцев 2008 года некоторые из наиболее популярные социальные сети, даже не приблизился к этому.

Из диаграммы должно быть очевидно, насколько смешно стремление к 100% времени безотказной работы ...


361
2017-09-29 01:03



Pingdom также не проверяет каждую секунду. Кроме того, те, у которых встречались пять девяток, вероятно, все же имели локализованные сбои, которые Pingdom мог не обнаружить, или сбои, которые сделали некоторые службы недоступными, все еще реагируя на pings. - ceejayoz
Что само по себе делает пять девяток сомнительными ... - GregD
Точно. И у них есть миллиарды долларов! - ceejayoz
Извините, что беспокоит чат, но вопрос OP состоял в том, как идти навстречу цели 100% безотказной работы на техническом уровне не концептуально, я уверен, что он знает, что это не всегда возможно из-за естественных явлений, которые случаются с оборудованием и окружающей среды. Можем ли мы помочь ему в этом? - David d C e Freitas
К OP: я видел SLA, которые гарантировали бесперебойную работу в контексте «вне нормального обслуживания». Нормальное поддержание, конечно, запланированного простоев в месяц для обновлений, патчей и т. Д., Которые обычно происходят в их наименее загруженный день месяца в течение наименее загруженного времени месяца (обычно в середине ночи). У них должен быть какой-то показатель для их бизнеса в отношении бизнеса. Вы мог предлагают лучшее время безотказной работы (4 девятки) для них только в те времена. - GregD


Попросите их определить 100% и как они будут измеряться. В течение какого периода времени. Вероятно, они могут приблизиться к 100%, как они могут себе позволить. Дайте им стоимость.

Разработать. На протяжении многих лет я обсуждал с клиентами, которые предположительно нелепые. Во всех случаях они на самом деле просто использовали недостаточно точный язык.

Довольно часто они описывают вещи таким образом, что они кажутся абсолютными - как 100%, но на самом деле при более глубоком исследовании они достаточно разумны, чтобы проводить анализ затрат и выгод, которые требуются при представлении данных о расходах для снижения риска. Спросить их, как они будут измерять доступность, является решающим вопросом. Если они этого не знают, то вы можете сказать им, что это необходимо определить в первую очередь.

Я попросил бы клиента определить, что произойдет с точки зрения влияния / затрат на бизнес, если сайт опустится в следующих обстоятельствах:

  • В самые загруженные часы за х часов
  • В наименее занятые часы за х часов

А также, как они будут это измерять.

Таким образом, вы можете работать с ними, чтобы определить правильный уровень «100%». Я подозреваю, что задавая такие вопросы, они смогут лучше определить приоритеты своих других требований. Например, они могут заплатить определенные уровни SLA и поставить под угрозу другие функции для достижения этого.


185
2017-09-29 09:45



Согласовано. Они могут просто означать «очень высокий» период безотказной работы (верхние 90-е годы?) С довольно солидной стратегией перехода на другой ресурс. Если нет, то объяснение шкалы затрат будет, надеюсь, убедить их ... - Martin Dow
+1 за то, что они не прыгают с выводами, а просто просят клиента объяснить, что они имеют в виду. - sleske
Я повторяю заявление «не прыгаю на выводы» ... если клиент означает 100% время безотказной работы (минус плановое обслуживание), то он май быть более разумным требованием. - Tim Reddy
Что касается влияния на бизнес, мы фактически знаем и понимаем их бизнес полностью, а затраты, связанные с тем, что происходит на сайте, не являются финансовыми. Больше вдоль линий туземцев, появляющихся с вилами, потенциальными завесами и т. Д.;) Представьте себе, что 40 000 человек появляются в вашей входной двери, крича. Этого хотят избежать со страстью. - NotMe
@ChrisLively Тем более разумно иметь зрелое понимание риска. Доминирующей парадигмой для техники безопасности является вероятностная оценка риска, Существуют системы, которые могут убивать (а не просто раздражать) тысячи людей, и у них все еще есть низкая, надеюсь, хорошо понятая, но не равная нулю вероятность отказа. - poolie


Ваши клиенты сумасшедшие. 100% времени безотказной работы невозможно независимо от того, сколько денег вы потратите на это. Простой и простой - невозможно. Посмотрите на Google, Amazon и т. Д. У них есть почти бесконечные суммы денег, чтобы бросить их инфраструктуру, и все же им все же удастся простоя. Вам нужно доставить это сообщение им, и если они продолжают настаивать на том, что они предлагают разумные требования. Если они не признают, что некоторые количество простоя неизбежно, а затем канавы.

Тем не менее, у вас, похоже, есть механика масштабирования / распределения самого приложения. Сетевая часть должна будет включать избыточные восходящие линии связи с различными интернет-провайдерами, получать выделение ASN и IP и получать шею в BGP и реальную передачу маршрутизации, чтобы пространство IP-адресов могло перемещаться между интернет-провайдерами, если это необходимо.

Это, весьма очевидно, очень краткий ответ. У вас не было опыта работы с приложениями, требующими такой степени безотказной работы, поэтому вам действительно нужно привлечь профессионала, если вы хотите приблизиться к мифическому 100% времени безотказной работы.


140
2017-09-29 00:39



Согласовано. Полностью. Псих. - jdw
они обычно ?? - Sirex
@Sirex Ссылаясь на недавний эксперимент @ CERN, где обнаружено, что нейтрино движется быстрее света. Однако результаты еще не подтверждены независимыми учеными. - TC1
@ TC1 Держу пари, что ты $ 200 это не выходит. - dpatchery
@ErikA Запрос на 100% время безотказной работы свидетельствует о незнании технических характеристик систем. Это нормально, потому что работа клиента делает то, что они делают. Ваша задача - спроектировать ИТ-системы. Трудные клиенты, подобные этому, могут быть ночными кошмарами, но они также могут стать вашими лучшими клиентами. - duffbeer703


Ну, это определенно интересно. Я не уверен, что хотел бы получить контракт на 100%, но если бы мне пришлось подумать, что это будет выглядеть примерно так:

Начните с публичного IP-адреса на балансировщике нагрузки полностью из сети и постройте как минимум два из них, чтобы можно было переходить на другой. Программа, такая как Heatbeart, может помочь с автоматическим откатом этих устройств.

Лак в основном известен как решение для кеширования, но он также обеспечивает очень хорошую балансировку нагрузки. Возможно, это будет хороший выбор для балансировки нагрузки. Он может быть настроен на наличие от 1 до n бэкендов, которые могут быть сгруппированы в директоров, которые будут загружать баланс либо случайным образом, либо круговым. Лак можно сделать достаточно умным, чтобы проверить здоровье каждого заднего конца и сбросить нездоровые задние концы из цикла, пока он не вернется в Интернет. Бэкэнд не должен находиться в одной сети.

В наши дни я влюблен в Elastic IPs в Amazon EC2, поэтому я бы, вероятно, построил балансировщики нагрузки в EC2 в разных регионах или, по крайней мере, в разных зонах доступности в том же регионе. Это даст вам возможность вручную (не дай бог) развернуть новый балансировщик нагрузки, если вам нужно и переместить существующий IP-адрес записи в новый ящик.

Однако лак не может прервать SSL, поэтому, если это вызывает беспокойство, вы можете вместо этого взглянуть на что-то вроде Nginx.

У вас может быть большая часть ваших резервных копий в сети ваших клиентов и одна или несколько вне их сети. Я верю, но не уверен на 100%, что вы можете расставить приоритеты для бэкэндов, чтобы ваши клиенты стали получать приоритет до тех пор, пока все они не стали бы вредными.

Вот где я начну, если бы у меня была эта задача и, несомненно, ее усовершенствовать, когда я пойду.

Однако, как утверждает @ErikA, это Интернет, и всегда есть части сети, которые находятся вне вашего контроля. Вы захотите убедиться, что ваш закон только связывает вас с вещами, которые находятся под вашим контролем.


54
2017-09-29 00:47



Некоторое время я думал об Amazon и MS для развертывания облаков, но за последние несколько месяцев у обоих из них были серьезные перебои в работе. SSL является критическим. - NotMe
Если вы собираетесь использовать Amazon, вы определенно захотите распространить ваши машины на 5 зон доступности. Весьма маловероятно, что все их зоны будут выходить в одно и то же время. - jdw
+1 для фактического решения основного вопроса OP. - Phil
у вас всегда будет точка неудачи, jdw, если в цепочке есть нераспределенная вещь (в вашем случае сердцебиение, если, конечно, у вас есть несколько экземпляров того, что работает на удаленных компьютерах, все контролируют друг друга, а также ваши серверов, которые любой из них может видеть или не видеть из-за проблем с сетью вдоль маршрутизации). Это подводит нас к «простоям». Серверы могут быть запущены и запущены и по-прежнему недоступны для клиента, но никогда не обнаруживают его, если ошибка не связана с маршрутом маршрутизации. - jwenting
Согласовано. Как заметил еще один, нет такой вещи, как 100% время безотказной работы. Все, что вы можете сделать, это попробовать и то, что я описал, - это то, как я начну пытаться. - jdw


Нет проблем - слегка пересмотренная формулировка контракта:

... гарантируют время безотказной работы 100% (округленные до нуля).


29
2017-09-29 10:13



+1 для обозначения, что 100% не 100,0% или 100 000% и т. Д. Десятичные цифры имеют значение, они указывают точность;) - Danubian Sailor
По некоторым соглашениям «100%» имеет только одну значительную цифру, так что все числа от половины до одной будут округлены до «100%»; 50% будут округлены до 100%. - Thomas Levine
В зависимости от стандарта для подсчета некоторые скажут, что у 50% есть два многозначных числа, у которых 100% имеет три увеличительных числа. 50,5 и 100 так же точны. Другие будут считать цифры после десятичной точки. Тогда 50,5 и 100,4 будут точно такими же точными. Если ничего не заявлено, я бы предположил, что 100% составляет 99,5% и выше. 100,0% - 99,95% и выше. - Tillebeck


Если Facebook и Amazon не могут этого сделать, тогда вы не сможете. Это так просто.


25
2017-09-29 01:10



он мог бы быть умнее всех своих людей, кто знает: p - Matt
100% времени безотказной работы не обязательно должны быть такими буквальными людьми - это означает: 100% доступно в течение времени, когда это необходимо. Например, банковские системы всегда должны быть доступны, и они неплохо справляются. Просто потому, что они спускаются на техническое обслуживание в течение 1 секунды один раз в год, это не значит, что они потерпели неудачу в своем 100% -ном достижении цели. - David d C e Freitas
@DavidFreitas - я думаю, что в контрактах это обычно довольно буквально ... - UpTheCreek
@Matt просто потому, что Facebook / Amazon не может этого сделать, это не значит, что меньший сайт не может этого сделать. Многие крупные веб-сайты сталкиваются с гораздо более сложными проблемами, чем с меньшим сайтом. - Xorlev
поэтому вы говорите, что у вас не было 100% времени безотказной работы, так как у вас были некоторые клиенты, у которых были ошибки. plus dns не является мгновенным коммутатором, так как у вас есть интернет-провайдеры, которые игнорируют короткие TTL-файлы - Mike


Добавить ответ oconnore от Hacker News

Я не понимаю, в чем проблема. Клиент хочет, чтобы вы планировали катастрофу, и они не ориентированы на математику, поэтому требование 100% вероятности звучит разумно. Инженер, как инженеры склонны делать, вспомнил свой первый день prob & stat 101, не считая, что клиент может этого не сделать. Когда они говорят это, они не думают о ядерной зиме, они думают о том, что Фред сбрасывает свой кофе на офисный сервер, сбой диска или интернет-провайдера. Кроме того, вы можете это сделать. С географически независимыми независимыми серверами самоконтроля у вас практически не будет простоев. С 3 серверами, работающими на независимой (1) три 9 надежности, с хорошими режимами переключения при отказе, ожидаемое время простоя составляет менее секунды в год (2). Даже если это происходит сразу, вы все еще находитесь в разумном SLA для веб-соединений, и поэтому простоев практически не существует. Клиенту все еще приходится иметь дело со сценариями конца света, но Годзилла исключен, у него будет служба, которая «всегда».

(1) Сервер в Лос-Анджелесе достаточно независим от сервера в Бостоне, но да, я понимаю, что есть какое-то пересечение, связанное с ядерной войной, китайские хакеры разбивают энергосистему и т. Д. Я не думаю, что ваш клиент будет расстроен это.

(2) Переход на другой ресурс DNS может добавить несколько секунд. Вы по-прежнему находитесь в сценарии, когда клиент должен повторять запрос один раз в год, что опять же в рамках разумного соглашения об уровне обслуживания и обычно не рассматривается в том же духе, что и «время простоя». Приложением, которое автоматически перенаправляется на доступный узел при сбое, это может быть незаметным.


24
2017-09-30 15:49



Проблема в том, что они говорят это в контракте. Это означает, что если катастрофа делает и вам нужно больше десяти секунд, чтобы вернуть сайт обратно через резервные копии, которые у них есть, чтобы подать в суд. - Shadur
@Shadur: Если они действительно хочу этого, тогда ты должен действительно зарядить их. Распространяйте серверы географически далеко и широко, надеюсь, повсюду не будет катастрофы. - Jungle Hunter
Я видел сайт, который предлагал 100% гарантии безотказной работы или ваши деньги обратно. Трюк заключался в том, что они заряжали лодку и делились на месяцы. Таким образом, некоторые месяцы остаются неоплачиваемыми, и вы планируете все вокруг, и покрываете убытки месяцами, которые работают хорошо. - jldugger


Вас просят что-то невозможное.

Просмотрите другие ответы здесь, сядьте со своим клиентом и объясните ЗАЧЕМ это невозможно, и оценить их ответ.

Если они все еще настаивают на 100% времени безотказной работы, вежливо сообщите им, что это невозможно сделать и отказаться от контракта. Вы никогда не будете удовлетворять их требования, и если контракт не полностью сосать, вы получите штрафные санкции.


17
2017-09-29 03:41



100% необходимо определить, то есть 100% доступно, за исключением случаев, когда вы выполняете техническое обслуживание или обновление, и это время будет ограничено тихими часами в течение нескольких часов в месяц максимум. Все это зависит на чем предназначена цель и использование веб-приложения в этом случае ... - David d C e Freitas
и определить «время простоя». Не могут даже теоретически гарантировать, что они смогут получить доступ к серверу в Омахе из своих офисов в Фэрбенксе, если вы не контролируете всю сеть между ними (хотя вы можете дать заверения в том, что сервер работает и работает). - jwenting
Определения, IMHO, не имеют значения, если они запрашивают «100% -ное время безотказной работы»: даже если вы согласовываете запланированное обслуживание и строят избыточность N + N, если один незначительный глюк вызывает незапланированную перезагрузку или мигание службы, вы взорвали свое SLA. ОБЯЗАТЕЛЬНО если вы ведете переговоры по SLA 3, 4 или 5 девяти. - voretaq7
Однако зависит от условий SLA, не так ли? Если вам платят 100 000 долларов США в месяц, а каждая минута простоя несет штраф в размере 1 доллара США, это может быть полностью выполнимо (если у вас есть другие контракты, чтобы амортизировать стоимость 24/7 на сайдах системных администраторов). - Michael Borgwardt
@MichaelBorgwardt есть определенные способы «заставить его работать» с чистой точки зрения, но я все равно откажусь из-за потенциального плохого PR ($ _CLIENT переходит в Твиттер и говорит миру «мы сбиты с ног, потому что $ _PROVIDER некомпетентен и не могут выполнить их SLA! »). Лично я предпочел бы, чтобы 10 меньших, более разумных клиентов платили мне 10 000 долларов в месяц :-) - voretaq7