基础设施团队致开发人员的一封信

73ba6c59c1a51107b4e94abe4d9cf47d.jpeg

在过去一段时间里,我们”体感“基础设施团队与开发团队之间协作的沟通效率有点低下。所以,就有了这封信。

如果你所在公司也有同样的问题,你也可以把此信转给他们。

背景

提示:文中的”基础设施团队“的职责同时包括了DevOps、SRE、运维的职责。

我们知道团队要能高效的协作,信息的传递是非常重要的环节。但是,基础设施人员需要哪些信息才能高效的工作,在整个团队似乎还没有形成共识。虽然,大家都希望将平台的稳定性做好。

我们知道形成共识很困难的。最好的方式就是做成固定的流程。只是,建设流程本身也需要人力。在当前,我们不可能停下来专门去建设固定的流程,我们没有那么多的成本。

我们也不认为,这些流程是一次性建设完成的,它应该是一个不断演化成长的过程。

初期阶段,在我们有限的精力里,我们觉得:只要大家理解了基础设施人员工作所需要的信息,并在沟通时提供,就可以实现高效的协作。

目的

在与基础设施团队协作时,一定要给他们说清你让他们做某某事情背后的目的。

相信大家都不是把其他同事当工具人的。只是行业里,运维的角色似乎就是负责执行,不理会原因的。所以,现在大家都习惯了叫运维做什么什么的,不习惯将目的说出来。

为什么要讲目的?因为你要求运维做的事情可能是:不合理的,不安全的,不符合基础设施的整体设计的。

这个“目的”,你可以附上一个文档的链接。但是,希望大家能用简短的语句概括,而不需要基础设施人员从你的大篇幅文字里找“目的”。

必要信息

基础设施团队做不同的事情,需要不同的信息。我们分别来列举:

1.  执行SQL
    1.  SQL版本化的Merge Request(MR)链接
    2.  SQL是否已经通过业务人员(相关的开发人员、Leader、架构师等)MR
    3.  需要执行的环境,最好能给出目标DB的地址
    4.  执行时间
2.  技术评审
    1.  评审的背景
    2.  架构图或流程图(推荐:[https://excalidraw.com/](https://excalidraw.com/) 可版本化,可方便其他人协作)
    3.  方案的优缺点
    4.  需要SRE做的事情,单独列出来,而不是基础设施要从整个方案分析出自己需要做什么
    5.  方案的希望的实施时间。基础设施团队需要排优先级
3.  权限申请
    1.  申请权限的目的;涉及敏感数据的权限,我希望你能通过你的Leader授权,再拿到证明来找我们
    2.  申请的流程的链接(如果有),方便运维直接跳到授权页面 注意:基于安全最小化原则,我们会在授权时长和范围上进行控制,请理解。不是只有你觉得麻烦。
4.  部署
    1.  如果是新的组件
        1.  使用背景,即技术评审的Confluence、上下文、谁使用等
        2.  使用该组件的目的
        3.  大概的容量的评估
        4.  组件的版本
        5.  期望的部署时间
    2.  如果是生产环境
        1.  发版的Confluence页面
        2.  发版流程通过页面
        3.  期望的部署时间
5.  排查问题
    1.  环境
    2.  平台
    3.  问题发生时间,问题发生方式(是偶现,还是必现?)
    4.  现象:描述的是事实,不要增加个人判断
        1.  如果是网关,需要以下信息:
            1.  请求参数,URL。最好能带复现此问题的方法
            2.  服务返回response信息。如果response信息比较复杂,请加一个注释,方便运维人员判断问题发生的环节
            3.  绕过网关,直接请求应用,是否ok
        2.  如果是MySQL等基础组件,需要以下信息:
            1.  你连接基础组件的配置(你能给到,可以提升排查问题速度)
            2.  你的应用的报错信息(有时报错信息已经说明问题)
    5.  期望:不出问题的时候,应该是怎样的。 我们希望,你们给出基础设施问题的准确的证据。虽然,这一点有时有点难。但是,我们希望大家能体现出:“我尽力了”的态度。我们如何判断这个态度的:1. 你有详细的记录下你排查问题的过程;2. 你有写下复现问题的过程的方法;3. 你有把你的应用的情况写清(比如是否有健康检查,是否通过了健康检查等)

P.S. 以上并不代表所有的case

以上信息,原则上都要记录到Confluence页面上,方便其他人参与协作。有些同学可能不理解,花时间在写Confluence上,不是没有更多时间写代码了吗?我们希望大家能在写Confluence上达到共识:写Confluence也是大家的工作的一部分,而不仅仅是写代码。因为基础设施需要从你的文字中大概判断问题的位置、测试人员需要从你的文字中判断哪些case需要重点测试。

我们的共识是:软件工程不仅仅是写代码,文档也是软件工程的一部分。

越快越好

当基础设施人员问你:你们希望的完成时间点是什么?

你如果回答:“越快越好”。

面对这样的回答,很遗憾,基础设施人员会把你的需求的优先级排到最低。低到基础设施人员可能会忘记还有这件事。

所以,大家一定要设置一个合理的时间。如果有优先级的问题,基础设施人员会与你进行协调。

态度

大家本是协作的关系,所以,基础设施人员认为以上所有的信息,你都能认真地书写,以表达对其他同事的尊重。

我们也相信大家不是态度的问题,而是大多数人的受教育过程中,都害怕“写作文”,以至于,现在参加工作了,也不擅长写作(写文档)。

那么,什么时候,我们认是态度问题呢?那就是IM上的一句没有上下文的“命令”。

如果你无法将问题描述清楚

如果你无法把问题描述清楚,我们认为你还没有搞清楚你真正要做的事情是什么。

这个时候,我们建议你,先用文字将问题写下来。如果看得懂你写的文字,就说明你自己真正知道自己的问题。这对节约大家的时间非常重要。

写文档的过程,本质上就是你定义问题的过程。

(完)

好文推荐:

猜你喜欢

转载自blog.csdn.net/apl359/article/details/128910632