桔妹导读:”精益生产“起源于丰田生产方式,它致力于在大量生产中实现多品种和高质量产品的低成本生产,随着在制造业取得巨大成功,精益思想也逐步渗透到了各行各业,其中在软件行业就演化出了很多新的理论,比如精益研发、DevOps等。精益生产坚信前置时间(Lead time)是提升产品质量、客户满意度和员工幸福感的最佳度量指标,而业务研发正好是处在前置时间中,并且占有重要的地位,所以本文将从从业务研发侧来聊聊精益实践。
1.
思考
说到精益就不得不提DevOps,它融合了精益和其他各种理论,从思想、方法论到实践无所不谈,我们不可能面面俱到,只能从自身的实际情况出发持续不断的优化,这也正是精益思想里表达的”为下游优化我们的工作“。在实际情况中,很多好的基础服务得不到推广,同时业务团队也不清楚怎么利用好基础服务,导致很多重复性工作和资源浪费。
我们通过分析DevOps各个环节,从实际需求入手,通过规范、引导、封装和创造基础服务来友好的支持业务需求,同时根据业务需求推动和优化基础服务的不足,达到一个良性循环,如果把业务团队和基础服务团队比作两个大的齿轮,为了让他们朝着一个方向转动,就需要一个介轮,而我们做的就是介轮的工作。下面我会从编码、测试、监控和生态四个方面来进行详细介绍。
2.
实践介绍
▍编码
定规范
在我们的实践中,第一条做的就是定规范,为什么把定规范放到这么重要的位置,这就像交通规则一样,没有规范,交通很容易瘫痪,更别说在上面行驶更快的汽车了。包管理就是我们实践的一个规范,我们遵循 SemVer 规范,从刚开始混乱的代码里抽离出一个个的库,并且按照 MAJOR.MINOR.PATCH 版本号规则来进行升级,同时业务在进行升级的时候自动更新到最新的兼容包,这样就可以实现 bugfix 和新功能等兼容升级能快速上线,而非兼容升级可以慢慢灰度。