Как мне добавить дополнительные серверы для поддержки потенциального увеличения трафика на мой веб-сайт? [закрыто]


Новое здесь, но я публикую на StackOverflow довольно часто.

Сценарий:

Я являюсь платежеспособным клиентом linode. На этой учетной записи у меня есть один сервер объемом 2 ГБ, на котором размещено веб-приложение. Этот единственный сервер в настоящее время действует как веб-сервер (apache2), база данных, электронная почта и сервер nodejs.

Я планирую выпустить свое веб-приложение для 20 000 целевых пользователей на следующей неделе. Все хорошо, что я это говорю, но есть одна проблема, которая меня беспокоит. Эта проблема заключается в том, что веб-приложение может полностью выйти из строя, так как оно выполняет некоторые довольно сложные операции по обработке файлов на серверной части. Конечно, я знаю, что не ВСЕ 20 000 пользователей подпишутся на мое приложение в одно мгновение, но потенциально оно может получить 20 000 просмотров. Я хочу, чтобы мой сервер поддерживал такой большой объем трафика, поэтому я готовлюсь к его запуску.


Мой вопрос(ы):

Как мне добавить дополнительные линоды для поддержки потенциального увеличения трафика на мой веб-сайт?

Должен ли я:

А) Просто купите более крупный linode, чтобы расширить мой веб-сайт. Удвоение мощности означает, что сервер может обрабатывать вдвое больше пользователей, верно? Конечно, я понимаю, что в этом тоже есть ограничения, так как linode не предлагает линоды с неограниченными аппаратными ресурсами. Это также не повлечет за собой покупку каких-либо дополнительных частных IP-адресов, не так ли?

Б) Купить пакет балансировки узлов у linode, чтобы расширить мой веб-сайт? Означает ли это, что я должен клонировать свой текущий образ диска и распространять его на все новые линоды, которые я покупаю? Если это так, то как мне обрабатывать недавно загруженные пользовательские файлы? Должен ли я иметь линод специально для этого тоже? Также: Существует ли ограничение на количество линодов, которые я могу купить и "подключить" к балансировщику узлов, и требуется ли каждому дополнительный частный IP-адрес? Как насчет внесения новых изменений в код на веб-сайт? Как бы я справился с этим, если бы все исходные файлы находились на разных серверах? Как насчет SSL? будет ли мой текущий сертификат продолжать работать на всех серверах?

Является есть что-нибудь еще, что мне нужно рассмотреть?

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

Приветствия,

Джоэл

Author: Joel Murphy, 2013-09-27

1 answers

Просто купите линод побольше, чтобы расширить мой сайт. Удвоение мощности означает, что сервер может обрабатывать вдвое больше пользователей, верно?

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

Это не потребует покупки какого-либо дополнительного частного IP-адреса адреса тоже, не так ли?

При использовании одного (большего) сервера дополнительные IP-адреса не требуются.

Купить пакет балансировки узлов у linode, чтобы расширить мой веб-сайт? Означает ли это, что я должен клонировать свой текущий образ диска и распространять его на все новые линоды, которые я покупаю?

Даже с балансировщиком нагрузки существует множество ресурсов, которые должны быть разделены между ними:

  • Единая база данных
  • Место для размещения пользователя загруженные файлы
  • Данные сеанса

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

Если это так, то как мне обрабатывать недавно загруженные пользовательские файлы? Должен ли я иметь линод специально для этого тоже?

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

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

Существует ли ограничение на количество линодов, которые я могу купить и "подключить" к балансировщику узлов, и требуется ли каждому из них дополнительный частный IP-адрес?

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

Как насчет внесения новых изменений в код на веб-сайте? Как бы я справился с этим, если бы все исходные файлы находились на разных серверах?

Каждому серверу необходимо будет получить копию изменений. Для этой цели обычно используется rsync или система управления версиями, такая как git.

Как насчет SSL? будет ли мой текущий сертификат продолжать работать во всех серверы?

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

  • Сертификат установлен на балансировщике нагрузки. Балансировщик нагрузки обрабатывает шифрование и общается с серверами в виде обычного текста.
  • Сертификат устанавливается на каждом сервере, и балансировщик нагрузки отправляет зашифрованные запросы между ними.
 3
Author: Stephen Ostermiller, 2013-09-28 10:32:58