Краткий ответ:
Вы можете масштабировать приложения Seaside, такие как ад, да
Длинный ответ:
В области ИТ масштабирование - это одно, но оно имеет два измерения:
- horozontal
- 1012 * вертикальный *
Почти все думали о масштабировании в вертикальном измерении. Так продолжалось до тех пор, пока intel и друзья не достигли некоторых физических барьеров и не начали добавлять ядра, чтобы компенсировать текущую невозможность добавления МГц.
Это когда все мы начали больше осознавать масштабирование по горизонтали как путь.
Почему я говорю вам это?
Потому что Seaside - это образ малого разговора, работающий на виртуальной машине, и это примерно то же самое, что система на сервере с одноядерным процессором.
Принимая это за основу, вы масштабируете веб-приложения, создавая кластер серверов. Это естественная вещь, это отказоустойчивая вещь, топологически разумная вещь, гибкая вещь, я думаю, вы поняли ...
Итак, если для масштабирования вы делаете то же самое, что и intel & friends, вы выбираете горизонтальный путь. И даже дешевле, чем вертикальный путь (который приведет вас к серверам IBM и Sun, которые стоят так же дорого, как и дорогие).
Приложения RoR обычно масштабируются по горизонтали. У Google есть бесчисленное множество дешевых серверов, чтобы делать свое дело. Он прекрасно работает, независимо от того, как драматизированные люди хотят произвести на вас впечатление, бросая в вас кучу незабываемых щебетаных китов.
Если они говорят с тобой об этом, просто будь вежлив и слышишь, что они говорят, но помни это:
- совершенный враг хорошего
- незаконченное совершенное никогда не будет таким ценным, как хорошо сделанное
Кстати, Amazon тоже делает что-то подобное (и это как бы объединяет геолокацию, поэтому они повышают шансы на удовлетворение ваших запросов в кластере, ближайшем к вашему местоположению).
С другой стороны, способ, которым Avi масштабировал dabbledb (компания веб-приложений на базе Seaside, купленная в твиттере), использовал одну виртуальную машину на учетную запись клиента (запуск и остановка учетных записей по требованию).
Наличие большого количества состояния на изображении не делает масштабирование невозможным или сложным.
Просто по-другому.
Можно использовать балансировщик нагрузки, который использует липкие сеансы, чтобы вы могли иметь одно изображение, удовлетворяющее всем запросам пользовательского сеанса. Вы делаете вещи так, чтобы любой рабочий-имидж за балансировщиком нагрузки мог посещать любого пользователя данного приложения. И это почти все.
Для того, чтобы сделать это, вам нужно делиться постоянными объектами среди рабочих. Все базы данных пользователей должны быть доступны работникам в любое время и должны хорошо справляться с параллелизмом.
Мы разработали масштабируемый таким образом поток воздуха.
Это также экономически удобно, поскольку вы можете начать с очень малого N (в зависимости от ОЗУ вашего первого сервера) и увеличивать его по требованию, пока не достигнете аппаратного предела.
Как только вы достигнете аппаратного предела, вы просто добавляете другой хост в кластер и перенастраиваете балансировщик (и доступ к базам данных).
Простой, экономичный и элегантный.