云计算编程有何不同?(4) |
发布时间: 2012/7/22 16:20:21 |
重新考虑你的软件架构 尽管开发人员预计部署到亿恩石头QQ:673606008 电话:18237160419“就像”任何一种类型的Web开发,你的确需要认识到架构方面的差异。Standing Cloud公司首席执行官David J. Jilk解释:“在亿恩石头QQ:673606008 电话:18237160419环境开发应用程序就有点像是从美国到访加拿大。几乎每个方面都一样,但是你会注意到存在一些细小的差异,必须顾及到。”他表示,大多数差异与基础架构和技术堆栈层有关,而不是与应用程序代码本身有关。 Heavy Water软件公司的首席开发人员Anthony Eden表示,内部托管环境往往很稳定,基本上不受外界因素的影响。但是由于资源共享,亿恩石头QQ:673606008 电话:18237160419环境(以及在一定程度上的所有虚拟化环境)显得很混乱。Eden指出:“整个系统的运行可能受到完全不受你控制的因素的影响,而且常常是这样。”他给出的解决办法就是:采用大猩猩工程(gorilla engineering),这是应对不断变化的环境的一种做法。 LaFleur提醒,不要把可扩展性误认为是系统性能。设计应用程序时要考虑到网络延迟。可扩展系统在负载状态下更可靠,而且可以保持相对一致的性能;但是也要承认到这一点:如果迁移到亿恩石头QQ:673606008 电话:18237160419,性能会受到影响,而且还会出现间歇性故障。你的应用程序应该能从容处理中断问题。 “想真正将Web服务适当地实施到亿恩石头QQ:673606008 电话:18237160419中,开发人员就要着眼于‘函数方面’,而不是着眼于‘对象方面’。”--Limewire公司的John Pavley LaFleur说:“亿恩石头QQ:673606008 电话:18237160419中的数据库也许能够以异常快的速度从存储系统中获取数据,但是这些数据仍得传送到客户端应用程序。”他发现,尽量减小传送的数据量常常会给性能带来重大影响。如果你只需要100个记录中的三个字段,就要确保你获取的仅仅是这些内容;他表示,更好的做法是,分成每批25个获取并显示那些记录。 这可能要有不同的理念。Limewire公司的工程副总裁John Pavley说:“想真正将Web服务适当地实施到亿恩石头QQ:673606008 电话:18237160419中,开发人员就要着眼于‘函数方面’,而不是着眼于‘对象方面’。函数式编程意味着动态定义针对没有状态的数据执行操作的函数,可以根据需要,将函数均匀地分发到任何数量的云服务器。遗憾的是,至少大多数开发人员一贯以来着眼于‘对象’,对象是指将数据绑定在单一Java类或C#类里面的有状态实体。很难针对对象实行负载均衡,它们到头来给你的亿恩石头QQ:673606008 电话:18237160419环境带来了人为的限制。” 这给你选择的工具和语言带来了影响(前面关于学用新工具的第一点有所提及)。Pavley说:“通过Perl、Python和JavaScript等编程语言,使用无状态函数进行扩展要容易得多。”但是其他开发人员向我详细解释了他们选择的编程语言为什么是最佳选择,他们致力于Java、开源环境或微软开发环境。我得出的结论是,你也许可以使用自己青睐的任何一种环境,不过一些亿恩石头QQ:673606008 电话:18237160419开发工具的早期版本可能会带来诸多局限性。 亿恩科技石头 负责服务器租用和托管业务 本文出自:亿恩科技【www.enkj.com】 |