Интересует продуманная схема простой и продуманной архитектуры, которая может вырасти в высоко нагруженную систему.
Для начала может быть все на одном сервере, а дальше уже по необходимости.
Я предполагаю такую схему:
На железо накатывается прослойка в лице proxmox ve или ovirt/
Создаются виртуальные машины, каждая с минимальной настройкой и единственным функционалом
- балансер
- сервер приложения
- база данных
- файловый сервер
Балансер принимает запросы, нагрузка на него понятно, он не обрабатывает, возможно это будет стоять легкий nginx
Сервер приложения соответственно кому нужен функциональный, кому нужен быстрый, для php и возможности ajax визуализации аплоада файла это может быть по apache, или если у вас питон или руби, то свой (сервер)
Бд должно иметь возможность роста в ширину, знаю что последний postgres имеет соответствующие приложения для масштабирования. http://www.ibm.com/developerworks/ru/library/os-05_sql/
Файловый сервер тоже легкий, от тюнингованный чисто на отдачу статики.
Плюсы:
На начальном этапе, все храниться на одном сервере.
Есть возможность бекап не только бд и файлов, но и быстрое востановление рабочей конфигурации сервера (бд, приложения).
При нагрузке на определенную виртуальную машину, видно в чем именно узкое место и живая миграция на соседний сервер (в крайнем случай подготовка через транспорт снапшота и быстрое поднятие с дельтой)
Отдельный файловый архив тоже можно перенести, и в дальнейшем настроить использование CDN
Минус:
- Сложность начальной настройки
- Обычную CMS на такое не поставить (точнее не целеобразно)
Ваши предложения/рассуждения по этому поводу?