滴滴业务研发的精益实践
https://mp.weixin.qq.com/s/jmzp44hbwZloX8hjls-V8A
”精益生产“起源于丰田生产方式,它致力于在大量生产中实现多品种和高质量产品的低成本生产,随着在制造业取得巨大成功,精益思想也逐步渗透到了各行各业,其中在软件行业就演化出了很多新的理论,比如精益研发、DevOps等。精益生产坚信前置时间(Lead time)是提升产品质量、客户满意度和员工幸福感的最佳度量指标,而业务研发正好是处在前置时间中,并且占有重要的地位,所以本文将从从业务研发侧来聊聊精益实践。
在我们的实践中,第一条做的就是定规范,为什么把定规范放到这么重要的位置,这就像交通规则一样,没有规范,交通很容易瘫痪,更别说在上面行驶更快的汽车了。包管理就是我们实践的一个规范,我们遵循 SemVer 规范,从刚开始混乱的代码里抽离出一个个的库,并且按照 MAJOR.MINOR.PATCH 版本号规则来进行升级,同时业务在进行升级的时候自动更新到最新的兼容包,这样就可以实现 bugfix 和新功能等兼容升级能快速上线,而非兼容升级可以慢慢灰度。
方案同时支持了 GRPC 和 HTTP 两种通信方式,但放弃了 Thrift,这主要从三个方面考虑:对现有基础服务的兼容性(比如网关支持的协议有限)、更灵活的透传机制( Thrift 没有Header 头,无法透传一些非业务参数,比如 Traceid,当然我知道有改造办法,但成本比较大)、对未来技术的兼容性(开源的 Service mesh 把 HTTP 和 GRPC 作为一等公民)。