谈 DevOps 平台设计:为什么部署后的包还是旧的包?
为什么部署后的包还是旧的包?
有位同学说他在 DevOps 平台部署后,代码还是旧的。
在我跟他确认了构建时拉取的代码是版本是对的,部署时,使用的制品包也是正确的情况下 ,我也是摸不着头脑了。
最后,这位同学在 DevOps 平台的界面上看到了部署的目标机器的IP。
这才找到了真正的原因:他们自己部署的目标机器搞错了。也就是本来想部署到 A 机器,但是部署任务填写的是 B 机器的 IP。然后自己一直在 A 机器上检查部署结果。
接着,这位同学就感叹自己对 DevOps 不熟。
然而,笔者认为,那根本不是用户对 DevOps 熟不熟的问题。而是 DevOps 平台的设计问题。
为什么用户连自己部署错了主机都不知道?笔者认为那是因为目标机器的 IP 信息在界面上不够明显,其他所有的信息就只能通过分析 DevOps 平台提供的日志才能知道了。
所以,我们的平台需要提供这两个功能:
- 部署清单:列出本次部署的具体内容,可以包括:制品版本,执行人,目标机器列表,部署策略,回滚策略等。
- 部署结果报告:制品版本,目标机器的部署结果,与上一次部署的差异(这是关键)、多次部署报告的差异性比较功能等。
部署结果报告中必须要强调此次部署与上次部署之间的差异,毕竟大多数应用不会那么频繁的更换部署机器。
后记
“DevOps” 这个概念本身已经把很多人搞得云里雾里。在网上搜索一下 DevOps 的定义就知道了。所以,用户在使用 DevOps 平台时,达不到预期值,就习惯性地认为是自己的问题。我们作为平台设计方,用户达不到预期,那就是平台设计的问题。
Last modified on 2019-11-27