七牛云姬长军:企业技术栈向云原生转型的实践与思考

“云原生”引爆亿万级苍穹,“分布式云”启动新商业引擎,“分布式存储”开创未来新篇。伴随着 5G 商用时代的到来,在新一轮技术革命的关口,CDN +边缘计算迎来新阶段,分布式云将加速这一变革的发生。

12 月 17 日至 18 日,“ Distributed Cloud 2020 全球分布式云大会”在深圳正式拉开帷幕。本次大会以“技术变革保障用户体验 , 引领国际部署全球节点”为宗旨,就“云原生”、“分布式云”、“分布式数据”、“分布式存储”、“实时音视频技术”等几个技术方向进行讨论。大会邀请到华为云、腾讯云、阿里云、七牛云、政府主管部门、标准制订方,以及深圳 TOP 200 流量主及运营商等云原生、边缘云计算开发者相关企业共同参与,以推动技术变革,适应时代发展。

七牛云姬长军:企业技术栈向云原生转型的实践与思考

在 12 月 17 日下午的“云原生领导力论坛”上,七牛云业务效率负责人姬长军带来《企业技术栈向云原生转型的实践与思考》的主题演讲。演讲中,姬长军讲解如何通过研发赋能,来推动企业技术人才升级云原生技能,以及他们的总结与思考。

从 CNCF 2020 最新的调研报告可以看到,在采用容器技术时,受访者普遍反馈其复杂性和对开发文化的改变是最大的挑战。事实也确实如此,云原生涉及的技术栈较多,研发人员需要一定的时间去了解和实践,因此在做技术栈升级时,技术领导者需要充分考虑到这一点。

如何优雅地应对云原生技术挑战?

一、基于云原生的测试左移生态

姬长军通过三个维度分享七牛云测试左移技术落地实践全貌,首先这个生态主打的还是业务质量保障,是基于 PR (变动)构建多维反馈,包括单测、全量集测、系统测试,甚至是增量覆盖率分析,以及受影响服务反馈等等,能够在源头保障入库代码质量。其次是工程效能提升,姬长军认为这是切入测试左移所带来的价值。核心是在 QA 未介入的情况下,能够自动化的提供多维度的质量反馈,对研发来讲足够优雅,也让整个迭代足够流畅。最后是云原生技术的落地,七牛云选择 Prow 作为 CI 平台,充分利用云原生技术,做到体验最优。姬长军表示,这种测试左移的模式,能够在源头保障质量,极大的提升研发整体迭代效率。

那七牛云在技术决策上为什么选择 Prow ?姬长军介绍,Prow 基本上是云原生测试基础设施的一个标配,主流云原生项目都在用 Prow ,比如 Kubernetes ,Istio 等。Prow 有很多优点,比如它轻量,基本是无状态的,基于 CRD 实现。且 Prow 采用 Yaml 作为配置语言,基于 PR 的 CI 环境用完即销毁,拥有很好的隔离性,场景需求完美契合,其丰富的 GitOps/ChatOps plugin,方便二次开发。姬长军讲解道:“有看到一些企业在考虑云原生时,会将重点放在封装 Kubernetes 的复杂性,企图通过一套 UI 去降低用户上容器的负担。虽然这个想法很好,但实践下来可能不太现实,因为大家知道 YAML 基本上是 Kubernetes 声明式 API 的标配。而声明式 API 是云原生五大技术特性之一,如果这个时候还考虑绕过他,基本是走了弯路。因此我认为在云原生时代,技术人员应该对 YAML 比较亲和才对,就像面对自己擅长的编程语言一样。”

姬长军表示通过云原生技术,把 CI 场景做透。在解决问题的同时也给研发同学提供了一个接触云原生的场景。而这个场景又足够聚焦,不会让不熟悉的 Kubernetes 技术的同学一下子被其复杂性所淹没。所以这其实是云原生技术布道很好的一个落脚点。

除了平台,基于云原生的测试左移里有很多技术细节,姬长军着重分享了两个场景。一是基于PR 的增量覆盖率精准分析,通过测试覆盖率做精准反馈,极方便从 PR 中查看修改代码的单测和集测覆盖详情。“这背后对应的是一款 Go 语言精准测试覆盖率收集系统,名叫 goc。该系统已经开源,且在测试开发圈有着不错的反响,我们看到很多使用 Go 语言的企业已经在使用,甚至包括一些头部企业。”姬长军说。

另一个是基于 PR 的受影响服务自动反馈。这一实践背后也是涉及到一个小工具,且已经开源。它解决问题的价值比较实在。此系统能够精准反馈修改代码影响的应用服务列表,帮助我们在发布时,避免遗漏服务。

对于第一个实践玩法,姬长军总结道:“基于云原生的测试左移战略让单个团队体验到云原生技术的魅力,但我们知道,一个人可能走得很快,一群人才走的更远。而我们要想更大的利用云原生技能提升企业研发效能,那就必须让更多的人都能玩转云原生技术。”

二、将研发流程彻底搬到 Kubernetes 之上

带着这个思路,七牛云开启了第二个玩法,就是将研发流程彻底搬到 Kubernetes 之上去探索全员云原生姿势。姬长军表示,他们主要做了以下几件事:首先,所有业务均在 Kubernetes 测试集群容器化,其次,各业务能够基于最新代码一键部署一套容器化开发测试环境,随用随起。然后提供姿势,能够一键将变动的服务直接发布到容器化开发环境,不需要 CI/CD。最后是拉平办公网络和 Kubernetes 集群网络,做到直连 Pod IP/Cluster IP。姬长军表示,最终的收获效果是研发可以在日常业务开发中,自由玩转 Kubernetes。

在介绍完两个实践玩法之后,关于企业技术栈升级,姬长军分享了他的总结与思考。他表示,一定要从价值导向出发,通过解决和优化实际问题来推动技术升级,同时掌握好节奏,要能阶段性的拿结果。其次要以人为本,企业技术栈升级本质也是企业人才的升级,若能促进现有人才的升维,当能获得最大 ROI 。

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )

Baidu
map