云应用在设计上必须与过去有所不同

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

软件自出现以来模式就未曾改变:运行应用,然后应用则是在平台上面跑的。但是由于基础设施的飞跃发展,应用设计和部署的基础原则的确会不时改变—有时候这种变化还很激烈。

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

现在的基础设施能力又有了新的飞跃,其主导是 Amazon Web Services(尤其在网络速度有了飞跃提升的前提下)。显然,为了能够充分利用新的云设施,那些在 AWS 上取得成功的应用必须与运行在企业服务器上的应用有着本质的不同—哪怕是与运行在虚拟服务器上的应用也不一样。除此以外,还有其他一些因素决定了云应用在设计上必须与过去有所不同。以下列举的就是其中一些关键因素,这些因素也决定了新旧世界演变的方式:

伸缩性

旧世界的伸缩是通过扩容实现的—要想容纳更多的用户或数据,只需购买更大对的服务器。

而在新世界里,伸缩性通常是通过横向扩展实现的。要增加的不是更大的机器,而是同类的多台机器。在云世界中,那些机器是虚拟机。

弹性

以前,软件是不可靠的,弹性是在硬件层实现的。

今天,底层的基础设施硬件被视为是薄弱环节,所以应用必须自我调整来适应。应用并不会保证每一个虚拟机实例都工作正常。单台虚拟机一段时间失效也没关系,应用必须对此做好准备。

就拿 Netflix 来说吧,这可以说是最先进的云用户了,它在云应用的道路上迈出的步伐是最远的。他们有一个过程叫做 ChaosMonkey,会随机地杀死应用负载下的虚拟机实例。这么做的目的是什么呢?就是为了确保应用的正常运转和弹性:通过让应用面对随机的实例损失来迫使应用开发者开发出更加弹性的应用。

爆发性

在旧世界里,像财务和工资单这样的应用其负载一般都是很稳定和可预测的。特定时刻的系统用户数、待处理记录数基本上都是已知的。

在新世界里,工作负载是多变的、不可预知的。今天的软件系统的触角必须伸得更远,要到达有服务需求的消费者和设备那里,时间不可预测,负载无法衡量(想想看那个成为众矢之的的 12306 网站吧)。要想适应独立应用负载这些不可预见的波动需要新的架构。虽然我们现在已经在云上面了,但是显然还处在初级阶段。

软件多样性

在过去,软件并没有太多的多样性。每一款应用都是用一种语言编写的,使用的是一种数据库。公司一般都是依托与一个或少数几个操作系统。软件栈简单到令人乏味的地步(至少从现在看是这样的)。

而在云的新世界里,情况截然不同。一个应用里面可能就会用到许多不同的语言,不同的库,不同的工具包以及不同的数据库产品。同时由于在云端时你能够创建和启动自己的镜像,根据特定需求进行定制,一家公司的应用必须能够运行在各种不同的配置上。

从虚机到云

哪怕是相对较新的 hypervisor 和现代的云思维方式之间也是有区别的。虚拟化的的先锋和领袖 VMware 所开发的 hypervisor 表现基本上与物理机器并无二致。

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

用户的耐性

在旧世界,用户受到的教育是要有耐心。因为系统的响应可能需要很长一段时间才能完成一些简单的提取或更新请求,新功能的添加也很缓慢。

在新世界里,用户是没有耐心的。他们几乎无法容忍时延,不愿意等待。他们希望软件经常更新,如果说不是每天的话,起码也是每周。你可以在自服务 IT 找到相关证据。在那里,你不是递张条子给 IT 部门然后等待几天后回应了事,用户所需的资源可以实现自提供。

(责任编辑:蒙遗善)

时间: 2024-10-26 16:36:17

云应用在设计上必须与过去有所不同的相关文章

基于微服务和Docker容器技术的PaaS云平台架构设计

本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施. [3 天烧脑式容器存储网络训练营 | 深圳站]本次培训以容器存储和网络为主题,包括:Docker Plugin.Docker storage driver.Docker Volume Pulgin.Kubernetes Storage机制.容器网络实现原理和模型.Docker网络实现.网络插件.

阿里云的计算设计探索

云栖TechDay39期,阿里云高级视觉设计师刘宝明带来阿里云的计算设计探索的演讲.本文主要从阿里云的三代视觉语言设计谈起,着重分享了怎样可以更好的去诠释云计算的业务,打造阿里云的品牌属性,每一步的设计思考.体验与历程.分享了不同的设计侧重.赋能全链路,最后对未来做了展望.   设计师是对设计事物的人的一种泛称,宝明以视觉传达的方式来表现自己的工作.随着新技术的不断涌现,设计师学习和实践的不仅仅是设计技能,还有运营技能.产品技能,更要有发现.分析和解决问题的能力,接下来我们一起来了解下~   首

云规划与设计:成功路线图

如果您尚未转向云服务,该考虑实施了,对此人们应该毫无疑问.预计到2015年,全球云计算市场将达1210亿美元,远超2010年的378亿美元.然而,非常仓促地加入云服务,压力也是存在的,未经深思熟虑的规划就去实施可能会给今后制造麻烦. 云项目对几乎任何机构可能都是复杂的,无论该项目是建立一个私有云.公共云还是混合云.虽然您最初的目标可能是创建一个满足当前需求的云架构,但现在您构建的云服务还必须满足未来的业务需求.精心规划是云运行成功的一个绝对前提. 那么,从何处开始呢?采用简单的指令性方法来进行云

“路线图”帮你打造成功云规划与设计

本文讲的是"路线图"帮你打造成功云规划与设计,如果您尚未转向云服务,该考虑实施了,对此人们应该毫无疑问.预计到2015年,全球云计算市场将达1210亿美元,远超2010年的378亿美元.然而,如果仓促地选择云服务,压力也是存在的,未经深思熟虑的规划就去实施可能会给今后制造麻烦. 云项目对几乎任何机构可能都是复杂的,无论该项目是建立一个私有云.公共云还是混合云.虽然您最初的目标可能是创建一个满足当前需求的云架构,但现在您构建的云服务还必须满足未来的业务需求.精心规划是云运行成功的一个绝对

私有云存储系统的设计与实现

私有云存储系统的设计与实现 电子科技大学   马小平 本文实现了数据存储单元中的设计思路和设计要点. 整个数据存储子系统实 现是在 Linux 环境下使用 C++来实现的; 实现之后系统, 用户可以通过客服端来 上传.下载和删除数据;实现数据以键值对存储方式进行存储,据按照基于规则 的资源定位策略(多层映射),定位到多个不同的数据存储单元;通过桶的扩展和 迁移来实现系统的负载均衡机制;用多副本机制来实现数据的恢复和重建; 总的来讲实现了一个具有高性能. 可用性协调. 私有云存储系统的设计与实现

一种新型云存储系统的设计与实现

一种新型云存储系统的设计与实现 董昌坤,侯宾,吕玉琴 随着数据的暴增,传统的存储方式已经不再满足海量数据的存储需求,云存储技术的飞速发展,使得云存储成为了一种新型的数据存储解决方案.本文分析了国内外云存储技术的发展现状,提出了一个具有高可扩展性.高可靠性.兼容不同存储设备的分布式云存储解决方案.本文从分布式文件系统HDFS 出发,设计实现文件读写模块,在兼容Amazon S3协议的基础上,设计实现核心业务逻辑处理模块.面向前端请求的代理模块.安全认证模块.基于数据库的元数据存储模块.前端页面显示

山东省电子政务云平台顶层设计进一步完善

4月8日,山东省经信委网站发布了<山东省电子政务公共服务云平台顶层设计>(以下简称顶层设计),进一步保证了山东省电子政务云平台顶层设计和建设的统一性.按照省政府办公厅<关于加快我省电子政务集约化发展的实施意见>(鲁政办发[2015]7号)的要求,山东省省级电子政务公共服务云平台依照通过专家论证的顶层设计于2015年9月搭建完成.在半年的试运行过程中,对省级电子政务公共服务云平台反映出的缺陷和问题,有针对性地对顶层设计进行了修改完善. 随着全省各级政府部门对信息化建设的需求不断增加,

有关审核表设计上面的,求方案【在线等】

问题描述 有关审核表设计上面的,求方案[在线等] 业务是"资料审核",审核会出现多次不通过的情况:现在有两张表,一张company_info(公司信息)一张check_company_log(审核日志)如果审核不通过的情况下,要给用户看到不通过的原因: 目前的设计是check_company_log表里面有"原因"字段,company_info表里冗余一个"原因"(用于展示,当然这里面存的是最后一次不通过的原因) 每次不通过的时候,要做两个操作,

我们为什么要花时间和精力在设计上

文章描述:最近通过各种渠道和形式接触了几位设计师,他们来自不同的公司,做着迥异的产品,但当我问起类似于"设计的意义"这样的问题时,他们的回答均不能让人满意.最常见的回答是:比原来好用了.好看了,或者这是业务部门的需求. 最近通过各种渠道和形式接触了几位设计师,他们来自不同的公司,做着迥异的产品,但当我问起类似于"设计的意义"这样的问题时,他们的回答均不能让人满意.最常见的回答是:比原来好用了.好看了,或者这是业务部门的需求. 我们为什么要花时间和精力在设计上? 有人