Один веб-сайт на нескольких серверах

Один веб-сайт на нескольких серверах

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

Для веб-сайтов, которым требуется большое количество серверов для работы, как хранится и управляется сам код приложения (пока что оставим базу данных)? Для простоты предположим, что serverfault.com имеет 10 серверов, которые его поддерживают. Все ли 10 из этих серверов имеют одинаковый код или определенные части кода будут разделены на разные серверы? Если у них всех есть одинаковый код, какие инструменты используют администраторы, чтобы убедиться, что серверы содержат одинаковый код? Я могу себе представить, если один сервер случайно будет содержать другой код, то могут произойти плохие вещи.

Теперь о базе данных... Если у вас огромный объем данных в системе хранения на основе SQL, как этим управлять? Сами таблицы распределены по нескольким серверам или это будет что-то вроде table users получает этот сервер, table posts получает этот сервер и т. д...? Как такой гигант, как Facebook или Twitter, справляется с этим?

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

Спасибо

решение1

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

Что касается базы данных, то обычно это делается с помощью репликации базы данных на несколько серверов и разделения данных по нескольким базам данных. (например, «Фейсбуковские вещи» пользователя A хранятся на сервере базы данных A, данные пользователя B хранятся на сервере B и т. д.)

Если вы хотите узнать больше, вот подборка материалов о Facebook и его архитектуре: https://stackoverflow.com/questions/3533948/facebook-архитектура

Итак, ваш сценарий:

  • Загружайте один и тот же код на несколько серверов
  • Настройте балансировщик нагрузки

Связанный контент