Я хотел бы получить совет по созданию нового веб-сайта, который будет иметь относительно большой объем. Потребуется база данных. Мне нужна система, объем которой будет расти за счет добавления оборудования. Каковы были бы рекомендации для базы данных, операционной системы и архитектуры оборудования? Кроме того, любая приблизительная смета была бы хороша. Запланируйте начать с услуги хостинга, но с самого начала может потребоваться выделенная система.
какие бы технические решения вы ни выбрали [операционная система, уровень приложений, ядро базы данных] - с самого первого дня с учетом масштабируемости / высокой доступности.
Итак - сегментируйте данные с первого дня, подумайте, как распределить нагрузку между серверами, генерирующими страницы.
все действительно зависит от того, что вы собираетесь обслуживать ... пара случайных адресов / книг, чтобы взглянуть на [linux / php / mysql biased]:
Выберите что-то, что будет масштабироваться по горизонтали или по вертикали. Это означает, что это будет лучше подходить для роста и времени безотказной работы, если у вас есть много небольших веб-серверов за балансировщиком нагрузки по сравнению с одним большим веб-сервером с единой точкой отказа.
ОС и база данных действительно зависят от того, кто разрабатывает ваш веб-сайт. Прежде чем принять решение, посоветуйтесь с ними. Мой ответ по умолчанию - Linux, Apache, Postgres. : D
Рассмотрите возможность размещения в облаке (bluelock.com, gogrid.com). Отсутствие огромных капитальных затрат, высокая доступность, быстрое масштабирование.
Возможно, вы захотите это проверить. Хотя это не прямой ответ на ваш вопрос и не стоит ориентировочная стоимость, Джефф рассказывает об оборудовании и настройке этого сайта. Для меня это немного открыло мне глаза.
Вы определенно захотите обратиться к провайдеру выделенного хостинга. На ум приходит кто-то вроде RackSpace или Pair Networks. Я использую RackSpace и очень доволен ими последние 4 года. Когда вы звоните любому провайдеру, вы должны обсудить, что вы собираетесь делать, и они помогут вам построить систему.
Я бы рассмотрел мечта потому что изначально они дешевы в размещении, и вы можете переключиться на их виртуальный частный хостинг (4 ГБ ОЗУ и т. д.). Технически это не специализированная система, но она должна иметь множество преимуществ.
Смоделируйте свое приложение и базу данных. Используя эти модели, определите, где вам нужен параллелизм, а где - постоянное хранилище. Используйте PostgreSQL для постоянного хранения и memcached для временного хранения. Если вам нужно долгосрочное постоянное хранилище для неструктурированных двоичных объектов, используйте механизм облачного хранилища, такой как Amazon S3, и клиентскую библиотеку для взаимодействия с API.
Разработайте и разверните свое приложение в системе облачных вычислений, такой как Amazon EC2. Определите роли сервера и смоделируйте сетевую архитектуру. Используйте Debian GNU / Linux в качестве базовой ОС и автоматизированной системы сборки для загрузки определенных ролей сервера.
Установите инструменты статистической отчетности, такие как Munin, и инструменты мониторинга, такие как Nagios, когда у вас будет достаточно данных, чтобы определить, что «нормально» для вашего приложения.
Когда ваше приложение работает, отслеживайте рост набора данных и моделируйте увеличение этого набора в 1000 раз. Зарегистрируйте свой SQL и запустите несколько примеров запросов через планировщик PostgreSQL, чтобы определить, где находится узкое место вашей базы данных. Проследите это до приложения.
Определите пакет статистики, зависящий от платформы, для кода вашего приложения. Просмотрите отчеты этого инструмента и определите, какие действия пользователя вызывают самое медленное время отклика.