微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络业界新闻 > 云服务颠覆传统 开发人员面临挑战

云服务颠覆传统 开发人员面临挑战

时间:02-13 来源:51CTO 点击:

  云计算肯定已经成为2009年的热点技术发展趋势。云应用的数量将大幅增长,这将给开发者带来新的利益,也会让他们担负起更多的责任。

  云服务的主机放置在Internet上,用户直接从Internet的服务器|0">服务器集群上获取应用和服务,这样的部署可以让开发人员不必再过多关心底层架构问题,但其中有一些新的细微差别是他们必须处理的。这些问题包括改变数据库的开发方式,无状态的重点应用,以及对不同框架进行处理。

  云服务固有的无状态性和服务器故障

  "在云计算中,软件本身能够提供应用所需要的资源,这是最大的变化,"Sun公司云计算CTO Lew Tucker说。通过使用API,开发人员可以为云应用编写程序,并直接向云提供商要求更多的资源。

  开发人员需要进行冗余设计,因为云服务中的服务器是平均分配的,微软Azure云平台副总裁Amitabh Srivistava表示,"如果你不为云应用设计冗余的话,服务器出错几乎是不可避免的。"

  云应用必须按照无状态搭建,Srivistava说。"如果你拥有固定的状态,就会出现问题。云服务的模型则是:如果有的应用失效了,你可以移除它并取而代之,"当然这需要无状态设计,他指出:在云中"没有任何概念的本地磁盘,也没有真正的登录。云中所有的一切应用都被无状态无形地包裹着。"

  Tucker指出,"简单的云应用绝对应该是无状态的。然而,很多有趣的应用总是免不了记录一些状态,这就是为什么我们仍然需要数据库或对象商店来存储一些东西"。某些项目比如用户信息可以存储起来。但是,具有规模的应用程序比如网络前端,在云中依然是无状态的。

  云应用的另一个差异是应用的组件可以在不同的云中运行。例如,一个应用可以调用Facebook的表现层,把数据储存在Amazon的S3上,而逻辑运算则完全可以放置在其他地方,Tucker说,"以前,人们一般都会在自己的服务器上把整个应用开发出来,现在不需要这样了。"

  这些事情意味着,建设云应用需要新的系统架构和新的思维方法,需要把云服务的巨大规模重点考虑进来。Tucker说,"这里没有魔法,构建可扩展的云应用需要坚实的工程基础和设计"。

  云平台可以提供帮助。Tucker说,比如Google App Engine就为受限应用自动提供了扩展性,另外一些平台提供了横向的应用设计模式,比如Amazon的弹性云计算平台EC2提供了Multiple Availability Zones,开发人员从设计开始就可以把应用分散到多个地点上。

  不一样的云数据库

  抽象和无状态的使用也影响到数据库。例如,Azure平台提出了一个非标准关系数据库的模型,可以从另一个角度建立数据库。咨询公司Benjamin Day Consulting总裁Ben Day指出,Azure的存储引擎不使用标准的关系数据库,因此"如果仍然按照标准的关系型数据库来开发标准的应用,很多工作可能会变得没有意义,"他举了一个关系型数据库存储过程的例子,其中的查询逻辑方法可以接近实际的数据,而这已经不再适用于Azure的云服务。

  "但问题是Azure的数据没有保证,你不知道你的数据到底保存在哪个服务器或Datacenter或任何设备中," Day说。另外,Azure的存储引擎与微软提供的基于云服务的SQL Server版本是不同的,因此他指出,开发者在设计应用时必须小心。

  据了解,微软也正在加速开发Azure利用关系型数据库的能力,同时为非关系型数据存储也提供了数据表式的存储选择。

  并不仅仅在Azure上出现了数据库的分歧。例如,"Google App Engine不仅不会看到实际的物理硬件,最终连机器的概念也会被淡化,"Google App Engine产品经理Pete Koomen这样说。这意味着开发者上传代码,然后Google进行管理并将数据库分割。"因为我们更加关注于自动化的进程,数据处理有一定的模式,而开发人员必须遵循,"这与传统的SQL模式完全不同,Koomen说。

  App Engine中使用的数据库模型称作Big Table,开发者可以使用它来持久存储数据。"Big Table不是SQL数据库,原因是SQL数据库支持的一些功能实在难以进行分割,这与我们跨机器存储数据的想法无法结合,"Koomen说。

  "在我们的系统中,我们已经发布了编程模型,反传统从一开始就受到鼓励,"开发者将数据存储在多个地方的的好处是,这种做法可以让应用的查询功能非常有效,Koomen说。

  当谈到云环境中是否可以继续使用关系型数据库,Koomen的反应是伸出了大拇指--不过是向下的!"我们发现,在高流量的网络条件下,关系型数据库非常难以管理,而且最终会给开发者带来巨大的资金和资源负担。"

  要习惯于云层的迅速变化

  Model Metrics,一家咨询公司,已经部署应用了Salesforce.com和其他公司的云服务。它发现的云服务应用和传统的网络客户端应用的一个主要区别是,"在云服务中,一切都变化的太快了。"公司CTO John Barnes这样认为。

  就拿云服务的新贵Salesforce.com来说,每年都要发布好几次新的版本,每次升级都会提供一些开发者用得着的地方,但Barnes并不反对这样频繁的升级。"作为开发人员,需要跟上事态发展,留意许多不同的博客,也要经常参与网络研讨会。"他说。

  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top