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

stoune1

Пользователь
Регистрация
01.01.70
Сообщения
1
Реакции
0
Баллы
1
Привет,

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

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

Веб-сервису: я все еще определяю, какую платформу лучше всего использовать. База данных наверняка будет чем-то похожа на SQL, PostgreSQL обычно сможет справиться с таким количеством пользователей. Что касается самого веб-сервиса, я подумал о Node.js с Express или, альтернативно, о сервере Django.

Теперь самое интересное: администрирование сервера. В настоящее время я являюсь поклонником Amazon Web Services. Я не знаю вашего опыта по этому поводу? Но в настоящее время у меня нет проблем, и особенно время доступности отличное.
Разработка масштабируемой веб-службы с резервным копированием, аварийным переключением, мониторингом и балансировкой нагрузки
Стоит ли мне использовать Docker? Я могу себе представить, что это отлично подходит для развертывания, поскольку ошибок почти не должно быть. Кроме того, я хочу иметь минимальное время обновления, чтобы я мог развернуть Docker-контейнер на производственном резервном сервере, затем запустить над ним службу мониторинга, чтобы убедиться, что все работает, а затем я мог указать активный сервер на резервный сервер. И затем в следующий раз другой сервер получит мой новый сервер аварийного переключения. Однако я никогда не реализовал такую вещь и не знаю, как этого добиться. Следующим большим шагом будет внедрение балансировки нагрузки. Я видел, что AWS предлагает что-то подобное. Но могу ли я также динамически настраивать новые серверы на лету? Допустим, инструмент мониторинга (есть ли рекомендации?) сообщает, что сервер A (активный) испытывает большую нагрузку, можем ли мы автоматически настроить новый сервер (через AWS, платите только по мере использования) и многое другое, что вводится в нагрузку? балансирующий массив?

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

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

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

С уважением,
Герберт
 
Сверху Снизу