Я задаю этот вопрос, чтобы узнать, какие у вас лучшие практики для подготовки вашей системы к масштабированию, я знаю, что в основном вам не нужно чрезмерно оптимизировать, прежде чем это действительно нужно, и лучше всего было бы контролировать практически любые аспекты сервера / системы и посмотрите, где ваше бутылочное горлышко, а затем действуйте, но все же.
Я не эксперт, но здравый смысл побудил меня виртуализировать мой выделенный сервер и разделить различные службы (в том числе для большей безопасности), чтобы позже перенести их на другие физические серверы, если мне нужно быстро расти и с минимальным временем простоя.
Мне интересно услышать, какие у вас лучшие методы, что вы делаете для того, чтобы, когда ваш продукт / услуга наберет обороты, у вас будет достаточно времени для реагирования и масштабирования.
Спасибо
Масштабируемость включает в себя широкий спектр возможностей. Я начну с предположения, что вы запускаете «все» на одном сервере, как я это делаю сейчас.
Так как у вас есть выделенный сервер, это будет несколько проще :)
Если вы хотите иметь возможность перемещать определенные службы по мере вашего роста, я бы посмотрел на основные функции, которые сейчас выполняет сервер (скажем: web, mail, db, ldap, svn), и скопировал оборудование текущего сервера на внутренняя / лабораторная машина.
Реплицируйте сервер, но используя ESX, Xen или аналогичный, и создайте одну виртуальную машину для каждой «функции» - используя мой пример выше, это будет 5 виртуальных машин на хосте.
Предполагая, что у вас есть больше существующих мощностей, чем вам нужно, каждую из этих виртуальных машин можно запустить на вашем основном сервере, и в конечном итоге вы сможете перенести их на другое физическое оборудование с помощью автоматизированного инструмента, такого как Vmotion, или миграции вручную, если вы найдете одну или несколько используются более интенсивно, чем может выдержать существующее оборудование.
Добавление большего количества физического оборудования и перемещение виртуальной машины [относительно] тривиальное дело после их настройки :)
Один из способов взглянуть на масштабирование - это репликация существующей виртуальной машины на другую физическую машину, а затем балансировку нагрузки между ними. Это можно сделать довольно быстро с помощью виртуализации.