SRE第一课:New to an SRE team?

数人云推出SRE系列译文, 为大家带来国外SRE的深刻解读与实践。 今天的文章从一个SRE新人的角度出发, 为大家详细列出SRE进阶的四个阶段,在准确定位的情况下,指引大家更好地在公司推行SRE。

本文将与大家分享一些新加入SRE团队时应该考虑的问题。无论你是刚加入一个SRE团队的新人,亦或是公司的第一位SRE(Ops/Techops/DevOps)。笔者也曾经历过这个阶段,并尝试了很多方法去理解公司SRE当时的情况以及确定下一步行动的方向。

我把它分成了几个阶段。大家可以整体来看或者在对应的时间看自己符合的那一部分,然后对它们更加了解。如果立刻照此执行,那么将对你在新公司取得成功有所帮助。这些条目处于一个较高层级,我们可以把它们更加细分。想法从这里开始,由你的好奇心决定深入执行的程度。然而,不要在兔子洞掉得太深……可能会迷路哦。

阶段1-新入团队,打个招呼

  • 尽量地与大家多进行沟通交流,了解他们对于当前系统状态的想法
  • 尽可能地思考更多有关团队的问题,了解每个团队希望达成的目标
  • 找出所有目前系统中大家的痛点
  • 询问每个团队:如果有一处可以改进,那它是什么?
  • 找到团队里资格最老的成员,然后让他们讲出团队里一些不为人知的秘密
  • 做笔记!!!这一条如何强调都不为过。尽管你很聪明,但是把东西记下来是通向成功的关键
  • 弄清楚你和你的团队预期的是什么,都有哪些支持

阶段2-了解物理/虚拟设备

你需要了解的物理/虚拟设备包括:

设备规划

  • 云、物理机还是混合式?
  • 托管主机or自有主机?
  • 硬件类型&供应商(底盘,CPU,内存,磁盘,网络等)

操作系统设计

  • OS发行版&版本
  • 基础or定制驱动?
  • OS/内核调谐
  • 自定义编辑库(如果有)
  • 自定义OS微调(如果有)

基础设施服务

  • 文件当前状态
  • 监控系统
  • 配置管理(如果有)
  • 通用基础设施工具(例如DNS,DHCP,PXE,LDAP)
  • 基础设施工具(用户服务&工具)
  • Github/Gitlab/SVN工作流(团队repo,CI/CD等)
  • 部署机制
  • 外部工具依赖
  • 应用团队所使用的数据库/队列/服务

阶段3-了解应用/服务

你需要了解的应用/服务包括:

应用/服务当前状态

  • 应用数量(有多少不同的app)
  • 应用类型(这些app在做什么)
  • 环境语言
  • 依赖栈
  • 文件的当前状态
  • 应用监控
  • 应用环境中的常见问题
  • 宕机待命和扩展策略(如果有)

应用/服务未来需求

  • SRE团队组织的期望
  • 需要的新技术
  • 可以做的改进架构调整

阶段4-开始工作!

  • 改进/实现当前设施的状态和架构
  • 改进/实现环境部署(物理机或者虚拟机)的进程
  • 改进/实现环境中服务的工具
  • 改进/实现配置管理
  • 改进/实现软件部署的最佳实践
  • 改进/实现团队外部(技术&非技术岗)的人际关系
  • 改进/实现尽可能多你可以为公司目标带来好处的方面

最终的阶段总是最有趣的。这时你已经收集到了足够的信息,可以将你基于公司环境的想法付诸实践。虽然现在并不是所有人所有事都遵从你的建议,但是都在往预期的方向发展。作为团队成员,大家的做法都是有依据的,他们按照自己的想法以一定的方式来执行。无论它是否对你有意义,你都不应该嘲笑或者贬低他们的决定。对于那个时间点的他们来说可能已经做得足够好,这时你应该根据过去的经验和知识为他们提供改进的意见和建议。

你的到来是因为公司认定你会带来价值。然而许多人就职SRE以后往往被无视了,因为还没有真正理解之前就开始抱怨,并不能实现他们应有的价值。笔者也在努力让这种事情不再发生,大家通力合作,共建一种更好的技术文化。

作者:Anthony Caiafa 原文:http://anthonycaiafa.com/2016/04/27/new-to-a-team/