Web-Scale IT 我之见!
Gartner 曾在发表过的一篇文章中表示,到2017年,全球50%的企业将使用Web-Scale IT 架构。下面我们来看看 Andre Leibovici 对 Web-Scale IT 的看法:
Web-scale IT 不仅仅是一个流行词,更是一种设计数据中心和软件架构的方法,它体现了一种多维概念,包含可扩展性、一致性、容忍度和版本控制等。
Web-scale 描述了现代架构的趋势,即增长(远)大于线性速率。Web-scale 系统能够快速有效地进行处理,并避免在关键时刻需要重新架构的瓶颈问题。
Web-scale 架构和属性并不是一个新鲜的词条,它们已经在一些大型的网络公司中系统地使用了,比如谷歌、Facebook 和亚马逊。然而对比以往最大的区别就在于,这种可扩展到海量计算规模的架构,以往只出现在大型互联网公司而当下已通过专门的虚拟化定制方法走入主流企业。
在一个内部讨论中,Nutanix CEO Dheeraj Pandey 总结了关于 Web-scale 架构的重要概念。而本文对其中一些思想进行了引用,并扩展到其他不同领域。
同时,这里需要注意的是,高扩展性的分布式系统对笔者来说也是一个全新的领域,而笔者也会分享自己的学习收获。
首先要记住的是:Web-scale 不只适用于 SDS(软件定义存储);它也是大型分布式系统的架构模型。这里有一个视频讲述了什么是 Web-Scale IT。
通过软件途径,让大量运行着标准 x86 硬件的主机可以同时做一件事情。这是 Web-scale 第一次与 SDDC(软件定义数据中心)交互,在没有计算机硬件做支撑的情况下。许多服务已经采用这种办法,包括 SDN(软件定义网络)、虚拟服务和 SDS(软件定义存储)。
对于管理服务的无单点故障和瓶颈问题,在架构上应有所考虑。故障的容忍度是架构稳定、可扩展分布式系统的关键。发生故障时的运行能力也是可用性的关键。像 vector clocks、two-phase commit、consensus algorithms、leader elections、eventual consistency、multiple replicas、dynamic flow control、rate limiting、exponential back-offs、optimistic replication、automatic failover、hinted-handoffs、data scrubbing 等技术是构成分布式系统处理故障能力的要素。
Web-scale 系统应该提供一个灵活构建系统的服务,并具备并行构建的能力(http://en.m.wikipedia.org/wiki/Embarrassingly_parallel)。并行方法能够进行无干扰地接近传统的颠覆性任务,例如滚动或叉式升级、不间断集群和所有工作流全部在线。
Web-scale 系统应该能够被扩展,并且继续像一个单元那样正常运行。而不是依靠运行单元的多部署,这些单元不能自行扩展。
Web-scale 允许独立架构,它需要容忍故障,并提供性能、可用性保障和服务级协议。
Web-scale 系统应该为内部和数据中心通信提供用于完全控制和基于 HTTP 服务自动化的编程接口。这些 APIs需要为异步请求响应支持延时和容错协议。
Web-scale 系统应该提供自定义(和版本化)的对象。在 SDS 用例,具有编码能力的自定义磁盘高效地格式化和序列化结构数据,且是可扩展格式,比如 protobuf、Avro 等。这样,可以不用经常地更新磁盘数据。考虑到规模,Web-scale 不能假定只有一次数据更新。
Web-scale 系统应具有自描述(和版本识别)服务,这样分布式系统的不同部分可以在不同版本下进行通信,不用期待所有的部分一次升级。
分析软件为了减少人机交互。在大型网络公司中,Web-scale 基础设施与每台机器管理的 SRE 是1:10000的比例。一般的公司是1:500的比例。这个巨大的差距只能由分析和自动化来填补。
严格且最终一致的一致性模型,对 CAP 原理有清楚的理解(一致性、可用性和分区容错性)(http://en.m.wikipedia.org/wiki/CAP_theorem)。笔者发现 Julian Browne 写的一篇文章是学习更多 CAP 原理的好资料。

此外,另一个好的例子是 vCenter 服务器。vCenter 应该从头设计成为一个分布式管理平台,它能够利用完全无共享结构,提供零故障操作环境。众所周知,vCenter 服务器是 vSphere 集群的关键性部件。当其不可用时,可能严重影响运作。微软 Hyper-V 和 SCVMM 也是这样的。
当管理程序是独立单元,不需要管理服务器即可运行时,就不会有缺乏管理的问题。
如果 vCenter 用 web-scale 原理设计,它不是集群虚拟设备,就是在管理程序核心进行架构。添加到集群的节点越多,处理方式就越灵活。并且当有一个节点不可用,其他节点能够成为管理端点。
Nutanix 选择从头架构数据和控制层,使其成为一个具有上述性能和指导方针的 Web-scale 分布式系统。这些指导方针不仅保证弹性、可扩展性、一致性和容错性,而且确保它是一个引导将来数据中心创新的平台。
原文:understanding-web-scale-properties,作者 Andre Leibovici 是 VMware 架构师,兼职作家和博主。 本文系OneAPM 工程师编译整理。
Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。本文由 OneAPM 工程师翻译整理,想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
Web-Scale IT 我之见!的更多相关文章
- Web Scale IT 与 6 种 DevOps 工具
新年伊始,在总结过去一年 IT 行业变化和发展的同时,不少企业更关注未来一年甚至几年的行业趋势.Gartner 于 2014 年发表了文章 Gartner Says By 2017 Web-Scale ...
- 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从Extension Manager里安装:最新版本是19号发布的2.5版 然后重启你的VS开发环境 ...
- 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...
- 外网主机访问虚拟机下的Web服务器_服务器应用_Linux公社-Linux系统门户网站
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- birt 集成到现有的web应用中
我们已经有了一个Javaweb应用,现在要实现对报表的集成 我的应用是这个样子的 说明: 1) 这里使用的是birt4.4版本的, 下载birt-runtime-4.4.zip(在官方下载),然 ...
- 使用Docker、CoreOS、Mesos部署可扩展的Web应用
[编者的话]本文作者重点介绍了如何使用Docker.CoreOS.Mesos.Vulcand.对象存储来部署一个可扩展的Web应用,他首先介绍了为什么要选择这些工具以及与其它工具相比这些工具的优势.紧 ...
- Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!
本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...
- 一文读懂前端技术演进:盘点Web前端20年的技术变迁史
本文原文由作者“司徒正美”发布于公众号“前端你别闹”,即时通讯网收录时有改动,感谢原作者的分享. 1.引言 1990 年,第一个Web浏览器的诞生:1991 年,WWW诞生,这标志着前端技术的开始. ...
- 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解【转】
Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从Extension Manager里安装:最新版本是19号发布的2.5版 然后重启你的VS开发环境 ...
- springboot:非web启动
需要运行一些调度任务,但是又不想放到web容器中运行. 见红色代码: import java.util.concurrent.ThreadPoolExecutor; import org.spring ...
随机推荐
- MVC1笔记
/// ///直接返回 字符串的 Action方法,适用于 不需要返回大量 html代码的业务(类似于一般处理程序) /// public string Index() { return " ...
- FineUI登入的例子中遇到的一些问题
对于在使用FineUI这个例子的时候我们首先就是要在form标签内部添加一个 第一步. <ext:PageManager ID="PageManager1" runat=&q ...
- html 微信开发——微信授权
微信JS-SDK说明文档 链接地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 微信web开发:http: ...
- java strtus2 注解配置入门(一)
因为工作的原因,所以接触到一些项目,有的项目虽然看着能有跟着做,可是具体里面的框架是别人配置的,具体框架还是不是非常的了解,所以这里在看一下我学到的 一点关于struts2中注解开发的一点点. 直接代 ...
- word ppt excel文档转换成pdf
1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...
- 20151207jquery 学习笔记 Ajax
.load()方法是局部方法,因为他需要一个包含元素的 jQuery 对象作为前缀.而$.get()和 $.post()是全局方法,无须指定某个元素.对于用途而言,.load()适合做静态文件的异步获 ...
- C10K问题2
http://blog.csdn.net/zhoudaxia/article/details/12920993 是时候让 Web 服务器同时处理一万客户端了,你不觉得吗?毕竟,现在的 Web 是一个大 ...
- 三、使用Maven构建简单的java项目
前边,我刚搭建了Maven环境,还有给大家推荐了学习资源,这个小节,我们来就来,,简单的玩玩maven. 1.所需工具: 1.Eclipse 2.apache-maven-3.3.9 3. ...
- Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法
Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法 Ext.Net GridPanel可以进行Group操作,例如: 如何启用Grouping功能呢?只需要在Grid ...
- java swing窗口放置屏幕中央问题思考
java swing窗口放置屏幕中央问题思考 以前总是尝试各种方法都没有能把组件放到屏幕中央,只能用死办法,设置绝对坐标,但这样就失去了可移植性,而且繁琐.今天仔细思考了一番,终于被我找出问题所在. ...