Разработка масштабируемой веб-службы с резервным копированием, аварийным переключением, мониторингом и балансировкой нагрузки

  • Автор темы Stoune1
  • Обновлено
  • 12, May 2024
  • #1
Привет,

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

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

Мой текущий опыт работы связан с веб-серверами Apache и сайтами, которые посещают максимум 5000 человек в месяц или даже год. Веб-сервису: я все еще определяю, какую платформу лучше всего использовать.

База данных наверняка будет чем-то похожа на SQL, PostgreSQL обычно сможет справиться с таким количеством пользователей.

Что касается самого веб-сервиса, я подумал о Node.js с Express или, альтернативно, о сервере Django. Теперь самое интересное: администрирование сервера.

В настоящее время я являюсь поклонником Amazon Web Services.

Я не знаю вашего опыта по этому поводу? Но в настоящее время у меня нет проблем, и особенно время доступности отличное.

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

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

И затем в следующий раз другой сервер получит мой новый сервер аварийного переключения.

Однако я никогда не реализовал такую вещь и не знаю, как этого добиться.

Следующим большим шагом будет внедрение балансировки нагрузки.

Я видел, что AWS предлагает что-то подобное.

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

Но если быть реалистом: возможно ли это на самом деле? Или может ли один сервер обслуживать эти 5000 человек одновременно? На самом деле нагрузка на сервер должна быть высокой, в основном доступ на чтение и периодические транзакции с вставками.

А по резервной части: как это реализовано в продакшене? Ежедневные резервные копии одной и зеркальных баз данных, которые автоматически синхронизируют изменения?

Сколько места, памяти и мощности процессора для этого потребуется? С обновлением AWS такой проблемы быть не должно, но цена играет большую роль.

Я хочу заранее узнать приблизительную стоимость.

Если есть другие серверы, кроме AWS, с такой же высокой доступностью, сообщите мне об этом.

Но я не хочу покупать корневой сервер, которым мне придется управлять исключительно самому. С уважением, Герберт

Stoune1


Рег
01 Jan, 2011

Тем
93

Постов
180

Баллов
675
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно