Jan*_*ert 12 cloud google-app-engine amazon-ec2 amazon-simpledb cloud-foundry
我目前正在寻找一个Cloud PaaS,它允许我扩展一个应用程序来处理1个用户和1000万+用户之间的任何事情......我从来没有做过任何这么大的事情和我似乎无法做到的大问题得到明确的答案为是,如果你的发展,让我们说有一个关系型数据库和肥皂Web服务标准的应用程序,将这款应用规模部署在PaaS的解决方案或者你还需要建立与翻倒的应用程序时自动,冗余和所有这些事情?
假设我将一个Spring Hibernate应用程序部署到Amazon EC2并且我创建了安装了Tomcat的单个Ubuntu Server实例,这个应用程序是无限扩展还是需要更多Ubuntu实例?如果需要多个Ubuntu实例,亚马逊是否会负责在两个实例上运行应用程序,或者这是开发人员的责任吗?那么数据库存储呢,我可以在EC2上安装一个随着数据库的增长而扩展的数据库,或者我是否需要使用其中一个API而不是无限期扩展?
CloudFoundry允许你在本地构建和只是直接部署到各自的PaaS,但因为它是处于测试阶段,还有你可以使用和数据库的限制,如果我没有记错为128MB资源量的限制,所以这是一个不走现在.有人建议在Amazon EC2上安装CloudFoundry,它如何扩展以及如何处理数据库层?
GAE(谷歌应用引擎),这将允许我只是部署一个应用程序,而不必担心它如何扩展和实现冗余?你可以和不能在GAE上运行的东西似乎存在一些限制,而且他们的价格上涨最近让很多开发人员感到不安,与其他提供商相比,它真的那么昂贵吗?
所以基本上,它会扩展吗?需要做些什么才能使其扩展?
Pet*_*ego 12
对于一篇文章来说,这是很多问题.无论如何:
Amazon EC2无法随负载自动扩展.EC2基本上只是一个虚拟机.您可以使用Auto Scaling和Elastic Load Balancing实现EC2实例的扩展.
SQL数据库的扩展性很差.这就是人们首先开始使用NoSQL数据库的原因.最好看看您的云提供商提供哪个数据库作为托管服务:GAE 上的数据存储区和亚马逊上的DynamoDB.
在EC2实例上安装自己的数据库是非常不切实际的,因为EC2具有临时存储(它在重新启动时会丢失"磁盘"上的所有数据).
GAE数据存储实际上是运行在其上的所有应用程序的一个大数据库.因此它具有相当的可扩展性 - 您的百万用户不应该成为它的问题. http://highscalability.com/blog/2011/1/11/google-megastore-3-billion-writes-and-20-billion-read-transa.html
是App Engine自动扩展,前端实例和数据库.没有什么特别的,你需要做它才能扩展,只需使用他们的API.
您可以使用AppEngine进行限制:
A.没有本地存储(文件系统) - 您需要使用数据存储区或Blobstore.
B. Comet仅通过其专有的Channels API支持
C.数据存储区是一个NoSQL数据库:没有JOIN,有限的查询,有限的事务.
GAE的成本也不错.我们每天要做大约5美元的1M请求.最大的节省来自于您不需要GAE上的系统管理员(但您确实需要一个用于EC2).与人力成本相比,GAE非常便宜.
省钱的一些提示(加快速度)GAE:
A.在数据存储区中使用get而不是查询(需要仔细制作natiral键).
B.使用memcache缓存从数据存储区获得的数据.这可以通过客观化和@Cached注释自动完成.
C.非规范化数据.这意味着您在各个地方冗余地写入数据,以便尽可能少地进行操作.
D.如果您有很多来自设备的REST请求,那么您不使用cookie,那么请关闭会话支持(或者像我们一样滚动自己的会话支持).会话使用引擎盖下的数据存储区以及它所获取和放置的每个请求.
E.阅读有关调整应用程序设置.尝试不同的设置(取决于您的应用程序对请求延迟和流量模式/峰值的容忍程度).我们能够将前端实例减少70%.
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |