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 ...
随机推荐
- TextView使用的方式
第一种改变TextView的方式 // TextView tv=new TextView(this); // tv.setText("Hello,Android&quo ...
- su: cannot set user id: Resource temporarily unavailable
今天R&D所在主机出现su: cannot set user id: Resource temporarily unavailable资源不可用报错,直接通过其他机器ssh huyuh@xxx ...
- Oracle常用查询命令
Oracle查询完整格式如下: Select * from XX where XX group by YY having XX order by YY Select count(*), XX fr ...
- javascript-02
1.js的特点2.js的数据类型3.js运算符 4.js的全局变量 |-定义在函数体外部的变量 |-定义在函数体内部没有使用var声明 var和没有var声明变量的区别? |-var ...
- 无法打开登录所请求的数据库 "XXX"。登录失败。 用户 'NT AUTHORITY\SYSTEM' 登录失败。
1.打开数据库安全性-登录名 2.选择NT AUTHORITY\SYSTEM右键属性 3.选择服务器角色勾选sysadmin选项保存
- 如何在eclipse使用StaggeredGridView
概述 现在的开发工具基本都用AndroidStudio了.网上的开源框架也是.比如做瀑布式UI的StaggeredGridView,还有导航页的PagerSlidingTabStrip等. 那么电脑 ...
- 各种排序算法及c语言实现
插入排序O(n^2) 冒泡排序 O(n^2) 选择排序 O(n^2) 快速排序 O(n log n) 堆排序 O(n log n) 归并排序 O(n log n) 希尔排序 O(n^1.25) 1.插 ...
- Ext.Net学习笔记05:Ext.Net DirectEvents用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.我们在 Ext.Net用法概览 这篇中已经简单的介绍了DirectEvents,今天我们将详细的介绍一下DirectEvents. ...
- oracle linux下oracle 10g启动EM、isqlplus及相关命令语法
转载:http://hancang2000.blog.sohu.com/139239421.html ORACLE_HOME/bin/emctl start dbconsole $ORACLE_HOM ...
- AudioStreamer使用之快速点击下/上一首按钮,音频会重复的问题解决。
针对此问题,我的做法是在AudioStreamer.h文件新加入一个属性 @property (nonatomic,strong) NSURL *musicUrl; 和一个单例方法: +(id)sha ...