读书笔记(SRE:Google运维解密):第7章 Google 的自动化系统的演进

    科技2022-07-21  103

    自动化是一种力量倍增器,但不是万能药。当然,对力量的倍增并不能改变力量用在哪的准确性:草率地进行自动化可能在解决问题的同时产生出其他问题。  自动化的价值究竟是什么? (a)一致性:一致性地执行范围明确、步骤已知的程序—是自动化的首要价值。 (b)平台性:一个平台可以暴露自身的性能指标,也可以帮助你发现流程中以前所不知道的细节,这些细节在平台范围内更容易衡量。 (c)修复速度更快:在产品生命周期中一个问题越晚被发现,修复代价越高; (d)行动速度更快: (e)节省时间:节省时间是一个经常被引用的使用自动化的理由  “如果我们持续产生不可自动化的流程和解决方案,我们就继续需要人来进行系统维护。如果我们要雇佣人来做这项工作,就像是在用人类的鲜血、汗水和眼泪养活机器。这就像是一个没有特效但是充满了愤怒的系统管理员的Matrix世界。”  自动化的演进遵循以下路径: 1)没有自动化:手动将数据库主进程在多个位置之间转移。 2)外部维护的系统特定的自动化系统:SRE在他或她的主目录中保存了一份故障转移脚本。 3)外部维护的通用的自动化系统:SRE将数据库支持添加到了每个人都在使用的“通用故障转移”脚本中。 4)内部维护的系统特定的自动化:数据库自己发布故障转移脚本。 5)不需要任何自动化的系统:数据库注意到问题发生,在无须人工干预的情况下进行故障转移。  自动化程序的不同体现在三个方面: (a)能力,即准确性。 (b)延迟,开始执行后,执行所有步骤需要多久。 (c)相关性,自动化所涵盖的实际流程比例。  许多分布式自动化都依赖于SSH。从安全的角度来看,这是很笨拙的,因为人们必须拥有机器的root权限才能运行大多数的命令。越来越多的人意识到,先进、持续的安全威胁迫使我们将SRE的特权降到最低,仅仅满足完成其工作所需的最低的特权: 用一个支持认证、ACL驱动,以及基于RPC的本地管理进程来取代sshd,这被称为Admin服务器,它拥有本地执行更改权限。这样一来,没有人可以绕过审计跟踪来安装或是修改服务器。对Admin服务器代码和Package仓库的修改通过代码评审来把关,这使得越权操作非常困难;赋予别人安装软件包的权限不会允许他们查看日志。Admin服务器会记录RPC请求者、全部参数,以及所有的RPC的结果,以提高调试和安全审计功能。   - 集群上线自动化进化遵循这样一个路径: (a)操作人员触发手动操作(无自动化)。 (b)操作人员编写,系统特定的自动化。 (c)外部维护的通用自动化。 (d)内部维护,系统特定的自动化。 (e)不需要人为干预的自治系统。
    Processed: 0.012, SQL: 8