首页文章页

如何让 300 万程序员爱上 CODING?

avatarDNSPod
2022-11-15

《DNSPod十问》是由腾讯云企业中心推出的一档深度谈话栏目,通过每期向嘉宾提出十个问题,带着广大读者站在产业互联网、科技领域精英的肩膀上,俯瞰各大行业发展趋势和前沿技术革新。

预览
预览

刘毅,腾讯云 CODING CEO、腾讯云开发者产品总经理。主要负责腾讯云开发者生态以及开发者工具和平台产品经营,带领团队把腾讯内部项目协同和研发效能提升过程中,大规模应用到的工具和平台以及相关的优秀实践输出和赋能给各行各业合作伙伴,帮助完成数字化转型和升级。2011 年加入腾讯,打造过社交产品 QQ 空间,也打造过办公协作产品腾讯文档。

预览

田超,腾讯云企业中心总经理、音视频应用平台总经理,负责腾讯云用户增长、DNSPod 业务以及企业应用相关产品。同时也是资深用户增长专家,大数据技术专家,曾任应用宝增长平台总经理,摩拜单车技术副总裁。长期致力于对企业数字化相关研究。

1

田超:Bati 算是互联网老兵了,2011 年加入腾讯,曾经打造过社交产品 QQ 空间、办公协作产品腾讯文档,这两款产品都是腾讯的当家产品,面向的用户体量非常大,相信开发过程中发生了不少故事,当时有什么比较难忘的经历吗?

刘毅:我刚加入腾讯时,正赶上移动互联网大潮,很多产品都处于探索阶段,去打造一款亿级用户体量的移动社交应用 QQ 空间,确实是个非常大的挑战。 从零搭建移动平台上的基础设施,到产品体验的深耕细作,再到海量用户运营,我们都投入了非常大的心血。

当时有两件比较有挑战的事: 一、怎么在 2G 网络下保障通信链路可靠性和稳定性? 尤其在 2G 到 3G 过渡的阶段,以及遭到网络劫持的情况下,我们做了大量的探索和实验去保障 QQ 空间的正常运行。

二、国内现在司空见惯的美白美颜实时滤镜最初就是从 QQ 空间产品内推出的。

再后来做腾讯文档也非常具有挑战性。我们把办公软件模式搬到云上,需要从底层的多人协作冲突算法开始研究,同时协作人数从几百人到几万人,再到上百万人,里面深挖了非常多核心技术、建设和提升了大量的运营、运维和工程能力。

印象最深刻的不仅仅是腾讯文档成为全民皆知的在线协同办公产品,还在社会突发事件上为上万千民众及时提供了支持和帮助,让人不禁感慨互联网产品贡献出的巨大的社会价值。

2

田超:你过往的经历比较偏向 To C ,那么现在来到专门做 To B 的腾讯云,负责开发者工具和平台产品经营,你是如何适应这个转变的?以前的经验对现在的工作有什么可以借鉴的地方吗?

刘毅:To C 产品是非常注重用户体验的,“用户价值、用户为本”一直是我们恪守的信条。To C 讲求对用户价值的深挖、对用户场景的把握、对产品体验的打磨,这些经验在 To B 同样可以复用。

恰好我负责的开发者工具产品和开发者生态平台需要密切关注 C 端用户体验,从开发者日常场景出发,关注其用到的所有腾讯云云产品体验,帮助腾讯云不断优化产品用户口碑,意义是非常重大的。

当然做 To B 也有不一样的地方,还需要关注各行各业运行的本质规律,深入理解客户增收提效的真实需求,有针对性地设计解决方案,还要兼顾采购者和使用者不同人群的诉求。

最后还有个人心态的转变,从消费互联网向产业互联网转变、由虚转实已经是中国社会发展的大势所趋,所以我自己很早就开始在专业能力、产业视野上做出调整。

3

田超:CODING 是腾讯旗下一站式软件研发管理平台,自 2014 年来已经上线运行 8 年,累积超过 300 万开发者用户,稳居国内研发工具领域 TOP 。你认为对比友商,CODING 的核心优势在哪里?CODING 如何在众多竞争对手的夹击中成为行业冠军?

预览

刘毅:首先,CODING 的一站式 DevOps 体验可以说是业界领先的。业界的 DevOps 方案大多以提供工具为主,容易专注于解决某个特定环节的问题,无法为客户提供整个研发运营一体化过程中效能数据的统计和分析。

而 CODING 提供了从需求、开发、测试、发布、部署一整套的完整解决方案,能够在一个系统里清晰地看到整个软件开发的流程,不用在系统之间做跳转,也不用权限账号的打通,数据会有更好的沉淀,也提供完善的度量管理,方便实现持续集成、持续测试、持续部署、持续运维、持续反馈、持续运营的全流程管理,重视价值流转。

在实践方面,腾讯云 CODING DevOps 拥有数百人规模的研发团队,产品依托业界敏捷项目管理与 DevOps 体系方法、并结合腾讯产品研发特色自主设计研发而成。在一站式 DevOps 平台领域具有最佳用户体验,对不同规模、不同类型的研发团队均可良好适用。

值得一提的是,CODING 提供完整的私有化部署方案及高质量的交付,提供开放的 API 及支持定制化开发。同时可根据企业需求,也能够提供研发运营一体化 DevOps 转型咨询服务,满足不同行业、不同规模的企业需求。

另外,CODING 非常支持云原生,提供了大量云原生开发工具,例如 Cloud Studio,云原生环境管理工具 Nocalhost ,这些都已经进入 CNCF 基金会。我们还研发了一站式云原生应用生命周期管理工具 Orbit 等,在产品矩阵上全面领跑市场。

CODING 产品全景图
预览

4

田超:CODING 一开始是做代码托管,后来做 CI/CD 、项目管理、制品库等工具,再后来逐渐成长为国内领先的一站式 DevOps 平台。DevOps 是一个非常热门的概念,但相信很多读者都对此一知半解,你能趁此机会与大家讲解一下 DevOps 是什么吗?你认为 DevOps 为什么能够火起来?

刘毅:我先回答为什么 DevOps 能够火起来?我认为还是因为人们存在一些急需解决的问题。

随着企业业务的不断扩展,系统架构逐渐庞大,业务的场景也越来越繁多和复杂,微服务架构设计理念由此诞生。各个微服务之间是松耦合的,可以独立地对每个服务进行升级、部署、扩展和重新启动等流程,从而实现频繁更新而不会对最终用户产生影响。

然而微服务也带来了一些弊端:一方面导致我们的系统模块越来越多,这些模块的运维管理复杂度也会增加;另一方面,微服务会加快开发速度,那么开发人员对发布频率就会有明显的诉求,但这也与运维人员对系统需要进行严格的质量把控产生了明显矛盾。DevOps 就是来解决 Development(开发) 和 Operations(运维) 之间的矛盾。

预览

那么什么是 DevOps?讲概念的话,DevOps 就是一个流程化和工具化的过程,通过工具来固化流程,通过研发流程的快速反馈来持续改善运维发布和研发质量,同时降低人工行为容易产生的误操作引发的故障,从而提高整个研发的效率。

在过去不同团队的矛盾是——开发求变化,运维求稳定。而 DevOps 的理念是希望打破研发和运维之间的隔阂,通过自动化流程来降低运维成本和提高效率,在监测工具的帮助下及时发现和处理问题以保证产品质量。

打个比喻,Dev(开发人员)如同种植果实的农民,而越来越多现代化农场开始引入自动化灌溉系统和无人机喷洒农药,做到了用更少的人力照料更多的果树;而 Ops(运维人员)也只用负责对自动化设备和服务设施进行维护和升级。

那么说回 CODING,一开始做的代码托管,后来做的 CI/CD、项目管理、制品库等工具,其实都是 DevOps 工具链中的一环,最终的目标是通过完整闭环的工具和流程缩短开发周期,增加部署频率,同时又能保证发布质量。

CODING 一站式 DevOps 平台
预览

5

田超:尽管 DevOps 能够大幅提高开发团队的工作效率,让版本的更新速度变得更快,但也有很多人会质疑:更新版本的速度变快了,代价和风险是否也会更大?对于这样的观点,你会如何回应?

刘毅:为了应对越来越激烈的市场竞争,很多公司急于在尽可能短的时间里完成尽可能多的业务迭代和项目交付,但只关注快速交付,而不是高质量的持续交付,往往会掉入质量和风险的大坑

瀑布式开发、敏捷开发、DevOps对比图
预览

在速度和质量两方面同时提高,这是 DevOps 最重要的价值主张。但实现这一点并不容易,需要运维和开发人员协力,在质量保障流程、自动化测试、基础设施管理及监控、灰度发布及回滚策略,都需要尊重 DevOps 基本实践原则,大力投入能力建设,才能实现质量和速度的双赢。

如你所说,传统观念里认为以 Dev 为追求的“快” ,和以 Ops 为追求的“稳”,这两者目标是有冲突的,不过我们从全局来看,Dev 和 Ops 目标是一致的,即都是“让业务需求变更能随时上线可用”

为了实现这个目标,DevOps 采用小步快跑的形式。在一方面,通过敏捷开发等实践,更快地把产品交付到用户手中,从而帮助团队更快地收集用户反馈,以此进行更快的响应;在另一方面,通过流程设计与策略,把迭代版本之间的变化控制在相对小的粒度,来降低风险,即使出现问题也可以降低修复成本。

当然,我们会发现这样一个事实:从开发到上线不会一直是直线,上线也不是终点,这个过程中总会有挫折和错误。但对于团队来说,要将挫折视为优化流程、改善策略的学习机会。

随着时间的推移与经验的积累,每个团队都能通过不断调整,来满足不断变化的需求,最终来改进其适应各个团队自身业务场景的 DevOps 实践。我们重视快和稳,更专注于通过流畅的交付向最终用户提供价值。

6

田超:今年 9 月发布的《IDC MarketScape: 中国 DevOps 平台市场厂商评估,2022》报告中,腾讯云 CODING 成功入选领导者位置,在战略和能力两大维度处于国内领先。你认为 CODING 能够成为 DevOps “领导者”的原因是什么?你们团队在这背后主要做了哪些努力?

预览

刘毅:IDC 在对中国市场 DevOps 平台进行评估时,会对产品、服务、能力和策略,以及当前和未来的市场成功因素等进行全方位评估。

我认为决定能否成为“领导者”的因素,除了客户数量、市场份额等这些硬性指标,也要看厂商的战略部署、技术领先及创新能力等软指标。而这次腾讯云 CODING 有了突破性的进步,一跃进入领导者象限,得益于团队在产品上的深度投入、在战略上的主动思考

CODING 一直有着清晰的产品发展路线图和技术创新投入计划,近年来更是不断催生出新的产品、整合应用领先理念和新兴技术

如与腾讯安全科恩实验室、安全三部深度合作,接入专业漏洞库与二进制分析能力,联合推出 DevSecOps 解决方案,提供了安全开发管控平台和全流程安全工具,解决软件开发过程中的安全缺陷和漏洞问题;自研一站式云原生应用生命周期管理工具——应用中心(Orbit),为企业提供降低应用云原生门槛、提高应用交付效率和可靠性、高效自助式运维三重价值。

DevSecOps 代码质量解决方案
预览

另一方面,CODING 早在去年就宣布战略全新升级,基于团队效率和单点效率双向的改进、云原生时代推进标准化等背景,由原来的“DevOps 工具领跑者”升级为“云原生时代的研发工具领跑者”。

此外,CODING 还建立了全面的 DevOps 业务生态建设体系,包括产品生态、交付生态、咨询生态、销售生态,合作伙伴包括优普丰、安畅、Thoughtworks 等等。CODING 除了将腾讯多年的积累分享给客户外,也甄选了产品能力、客户口碑均为业界一流的合作企业,对更多复杂的场景进行需求满足。

在最近的 Techo Day 腾讯技术开放日上,腾讯宣布升级云原生战略布局,表示将持续加大对云原生技术研究的投入,推动云原生在企业的落地,助力企业深化数字化转型。而 CODING 作为腾讯云原生战略部署矩阵的一环,不光向 IDC,也向 Forrester、Gartner 等其他权威咨询机构清晰传达了战略上的清晰规划。

7

田超:正如你说的,CODING 已经转变了战略方向,从“DevOps 工具领跑者”升级为“云原生时代的研发工具领跑者”,不再局限于 DevOps 。除了顺应腾讯的整体布局,这个战略转变的契机是什么?从开发者的角度来说,云原生研发会给他们带来什么好处?

刘毅:CODING 在软件研发领域深耕多年,我们发现一个对社会资源可能造成浪费的现象:每家公司往往都有自己的开发工具团队,并且做的工作也基本上是把一些现成的单点工具串联起来,再加上一些上层的定制化开发。

通过这一现象,我们看到了优化整个行业效率的机会,但光打造 DevOps 平台的天花板有限,只有通过拥抱云原生,获得更加弹性、更低成本、更方便获取的资源、更高质量的监控度量、更轻松的运维,才能给客户和企业带来更大价值,尤其能提高团队效率。

CODING 云上工厂
预览

那么为什么在当下有机会实现,则是因为基础设施发生了很大的变化——云原生带来了基础设施统一的可能性

以前构建一个应用时,很多基础设施都是每个企业团队自行搭建的。无论是自行开发,还是利用开源的工具去搭建,都存在明显的非标性。在云时代,包括腾讯云在内的云厂商,提供了非常标准化且高性能的基础设施工具,把网关、数据库等全部纳入进去。

作为云的用户,企业在开发应用时,就不用再去重复建设这些工具,那么底层的基础设施就有统一的可能。基础设施的统一带来了架构上的统一,从而有可能带来整个开发工具链、开发模式上的统一

另一方面,整个社会的信息化与数字化变革,带动了产业互联网的发展,对软件开发的需求迅速增长,也催化了软件工程化的进程。软件工程化一定会对标准化工具提出更高的要求,这也是整个行业的需求。

站在开发者的角度来说,云原生改变了传统的本地化编程,将开发环境搬往云上,减少了环境局限,同时也降低开发门槛和资源管理成本,解放了开发者的生产力,让开发者可以将更多精力投入到富有创造性的业务逻辑和业务场景的理解上。

8

田超:为了赋能云原生研发管理,CODING 发布了一系列产品,包括云原生应用发布管理工具 Orbit ,完成了云端编码环境 Cloud Studio ,还有一站式研发数据可视化分析方案研发度量。这些云原生的产品对比之前的产品,主要差异是什么?你们在向云原生做产品升级的过程中最棘手的事情是什么?

刘毅:云原生是一个较为宽泛的话题,可以理解为从第一行代码开始到部署为止,该应用的生命周期都处在云的环境中

那么这些产品之间是有内在逻辑的,我们最终的目的是通过 CODING DevOps 这个数字化基座引擎建立起开发者与云产品之间的桥梁

比如用户通过 Cloud Studio 进行开发编码协同,代码可以存储在代码仓库,可以利用 CODING CI/CD 部署在云上,这是一个我们设想中未来会普及的云原生场景。

Cloud Studio 多人协同
预览

再比如从云原生架构的应用管理角度出发,Orbit 相对于传统部署工具,不单单是解决部署,且更注重于云原生应用建模、K8S 基础设施管理和命令层面的封装、利用 GitOps 将复杂的云原生应用变更变得自动化,以及注重应用的可观测性,也就是站在开发角度怎样在 DevOps 当中实现应用云原生。

Orbit 产品介绍
预览

至于度量类产品,我们认为在云原生时代度量驱动改进这个话题会越来越被重视。“You can't measure it, you can't manage it” 虽然是老生常谈,但现实也确实如此。

既然用户把所有的研发过程和数据都落在了我们平台上,用户同时也就具备了全面度量的前提条件,这是一件非常不容易的事情,而一站式的 DevOps 提供了这样的土壤。通过各种项目进度、工程能效、产品质量等一系列的度量,可以有效反馈研发过程中的问题、驱动价值流动顺畅,形成持续改进的工程文化。

在云原生做产品升级的过程中,除了对深水区的原则、方法论进行研究并且付诸于产品实践需要较大投入,还需要帮助用户理解,帮助客户尽可能顺畅的导入和使用,但这本身就是 PMF 的必经之路,引领趋势和迎合市场使两者心智趋同,任重道远。

PMF(Product Market Fit)金字塔模型,指产品和市场达到最佳的契合点,所提供的产品正好满足市场的需求,令客户满意。
预览

9

田超:中小企业的研发水平往往比较低,研发团队也没有太多人,因此在研发协同上的投入总是犹豫不决,更倾向于把数字化转型的经费花在营销方面。在你看来,中小企业做研发协同是否属于资源浪费?如果要鼓励中小企业提升研发管理水平,你会给出怎样的建议?

刘毅:在方法认知方面,据我们的观察,头部或者规模企业对数字化转型中如何提升效能已经有了较为强烈的意识,并且愿意投入和我们一起摸索怎么通过工具去落地方案和规划。而中小企业当中实际上也有一些有识之士这方面也开始有所意识,但苦于决策缓慢,投入优先级不高,于是在初步学习了解后还是回归忙于现行业务。这种现象是普遍的。

但当业务发展到一定程度,协同成本逐步提升,交付效率出现瓶颈且开始意识到技术债务时,对于研发协同的改进才会再次被拿出来讨论。虽然为时不晚,但如果能够未雨绸缪的去考虑多部门协作、敏捷研发管理、质量安全左移动、以及流水线自动化规范化等措施,并且固化成内部工程文化与工作方式,短期的投入会对长远产生正向影响,发展路上不会给业务拖后腿

其实 CODING 的客户中也有数十万家中小企业在推进研发协同,在组织架构还未发展臃肿、人员规模不庞大、业务复杂性还可控时,尽早投入实践研发协同不失为一种省时省力的决定

而且 CODING 标准版功能目前支持免费使用,并且不限成员数和项目数,鼓励各家中小企业低门槛地探索业务协调和研发提效。

10

田超:除了 CODING ,你还负责整个腾讯云开发者业务,你认为一个健康的云上开发者生态应该是怎样的?腾讯云现在聚集了百万活跃的开发者,你认为最终能吸引并留住开发者的是什么?

刘毅:过去一年云厂商在开发者生态上的争夺开始变得激烈,而腾讯云也和软件开发者是在一起的。触达开发者用户一个很好的方法就是开发者工具

例如,在开发者用户群体中拥有较大公约数的工具是 IDE ,一谈到 IDE ,大家就很容易想到微软开源 VS Code。微软之所以投入大量人力研发这个工具,就是为了打造其开发者生态。

另一个方面就是开发流程方面的工具。比如代码是整个开发流程流转的核心产物,基于代码托管、持续集成,把代码变成资产部署在云上。

以前我们看到很多开发者活跃在云上从 IaaS 层受益,但从软件应用生命周期来看,我们还有很多便捷可以提供给开发者,比如通过 WebIDE 远程协同开发到 DevOps 工具中代码、制品等数据资产的管理,以及通过部署上云期间需要具备的质量管控、供应链安全管控、效能提升,以及对微服务、低代码、移动开发等场景提供支持。

当开发者和团队享受到这种无缝便捷的自助体验,将大大提升云和开发者之间的粘性,缩小开发者与云底座之间的距离。无论从客户价值还是技术价值,我认为开发者生态是未来云的胜负手

11

田超:最后我们来展望下未来,软件工程经历了近 60 年的发展,数字化带来了巨大的开发需求,从瀑布式开发,到敏捷开发、DevOps,再到云原生,研发管理协同工具也在不断迭代。作为这个行业的领头人,你认为未来研发管理协同工具还会往哪些方向发展?

刘毅:首先,主要还是围绕用户场景、以及管理/工程原则以及云原生相关技术进行深化,并且随着这些理念逐渐在国内规范化、体系化落地,场景愈发明显,产品形态也会逐渐标准且成熟。

一些新的技术应用也在讨论中,比如如何使用 AIOps 推动度量观测、质量监控等,还有软件供应链安全,对鉴权授权、漏洞修复、活动监控等方面提出了具体的要求,以及 BizOpsChatOps 都是已经确定的演进方向。

其次,我认为研发协同管理工具会从 DevOps 工具平台大力发展为平台型工程。DevOps 以研运一体化为切入,重塑研发、运维职能边界,重构软件研发流程,再辅之以 CICD 自动化工具提效,从研发协同管理的视角看,似乎是更优解,但这给研发带来了额外的软件工程认知和效能工具学习成本。

在 2022 的多个调研报告里,研发人员对 DevOps 的满意度都是很低的,因此研发管理协同会衍生出全新的职能——平台型工程师,负责建设一体化软件研发协同平台,让研发人员重新回归业务价值本身,降低应用 DevOps 的门槛。

所以,腾讯云也在积极思考和布局平台工程,CODING 凝聚了大量腾讯内部的平台工程师,给企业提供更全面的平台型产品,让企业以更优的组织架构和技术解法,来迎接如今高度不确定的市场环境,在乘风破浪中更加运筹帷幄。

订阅

CODING 官方公众号

随时获取 CODING 最新动态

code

现在开始,

在 CODING 体验高效的研发管理方式

免费使用