《可伸缩架构:面向增长应用的高可用》读书笔记

术语定义

可靠性:系统是否具备无差错地执行预期操作的能力。
可用性:为了执行预期操作,系统当前可运行的能力。
可用性百分比:(该期间的总秒数-系统宕机的秒数)/该期间的总秒数。
风险缓和:通过降低风险发生的可能性,或者降低风险发生时的严重性,来降低风险的影响。
风险管理:在解决风险和缓和风险之间做出选择。
比赛日:通过测试来触发系统中某个失败模型,然后观察你的操作人员和工程师如何进行响应,包括他们如何执行恢复计划和容灾计划。
优雅降级:在当前服务缺少某个故障服务的结果时,可以通过降低工作量来尽可能地完成工作。
优雅补偿:即使无法完全满足用户的需求,但是按照为用户提供价值的方向去改进。
服务等级协议:是一个提供某种级别可靠性和性能的承诺。

可用性

导致低可用性的原因:

  • 资源耗尽
  • 预期之外的压力变化
  • 流动行为的增加
  • 外部依赖
  • 技术债务

提高应用程序可用性的五个要点:

  • 时刻考虑应对故障
  • 时刻考虑如何伸缩
  • 缓和风险
  • 监控可用性
    • 服务器监控
    • 配置变化监控
    • 应用程序性能监控
    • 人为测试
    • 报警
  • 以预测和确定的方式应对可用性问题

风险管理

收集风险模型的来源:

  • 开发人员的头脑风暴
  • 已知的重点售后支持问题
  • 已知的安全风险和漏洞
  • 已知的系统不完善或缺失的能力
  • 已知的性能瓶颈点
  • 已知的流量峰值和变化
  • 来自于业务负责人、支持人员或者用户的特殊考虑
  • 已知的系统技术债务

管理系统中的风险的基本步骤:

  • 识别风险
  • 消除最严重的风险
  • 风险缓和
  • 定期检查

风险模型:


风险ID:风险的唯一标识。
系统:包含风险的系统、子系统或者模块的名称。(如:“前端”、“主数据库”、“服务A”)

所有人:负责该风险的个人(或者团队)的名称,同时也负责制订该风险的缓和计划和解决计划。

风险描述:该风险的概要描述。

标识日期:识别该风险并将其添加到模型中的日期。

可能性:该风险发生的可能性(低、中、高)。

严重性:该风险发生的严重性或者影响(低、中、高)。

风险缓和计划:描述了可以使用的或者正在使用的,用来降低该风险严重性或者可能性的风险缓和措施。

状态:该风险的当前状态。这个值通常是“活跃”、“已缓和”、“正在修复”或者“已解决”等内容。

ETA:该风险距离计划解决日期(如果有的话)的估计时间。

监控:是否对该风险的发生进行了监控。如果是,则包含实现监控的步骤。如果没有监控该风险,应该标明原因,以及计划对其进行监控的估计时间。

触发计划:如果该风险真的发生,计划如何来处理它。触发计划通常是一个管理层面的计划,而不是一个事件-响应的计划。

备注:记录任何不适合记录在风险描述中,或者不属于风险描述的信息。

跟踪ID: 如果通过一个缺陷跟踪系统或里程碑跟踪系统来管理风险,可以用该列来记录该风险在系统中的跟踪ID。

历史:该风险在过去是否已经发生过?什么时间?发生频率?等等

定期维护风险模型(如:每月、每个季度):

  • 发现新风险
  • 删除旧的风险
  • 更新可能性和严重性
  • 检查优先级高的风险
  • 检查优先级低的风险

服务和微服务

定义服务的指导原则:

    1. 特定的业务需求
    1. 清晰和独立的团队所有权
      一个单独的服务应该由一个3人到8人的开发团队来负责和运行。这个团队负责该服务的所有方面。
    1. 天然隔离的数据
    1. 共享的能力/数据

如何响应服务故障?

  • 可预测
  • 可理解
  • 对当前情形是合理的

如何确定故障?

  • 乱码响应
  • 表示致命错误发生的响应
  • 结果可以理解但是所需的结果不匹配
  • 结果超出预期范围
  • 没有接收到响应
  • 接收响应很慢

如何让应用程序具有伸缩性

什么是“两次失误的高度”?

如果你曾经操作过无线电控制(R/C)飞机,可能听说过那句话“让你的飞机保持两次失误的高度”。

当你学习如何操作R/C飞机,尤其是开始学习如何进行特技飞行时,你会学得很快。失误其实就相当于高度,出现一个失误,你就失去一定的高度。当你失去太多高度时,坏事就发生了。因此,让你的飞机保持“两次失误的高度”意味着让你的飞机飞得足够高,从而有足够的高度从两个不相关的失误中恢复飞行。

为什么是两次失误?这很简单。你总是希望让飞机飞得足够高,以便可以从一次失误中恢复飞行。现在,假设你犯了一个失误,失去了一些高度。在从这个失误的恢复过程中,你还会希望飞得足够高,从而保证能够从另一次失误中恢复飞行。你可以想象一下:在恢复飞行的过程中,你通常压力很大,而且可能处于一种惊恐的情绪中,很可能做出一些反常的事情——正是这种情形让你可能产生另一个失误。因此如果你飞得不够高,就会坠机。

换一种角度说,如果你能够飞行两次失误的高度,你总有一次从失误中恢复的备份方案,即使你正在从一次失误中恢复。

什么是“由独立团队负责的服务架构(STOSA)”?

STOSA对于由多个开发团队来负责并管理一个或多个系统服务的大型组织来说,是一个重要的指导原则。

达到STOSA,要满足的条件:

  • 有一个基于服务或者微服务架构建立的应用程序。
  • 有多个开发团队负责构建和维护这个应用程序。
  • 程序中的所有服务必须分配给某个开发团队。
  • 不允许有服务被分配给多个开发团队。
  • 一个开发团队可能会负责多个服务。
  • 开发团队负责管理服务的所有方面,从服务架构到设计再到开发、测试部署、监控和故障处理。
  • 服务之间有清晰的边界,包括文档编写良好的API接口。
  • 各服务负责维护之间的服务等级协议,开发团队负责对服务进行监控和报警。
管理STOSA应用的STOSA组织

服务所有者负责:

  • API设计
  • 服务开发
  • 数据
  • 部署
  • 部署窗口
  • 产品变更(服务所需的所有产品变更,例如负载均衡器的设置和系统调优)
  • 环境
  • 服务SLA
  • 监控
  • 值班/突发事件响应
  • 报告(向其他团队,消费者或者依赖服务,发送内部报告,以及管理服务的运行健康报告)

基础设施团队或运维团队:

  • 服务器/硬件
  • 工具集
  • 数据库(数据本身、数据模式以及对数据的使用,通常还是由服务所属团队来管理)
基于STOSA的组织架构

SLA的性能检测方法:

  • 调用延迟
  • 流量
  • 运行时长
  • 错误率

云服务

基于云的服务基本类型:

  • 原生资源
  • 托管资源(基于服务器)
  • 托管资源(不基于服务器)

可伸缩的计算选项:

  • 云服务器
  • 计算分片
  • 动态容器
  • 微计算(体积小、高度可扩展、基于事件驱动的运行环境)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容