关于Web-Scale IT的一些观点

2014 年 10 月 12 日

FIT2CLOUD 联合创始人阮志敏近日通过邮件向 InfoQ 中文站分享了他对 Web-Scale IT 的一些观点,当中列举了 Web-Scale IT 的典型特征,并对企业实现 Web-Scale IT 提供了一些建议。以下是邮件内容:


Gartner 近日发布了 2015 年十大 IT 趋势预测,其中包括 Web-Scale IT。Gartner 指出:未来将有更多的企业以亚马逊、谷歌、Facebook 等互联网科技巨头的方式去思考、行动和打造应用程序和基础设施。传统企业渴望拥有和互联网公司一样的 IT 能力去进行业务创新,同时提高 IT 运营效率、降低费用。Web-Scale IT 和国内的"去 IOE"运动有着相同的逻辑,都是互联网企业影响、颠覆传统 IT 解决方案的一种趋势。

Web-Scale IT 和传统 IT 不仅在技术上有差异,而且在文化上也有差异,所以企业也并不是要完全从传统 IT 转向 Web-Scale IT。比如,一些交易型应用 /System of Record 应用仍然离不开传统 IT,传统 IT 有其存在的价值和理由。但是,企业应该开始用 Web-Scale IT 的方式去构建一些新型的社交化、移动化、面向外部用户的应用。企业应该怎么做才能实现 Web-Scale IT 呢?

我认为 Web-Scale IT 有 5 个典型特征:

  1. 拥有成千上万台机器的计算能力
  2. 只需少数工程师就可以运维大量机器
  3. 应用可以承载非常高的用户访问量
  4. 即使有些机器出现故障,应用仍然工作正常
  5. 应用每天可以升级部署应用好几次

1、拥有成千上万台机器的计算能力

这里的机器是指商品化服务器 (Commodity)。企业可以通过两种路径实现这个目标,一是采用公有云,二是自建方式 / 私有云。目前我们观察到的情况是,国内对 IT 需求稍大一些的企业,都倾向于通过采用自建方式。而在国外,采用公有云的比例会高一些,比如像 Netflix 等,在 AWS 上面的虚机数量超出 1 万台,仍不自建数据中心 / 私有云。随着国内公有云服务的完善、API 的开放、费用的进一步下调,更多的企业应该会优先考虑采用公有云。

很多企业实施"Go to Cloud"战略的第一步就是构建自己的私有云服务,而不是采用公有云,这种策略值得商榷:对企业而言,基于云的可编程特性,学习在云中开发、部署和运营大规模、分布式的云应用是更重要的,而不是将全部精力放在构建私有云基础设施上。一种更好的做法是,比如,企业可以先使用青云公有云,如果业务取得成功、使用的规模越来越大,可以考虑基于青云构建自己的私有云并托管给青云来运维。

2、只需少数工程师就可以运维大量机器

如果用户采用公有云,那么这个问题就转变成:如何高效管理成千上万台虚机?这包括:

  1. 如何快速启动部署一个应用所需要的一序列资源
  2. 如何给这些虚机做配置
  3. 如何一键给这些虚机打 patch
  4. 如何对这些虚机进行统一监控和告警
  5. 如何进行安全和费用统一管理

实现这些的核心是要充分利用云的 API 来实现自动化管理,用户可以采用云服务商提供的工具 (比如 Cloudformation、 OpsWorks),也可以采用第三方管理工具 (比如 Rightscale), 也可以自己基于云服务 API 构建自己的管理部署工具 (比如 Netflix)。

若用户采用私有云,用户可以自己运维也可以采用托管方式。如果是自己运维,则不仅需要对整个私有云解决方案非常熟悉,而且需要投入相当的开发和运维人力,同时伴随着很大的风险。而想减少运维人员,托管、外包方式应该是更好的选择。

3、应用可以承载非常高的用户访问量

Web-Scale IT 通过以下两个方面来实现这个特点:

  1. Web architecture/SOA 服务架构, 把整个系统分为松耦合的组件,尽量实现无状态,使得组件可以水平扩展。
  2. 充分利用云来动态、快速地创建资源 (scale-out),根据各层次的监控数据来实现自动伸缩。

传统 IT 则是更多地通过 Scale-up 方式来进行扩容,和 Web-Scale IT 相比在架构方面也有些差异,比如,采用 session 复制方式也多于基于 Redis/Memcached 的集中式 session 方案。

在云环境下,云服务商除了提供计算、网络和存储资源外,还提供负载均衡服务、缓存服务、RDS 服务等很多上层服务。云服务商负责这些服务的创建并提供自动化运维方案以实现确保安全性、可用性和扩展性。企业也可以通过 API 动态管理这些服务。从这个角度看,在云中开发、运维应用和传统方式有很多不同,企业需要进行相应的转变。

4、即使有些机器出现故障,应用仍然工作正常

传统 IT 可以通过 Infra 层面的冗余来保证系统的高可用性,而 Web-Scale IT 是构建在商品化硬件上,其冗余度比较低。Web-Scale IT 在 Infra 层次的 SLA 是无法保证的,这就需要用户 Design for Failure。这不仅仅需要在 Infra 层次部署架构方面做相应的设计,如把应用部署在两个可用区、使用负载均衡服务等,在应用本身的逻辑架构、中间件、数据库存储层等方面做针对性的设计,同时在应用本身的管理上也需要有相应的设计,如数据的备份、恢复、动态地更改 DNS、更改负载均衡的后端配置等。

5、应用每天可以升级部署应用好几次

传统 IT 对变更有着严格的控制和要求,开发和运维团队有着明确的分工和责任,应用要实现每天十几次的变更是不太可能的。

Web-Scale IT 能够实现持续部署和交付,不单是靠自动化工具,更重要的是依靠流程、组织、文化上面的变革。很多时候,思维方式、文化方面的改变比技术上更重要。因此 Gartner 说,开发与运营之间的高效协作配合 (DevOps) 是实现 Web-Scale IT 的第一步。

小结

从上述分析可以看出,要向 Web-Scale IT 转变,企业需要实现在 Infra、平台和管理部署工具、应用架构,流程、组织和文化等各个层面的改变。云计算的进一步普及会加速企业在 Infra 层面的转变,而另一方面,随着各个行业云标杆用户的出现,会示范和引导更多企业去实现其他层面转变。

作者简介

阮志敏是 AWS 认证解决方案架构师 (专业级别), FIT2CLOUD 联合创始人,长期关注于如何使用云服务进行业务创新。 FIT2CLOUD 是一个云管理及 DevOps 协作平台,旨在帮助开发人员、运维人员实现应用全生命周期的自动化管理,提升云使用成熟度。


你对于 Web-Scale IT 有什么观点?欢迎分享!InfoQ 中文站投稿信箱:editors@cn.infoq.com

2014 年 10 月 12 日 21:55 3267

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

LeetCode题解:78. 子集,递归回溯,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

只有基于区块链才可能实现“大众创业、万众创新”

CECBC区块链专委会

区块链 分布式技术

【JSRC小课堂】Web安全专题(二)逻辑漏洞的burpsuite插件开发

京东智联云开发者

Web

总结年初到10月底Java基础、架构面试题,共计1327道!涵盖蚂蚁金服、腾讯、字节跳动、美团、拼多多等等一线大厂!

Java架构追梦

Java 架构 字节跳动 面试 蚂蚁金服

面试官:面对千万级、亿级流量怎么处理?

艾小仙

Java 缓存 分布式 高并发 中间件

码农会锁,synchronized 对象头结构(mark-word、Klass Pointer)、指针压缩、锁竞争,源码解毒、深度分析!

小傅哥

小傅哥 虚拟机 synchronized mark-word Klass Pointer

假的数字人民币钱包已出现,真的是啥样?

CECBC区块链专委会

数字货币 数字钱包

甲方日常 40

大橘子

工作 随笔杂谈 日常

小白学算法:买卖股票的最佳时机!

王磊

Java 算法

数字货币交易所系统开发解决方案,撮合交易平台搭建

WX13823153201

数字货币交易所系统开发

week1 架构方法-作业-杨斌

杨斌

后李健熙时代的三星,将迎来怎样变局?

脑极体

狼人杀背后的秘密,实时语音你不知道的那些事

anyRTC开发者

音视频 WebRTC 语音 RTC 安卓

完美!Ali软件架构师下场“痛扁”spring源码,加入吗?

周老师

Java 编程 程序员 架构 面试

智能安防的普惠密码,在华为好望手中的三根“线头”上

脑极体

调包侠的炼丹福利:使用Keras Tuner自动进行超参数调整

计算机与AI

深度学习 keras 超参数调优

架构师训练营作业:第五周

m

极客大学 - 架构师训练营 第六周

9527

直播带货大战在即:账号交易灰产猖獗

石头IT视角

保险区块链创新中心成立,三方面赋能行业数字化转型

CECBC区块链专委会

区块链 保险

快速掌握并发编程---线程池的原理和实战

田维常

程序员‘’

web worker的介绍和使用

程序那些事

多线程 Web Worker 异步模型 异步编程 web技术

第6周作业

饭桶

极客大学 - 架构师训练营 第六周作业

9527

《Maven实战》.pdf

田维常

程序员

Flink在窗口上应用函数-6-9

小知识点

scala 大数据 flink

通过GUI界面更改 Ubuntu 20 LTS apt 源为阿里云

jiangling500

ubuntu 阿里云 apt

分析和解决JAVA 内存泄露的实战例子

AI乔治

Java 架构 JVM 内存泄露

频繁操作本地缓存导致YGC耗时过长

AI乔治

Java 架构 JVM GC

ConcurrentHashMap核心原理,彻底给整明白了

AI乔治

Java 架构 分布式 线程

算法题解:Excel 工作表列标题

欧雷

JavaScript 算法

微服务治理平台化探索

微服务治理平台化探索

关于Web-Scale IT的一些观点-InfoQ