如何编写云感知应用程序?例如,一个从部署在云上获益的应用程序。它是否与运行的应用程序或vps/专用服务器相同?如果不是,那么有什么不同?设计上有什么变化吗?如果我要将应用程序迁移到云感知,我需要执行哪些步骤?
此外,我即将实现一个web应用程序的想法,这将需要的功能,如安全性,性能,缓存,更重要的是免费。我已经比较了一些框架,发现django占用内存/CPU最少,在prefork+threaded模式下也很好用,但我也读到基于django的站点会停止响应大量的连接。我见过/知道的其他框架有Zend、CakePHP、Lithium/Cake3、CodeIgnitor、Symfony、Ruby on Rails……
所以我也会把这个留给你的意见,建议我一个基于我的需求的好的免费框架。
最后,感谢您阅读这篇文章;)
发布于 2010-03-21 02:29:10
我感觉矩阵时刻就要来了。“云是什么?云就在我们周围,是你的程序的牢笼……”(什么?常见问题解答说,发挥你的幽默感...)
好吧,说真的,云是什么?这取决于实现,但通常的功能包括可扩展的计算资源和每cpu小时的费用,存储区域等。所以,是的,它有点像在你的VPS/一个普通的服务器上开发。
据我所知,Google App Engine允许你想消费多少就消费多少。后端资源管理是由Google完成的,并向您收费,您可以为您使用的资源付费。我相信甚至还有一个免费的门槛。
亚马逊EC2公开了一个API,它实际上允许你添加虚拟机实例(如果我错了,请纠正我),预先配置它们,部署你的web应用程序的另一个实例,如果你愿意的话,在私有IP范围之间交谈(slicehost绝对允许这样做)。因此,EC2可以让您在前端充当一个巨大的负载均衡器,将工作分配给后端的大量VM,或者公开所有这些工作,您可以随意选择。我不确定确切的细节,因为我没有构建系统,但这就是我对它的理解。
我有一种感觉(但我对Azure知之甚少),在Azure上,资源管理是由微软根据你的应用程序使用的自动完成的。
因此,总而言之,根据您选择的特定云,云是不同的东西。EC2似乎公开了一个管理资源的应用程序接口,GAE和Azure似乎是在后台根据你的使用而增长和缩小的环境。
注意:我知道在GAE中开发了一些特定的约束,特别是Java。现在,我将在另一个帖子中编辑,其中有人对我的一篇帖子进行了很好的评论。
按照承诺编辑,请参阅此帖子:Cloud Agnostic Architecture?
至于框架的选择,对我来说真的无关紧要。如果您计划部署到这些平台之一,您可能需要检查框架/语言的可用性。我个人刚刚开始使用Django,并且很喜欢它,因为我已经学习了一段时间的python,所以,以我完全公正的观点,使用Django。其他开发人员可能会根据他们的偏好推荐其他东西。你知道些什么?你对什么最舒服?你最喜欢什么?我会同意的。我选择Django纯粹是因为我不是PHP的狂热粉丝,我喜欢Python,当我最初使用它的时候,我对它感到很舒服。
编辑:那么如何编写云感知代码?你设计你的软件的方式,它适合这些架构中的一个。同样,请参阅与云无关的帖子,了解如何做到这一点的一些非常好的讨论。例如,您可能会与可伸缩的GAE上的一些服务进行交谈。它们在GAE (示例)上并不重要,您使用的是松散耦合的思想。从本质上讲,这只是web服务思想的一个进步。
此外,我忘记提到的另一个云功能是为您提供CDN的想法-一些云实现可能会将您的数据移动到全球各地,以使其更高效地提供服务,或者只是因为那里有空间。如果这是一个问题,不要使用云。
发布于 2010-03-21 02:37:41
我不能回答你的问题--我对这类项目没有经验--但我可以告诉你一件事……CakePHP和CodeIgniter都是为PHP4设计的--换句话说:为非常古老的技术设计的。看起来他们的情况不会有任何改变。Symfony (特别是2.0版本,它仍处于重测阶段)是值得考虑的,但正如我在一开始所说的--我不能以我自己的经验支持这一点。
发布于 2010-03-21 02:28:36
在设计部署云的应用程序时,要考虑的主要问题是可恢复性。如果您的服务器终止,您可能会丢失所有数据。如果您在Amazon上部署,我建议将您需要持久存储的所有数据放到Elastic Block Storage (EBS)设备上。这将是用户生成的内容/文件、数据库文件和日志等数据。我还使用EBS快照进行5天一次的循环,因此会自动进行备份。也就是说,我在AWS上运行了一年多的云服务器,没有任何问题。
至于框架,我目前正在尝试Grails,我非常喜欢它。被构建为在语法上类似于Rails,但在JVM上运行。这意味着您可以利用Java的所有优点,如线程、并发性和所有优秀的库来构建您的web应用程序。
https://stackoverflow.com/questions/2484167
复制相似问题