本文为 CODING 创始人兼 CEO 张海龙 在腾讯云 CIF 工程效力峰会上所做的分享。
文末可返回峰会官网,观看回放并下载 PPT。
大家上午好,很快乐能有机会与大家分享 CODING 最近的一些新动作。明天次要分享的内容是 CODING 的策略降级和新产品介绍。在讲整个策略降级之前,咱们先来讲一讲“为什么要做云原生时代的标准化工具”。大家都晓得 CODING 始终在做开发者相干的工具,从代码托管开始,起初又做了 CI/CD、项目管理、制品库等等一系列工具。那么为什么咱们认为在这个时代做这些工具会有更高的价值?
首先 CODING 在这个行业耕耘了很多年,咱们发现一个对社会资源可能造成节约的景象:每家公司往往都有本人的开发工具团队,并且做的工作大同小异。比方腾讯、美团这种大型企业,或者包含百果园(批发)、更美(医美)、中手游(游戏)等等,这些企业都有一个或大或小的开发工具团队,根本占到研发人员的 1% – 5% 不等。对于一家企业来说,这部分投入并不大,但对于整个行业或者整个社会来讲,累计起来的投入也很主观。
这些团队做的工作,基本上是把一些现成的单点工具串联起来,比方 Jira、GitLab、Jenkins、JFrog,包含监控的 Prometheus 等等。将这些工具串联,再加上一些下层的定制化开发,就是这些团队的工作。每个企业都在做这样的工作,其实造成了很大的反复节约。
通过这一景象,咱们看到了优化整个行业效率的机会。那么为什么这件事在当下有机会实现,则是因为基础设施产生了很大的变动——云原生带来了基础设施对立的可能性。
以前构建一个利用时,很多基础设施,包含操作系统、数据库、缓存、网关等等,都是每个企业团队自行搭建的。无论是自行开发,还是利用开源的工具去搭建,都存在显著的非标性,不同团队做的利用都不一样。在云时代,包含腾讯云在内的云厂商,提供了十分标准化且高性能的基础设施工具,把网关、数据库等全副纳入进去。作为云的用户,企业在开发利用时,就不必再去反复建设这些工具,那么底层的基础设施就有对立的可能。基础设施的对立带来了架构上的对立,从而有可能带来整个开发工具链、开发模式上的对立。这是咱们看到的一个很大的趋势上的变动。
另一方面,咱们看到软件工程经验了将近 60 年的倒退,倒退过程也是由作坊式一直转变为工业化,到当初开始向自动化方向倒退。整个社会的信息化与数字化改革,带动了产业互联网的倒退,对软件开发的需要迅速增长,也催化了软件工程化的过程。软件工程化肯定会对标准化工具提出更高的要求,这也是整个行业的需要。
此外,标准化的对立和数字化带来的开发需要,也带来了软件开发在效率上的更高谋求。从效率的角度来讲,咱们认为分为两种:单点效率和团队效率。单点效率是指一位开发者集体用的工具如何进步集体的编码调试效率。当初大家更关注团队效率,比方 DevOps、麻利开发,都是团队合作的方法论和相应工具。
上图列出的工具,有些更偏差单点效率,有些更偏差团队效率,两头可能会有一些交叉点,不是 100% 的辨别,但大抵能分为两个维度。在这个大背景下,咱们也对 CODING 的策略进行了降级,心愿可能在新的时代发明更高的价值。
大家都晓得 CODING 最早是做代码托管,在 14 年成立。起初通过一直演进,引进了十分多的上下游产业链相干工具,包含继续集成、麻利项目管理、继续部署、制品库等等。咱们过来的定位是说要做 DevOps 工具的领跑者,然而基于上文提到的大背景,基于团队效率和单点效率双向的改良,以及云原生时代的标准化,咱们当初将策略降级为——云原生时代的研发工具领跑者,不局限于 DevOps。下文将会具体解说,以及咱们的新产品,大家会看到其中差异化的货色。
CODING 策略全新降级
方才讲到单点效率和团队效率,咱们其实是有对应的产品,来服务这两个不同的维度的需要。CODING 作为一个研发治理平台,更多的是着眼于团队效率,所以侧重于合作;Nocalhost 和 Cloud Studio 则更多的是偏差于进步单点效率,即进步单个开发者在开发云原生利用的效率。
再讲讲 CODING 目前的倒退情况。咱们在开发者畛域深耕了很多年,也积攒了十分多的客户,当初有两百多万开发者,以及五万多家企业都在应用咱们的产品。咱们对这些企业做了一些整体调研,发现 无论是在升高研发工具的老本,还是在进步产品交付效率,或是在晋升整个团队的效力上,都有比较显著的提高。下图列举了在不同行业咱们的一些典型客户。总体来讲分为四大类,第一大类是金融,第二类是互联网,第三类是政企,第四类是游戏。这四大类企业对于整个研发工具的诉求会有所不同。
比方金融行业,更多的强调的是安全性和可控性。咱们的私有化产品可能很好地服务这些金融行业的客户,他们对一站式的诉求也十分强烈,这是金融行业的个性。互联网行业的客户更多的则是私有云客户,咱们的 SaaS 产品能更好地帮忙互联网行业实现麻利迭代、疾速交付的需要。对于政企,接下来会展现一个案例,也会有很多数字化转型带来的需要。游戏行业则对大型仓库有速度上的需要,这也是咱们的产品杰出服务的一个行业。
咱们做 To B 的企业服务,也是腾讯当下的价值观,要继续关注社会价值,展示科技向善。咱们的产品尽管不是间接去服务 C 端的用户,然而能帮忙很多 B 端的企业更好地开发产品,去服务 C 端用户。
比方在疫情期间,大家每天都会用到衰弱码,通过各种小程序或 App 注销扫码,咱们也参加到了整个开发的过程中。比方四川的天府衰弱通小程序,咱们帮忙开发团队十天上线了这个小程序,咱们用一天工夫实现了整个工具链的流水线配置,包含制品的迁徙等等;而后又做了一些对于小程序开发跟 TCB 开发的整合工作,可能更好地帮忙开发团队去交付小程序相干的利用。这个案例也是泛滥案例的一个缩影,在政企畛域里也有很多相似的需要。
接下来为大家介绍 CODING 与合作伙伴共建生态的打算,也是为了可能发明更多的价值。CODING 的产品定位和服务都是专一于做云原生时代的研发工具 ,领有很多合作伙伴。比方在线索和商务这一板块,会与腾讯云、安畅、网商云计算等搭档单干;在交付施行这一板块,则与安畅、忆享、腾云悦智一起单干,去做客户现场的一些个性化反对,包含后续的持续性保护等等;除此以外,咱们发现在开发效力,研发工具畛域,对于征询的需要也很大,所以咱们跟整个行业的头部征询厂商都会有一些单干,比方优普丰、安畅、Thoughtworks 等等, 配合工具和施行的落地,帮忙团队不仅仅是购入一款工具,而是能更好的导入方法论,带动组织变革。咱们心愿可能共建研发效力和研发工具的生态,在云原生时代更好地去服务客户。
讲完策略上的变动以及对于行业的了解,第三局部咱们来讲一讲 CODING 产品上变动和更新。首先回顾一下 CODING 作为一个一站式 DevOps 平台,咱们对它的定位和目前的停顿。
高效云上研发工作流
如上图所示,这朵云相似工厂流水线,这也是咱们思考很久得出的论断,心愿能把云和整个研发工具 SaaS 的关系精确表述进去。最底层是计算、网络、存储,两头是容器、虚拟化等等,往上是一些安全性的内容,包含配置管理、微服务等等。而咱们则是在所有这些基础设施上,又做了一层整个研发工具的 SaaS。这跟云有严密的关系,但客户能够无缝应用这个产品,不须要去关注底层云的复杂性。这便是咱们对于 DevOps 平台,乃至整个云产业的定位。
从性能上讲,咱们心愿能给客户提供一个 高效的云上研发工作流。下图中根本蕴含了一个企业,从常识治理到项目管理、代码治理,再到构建、测试、制品、上线、用户反馈,直到团队的绩效、OKR,这整个残缺闭环的性能关系图,这也是 CODING 目前可能提供给客户的残缺价值。多年来咱们始终在实现整个闭环的打造,投入了十分多的研发去欠缺整个工具链,心愿可能给客户提供 Total Solution,带来一站式体验。
但咱们也关注到,有很多客户曾经有本人的工具投入和基础设施,他们很多时候须要的只是一个单点产品,并不需要一站式的工具。比方能不能只须要一个制品库,或者只须要一个公布产品。在这样的诉求下,咱们也开始从新思考产品的逻辑,所以局部产品也能够单点拿进去,让客户可能集成到本人的研发工具流的零碎里。
– WePack –
助力企业渐进式 DevOps 转型
首先来看的就是「制品」。其实在整个中国来讲,对制品的认知绝对是比拟迟缓的,可能在五年前都很少有人提到这个概念,最近才开始缓缓提及。咱们认为开发软件没有制品库,就相当于制造业没有仓库一样,是一件不可设想的事件。
但其实以前很少有团队领有很正规的制品库,要么就是文件夹、FTP,甚至在各种通信工具上以传包的模式来治理生产的制品。通过调研,60% 以上的企业根本没有一个残缺的制品治理模块;从整个产业来看,也有一些开源工具,但也不是特地欠缺,国外会有一些工具,然而无奈达到自主可控和一些信创的要求。所以针对这一痛点,咱们将制品库产品独自拿进去,作为一个独立的制品产品,定位是企业级的制品治理平台:WePack。它是 CODING DevOps 的一部分,也能够成为客户自有 DevOps 工具链的一部分。
– Orbit –
全新云原生利用交付工具
个别在制品后就是公布环节,也是很多团队研发和运维最严密的单干与最强烈的矛盾产生的中央。因为 DevOps 就是要让开发可能去实现一部分的利用运维的工作,而不是说利用、零碎有了问题就间接先找运维,而这里的矛盾就会很强烈。
在云原生时代,须要逐渐把利用的运维左移给开发,但资源的运维还是由传统的运维来做,甚至间接交给云来做 。在把利用运维左移给开发的过程中,因为要让开发低门槛地去看到这个利用的状态,去扩缩容,去监控日志报警的各种配置,就势必会对利用运维的工具提出很高的要求。这是一个行业的趋势,也是目前面临的挑战。在这个背景下,咱们在往年 全新的设计了继续交付的产品,在外部叫做 CD 2.0,正式对外推出时,全新命名为:Orbit。大家能够设想一下,这个名字带来的意境 – 轨道,跟咱们想要交付的意境和给客户提供的价值,是很相似的。
这张图上展现了产品内的截图,左上角是以后的微服务云原生利用,能够看到微服务的架构是什么样,微服务之间的关系是什么样,有多少个微服务,有多少个数据库的表,咱们也能够做数据库表的变更;右上角能够看到利用视角,展现了利用有多少变更没有公布到生产环境,包含之前的公布历史、每次公布都由谁操作、什么工夫公布、公布了哪些内容;上面能够看到这个利用部署的环境,有测试环境、预公布环境、生产环境等等,包含每个环境以后部署的是什么版本,当初运行的是什么状态,点进去能够看到每一个环境的监控日志报警都能进行配置。相当于把以前传统的运维做的一部分工作,残缺搬到了 Orbit 零碎里,开发能够在不去打搅运维的状况下,实现整个利用生命周期的治理,这是咱们心愿 Orbit 可能交付给开发的价值。
– Compass –
让研发东倒西歪
除了刚刚讲到的制品库,以及继续的交付利用运维的左移,让开发可能更好地治理本人的利用之外,咱们在整个研发过程中也发现了其余痛点。因为每个企业都有本人的研发文化和研发标准,那么这些研发标准如何在团队不断扩大的状况下,落实到每一个团队和每一个人。很多时候是靠宣导、靠人事一直去做公司文化的建设,靠每个团队的小组长人工做重复的查看,这也是很多企业的痛点。另外从更下层的治理视角来看,研发团队做的工作往往是一个黑盒,这是很多老板的一大痛点。
针对这些问题,咱们也一直在思考,如何能力把软件工程真正工程化、标准化、规范化。所以 咱们推出了 Compass,简略来说就是指南针:咱们心愿可能在开发过程中给团队一个十分清晰的指南。这个指南是产品化的,而不是一个规章制度,定位是让企业的 DevOps 全流程管控可能透视整个研发流程,而不是黑盒,并且可能对整个研发流程做一些价值流的剖析。
如下图所示,这是 Compass 产品页面的一个缩影,咱们能够配置整个研发过程,从一个 Idea 到需要的剖析与评审,到之后代码的构建、测试用例的编写,再到前面的继续集成与交付,每个环节是怎么的流程,环节上有怎么的标准,比方代码、测试用例的标准,都能够在这里进行配置。当整个研发团队依照配置好的流程运作时,如果不符合规范,就没有方法持续流转上来,这样就能够通过产品的形式来帮忙团队恪守标准,真正实现整个研发过程的规范化、自动化与透明化。同时因为规范化,每个环节是谁做的,破费了多少工夫,为什么慢了 / 快了,都会有记录,能够作为预先剖析的根底。
– Cloud Studio –
云的开始
讲完 DevOps,让咱们再来看看云原生时代新的挑战和机会。前文提到 CODING 时曾经说过,咱们以前定位于 DevOps,当初的定位是云原生的开发套件,除了 DevOps 以外,咱们也看到了在开发工具和开发方式上,存在一些新的机会与亟待解决的问题。首先是 IDE,其在过来的倒退曾经十分的成熟,比方桌面端的 IDE,然而这些 IDE 是不是真的适宜用来做云原生利用开发呢?开发环境的配置是不是越来越简单?是不是须要一个随时随地能够写代码的 IDE?基于这些思考,咱们于 2018 年推出了 Cloud Studio。
这个产品做了挺多年,往年咱们对其做了一个十分大的改版,心愿定位是一个真正好用的云原生的 IDE 平台,咱们不是要取代本地 IDE。而是说在不同的利用类型上,在开发云原生利用时,能够为开发者提供超过本地 IDE 的晦涩、便捷的编码体验。目前 Cloud Studio 反对的语言环境已有二十多种,开发者在下面创立的工作空间有十万多个,每天开发者在 Cloud Studio 平台上的开发时长曾经累计超过 120 小时。并且咱们做了十分多的凋谢的工作,包含协同编程,你能够进入其余开发者的工作空间,一起做一些开发、调试工作,这在本地 IDE 很难做到;凋谢的生态也反对各种插件,Cloud Studio 的启动速度基本上是 3 – 5 秒的秒级启动;并且咱们 做了十分多的模板以及开发环境的配置形式,对老手也十分敌对。
除了开发通用的云端的 IDE 之外,这个技术也心愿可能帮忙不同的行业去落地不同的解决方案,比方在线课堂能够做编码 Demo,低代码开发是否须要一个编码环境,招聘口试等等,包含咱们跟腾讯会议也会有一些集成,在散会的过程中如果须要对代码互动,是不是能够有这样的工具来更好地反对这样的场景?咱们心愿可能帮忙更多的行业去更好地协同。
– Nocalhost –
让云原生开发回归原始而又简略
在云原生的开发上,除了 IDE 的问题,咱们还发现整个研发测试环境的搭建也存在问题。设想一下,如果你有一个 100 个微服务的利用和一个新入职的员工,你该如何让他上手开发这个利用?要给他一个怎么配置的开发机器,才可能让他把这个利用的开发环境跑起来?整个开发测试过程能不能更高效?咱们发现其实很多企业都有这样的痛点,在微服务的利用越来越宏大的时候,很少有企业可能让每一个开发都有本人的开发环境。而 共享一个开发环境,相互之间就会有各种各样的影响。所以咱们在思考,有没有方法能够像开发单体利用一样,开发一个简单的云原生利用呢?于是咱们推出了——Nocalhost。这个产品是去年年底对外公布的,通过将近一年工夫的开发和迭代,当初有很多用户曾经用在了本人的开发工作中。
在这里解释一下 Nocalhost 名字的由来。十几年前咱们做开发都是用 Localhost 来调试,因为过后不须要网络就能模仿网络状况,实现开发网站的反馈循环。而在云原生时代,曾经没有 Localhost,或者从实践上讲没有本地的,所以是 No localhost,然而咱们仍冀望可能达到像本地一样的开发反馈。
如图所示,左图是目前开发云原生利用的流程,如果须要调试,查看改一行代码的成果,须要通过大略六个步骤,从编译到上传制品,甚至须要重启某个微服务或容器,这个反馈循环很慢,至多是分钟级,甚至 5 – 10 分钟。而 在 Nocalhost 的机制下,反馈间接升高为三步,并且不须要编译,不须要上传制品,体验上根本能做到跟本地的 Localhost 一样。咱们也心愿在整个开发体验上齐全媲美本地开发,所以咱们做了很多工作,包含容器的疾速部署、疾速启动,一键 Debug,多人共享的开发环境等等;同时也提供了 Server 端,可能让企业的资源管理人员领有治理能力,去调配不同研发人员的开发资源,更好的回收以及反复利用开发资源。咱们心愿 Nocalhost 这个产品可能给云原生利用开发带来全新的体验。
展望未来
最初瞻望一下将来,在这个畛域还有哪些咱们目前还没有做,然而认为十分有价值,咱们未来会去做的事件。这里例举了三个咱们认为比拟有价值的行业倒退方向。
第一个是 Value Stream。咱们谈到交付效率的晋升是不是肯定代表了业务的胜利呢?这个问题很多时候答案是否定的。开发团队感觉做了很多的工作,然而业务侧如同没什么用,这也是很多业务团队和开发团队的矛盾所在。所以不光要晋升开发团队的交付效率,如何掂量交付的货色的价值,就是 Value Stream。那么咱们如何掂量这里的价值,到最初交付上线后,整个价值流是否可能管控起来?
第二个是 AI。在这个畛域,咱们是不是能够开发更多的能力,帮忙开发者写出更加齐备、高质量的代码,通过 AI 的能力做出辅助开发者 Code Review,甚至 Coding Assistant 的产品?
第三个是在平安畛域。也是目前大家关注的一个重要方向。因为整个云原生里所有货色都上云,对于很多企业来讲,对平安有着微小的担心。传统的平安往往是独立的团队在做,跟开发测试是互相拆散的,咱们认为这种组织构造,或者说工作形式相对来说比拟低效,有很多返工或者重复劳动的状况。当初更强调的是 DevSecOps,就是把安全性融入到整个研发测试环境里,这也是咱们值得去关注的一个方向。
那么本次分享的内容就到这里,感激大家的参加。CODING 始终以来都保持「让开发更简略」的 Slogan,在云原生时代,咱们也心愿可能让云原生开发的研发治理变得越来越简略,谢谢大家。
点击此处链接
观看 CIF 峰会回放并下载会议材料