如果张小龙谈 DevOps 平台

zhangxiaolong.jpg

设计原则

张小龙谈微信:

我们没办法让10亿人来投票决定什么是好的,也投不出来。那怎么才能通过改变寻求设计的优化,让它变得更好呢?这个决策必须遵循好的设计原则。

张小龙谈 DevOps 平台:

我们没办法让所有研发团队来投票决定什么样的 DevOps 平台是好的,也投不出来。那怎么才能通过改变寻求设计的优化,让它变得更好呢?这个决策必须遵循好的设计原则。 我把这几个原则念给大家听下,大家可以对照 DevOps 平台来思考一下,会很有意思。

  • 为软件的发布创建一个可重复且可靠的过程
  • 将几乎所有的事情自动化
  • 把所有的东西都纳入版本控制
  • 提前并频繁地做让你感到痛苦的事
  • 内建质量
  • “DONE” 意味着“已发布”
  • 交付过程是每个成员的责任
  • 持续改进

老翟插话:以上设计原则,是《持续交付》中1.6章节中写的。

做最好的工具与 996

张小龙谈微信:

一个用户每天的时间是有限的,这是次要的。最主要的是,技术的使命应该是帮助人类提高效率。

张小龙谈 DevOps 平台:

一个程序员每天的时间是有限的,这是次要的。最主要的是 DevOps 平台的使命应该是帮助研发团队提高软件发布的效率。

老翟插话:我的真实经历,当我问一个 DevOps 平台的设计人员为什么要把部署阶段设计得这么难用(效率低下)。得到的答案是怕用户部署错。这是使用老的思路来设计 DevOps 平台:如果一件事情容易出错,那我们就尽量少做。而让用户难用,就可以自然实现目的。

关于社交,关于 DevOps 本源

张小龙谈微信:

其实我们人的社交是没有发生改变的,或者说社交的需求并没有发生改变。我们在线上的社交只是线下的社交的一个映射而已。

张小谈 DevOps 平台:

其实我们研发团队的软件发布是没有发生改变的,或者说软件发布的需求并没有发生改变。我们在 DevOps 平台上的软件发布只是线下的软件发布的一个映射而已。

老翟插话:为什么开源类的 CI/CD 平台,Jenkins 占有率那么高?很大一部分原因是人们从原来的手工发布迁移到 Jenkins 上,非常的平滑,自然。纵观现在很多 DevOps 平台,把基本的构建编译的命令都隐藏起来,不允许用户轻松地看到或者修改。这是那些 DevOps 平台“难用”的原因之一。

什么是好的 DevOps 平台

张小龙谈微信:

我觉得一个好的产品不需要费口舌解释,我解释了这么多,说明我们做得不够好。

张小龙谈 DevOps 平台:

我觉得一个好的 DevOps 平台不需要费口舌解释,我解释了这么多,说明我们做得不够好。

关于阅读,关于研发流程

张小龙谈微信:

我们希望卷入几亿用户,通过社交推荐这种模式,将阅读变成一个日常的事情。

张小龙谈 DevOps 平台:

我们希望卷入研发流程过所有的角色,通过 DevOps 平台,将持续交付变成一个日常的事情。

老翟插话:从演讲原文看“关于阅读”这部分,张小龙一系列的思考,包括丰富大家眼界、打破信息茧房等,以达到“将阅读变成一个日常的事情”。而且这个过程要做到润物细无声。我们的 DevOps平台是不是也能润物细无声地帮助团队达到“将持续交付变成一个日常的事情”的目的?

关于 AI 编程,关于 AIOps,关于AI……

张小龙谈微信:

好的技术是为产品服务的,AI应该默默躲在后面帮助用户来做一些事情,就像语音识别一样。

张小龙谈 DevOps 平台:

好的 DevOps 产品是为研发团队服务的,AI 应该默默躲在后面帮助用户来做一些事情,就比如它会自动发现依赖包有漏洞,还能自动提出合理的解决方案,甚至能自动提 PR 或 MR。

后记

最近几天又重听张小龙在2019年的演讲,发现学习到了不少东西。关键是学习他的思维方式。我写这篇文章是为了验证我学习到的,能否用在 DevOps 平台的设计上。有没有真的学到,是另一回事。

看看查理·芒格说过的话,你就明白我的意思了:

长久以来,我坚信存在某个系统——几乎所有聪明人都能掌握的系统,它比绝大多数人用的系统管用。你需要做的是在你的头脑里形成一种思维模型的复式框架。有了那个系统之后,你就能逐渐提高对事物的认识。

现实中,至于 DevOps 平台要怎么设计,留给读者朋友思考了。

附录

2019微信公开课PRO版张小龙演讲全文(官方完整版): https://zhuanlan.zhihu.com/p/54490834

查理·芒格:让我受用一生的思维方式:https://36kr.com/p/5081596


Last modified on 2020-01-03