Подтвердить что ты не робот

Есть ли у моря масштаб?

Приморье известно как "еретический веб-каркас". Один из моментов, которые делают его еретическим, состоит в том, что он имеет много общего состояния. Это, однако, то, что в моем нынешнем понимании затрудняет легкое масштабирование.

Ruby on rails, с другой стороны, делится как можно более низким состоянием. Известно, что он довольно хорошо масштабируется, даже если он медленный по сравнению с современными smalltalk vms. flickr использует php и масштабируется до чрезвычайно большой инфраструктуры...

У кого-нибудь есть опыт в масштабировании Приморья?

4b9b3361

Ответ 1

Короткий ответ: вы можете масштабировать приложения Seaside, такие как hell yah

Длинный ответ: В ИТ-области масштабирование - это одно, но оно имеет два измерения:

  • horozontal
  • вертикали

Почти все думали о масштабировании в вертикальном измерении. Это было до тех пор, пока Intel и друзья не достигли каких-то физических барьеров и начали добавлять ядра, чтобы компенсировать текущую невозможность добавления МГц.

Что, когда мы все стали лучше понимать масштабирование по горизонтали, как путь.

Почему я говорю вам это?

Поскольку Seaside - это небольшое изображение, работающее в виртуальной машине, и это примерно такая же ситуация в системе на сервере процессора с монокодом.

Принимая это за основу, вы масштабируете веб-приложения, создавая кластер серверов. Это естественная вещь, которую нужно делать, это толерантная вещь, которую нужно делать, - это топологически разумная вещь, которую нужно делать, это гибкая вещь, я думаю, вы понимаете...

Итак, если для масштабирования вы делаете то же самое, что и интеллект и друзья, вы принимаете горизонтальный путь. И это даже дешевле, чем вертикальный путь (который приведет вас к серверам IBM и Sun, которые так же дороги, как и дорогие).

Приложения RoR обычно масштабируются по горизонтали. Google имеет бесчисленные дешевые серверы, чтобы делать свою работу. Он отлично работает независимо от того, как драматизированные люди хотят произвести впечатление на вас, бросая на вас кучу забытых щебетать китов.

Если они расскажут вам об этом, вы просто будьте вежливы и услышите, что они говорят, но запомните это:

  • совершенный является врагом хорошего
  • незавершенный совершенный никогда не будет таким же ценным, как хорошее дело.

Кстати, Amazon тоже делает что-то похожее (и это своего рода геолокация пары, поэтому они повышают шансы присутствовать на ваших запросах с ближайшим к вашему кластеру кластером).

С другой стороны, способ, которым Avi масштабировал dabbledb (приморская веб-приложение, купленная twitter), использовал один vm на учетную запись клиента (запуск и завершение работы по запросу).

Наличие большого количества состояний в изображении не делает масштабирование невозможным и сложным.

Просто разные.

Путь к работе заключается в балансировке нагрузки, которая использует липкие сессии, чтобы вы могли иметь одно изображение, соответствующее всем запросам пользовательского сеанса. Вы делаете так, чтобы любой рабочий образ за балансировщиком нагрузки мог посещать любого пользователя данного приложения. И это в значительной степени.

Чтобы иметь возможность сделать это, вам нужно разделить постоянные объекты между рабочими. Все базы данных пользователей должны быть доступны рабочим в любое время и должны хорошо работать с concurrency.

Мы разработали таким образом масштабируемое масштабирование потока.

Это экономично удобно, потому что вы можете начать с N очень маленьким (в зависимости от ОЗУ вашего первого сервера) и увеличить его по требованию, пока не достигнете предела аппаратного обеспечения.

Как только вы достигнете ограничения на оборудование, вы просто добавите еще один узел в кластер и восстановите балансировку (и доступ к базам данных).

Простой, экономичный и элегантный.

Ответ 2

Рамон Леон делится некоторыми своими впечатлениями об улучшении своего побережья в своем (отличном) блоге. Вы можете прочитать очень конкретные идеи с образцом кода о настройке и настройке побережья.

Наслаждайтесь: -)

http://onsmalltalk.com/scaling-seaside-more-advanced-load-balancing-and-publishing http://onsmalltalk.com/scaling-seaside-redux-enter-the-penguin http://onsmalltalk.com/stateless-sitemap-in-seaside

Ответ 3

http://dabbledb.com/, кажется, достаточно хорошо масштабируется. Кроме того, для запуска Seaside можно использовать GemStone GLASS.

Ответ 4

На этом interview Ави Брайант, создатель основателя Seaside и Co DabbleDB Объясняет, как они масштабируются.

Из того, что я понимаю:

  • у каждого клиента есть собственный Squeak Изображение.

  • Когда клиент приходит, Apache решает на основе имени пользователя, для которого его отправляет.

  • На основе порта он запускает клиентское изображение Squeak Image.

  • Таким образом, он может вырасти до бесконечного числа серверов.

Я думаю, что это решение работает для них на основе специфики их приложения, каждому клиенту не нужно делиться информацией между ними. Поэтому нет необходимости в централизованной БД.

В любом случае лучше смотреть интервью, а не сводное резюме.

Ответ 5

Да, Приморье сказывается фантастически. Один разработчик может очень хорошо создавать и поддерживать сложные приложения для небольших групп.

[вернемся к этому через несколько лет] Это на самом деле гораздо важнее масштабирования. Компьютерная скорость все еще растет, и 99% всех приложений теперь могут работать на одной машине. Скорость развития и, особенно, техническое обслуживание теперь полностью доминирует в TCO.

Ответ 6

Я бы немного перефразировал ваш вопрос: предотвращает ли Seaside/препятствует созданию приложений, которые масштабируются? Я бы сказал, обычно нет. У Seaside нет стандартного способа хранения ваших данных (точно так же, как php на нем нет, хотя Seaside дает вам несколько дополнительных опций), и мое впечатление взаимодействует с вашими данными, как правило, является самым большим препятствием, когда дело доходит до масштабирования.

Если вы хотите хранить свои данные в монолитной SQL-базе данных, например, с помощью рельсов, вы можете это сделать. Или вы можете использовать базу данных объектов. Или вы можете использовать отдельную базу данных объектов для каждого пользователя или отдельный db для каждого проекта или отдельный db для каждого пользователя и проекта. Или вы можете хранить все в серии плоских файлов или просто хранить свои данные как объекты в своей памяти VM.

И из-за продолжения вам не нужно повторно извлекать данные из своего хранилища данных при каждом вызове веб-страницы. Как при использовании настольного приложения вы можете вытащить данные из своего хранилища данных, когда ваш пользователь начнет взаимодействовать с ним, установите соответствующие переменные, а затем используйте эти переменные между веб-камерами, пока пользователь не выполнит данные, с которых вы можете обновить хранилище данных. Когда вы не делите состояние, вы должны ударить хранилище данных на каждом веб-сайте.

Конечно, это не означает, что масштабирование бесплатное, это просто означает, что у вас есть более крупный домен, в котором можно искать масштабирующие решения.

Все, что было сказано, для многих приложений рельсы будут значительно масштабироваться просто потому, что существуют большие хостинговые решения для рельсов (и php, если на то пошло), которые будут предлагать вам огромное количество ресурсов без необходимости сдавать в аренду и настраивать пользовательский ящик.

Это мои впечатления от чтения и общения с людьми.

Ответ 7

Я только что напомнил, что есть ссылка на истории успеха Pharo: приложение Seaside Web с до 1000 одновременными пользователями для большой страховки здоровья в Аргентине.

Истории успеха Pharo

Отслеживание проблем:

  • Балансировка нагрузки: Apache в качестве прокси/балансира (циклический сеанс с сеансом Сродство)
  • Настройка сервера: 5 изображений Pharo на 3 разных серверах (Linux и Windows 2003)
  • GUI: сильно основан на AJAX. Весь код написан в Smalltak: Seaside 3.0, интеграция с Seaside JQuery и JQWidgetBox.
  • Постоянство: Glorp (OR mapper) и OpenDBX (клиент DB)
  • Базы данных: большие базы данных PostgreSQL и MS SQL Server

Ответ 8

Из статьи в Википедии это общая свинья. До этого он не масштабировался до такой степени, что я слышал об этом.:)