严选经过数年的发展,服务数已经过千,研发人员从数十人到数百人,项目交付的效率要求越来越高,这也意味着对产品研发效能提出了更大的挑战。而研发效能的提升就很难绕开 DevOps 这个老生常谈的名词。
严选经过数年的发展,服务数已经过千,研发人员从数十人到数百人,项目交付的效率要求越来越高,这也意味着对产品研发效能提出了更大的挑战。而研发效能的提升就很难绕开 DevOps 这个老生常谈的名词。
DevOps = Culture + Tools
DevOps 是一个循环递进的过程。通过文化的指引,打造符合当前组织和文化的相关工具链,固化协作的规范、流程;然后随着工具落地、实践推广,促使组织更快地发展和改进产品,从而进一步加强协作文化和方式。所有未通过工具/平台固化下来的流程规范,如果仅仅依靠文档和意识,当团队快速扩大时,其腐化速度是超过想象的。
简而言之,严选从 2019 年开始重整 DevOps 工具链的原因有三:
DevOps核心环节
DevOps 中的每个环节都不是孤立的,工具链的建设需要着眼于“链”这个关键字,在规划期就得考虑到各个环节的互通和协同。在严选,这些环节对应的核心职能分别是:
以严选现有的研发团队人员构成,往小了说:建设 DevOps 工具链,就是将 PM、QA、SA 等不同岗位的职能,通过工具/平台的方式赋能给开发团队,进而让整个项目团队变“轻”,变敏捷,在保持质量的前提下提升交付/迭代效率。
我们把核心环节中涉及到的事物抽象成以下 5 大关键对象,工具链的打造完全围绕着这些关键对象的管理和对象之间关联/转换流程的管控来补缺及优化。优先确保各对象本身管理能力的补足,然后优化关联/转换的管控,例如:
整个工具链建设的核心原则:
严选 CMDB 本质上是为了管理产品,资源,人员这三者之间的关联关系,不仅为相关工具提供统一的模型概念,避免不同工具内对相同关联模型的重复维护(不同于项目和工程,前者只在 jira 上管理,后者几乎都在 gitlab;产品,资源涉及到的工具众多,并且随着架构演进,工具也更容易发生迭代);同时用于对齐开发、QA、SRE 之间的名词/术语,降低沟通成本。
严选 CMDB 中关键配置项的关系拓扑如下。最核心的配置项是:“服务”,通过服务串联其他的配置项,也是为了指引各团队都能站在服务的角度去看待问题。
监控体系需要的是全面性,才能在问题产生时第一时间被发现,并且避免遗漏。根据现有的技术积累,我们把监控分成 3 个板块进行建设:
业务实时监控(GoldenEye)底层强依赖严选自研的日志平台,支持容器化应用的日志收集,放个架构图:
CI/CD 可以说是 DevOps 中的核心流程,严选在这块碰到的问题有以下几个:
解决这些问题的抓手是统一“制品”概念,以制品为中心来编排和解耦整个 CICD 流程。
原本无论是单元测试阶段,还是联调阶段,验证的应用都是直接从代码分支中编译打包的;只有当 QA 验证完毕后,才会打出制品进行线上部署(也会有合并到主干,并打出 tag,部署时基于指定 tag 完成编译、打包、发布上线流程)。这种方式下,很容易出现测试环境进行验证的制品和实际上线的制品并不是同一个的情况(即使代码相同,不同编译打包流程下,比如打包的配置文件不一样,就会导致应用包实际执行逻辑有差异),存在质量风险的。
我们的期望:开发交付给 QA 和最终线上部署的时候,制品是一致的,所有因环境不同导致的差异性配置信息应该基于配置中心动态获取(也有做法是把不同环境的配置文件全部打包在制品内,然后通过环境变量动态挑选,而不是通过配置中心。但这种做法存在一定安全风险,比如在测试环境内会看到线上的一些连接地址、密钥等)。
因此,为了能够落地此规范,严选把“制品“的产出时机做了变化:从持续交付(Continuous Delivery) 提前到持续集成(Continuous Integration) 阶段,确保 QA 的验证流程是始于制品,而不是始于代码库。此外,把制品的产出规范落地到 CI 阶段也更匹配应用容器化的建设。
最终,CI/CD 这块的解决方案为:
整个 DevOps 体系高效运转的前提是需要有一个统一的流水线,把各个环节进行有机地联动,打通各个垂直领域内的能力。在严选,目前选择集团的 Overmind 作为这一板块的解决方案,关键特性有以下三点:
严选 DevOps 工具链将会伴随业务和研发团队的发展所需,以螺旋向上的方式持续建设:一个阶段重点建设各领域内的能力系统,提升具体方向上的功能深度和执行效率;一个阶段重点建设跨领域的能力协作平台,更有效地搭配不同能力,降低使用成本,并检视能力覆盖的缺失点。
目前的建设主要在以下几个方面:
一张近期全景图作为本文总结:
Saga, 网易严选基础技术部技术总监,负责严选技术中后台建设,目前专注在业务中台、DevOps 等效能提升方向的体系搭建和发展。
头图:Unsplash
来源:严选技术产品团队 - 微信公众号 [ID:YanxuanTechProd]
转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
领取专属 10元无门槛券
私享最新 技术干货