这是一个比较宽泛的问题,我认为每个组织/企业在拥有多个 DevOps 人员时都会遇到这个话题:如何保存和管理组织运营知识,使其保持最新、易于访问,并对新手有用?
这个问题的目的是收集一些解决方案供人们选择。我的企业/组织尚未找到解决这个问题的好方法。
定义:操作知识——完成任务、维持基础设施运行和更新所需的知识。
一些示例:我们的主要 RDS 集群位于哪些 AWS 区域?我们在哪里以及如何存储机密?我们的网页的负载平衡设置是什么?我们在 Postgres 中的角色/用户结构是什么?VPN 如何设置以及添加新用户(生成证书等)需要什么?将新版本的代码 XYZ 部署到生产环境的步骤是什么?
您的组织如何处理这个问题?您运行自己的 wiki(哪一个?)、Github 的 wiki、Google 文档、Evernote、git repo 中的 markdown 文件、中央服务器上的 Word 文档(?!?),还是其他什么?
答案1
一旦你的团队超过 3 或 4 人,你就需要一名图书管理员——负责确保文档的编写、一致性和维护。这显然不是一份全职工作,但却至关重要。如果没有人负责维护文档/wiki/存储库/Sharepoint,文档就会变得陈旧。一旦文档陈旧,人们就会停止使用文档/存储库,而内容就会留在人们的脑海里。
答案2
有些组织会先使用 wiki 作为知识库。对于小型团队来说,它很容易跟踪,而且构建起来也不需要花费太多精力。了解某种 Markdown 语言会很有帮助,不过有些 Web 面板可以将发布过程简化为创作页面。
人们倾向于使用 Google 文档,因为它是共享的、协作的,并且可以组织起来。这种方法一开始效果很好,但容易变得杂乱无章,而且搜索功能在处理大型且陈旧的数据集时效果不佳(会遗漏很多)。但如果您可以保持其井然有序,它既便宜又简单。这实际上与 NAS“文件柜”方法相同,通常可以存储您需要的任何内容。
Confluence 等文档管理平台非常适合大型组织,因为它旨在将维护文档的责任分摊给各个团队,并提供清晰的版本控制和共享功能。它易于保持井然有序,并可与各种图表或其他富内容系统集成。与 wiki 或经典的“文件柜”方法相比,它的学习难度更大。