比方说,1980 年代出现 PC、x86 架构的出现以及客户机 / 服务器模式的诞生令应用应用设计原则发生了巨大的改变。然后,随着 web 和开源技术在 1990 年代中期的出现又再次剧变。每每发生这种巨变,开发者都被迫要对软件的开发和部署方式进行反思。

云环境下的软件开发需进行从头考虑(云环境下的软件开发需进行从头考虑吗)  云环境 软件开发 第1张

编者注:此文是 Eucalyptus Systems CEO Marten Mickos 的文章。

软件自呈现以来形式就未曾改动:作业运用,然后运用则是在渠道上面跑的。可是由于根底设备的腾跃发展,运用规划和布置的根底准则确实会不时改动—有时候这种改动还很剧烈。

比方说,1980 时代呈现 PC、x86 架构的呈现以及客户机 / 服务器形式的诞生令运用运用规划准则产生了巨大的改动。然后,跟着 web 和开源技能在 1990 时代中期的呈现又再次剧变。常常产生这种剧变,开发者都被逼要对软件的开发和布置方法进行反思。

现在的根底设备才干又有了新的腾跃,其主导是 Amazon Web Services(尤其在网络速度有了腾跃提高的前提下)。明显,为了能够充分利用新的云设备,那些在 AWS 上取得成功的运用有必要与作业在企业服务器上的运用有着实质的不同—哪怕是与作业在虚拟服务器上的运用也不一样。除此以外,还有其他一些要素决议了云运用在规划上有必要与曩昔有所不同。以下罗列的便是其间一些关键要素,这些要素也决议了新旧国际演化的方法:

弹性性

旧国际的弹性是经过扩容完结的—要想包容更多的用户或数据,只需购买更大对的服务器。

而在新国际里,弹性性通常是经过横向扩展完结的。要增加的不是更大的机器,而是同类的多台机器。在云国际中,那些机器是虚拟机。

弹性

曾经,软件是不行靠的,弹性是在硬件层完结的。

今日,底层的根底设备硬件被视为是薄弱环节,所以运用有必要自我调整来习惯。运用并不会保证每一个虚拟机实例都作业正常。单台虚拟机一段时刻失效也不要紧,运用有必要对此做好预备。

就拿 Netflix 来说吧,这能够说是***进的云用户了,它在云运用的道路上迈出的脚步是最远的。他们有一个进程叫做 ChaosMonkey,会随机地杀死运用负载下的虚拟机实例。这么做的意图是什么呢?便是为了保证运用的正常作业和弹性:经过让运用面临随机的实例丢失来迫使运用开发者开宣布愈加弹性的运用。

爆发性

在旧国际里,像财政和工资单这样的运用其负载一般都是很安稳和可猜测的。特定时刻的体系用户数、待处理记载数基本上都是已知的。

在新国际里,作业负载是多变的、不行预知的。今日的软件体系的触角有必要伸得更远,要抵达有服务需求的顾客和设备那里,时刻不行猜测,负载无法衡量(想想看那个成为众矢之的的 12306 网站吧)。要想习惯独立运用负载这些不行预见的动摇需求新的架构。尽管咱们现在已经在云上面了,可是明显还处在初级阶段。

软件多样性

在曩昔,软件并没有太多的多样性。每一款运用都是用一种言语编写的,运用的是一种数据库。公司一般都是依托与一个或少量几个操作体系。软件栈简略到令人庸俗的境地(至少从现在看是这样的)。

而在云的新国际里,状况天壤之别。一个运用里边或许就会用到许多不同的言语,不同的库,不同的工具包以及不同的数据库产品。一起由于在云端时你能够创建和发动自己的镜像,依据特定需求进行定制,一家公司的运用有必要能够作业在各种不同的装备上。

从虚机到云

哪怕是相对较新的 hypervisor 和现代的云思想方法之间也是有差异的。虚拟化的的前锋和*** VMware 所开发的 hypervisor 体现基本上与物理机器并无二致。

而在云端,虚拟的并不是物理服务器的代表,而是核算单元的代表。

用户的耐性

在旧国际,用户遭到的教育是要有耐性。由于体系的呼应或许需求很长一段时刻才干完结一些简略的提取或更新恳求,新功能的增加也很缓慢。

在新国际里,用户是没有耐性的。他们简直无法忍受时延,不愿意等候。他们期望软件常常更新,如果说不是每天的话,最少也是每周。你能够在自服务 IT 找到相关依据。在那里,你不是递张便条给 IT 部分然后等候几天后回应完事,用户所需的资源能够完结自供给。

转载请说明出处
知优网 » 云环境下的软件开发需进行从头考虑(云环境下的软件开发需进行从头考虑吗)

发表评论

您需要后才能发表评论