我在开源社区待过,在很小的初创公司待过,也在大公司待过,简单聊聊他们的异同与感受。
发版工具技术偏好的不同。
- 开源项目喜欢用各种开源的成熟的产品,且一般会用GitHub深度集成,绝大多数使用GitHub Actions
- 大公司一般是自己造平台
- 初创是比较灵活怎么快怎么来,而且每个公司都不同。
发版核心关注点的不同
- 开源:关注效率、自动化,尽可能一键完成所有发版
- 大公司:关注稳定性
发版流程不同
- 开源:主要是前置审核,基于分支+review,在发布完成后就不太会继续关注,因为开源项目一般不直接提供在线服务
- 大公司:
- 前置审核(代码review+单测+集成测试)
- 环境:测试、预发布、生产
- 灰度放量机制
- 各节点设置人工审核
关于DevOps
- 之前实习做过DevOps工具开发,当时一直觉得开发+运维+测试需要一体化
- 但是现在我有了新的想法,我觉得纯正的DevOps流程只适用于小公司,所有人必须要拥有的是DevOps思维,流程和思维这两者是需要分开的。
- 所有的开发都要有DevOps的思维,知道如何开发、如何自动化部署、自动化测试等等。但是每个人对DevOps如何实现都会有不同的理解,如果每个团队都自己搞DevOps,那么大公司的基建和流程就会一团糟,所以对于大公司来说,DevOps只能通过平台工程来解决。