Как добиться высокой доступности? - PullRequest
3 голосов
/ 17 марта 2010

Мой босс хочет иметь систему, которая учитывает катастрофические события на всем континенте. Он хочет иметь два сервера в США и два сервера в Азии (по одному серверу входа и одному рабочему серверу на каждом континенте).

  1. В случае, если землетрясение нарушит связь между двумя континентами, оба должны работать в одиночку. Когда соединение восстановлено, они должны синхронизировать друг друга до нормального состояния.
  2. Внешняя облачная система не разрешена, так как он не уверен.
  3. Система должна учитывать масштабируемость, а это означает, что добавление новых серверов должно быть простым в настройке.
  4. Серверы должны быть сбалансированы по нагрузке.
  5. Соединение между серверами должно быть очень безопасным (зашифровано и отправлено через SSL, хотя SSL заботится о шифровании).
  6. Система должна разрешить одному и только одному пользователю входить в систему с одной учетной записью. (остерегайтесь задержек между континентом и двумя пользователями, использующими общую учетную запись, могут одновременно подключиться к обоим серверам входа)

Пожалуйста, помогите. Я уже в конце своего ума. Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 05 апреля 2010

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

Если у вас есть несколько центров обработки данных, даже если они находятся рядом, произойдет разбиение. Если произойдет раздел, то ДОЛЖНА быть потеряна доступность ИЛИ согласованность, потому что либо:

  • у вас есть предопределенный «ведущий», который продолжает работать, и другие «ведомые» DC, которые выходят из строя (или работают только для чтения). Это сохраняет согласованность за счет доступности.
  • ИЛИ вы теряете согласованность на время раздела (это означает, что операции, которые зависят от немедленной согласованности, также недоступны).

Насколько я вижу, это несовместимо с вашими требованиями. То, что хочет ваш босс, явно невозможно. Ему нужно понять теорему CAP.

Теперь, в ВАШЕМ случае применения, вы можете решить, что вы можете изменить правила и переопределить, что такое согласованность или доступность, для удобства, и иметь систему, которая переходит в противоречивое, но временно приемлемое состояние.

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

4 голосов
/ 17 марта 2010

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

Попросите вашего босса еще раз попробовать использовать существующих облачных провайдеров.

1 голос
/ 17 марта 2010

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

0 голосов
/ 24 июня 2011

Это потребует экспертной помощи, большого бюджета и серьезного планирования.

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

Просто поймите, что даже такие ребята, как Google, Yahoo, Microsoft и Amazon (если назвать несколько), в тот или иной момент сталкивались с той или иной проблемой, из-за которой сегменты этих систем отключались для определенных пользователей.

...