大规模数据处理实战
蔡元楠
Google Brain资深工程师
立即订阅
8406 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从这里开始,带你走上硅谷一线系统架构师之路
免费
模块一 | 直通硅谷大规模数据处理技术 (3讲)
01 | 为什么MapReduce会被硅谷一线公司淘汰?
02 | MapReduce后谁主沉浮:怎样设计下一代数据处理技术?
03 | 大规模数据处理初体验:怎样实现大型电商热销榜?
模块二 | 实战学习大规模数据处理基本功 (8讲)
04 | 分布式系统(上):学会用服务等级协议SLA来评估你的系统
05 | 分布式系统(下):架构师不得不知的三大指标
06 | 如何区分批处理还是流处理?
07 | Workflow设计模式:让你在大规模数据世界中君临天下
08 | 发布/订阅模式:流处理架构中的瑞士军刀
09 | CAP定理:三选二,架构师必须学会的取舍
10 | Lambda架构:Twitter亿级实时数据分析架构背后的倚天剑
11 | Kappa架构:利用Kafka锻造的屠龙刀
模块三 | 抽丝剥茧剖析Apache Spark设计精髓 (10讲)
12 | 我们为什么需要Spark?
13 | 弹性分布式数据集:Spark大厦的地基(上)
14 | 弹性分布式数据集:Spark大厦的地基(下)
15 | Spark SQL:Spark数据查询的利器
16 | Spark Streaming:Spark的实时流计算API
17 | Structured Streaming:如何用DataFrame API进行实时数据分析?
18 | Word Count:从零开始运行你的第一个Spark应用
19 | 综合案例实战:处理加州房屋信息,构建线性回归模型
20 | 流处理案例实战:分析纽约市出租车载客信息
21 | 深入对比Spark与Flink:帮你系统设计两开花
模块四 | Apache Beam为何能一统江湖 (8讲)
22 | Apache Beam的前世今生
23 | 站在Google的肩膀上学习Beam编程模型
24 | PCollection:为什么Beam要如此抽象封装数据?
25 | Transform:Beam数据转换操作的抽象方法
26 | Pipeline:Beam如何抽象多步骤的数据流水线?
27 | Pipeline I/O: Beam数据中转的设计模式
28 | 如何设计创建好一个Beam Pipeline?
29 | 如何测试Beam Pipeline?
模块五 | 决战 Apache Beam 真实硅谷案例 (7讲)
30 | Apache Beam实战冲刺:Beam如何run everywhere?
31 | WordCount Beam Pipeline实战
32 | Beam Window:打通流处理的任督二脉
33 | 横看成岭侧成峰:再战Streaming WordCount
34 | Amazon热销榜Beam Pipeline实战
35 | Facebook游戏实时流处理Beam Pipeline实战(上)
36 | Facebook游戏实时流处理Beam Pipeline实战(下)
模块六 | 大规模数据处理的挑战与未来 (4讲)
37 | 5G时代,如何处理超大规模物联网数据
38 | 大规模数据处理在深度学习中如何应用?
39 | 从SQL到Streaming SQL:突破静态数据查询的次元
40 | 大规模数据处理未来之路
专栏加餐 | 特别福利 (4讲)
FAQ第一期 | 学习大规模数据处理需要什么基础?
加油站 | Practice makes perfect!
FAQ第二期 | Spark案例实战答疑
FAQ第三期 | Apache Beam基础答疑
结束语 (1讲)
结束语 | 世间所有的相遇,都是久别重逢
大规模数据处理实战
登录|注册

04 | 分布式系统(上):学会用服务等级协议SLA来评估你的系统

蔡元楠 2019-04-24
你好,我是蔡元楠。
从今天开始,我们进入专栏的第二模块。通过这一模块的学习,带你一起夯实大规模数据处理的基础。
首先,我将结合硅谷顶尖科技公司的最佳实践 (Best Practice) ,和你一起分享在设计分布式系统架构时,我们有可能会碰到哪些雷区?又有哪些必备的基础知识?
在硅谷一线大厂所维护的系统服务中,我们经常可以看见 SLA 这样的承诺。
例如,在谷歌的云计算服务平台 Google Cloud Platform 中,他们会写着“99.9% Availability”这样的承诺。那什么是“99.9% Availability”呢?
要理解这个承诺是什么意思,首先,你需要了解到底什么是 SLA?
SLA(Service-Level Agreement),也就是服务等级协议,指的是系统服务提供者(Provider)对客户(Customer)的一个服务承诺。这是衡量一个大型分布式系统是否“健康”的常见方法。
在开发设计系统服务的时候,无论面对的客户是公司外部的个人、商业用户,还是公司内的不同业务部门,我们都应该对自己所设计的系统服务有一个定义好的 SLA。
因为 SLA 是一种服务承诺,所以指标可以多种多样。根据我的实践经验,给你介绍最常见的四个 SLA 指标,可用性、准确性、系统容量和延迟。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《大规模数据处理实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(25)

  • Joseph
    在实际应用SLA的时候,有两点不解:
    1. 在设计系统之初,大家拍脑袋来定义SLA。这个时期,SLA对应需要付出的成本还不明确,这样大家都会趋于订出很高标准。这种情况有好的解决办法吗?
    2. 虽然定义了SLA,但在架构设计的时候,如何评估架构是否能满足SLA呢?等到软件实现了再来测试,似乎有点太晚了……请教老师一般是如何处理这两个问题的呢?
    2019-04-24
    1
    33
  • 时间是最真的答案
    作为一个学习大数据的新手,希望作者能用几篇文章讲解大数据处理中使用的技术如何搭建,运行,优化的,以及各个技术如何结合使用,这样新手也能玩起来

    作者回复: 谢谢你的建议!我在第10和第11讲里有根据所讲的基础知识展开介绍两种实战中的经典架构,也配合了一些硅谷这边的应用实例作讲解,希望能对你有所帮助。

    2019-04-24
    18
  • sxpujs
    这几节干货有点少啊,也缺少一些实战和实例。

    作者回复: 这都是后面马上要用到的知识。不可能纯狠操猛干而没有知识支撑的。

    2019-04-24
    13
  • Dany
    我觉得这一节超赞。基础概念很重要,很重要,很重要。
    实战这种事情,有的是时间去practice,而SLA这几个关键概念,会成为很多人理解的迷雾。
    当我发现我的lead,拉着一大堆自己也还没理解清楚SLA指标去拉KPI,扛大旗的时候,我才进一步,深刻体会到这一节内容的重要性^ ^
    2019-04-27
    12
  • 明翼
    我们系统一般可用性,系统容量有做定义也多在招投标的文件中,至于准确性和延迟更没有严格测试,准确性这个我觉得不好测试吧,如果知道出错了,干嘛不修改那,老师业界硅谷大厂如何测试准确性那?
    2019-04-24
    7
  • _CountingStars
    这个SLA和一般服务监控指标 RED 原则有点像
    R rate 请求速率 qps
    E errors 错误数错误率
    D duration 延迟
    再加一个 服务可用性指标等级 就是今天讲的服务等级了
    2019-04-24
    6
  • zhihai.tu
    在银行做大数据平台的研发工作,也从可用性、准确性、系统容量、延迟四个指标来谈谈SLA,理解的不是很深,如有错误和不妥,请老师指导和更正:
    1、可用性:不管是hadoop还是mppdb,数据库本身提供了本地高可用,另外,采用了双园区主备设计,提供了园区自动切换服务,保证了园区之间的高可用。
    2、准确性:流数据处理平台,存在数据丢失的可能性。具体百分比应该是小于5%的。
    3、系统容量:采用限流的方式,通过参数设置,从而控制最大的并发数量。
    4、延迟:hadoop平台由于延迟较高,设计了异步处理请求及多线程技术,提高用户体验。
    2019-04-24
    4
  • 孙稚昊
    我们公司为了高并发QPS, 以前的python server 全部换成 Golang 了,Golang 做高并发是真的有优势
    2019-04-25
    3
  • hufox
    今天学到了什么SLA,请问老师,大数据平台中缓存的设计重要吗?一般如何设计?希望老师后面能讲讲新手如何搭建一个大数据平台,把整个流程运行起来,帮助更好的理解大数据处理流程!
    2019-04-24
    3
  • Tomcat
    SLA,即服务等级协议,规定了我们的工程的质量和目标,这使得我们的工作具有可衡量的尺度。
    以前我在中国移动做专线提供服务的时候,对这个颇为敏感,移动的专线产品,确实有许多不足之处,但是这让我构建了服务质量可以使用具体技术指标度量的理念。
    对于现在我正在做的产品,同样也有一些苛刻的要求,所以通过本文,我构建了服务质量度量体系~

    作者回复: 谢谢你的经验之谈!

    2019-04-24
    2
  • wmg
    老师我的理解SLA更适用于衡量oltp系统,和大数据处理系统有哪些联系呢?我的理解可能有误,老师指教
    2019-04-24
    2
  • vic5210jp
    有4个问题不太明白,希望可以交流一下。
    1.系统容量和延迟可以理解为吞吐量和响应速度么?
    2.不同的业务访问的数据量不同,因而延迟也有所不同,用p95或者是p99这样描述整个系统的延迟是否不太准确。
    3.除了介绍的SLA服务等级协议,系统的扩展性和复杂度等这些是否也应该被纳入一个系统的评价标准中。
    4.在高可用中,99.99%这种在系统上线前是如何测试得出的?一般我们是根据运行一段时间的情况来预估的,其实并不准确。
    2019-04-24
    1
  • leesper
    “当 p95 或者 p99 过高时,总会有 5% 或者 1%的用户抱怨产品的用户体验太差”,这个不可小视,因为很可能这1%或者5%用户就是很资深的用户,比如他/她在这个平台上买过很多东西所以响应慢,这个一定要做优化
    2019-07-17
  • Aven
    老师,听了您的课,感觉自己对SLA中的可用性的理解还不是很透彻,目前我正在搭建维护一套etcd集群,通过这节所讲的知识,对照评估了下集群的正确性,容量和延迟等方面特性,但是唯独可用性不知道如何评估,可用性是不是说出现机房网络问题或者宕机的时候,恢复集群的可用性需要多久?还望老师深入解析下
    2019-06-27
  • 倪必荣
    文中主要谈及3种一致性模型,强一致必须同步后才能访问,弱一致按时间发生同步与访问操作,可以同步与访问穿插,而最终一致是特别的弱一致,可以理解为用弱一致的方式达到强一致的效果,应该就是提高自动访问的频次。主要区别有2:

    0.同步与访问是否可同时进行
    1.是否自动提高访问频次
    2019-06-13
  • 滨 风暴
    我的理解是为了提高SLA,系统就要达到一定的冗余度,对于大数据来说存储和计算使用的资源就更多,所以定义SLA的时候,是不是还是要考虑一下成本,或者有没有提供高SLA的轻量化系统架构?

    作者回复: 的确如此

    2019-05-22
  • Blakemmmm
    请问老师可用性的数据一般是如何测出或算出的呢?内部测试时不可能测试那么长时间,而短时间的测试又无法反应随着运行时间增长导致的系统更容易出问题的概率。

    作者回复: 谢谢你的提问!可用性数据一般都需要系统运行一段时间的,无论是内测也好,还是其他方式也好。如果用户量没有这么大的话,可能需要自己写Prober去模拟一些常用操作去做测试。

    2019-05-16
  • 王众
    回复里看到老师“纯狠操猛干”的用语,是在和这个斯文的头像不配哈,挺适合我的头像。感谢老师对很多留言的耐烦解答与鼓励。

    作者回复: 谢谢你的支持!希望你能从专栏里学习到知识!

    2019-05-05
  • 程序设计的艺术
    你好,老师,目前的大数据处理架构该是什么样子呢?我这边有每天40多万行数据形成数据仓库,离线匹配行记录,使用什么方法可以快速处理?谢谢

    作者回复: 可能可以参考下10介绍的lambda架构

    2019-04-25
  • 旭东
    发生内部错误的时候,准确率低了,这些也算不可用吧。那这个可用性和错误率是否有一点重叠
    2019-04-25
收起评论
25
返回
顶部