Я в настоящее время создаю веб-сайт для социального проекта в Швейцарии.
И прежде существует переполнение пользователя, я хочу подготовить приложение для масштабирования.
Я ответил один на многие вопросы, но некоторых оставляют.
Я объясняю, что я хочу сделать.
Сначала
в начале Приложение будет иметь только один сервер (короткое время) с DNS, PHP, Mysql, Данными и кэш-памятью.
Второй
Затем я разделю их в два
Треть
Вот проблема, я не знаю, как сделать это точно здесь для поддерживания приложения в рабочем состоянии хорошо.
Я мог сделать:
Это было бы схемой, все сессии PHP сохранены в DB.
НО, как я синхронизирую данные? сделайте я выполняю Rsync для держания их в курсе. я помещаю их на отдельный диск (сетевой диск), чтобы быть уверенным? но в этом случае, как я могу сделать в случае пользовательских загрузок?
и если веб-сайт получает больше успеха, и мы должны пойти на большие структуры, would'nt это создают некоторую задержку на обновлениях?
или это была бы хорошая вещь перейти непосредственно к веб-сервисам амазонки?
некоторый infos я использую codeigniter в качестве Платформы. Я использую Linux в качестве веб-сервера (распределение, не выбранное теперь, но должен быть Debian),
Заранее спасибо за Ваши ответы.
Согласно Википедии , в Швейцарии 4,6 миллиона говорящих по-немецки, 1,5 миллиона Франкоязычные и 0,5 миллиона человек, говорящих на итальянском, ретороманском и других языках. Так что я подозреваю, что вы обнаружите, что один сервер будет соответствовать вашим потребностям. Угадайте, какой процент населения будет посещать ваш сайт каждый месяц или каждый день, чтобы понять, насколько большим вы можете стать, прежде чем столкнуться с проблемами масштабирования.
Итак, я не думаю, что вам пока нужно беспокоиться о масштабировании! Бонус: время, которое вы не тратите на беспокойство об этой проблеме, вы можете использовать для решения других проблем ваших пользователей.
Помните, что вы можете смонтировать / обмениваться папками.
Какие данные вы бы синхронизировали?
Вы можете рассмотреть возможность размещения данных на машине базы данных или другом компьютере. Машина db обычно сначала является хорошей идеей, поскольку она, вероятно, будет иметь больший объем ввода-вывода, чем обычный веб-сервер.
Вероятно, стоит настроить сеть SAN или аналогичную, чтобы ваши данные оставались в одном месте. Множественные копии данных - это проблема. Переход по этому пути означает, что вы также можете поместить туда файлы db.
Я вижу некоторые сомнительные вещи:
У вас есть один SQL-сервер, и вы храните сеансы в базе данных на сайте, где ожидается чрезвычайно большой объем . Сколько запросов требуется для создания одной страницы, если кто-то вошел в систему, и каково ожидаемое замедление, когда вы в конечном итоге используете репликацию MySQL?
При использовании кластерной FS все «просто синхронизируется». Вы не получите сборку A на веб-сервере 1, пока сборка B на веб-сервере 2 прерывается. Если вы действительно ожидаете такой большой объем трафика за время, необходимое для загрузки изменений, а затем синхронизации всех узлов, вы просто рассердили тысячу человек.
Я без проблем развертывал приложения, работающие на кластерах, использующих OCFS2 с более чем 40 узлами, и OCFS2 не совсем «лучшая» доступная кластерная FS. Ознакомьтесь с Lustre и рассмотрите возможность сохранения сеансов на диске.
Существует несколько распространенных способов увеличения масштаба веб-сервисов, в том порядке, в котором сайты, такие как Flickr и Facebook, похоже, используют:
Но перед масштабированием измерьте. Набор тестов, рассчитайте свои возможности и не оптимизируйте, пока вам не понадобится.