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 官方博客

时间: 2024-08-21 00:48:47

Web-Scale IT 我之见!的相关文章

Web Scale IT 与 6 种 DevOps 工具

新年伊始,在总结过去一年 IT 行业变化和发展的同时,不少企业更关注未来一年甚至几年的行业趋势.Gartner 于 2014 年发表了文章 Gartner Says By 2017 Web-Scale IT Will Be an Architectural Approach Found Operating in 50 Percent of Global Enterprises 表示: 截止至 2017 年,全球 50% 的企业将使用 Web Scale IT 架构. 在 2016 年年初,我们回

Web设计核心问题1:什么是Web设计(4)

web|设计|问题  1.8 形式和功能的平衡 Web站点设计的关键问题是形式和功能的平衡.在现代主义的影响下,很多设计者坚持认为事物的形式应符合它的功能.考虑到形式是Web金字塔的基础之一,而功能是另外的基础之一.形式不好的功能是令人厌烦的.站点可能运行得很好,但不能激发用户的灵感.与之相反,如果形式富有表现力,功能有限,用户则会感到失望.形式和功能之间需要一个清晰且连续的关系.简单地说,站点的形式应直接与它的意图相关,如果站点是商业性的,它的外观可能非常绚丽,并且有相当份量的多媒体内容,如果

堵塞Web漏洞(上)

web Web的大多数安全问题都属于下面三种类型之一 : 1. 服务器向公众提供了不应该提供的服务. 2. 服务器把本应私有的数据放到了公开访问的区域. 3.服务器信赖了来自不可信赖数据源的数据. 显然,许多服务器管理员从来没有从另一个角度来看看他们的服务器,例如使用端口扫描程序.如果他们曾经这样做了,就不会在自己的系统上运行那么多的服务,而这些服务原本无需在正式提供Web服务的机器上运行,或者这些服务原本无需面向公众开放. 与这种错误经常相伴的是,为了进行维护而运行某些不安全的.可用于窃取信

Web Services何时才能更具意义?

services|web 目前Web services还是一门相当新的技术,而且不是每个人都知道该如何充分利用它们.以我的经验(我曾在Web services底层架构上构建了一个完整的企业软件产品),我发现Web services有这样两个主要用途:将多个系统整合到一起,以及将功能函数(function)作为组件提供给远程调用.本文我将介绍在使用后一种方法时需要注意的问题. 当你想要用Web service来提交一个新的函数或service给可能要远程调用的客户端时,你需要考虑到许多因素.不论这

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

原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解  Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来.   首先,从Extension Manager里安装:最新版本是19号发布的2.5版 然后重启你的VS开发环境,就可以使用它提供的方便功能了. Web Essentials对CSS.JavaScript和HTML都提供了很多快捷的功能支持,具体列表如下: CSS 即时预览Live Web Preview每次

Appium环境抢建(for web browser test)

Android SDK Appium 安装 nodejs 安装 Appium 配置手机 下载&运行测试项目 Appium是Android平台上一个测试框架. 本文简单地介绍如何在Linux机器上安装并运行该框架. 应用环境: Ubuntu 12.04 LTS HTC One X (endeavoru, S720e) Android SDK 请参考SDK环境,这里就不多说了. Appium 安装 nodejs apt-get install nodejs # 或者通过nodejs源码编译,这样可以

我与分布式机器学习的故事

一.前言 从毕业加入Google 开始做分布式机器学习,到后来转战腾讯广告业务,至今已经七年了.我想说说我见到的故事和我自己的实践经历.这段经历给我的感觉是:虽然在验证一个新的并 行算法的正确性的时候,我们可以利用现有框架,尽量快速实现,但是任何一个有价值的机器学习思路,都值得拥有自己独特的架构.所以重点在有一个分布式操作 系统,方便大家开发自己需要的架构(框架),来支持相应的算法.如果你关注大数据,听完我说的故事,应该会有感触. 大数据带来的新机遇 起源 分布式机器学习是随着"大数据"

Facebook、微信团队、Twitter、微软开源软件列表一览

  编者按:本文来自微信公众号"InfoQ"(ID:infoqchina),编辑小智:36氪经授权发布. 对于为什么要发布开源项目,Facebook开源项目负责人曾经解释过:一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼Facebook的工程师写出更好的代码.三是开源能够更有效利用社区的力量,帮助Facebook一起解决难题.开源,让世界更美好,不是吗? Facebook开源软件列表 从Facebook的GitHub账户中可以看到,Face

转:创建多界面的应用程序 (好文章)

程序|创建 创建多界面的应用程序 提前设计应用程序,使其满足用户对不只一个界面的需求.by Robert Ericsson and Jason Cline 涉及技术:.NET Framework, ASP.NET, Windows Froms, .NET Compact Framework, Mobile Internet Toolkit 下载本文代码(http://www.fawcette.com/China/DotNetMagazine/2002_12/code/nm0212re.zip)对

创建多界面的应用程序

程序|创建 对于你们开发小组开发的软件,你可能想给用户提供最佳的用户界面,这就意味着你需要不只一个界面.用户希望可以在任何时候.任何地点.在各种设备上访问信息.这就形成了人们对灵活界面的需求,而且使应用程序的基本原理和用户界面的设计和创建显得更为重要了.在本篇文章中,我们将讲述一些用来定义.设计.构建和测试支持.NET多个用户界面的应用程序的最好的方法.我们的探讨只局限于现有的以及很快会实现的用于.NET平台的开发技术.然而,如果你们的开发团队已经创建了一个Java前端系统,并通过.NET We