自动化对谷歌SRE意味着什么价值
所有上文提到的这种益处和弊端对 SRE来说也同样适用,Google更倾向于自动化。我们对于自动化偏爱部分来自于Google特有的业务挑战∶Google的产品和服务是全球部署的,而我们通常也没有时间和其他组织一样手动运维系统。对于真正的大型服务来说,一致性、快速性和可靠性这些因素主导了大多数有关自动化的权衡的讨论。支持自动化的另一种说法,特别是在Google内部,是我们在第2章描述的,Google内部复杂却令人惊讶的高度统一的生产环境。虽然其他组织可能运行一个没有现成的 API 的重要设备,或者一个没有源代码的软件,以及没有对生产运维完全的控制权的情况,Google 通常可以避免这些情况发生。Google为那些供应商没有提供API的系统构建了自己的API。虽然购买某一特定任务的软件会更便宜,但我们仍倾向于选择自主开发,因为这样可以产生具有长期价值的API。我们花了很多时间来克服自动化系统管理的各种障碍,随后坚决地进行了自动化系统管理本身的开发。鉴于 Google 管理其源代码的方式(参见文献【Pot16】),几乎所有 SRE接触的系统的源代码都是多多少少可用的。这也意味着我们的使命"在生产环境中拥有产品"要更加容易,因为我们控制了全部的技术栈。
当然,尽管Google在思想上倾向于尽可能使用机器管理机器,但实际情况需要一定的变通。将每个系统的每一个组件都自动化是不合适的,同时不是所有人都有能力或者倾向于在一个特定的时间开发自动化系统。我们的一些基本系统由快速原型开始,并不是为了长久运行,也不是为自动化而设计的。前面一段阐述了对我们的观点的最大化情况,也是我们在 Google 的范围内付诸行动取得了广泛的成功的一种观点。一般来说,我们在可能的情况下都选择了创建平台,或者是将我们自己"定位"在未来可以创建平台的位置上。我们认为这个以平台为基础的方法对于可管理性和可扩展性是非常有必要的。
页:
[1]