- 自动化是一种力量倍增器,但不是万能药。当然,对力量的倍增并不能改变力量用在哪的准确性:草率地进行自动化可能在解决问题的同时产生出其他问题。
- 自动化的价值究竟是什么?
(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)不需要人为干预的自治系统。