вопрос проектирования системы - PullRequest
3 голосов
/ 29 июня 2010

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

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

Ответы [ 2 ]

2 голосов
/ 29 июня 2010

Этот вопрос очень похож на «Невозможный вопрос» Джоэла. Нет правильного ответа на этот вопрос.

Я бы начал разбивать его на списокиз всех возможных точек отказа:

  • Сервер базы данных
  • База данных
  • Средний уровень
  • Сервер среднего уровня
  • Приложение
  • Веб-сервер

Затем для каждого из них я бы определил причины поломки и способы ее устранения без простоя.Те, на кого я не знаю ответов, я бы исповедовал так же.

Например, давайте построим список причин, по которым сервер базы данных выходит из строя.Так как мы ищем 100% времени безотказной работы, мы ничего не игнорируем - независимо от того, насколько далеко выручено

  • Аппаратное обеспечение выходит из строя
  • Отключается питание
  • Сетевая карта выходит из строя
  • Операционная система неожиданно аварийно завершает работу
  • Обновления ОС нарушают работу системы
  • Тупой системный администратор или администратор БД
  • Тупой дворник

Некоторые возможные решения(с учетом SQL Server на сервере Windows)

  • Блокировка на двери
  • Зеркальное отображение базы данных (с регулярным тестированием восстановления после отказа)
  • Несколько NICS
  • Кластеризация (с помощью регулярного тестирования отработки отказа)
  • Добейтесь лучших людей

Вы можете в основном продолжать отвечать на этот вопрос, пока интервьюер не добавит полотенце, потому что на самом деле нет единого правого.Ответ на этот вопрос.

0 голосов
/ 29 июня 2010

Это довольно широкий вопрос.Если они ожидают нулевого времени простоя, попросите их забыть об этом или перевести всю свою прибыль на создание резервирования.Теперь, если они просто хотят «пять девяток, или 99,999% безотказной работы», тогда мы можем поговорить.:)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...