海滨被称为“异端的Web框架”。 一,使之异端的一点是,它已经很多共享的状态。 不过那是后话,在我目前的理解,阻碍易结垢。
红宝石上,另一方面股钢轨尽可能少的状态。 它一直被称为扩展得很好,即使它比作现代Smalltalk的虚拟机是狗缓慢。 Flickr的使用PHP和迈上了一个大的极端基础设施...
所以,有任何人在海边的缩放一些经验?
海滨被称为“异端的Web框架”。 一,使之异端的一点是,它已经很多共享的状态。 不过那是后话,在我目前的理解,阻碍易结垢。
红宝石上,另一方面股钢轨尽可能少的状态。 它一直被称为扩展得很好,即使它比作现代Smalltalk的虚拟机是狗缓慢。 Flickr的使用PHP和迈上了一个大的极端基础设施...
所以,有任何人在海边的缩放一些经验?
简短的回答:你可以扩展应用海边像地狱呀
龙答:在IT领域,比例是一回事,但它有两个维度:
几乎每个人都想过的垂直尺寸的缩放。 这是直到英特尔和朋友达成了一些物理屏障和开始添加核心,以弥补增加兆赫当前是不可能的。
这时候,所有我们开始更加意识到作为路要走水平扩展的。
我为什么要告诉你呢?
因为海边是在VM一个Smalltalk的图像运行,并且是大致的系统的一个单芯处理器的服务器同样的情况。
以这为基础,你通过使服务器集群扩展Web应用程序。 这是应该做的自然的事情,这是应该做的容错的事情,是应该做的拓扑聪明的事情,是有弹性的事,我想你的想法...
因此,如果缩放,你做同样的英特尔和朋友,你拥抱水平的方式。 而且它更便宜,垂直方式(这将导致你对那些昂贵的好IBM和Sun服务器)。
RoR的应用程序通常被水平地缩放。 谷歌有无数的廉价服务器来做好自己的事情。 这工作完全正常,无论戏剧化的人怎么想的打动你,你扔了一堆叽叽喳喳遗忘鲸鱼。
如果他们和你谈谈,你只是礼貌,听到他们在说什么,但记住这一点:
顺便说一句,亚马逊做类似的东西太(和它种夫妇的地理位置,使他们增强参加最接近那就是你的位置集群您的要求的机会)。
在另一方面,该方法阿维缩放dabbledb(被Twitter收购海边的基于Web的应用程序的公司)使用每个客户帐户一个VM(启动和关闭的需求)。
有很多国家的形象不会使缩放不可能也不复杂。
只是不同。
要走的路是与使用粘性会话,所以你可以有一个形象的关心提醒用户会话的所有请求负载平衡器。 你让这样的事情负载平衡器后面的任何工人图像可以参加一个给定的应用程序的任何用户。 而这几乎是它。
为了能够做到这一点,你需要工人之间共享持久对象。 所有用户数据库需要由工人访问在任何时候,需要并发处理好。
我们设计airflowing那样的可扩展性。
它的经济也方便,因为你可以有N非常小(根据您的第一台服务器的RAM)开始,并增加其需求,直到你到达硬件限位。
一旦你到达硬件限位,你只需要添加另一台主机的集群和recofigure平衡器(和访问数据库)。
简单,经济和优雅。
拉蒙·莱昂分享了一些他对他(优秀)博客按比例放大的海滨体验。 您可以阅读与示例代码有关配置和调节海边非常具体的想法。
请享用 :-)
http://onsmalltalk.com/scaling-seaside-more-advanced-load-balancing-and-publishing http://onsmalltalk.com/scaling-seaside-redux-enter-the-penguin http://onsmalltalk.com/无状态-网站地图功能于海边
http://dabbledb.com/似乎规模相当好。 此外,可以使用GemStone的玻璃运行海边。
在这个采访中阿维科比海滨和共同创办人的创造者DabbleDB解释它们如何使规模。
从我的理解:
每个客户都有它自己的形象佳乐。
当客户来到阿帕奇做出决定基于用户名发送到哪个端口。
基于端口启动客户佳乐形象。
这样,它可以长到服务器的无限数量。
我觉得这个解决方案适用于根据它们的应用程序的每个客户并不需要它们之间共享信息的具体细节。 因此,没有必要邻集中DB。
反正这是更好地观看了采访,而不是我的半制成总结。
是的,海边飞驰按比例缩小。 单个开发人员可以创建和维护小团体复杂的应用非常好。
[回来后这几年]这实际上是要比扩大更重要。 电脑速度还是增长了很多,所有的应用程序的99%,现在可以在一台机器上运行。 发展速度,特别是维护现在完全主导TCO。
我想稍微改一下你的问题:没有海滨防止/从创建应用程序的规模劝阻你? 我通常会说没有。 海边没有一个默认的方式来存储你的数据(就像它不,虽然海边给你一些额外的选项PHP)和我的印象与您的数据交互往往是最大的障碍,当谈到缩放。
如果你想存储在一个单片SQL数据库数据,使用Rails,你可以做到这一点。 或者你可以使用一个对象数据库。 或者你可以使用一个单独的对象数据库中的每个用户,或对每一个项目,或者为每个用户和项目单独分贝单独分贝。 或者你可以存储所有的一系列平面文件,也可以直接将数据存储在你的虚拟机的内存中的对象。
而由于延续的,你不需要再取出您的数据进行数据存储的每个网页调用。 当您使用的是桌面应用程序,你可以拉数据从您的数据存储在您的用户开始用它进行交互,设置相应的变量,然后用webcalls之间的那些变量,直到用户与数据做此时您可以更新数据存储。 当你不共享状态,你必须打在数据存储上的每一个webcall。
当然,这个平均好好尝试一下比例是免费的,它只是意味着你必须在其中搜索缩放解决方案的更大的领域。
因为存在(为此事和PHP)的轨道大型主机的解决方案,为您提供大量的资源,而无需租用和设置自定义文件夹所有的说,对于许多应用轨道将扩展更加容易简单。
这些只是我从阅读与人交谈的印象。
我只是提醒有对Pharo酒店的成功案例链接:多达1000个并发用户在阿根廷大健康保险海边的Web应用程序。
菲罗成功案例
ISSYS跟踪:
从维基百科的文章,这是一个总的猪。 在此之前,它没有扩展到那里我听说了点吧。 :)