SRE-Google运维解密随记-4

2023-05-16

自动化系统的演进

草率地进行自动化可能在解决问题的同时产生出其他问题。 因此,虽然我们认为在大多数情况下以软件为基础的自动化是优于手动操作的,但是比  这两个选择更好的方案是一个不需要这些的系统设计一个自治的系统。或者换一种  方式来看,自动化的价值不仅来源于它所做的事情,还包括对其的明智应用。我们将讨 论自动化系统的价值,以及SRE对自动化系统的态度的演进历史。

自动化的价值:

一致性、平台型、修复速度更快、行动速度更快、节省时间

如果我们持续产生不可自动化的流程和解决方案,我们就继续需要人来进行 系统维护。如果我们要雇佣人来做这项工作,就像是在用人类的鲜血、汗水和 眼泪养活机器。这就像是一个没有特效但是充满了愤怒的系统管理员的Matrix世界

自动化的演进遵循以下路径:

1)没有自动化                                                                    73

手动将数据库主进程在多个位置之间转移。

2)外部维护的系统特定的自动化系统

SRE在他或她的主目录中保存了一份故障转移脚本。

3)外部维护的通用的自动化系统

SRE将数据库支持添加到了每个人都在使用的“通用故障转移”脚本中。

4)内部维护的系统特定的自动化

数据库自己发布故障转移脚本。

5)不需要任何自动化的系统

数据库注意到问题发生,在无须人工干预的情况下进行故障转移。

自动化程序的不同体现在三个方面:

●能力,即准确性。

●延迟,开始执行后,执行所有步骤需要多久。

●相关性,自动化所涵盖的实际流程比例。

 

集群上线自动化进化遵循这样一个路径:

1. 操作人员触发手动操作(无自动化)。

2. 操作人员编写,系统特定的自动化。

3. 外部维护的通用自动化。

4. 内部维护,系统特定的自动化。

5. 不需要人为干预的自治系统。

 

可控的故障模式

配置文件,或者服务的任何输入都应该经过正确性和准确性检查再提供给服务。服务在接收到不合理的配置文件或者输入数据时,应该继续保持之前的状态正常工作,同时发出错误输入的警报。错误的输入数据一般分为以下几类:

不正确的数 据

在处理数据之前,应该检查数据的语法,甚至在可能的情况下,检查数据语义的正 确性。同时,服务应该注意空数据、部分数据或者截断数据的可能性(服务应该在 新数据比之前的数据小N%的时候发出警报)。

过期的数 据

这些数据可能会影响到目前的数据。应该在数据过期之前发出警报。

服务应该追求在出现故障时仍能够保持工作,可能会牺牲一定程度的访问控制能力,或者使用简化逻辑。我们发现,最安全的方式是在服务收到新数据之后,仍然维持之前的配置运行,直到某个人来批准采用新数据这些数据可能是无效的。

 

渐进式发布

非紧急的发布过程应该是按阶段进行的。不管是配置文件改变,还是二进制文件改变, 都会引入一定的风险,我们通过小规模地应用这些变更来控制这些风险。每次发布部署的容量百分比,以及每个阶段之间等待的时间应该由服务的规模、发布的规模,以及服务所能承受的风险来决定。同时,每个部署阶段中包括多个地理位置也是好主意,这样可以更快地检测到由于流量峰谷或者不同地理区域的流量带来的问题。

整个发布过程应该是有监管的。为了确保发布过程中没有未预料的情况发生,工程师或者是一个可靠的监控系统应该对发布过程进行监控。如果出现了意外情况,回退是第一选择,后续再进行详细的分析,这样可以降低平均恢复时间(MTTR)。

 

发布协调检查列表

架构

架构草图,服务器类型,客户端请求类型

编程性客户端的请求

 

物理机与数据中心

物理机数量与带宽数量,数据中心,N+2冗度,网络QoS

新的域名,DNS负载均衡

 

流量预估、容量以及性能

 HTTP流量与带宽预估,发布时的峰值,流量的组成,6个月的预测

压力测试,端到端测试,每个数据中心最高延迟下的容量

对其他我们关注的服务的影响

存储容量

 

系统可靠性与灾难恢复

当下列情况发生时,服务会怎么样

物理机故障,机柜故障,集群故障

两个数据中心之间的网络故障

 

对每种需要联系其他服务器(后端)的服务器来说:

如何检测后端故障,后端故障如何处理

如何在不影响客户端和用户的情况下重启服务器

负载均衡,速度限制,超时,重试,以及错误处理

数据备份/恢复,灾难恢复

监控与服务器管理

监控内部状态,监控端到端行为,警报的管理

监控监控系统

有关财务的警报和日志

在集群环境下运行服务的技巧

不要在代码中给自己发送海量邮件,会导致邮件服务器崩溃

 

安全

安全设计评审,安全代码评审,垃圾邮件风险,验证,SSL

发布之前的可见/可访问性控制,各种类型的黑名单

 

自动化与人工任务

更新服务器、数据,配置文件的方式和变更管理

发布流程,可重复的构建过程,金丝雀测试,分阶段发布

 

增长问题

空余容量,10倍增长,增长型的警报

扩展性的瓶颈,线性扩展,与硬件性能的同步扩展,所需要的变更

缓存,数据分片/重新分片

外部依赖

第三方系统,监控,网络条件,流量配比,发布时的流量峰值

优雅降级,如何避免意外对第三方服务造成过载

与合作伙伴、邮件系统,以及Google内部服务良好对接

发布时间与发布计划

不可改变的截止日期,外部事件,星期一或者星期五

该服务标准的运维流程,以及其他服务的运维流程

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SRE-Google运维解密随记-4 的相关文章

  • chrome源代码目录结构简介

    为了对庞大的源码项目进行分析 先对源码目录树作一个简单的介绍 粗略的了解一下各个模块的功能分布情况 chrome源代码src目录下的结构如下图 app 该目录下的代码主要是和各个操作系统平台相关的应用上层代码的提炼 不同操作系统可能对应不同
  • gtest学习笔记(二)gtest自带的sample1---Func函数使用

    文章目录 前言 源码学习 utest语法 运行 前言 第一章中已经编译出自带的sample例子 在build googletest目录下可以看到sample的各种例子的可执行程序 Google Test 附带了10个单元测试用例 难度由浅及
  • Google登录授权详细过程

    前言 这篇文章包含了google登录授权从API创建 到使用Java代码完成登录的一个完整demo 主要为了实现google关联用户的服务 如google merchant center等 如果仅仅需要使用google邮箱登录 建议由前端实
  • 使用jquery的 uploadify,在谷歌浏览器不支持flash插件的操作步骤

    google下支持flash控件操作步骤 我这边已经测试通过 google版本 67 0 3396 99 1 安装flash插件 https blog csdn net ghj1976 article details 5403588 2 设
  • PDF 的各种操作,我用 Python 来实现(附网站和操作指导)

    导言 PDF 处理是日常工作中的常见需求 包括 PDF 合并 删除 提取等 更复杂的任务如 将 PDF 转换成 图像 下面通过几个简单的例子和一份代码 帮助大家解决上面的需求 操作非常简单 在文末我会提供一份源码和一个神奇的 PDF 处理网
  • java.lang.NoClassDefFoundError:com/google/common/base/Moreobjects

    项目所属环境不同 解决方案不一定适合所有人 见谅 java lang NoClassDefFoundError com google common base Moreobjects 编译可以通过 运行报错 很无奈 突然蹦出这鬼东西 经过一番
  • 谷歌技术"三宝"之BigTable

    谷歌技术 三宝 之BigTable 2006年的OSDI有 两篇google的论文 分别是BigTable和Chubby Chubby是一个分布式锁服务 基于Paxos算法 BigTable是一个用于管理结构化数据的分布式存储系统 构建在G
  • 申请带@msn.com后缀的邮箱

    很多朋友总是抱怨申请msn邮箱时总是申请到 hotmail com的 为什么申请不到 msn com的呢 我从网上Google了一下 这个地址是申请简体中文MSN邮箱的 https accountservices passport net
  • Google也裁员啦!!

    国外媒体报道 在谷歌 要不就不下雨 要下就是倾盆大雨 google宣布首次裁员 裁减内部员工100个 合同工和劳务工都将裁掉 挪威 瑞典 奥斯汀 得克萨斯 等分部将全部关闭 分部员工全部回美国总部 谷歌还发表数篇博客 详细说明了即将关闭的多
  • 原来早就有java代码规范

    happy 最近几天 研究代码规范 想给给公司制定一个代码规范 公司很小 目前还没有代码规范 这个东西很烦人 也很难产生作用 小公司一般不采用吧 但现在为了提高代码质量 也就需要考虑了 今天 发现早在1997年 SUN公司就制定了java代
  • ARCore:ARCore开发的起步

    已经是第7章节了 终于可以开始正式接触到我们梦寐以求的ARCore了 相信大家应该都有一点点小激动了吧 那么下面我们就开始讲解如何进行ARCore的开发 一 Session简介 初看到Session 大家都摸不到头脑 最直接的解释 它是AR
  • 谷歌身份验证怎么登录_使用Google登录身份验证用户

    谷歌身份验证怎么登录 I hate dealing with user authentication so I m very happy to make user management and authentication somebody
  • 申请带@msn.com后缀的邮箱

    很多朋友总是抱怨申请msn邮箱时总是申请到 hotmail com的 为什么申请不到 msn com的呢 我从网上Google了一下 这个地址是申请简体中文MSN邮箱的 https accountservices passport net
  • 通过智慧的选择保持持续的进步 ——Google全球副总裁李开复谈选择的智慧

    通过智慧的选择保持持续的进步 Google全球副总裁李开复谈选择的智慧 2006 11 21 15 24 57 当今时代和20世纪已经有很大的差别 今天人们可以通过互联网接触到更多的信息 根据这些信息来为自己做更好的选择 这样的环境下 能够
  • zxing二维码的生成与解码(C#)(附例子)

    二维码的生成 using com google zxing qrcode using com google zxing using com google zxing common using ByteMatrix com google zx
  • 30个适合女生玩的可爱网站

    ugmbbc发布于 2008 03 20 13 30 12 2905 次阅读 字体 大 小 打印预览 感谢不要笑我的投递这次推荐给大家的都是非常好玩和可爱的网站 他们都拥有不错的技术和创意 这些网站尤其适合女孩子玩 当然cnBeta是一个罗
  • Google Protocol Buffer 的使用和原理

    Google Protocol Buffer 的使用和原理 刘 明 软件工程师 上海交大电子与通信系 简介 Protocol Buffers 是一种轻便高效的结构化数据存储格式 可以用于结构化数据串行化 很适合做数据存储或 RPC 数据交换
  • 以一个最简单的例子把OO的JavaScript说明白

    OO的JavaScript并不高深 麻烦就麻烦在google出来的国人介绍文章经常罗罗嗦嗦 而且之间的说法还各有不同 摆在一起就让人看了头大 这里重拾简单主义 以一个最简单的例子把OO Javascript说明白 1 一个颇为精简的例子 只
  • 【历史上的今天】10 月 2 日:ENIAC 计算机退休;贝尔德发明电视;香港科技大学办学

    整理 王启隆 透过 历史上的今天 从过去看未来 从现在亦可以改变未来 今天是 2021 年 10 月 2 日 在历史上今天发生的科技关键事件不比昨天要少 举世闻名的通用电子计算机 ENIAC 便在今天退休 我国享誉世界的学府香港科技大学正式
  • 如何在 Fedora 和 RHEL 系统中安装 Google Chrome

    Google Chrome 是一款功能强大 快速且流行的网络浏览器 以其简约的设计和强大的功能套件而闻名 虽然 Fedora 和 Red Hat Enterprise Linux RHEL 系统配备了默认的 Web 浏览器 大多数情况下为

随机推荐

  • 不忘初心牢记使命文化励志标语墙贴——个性一百剪纸

    不忘初心牢记使命手工剪纸 个性一百定制服务中心 xff0c 可快速定制各类家居家具用品 工艺礼品 图案造型 xff0c 提供从构思到设计到制作一条龙服务 xff0c 您敢想我们敢做 不忘初心牢记使命绘画贴纸 我们不局限于某种商品 xff0c
  • 动态建模——UML活动图

    1 活动图 xff1a 展示了动作或活动的执行步骤及结果 2 作用 xff1a xff08 1 xff09 描述在用例描述时 xff0c 用例的实例是如何让执行动作 xff0c 改变对象状态的 xff08 2 xff09 可以清晰的展示出活
  • 华为交换机常用命令(一)

    历史命名查询 display history command 配置主机名 sys sysname xxx 状态信息查询 display version display users 进入接口模式并查看信息 int g0 0 1 dis thi
  • NoSQL之 Redis配置与优化

    NoSQL之 Redis配置与优化 关系数据库与非关系型数据库关系型数据库和非关系型数据库区别 Redis简介Redis 安装部署Redis 命令工具Redis 数据库常用命令 Redis 高可用Redis 持久化RDB 持久化AOF 持久
  • MQ-2烟雾浓度传感器(STM32F103)

    本实验是通过串口调试助手显示STM32F103C8T6采集到MQ 2传感器的电压值 一 概述 1 简介 MQ 2可用于家庭和工厂的气体泄漏监装置 xff0c 适宜于液化气 丁烷 丙烷 甲烷 酒精 烟雾等的探测 它的优点是灵敏度高 响应快 稳
  • Java-异常

    什么是异常 xff1f 异常是指程序运行时 xff0c 导致正常流程被中断的事件 异常分类 可查异常 xff1a CheckedException xff08 要么try catch住 要么往外抛 xff0c 谁调用 xff0c 谁处理 如
  • 51单片机学习篇-- --蜂鸣器的使用

    开篇先说一句废话 本旺名字叫萨摩耶 xff0c xff0c Please 叫我旺财 xff0c xff0c xff0c 哈哈 xff0c 招财进宝嘛 xff01 蜂鸣器是个啥 蜂鸣器一般分为两种 xff0c 一种是无源蜂鸣器 xff0c 一
  • 51单片机学习篇-- --基于51单片机的串口通信协议

    开篇先说一句废话 本旺名字叫萨摩耶 xff0c xff0c Please 叫我旺财 xff0c xff0c xff0c 哈哈 xff0c 招财进宝嘛 xff01 开篇 计算机按照下行数据通信协议 xff0c 串口发送数据 xff0c 地址为
  • 卸载rancher出现的问题

    卸载rancher出现如下报错 error unable to retrieve the complete list of server APIs custom metrics k8s io v1beta1 the server is cu
  • docker审计日志过大导致磁盘IO

    问题 xff1a 节点发生磁盘io 节点审计日志量较大 xff0c 由于操作系统内核缺陷 xff0c 会低概率出现io卡主 影响版本 xff1a v1 15 11 v 1 17 9 查看节点是否有问题 1 登录节点 2 如果有类似下图的回显
  • linux 环境命令随记

    sh steve bourne bash bourne again shell gpl centos和ubuntu 默认使用 csh c shell C语言风格 tcsh ksh xff1a korb shell aix默认shell zs
  • sed命令的使用

    sed命令 格式 sed 选项 脚本命令 文件名 选项 n 使用安静silent模式 在一般sed的用法中 xff0c 所有来自stdin的内容一般都会被列出到屏幕上 但如果加上 n参数后 xff0c 则只有经过sed特殊处理的那一行 或者
  • docker安装和info信息

    docker 容器的历史 xff1a 1 Chroot Jail 就是我们常见的 chroot 命令的用法 它在 1979 年的时候就出现了 xff0c 被认为是最早的容器化技术之一 它可以把一个进程的文件系统隔离起来 2 The Free
  • docker镜像管理

    docker镜像管理 镜像结构和原理 镜像就是创建容器的模版 xff0c 含有容器启动所需要的文件系统及所需要的内容 xff0c 因此镜像主要用于方便和快速创建启动容器 镜像结构 xff1a 一个典型的 Linux文件系统由 bootfs
  • 容器操作基础命令随记

    容器操作基础命令 命令周期 一次性启动容器docker run 一次性运行容器 xff0c 退出后立即删除 xff0c 用于测试 root 64 localhost docker run rm alpine cat etc issue We
  • SRE-Google运维解密随记-1

    雇佣系统管理员 sysadmin 运维复杂的计算机系统 xff0c 是行业内一直以来的普遍做法 这些系统管理员负责将现成的软件组件部署于生产环境中 xff0c 对外提供某种业务服务 系统管理员的主要工作在于应对系统中产生的各种需要人工干预的
  • SpringCloud-Netflix并没有闭源、Eureka1.X也没有闭源

    网上流行的说法 xff1a Netflix的Eureka 闭源了 xff08 不实 xff09 引起一些人的焦虑 恐慌 xff0c SpringCloud Netflix是不是就不能用了 xff0c 没人维护了 真相 xff1a 1 Spr
  • SRE-Google运维解密随记-2-服务目标质量

    服务质量指标 SLI 服务质量目标 SLO 服务质量协议 SLA 这三项分别是指该服务最重要的一些基础指标 这些指标的预期值 xff0c 以及当指标不符合预期时的应对计划 事先选择好合适的指标有助于在故障发生时帮助SRE进行更好地决策 xf
  • SRE-Google运维解密随记-3-分布式系统的监控

    监控的大部分通用的术语 xff1a 监控 monitoring 收集 处理 汇总 xff0c 并且显示关于某个系统的实时量化数据 xff0c 例如请求的数量和类型 xff0c 错误的数量和类型 xff0c 以及处理用时 xff0c 应用服务
  • SRE-Google运维解密随记-4

    自动化系统的演进 草率地进行自动化可能在解决问题的同时产生出其他问题 因此 xff0c 虽然我们认为在大多数情况下以软件为基础的自动化是优于手动操作的 xff0c 但是比 这两个选择更好的方案是一个不需要这些的系统设计一个自治的系统 或者换