Потратьте пару недель на изучение Кэла Хендерсона * Создание масштабируемых веб-сайтов , Масштабируемых интернет-архитектур Тео Шлосснагла , и, конечно, сайт, который вы уже нашли, превосходного Тодда Хоффа highscalability.com . Как минимум, вы поймете компромиссы между (A) и (B) и сможете принять лучшее решение.
Также проведите время за просмотром Amazon Web Services , особенно их EC2 (Elastic Cloud Computing) и S3 (Simple Storage System). Группа в моей компании только что развернула веб-приложение в инфраструктуре Amazon, и это было значительно проще, чем пытаться запустить его на собственном физическом оборудовании.
Если вы все еще находитесь на ранней стадии идеи и просто хотите отработать свои идеи и провести небольшие эксперименты, (A) сработает хорошо. Но как только вы решите, что хотите развернуть небольшую пробную версию, ведущую к полнофункциональному продукту, вам абсолютно необходимо следовать (B).
Когда вы начнете переходить в режим (B), я бы предложил вам использовать AWS, чтобы сэкономить почти все усилия и капитальные затраты при настройке собственной инфраструктуры. Используйте часть времени, которое вы сэкономите, используя AWS, чтобы полностью выучить (B) и применить уроки. Тогда, если вам это удастся, ваша масштабируемая архитектура позволит вам арендовать столько машинных часов AWS, сколько вам нужно. Если у вас ничего не получится, вы узнаете много очень полезных вещей, которые можно применить к вашей следующей идее (или работе) для стартапа.
Имейте в виду, что это не вариант выбора. Как только вы поймете основные принципы масштабирования, вы сможете начать с пути (B) с чем-то простым, и в то же время почувствовать себя комфортно, зная, как вы перейдете к следующему шагу. У Данги есть несколько очень интересных презентаций по этим направлениям. Взгляните на этот , и вы увидите, как они начинали с одной машины, переключились на машину сервера приложений и машину базы данных, на три сервера приложений и машину базы данных и так далее.