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 我之见!的更多相关文章

  1. Web Scale IT 与 6 种 DevOps 工具

    新年伊始,在总结过去一年 IT 行业变化和发展的同时,不少企业更关注未来一年甚至几年的行业趋势.Gartner 于 2014 年发表了文章 Gartner Says By 2017 Web-Scale ...

  2. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)

    Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从Extension Manager里安装:最新版本是19号发布的2.5版 然后重启你的VS开发环境 ...

  3. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解

    原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...

  4. 外网主机访问虚拟机下的Web服务器_服务器应用_Linux公社-Linux系统门户网站

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  5. birt 集成到现有的web应用中

     我们已经有了一个Javaweb应用,现在要实现对报表的集成 我的应用是这个样子的  说明: 1)  这里使用的是birt4.4版本的, 下载birt-runtime-4.4.zip(在官方下载),然 ...

  6. 使用Docker、CoreOS、Mesos部署可扩展的Web应用

    [编者的话]本文作者重点介绍了如何使用Docker.CoreOS.Mesos.Vulcand.对象存储来部署一个可扩展的Web应用,他首先介绍了为什么要选择这些工具以及与其它工具相比这些工具的优势.紧 ...

  7. Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!

    本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...

  8. 一文读懂前端技术演进:盘点Web前端20年的技术变迁史

    本文原文由作者“司徒正美”发布于公众号“前端你别闹”,即时通讯网收录时有改动,感谢原作者的分享. 1.引言 1990 年,第一个Web浏览器的诞生:1991 年,WWW诞生,这标志着前端技术的开始. ...

  9. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解【转】

    Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从Extension Manager里安装:最新版本是19号发布的2.5版 然后重启你的VS开发环境 ...

  10. springboot:非web启动

    需要运行一些调度任务,但是又不想放到web容器中运行. 见红色代码: import java.util.concurrent.ThreadPoolExecutor; import org.spring ...

随机推荐

  1. 万网免费主机wordpress快速建站教程-万网主机申请

    很多小伙伴在万网的免费主机申请活动中建立起了自己的个人网站,但还是还有许多小伙伴现在想建站,却发现官网找不到免费主机的申请地址了,以为活动结束了?其实还是可以继续申请免费主机的,接下来小编给大家介绍如 ...

  2. 【SQL】Update中使用表别名、如何用表中一列值替换另一列的所有值

    Update中使用表别名 select中的表别名: select * from TableA as ta update中的表别名: update ta from TableA as ta 如何用表中一 ...

  3. ios 从微信返回自己的app

    有这样一个需求.从我们自己的app分享内容到微信.点击分享内容返回到我们自己的app.(新浪微博的内容分享到微信就是这样的) 前面一直百度,谷歌都没用.可能我用的方法跟他们不一样吧.而且他们的方法都比 ...

  4. RS485接线 - 为什么要给2线制RS485接3根线?

    http://www.chipkin.com/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485/ RS485needs 3 conducto ...

  5. H5之canvas简单入门

    <canvas></canvas>是html5出现的新标签,像所有的dom对象一样它有自己本身的属性.方法和事件,其中就有绘图的方法,js能够调用它来进行绘图 <canv ...

  6. hibernate3.0 org.dom4j.DocumentException: Connection timed out: connect Nested exception:

    hibernate3.0 org.dom4j.DocumentException: Connection timed out: connect Nested exception:   所报异常: 严重 ...

  7. 项目报错-无法解析类型 XXXX.xx 从必需的 .class 文件间接引用了它

    这个编译错误有几个原因 1.jdk版本问题 要是报错是某些java包里的东西那就可以肯定是jdk版本的问题, 比如无法解析类型java.lang.Object,无法解析类型java.lang.Char ...

  8. HDU 2502 月之数(简单递推)

    月之数 Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数.如果一个正整数m表示成二进制,它的位数为 ...

  9. C++写一个排列组合小程序

    今天突然想到一个问题,有时候,针对同一个事件有多种反映,特别是游戏AI当中,这种情况下需要采取最适合的方案,哪种方案最适合,可以将每种方案的结果或影响都计算一遍,从而选择最合适的.最基本就是一个排列组 ...

  10. Nginx中让 重写后的路径 自动增加斜线 /

    http://www.111cn.net/sys/nginx/56067.htm(参考文章) 现在有个这样的需求,在重写的url地址后,自动加斜线 / 例如 xx.com/abc/1-2  (默认ur ...