1100亿行源代码,这家公司如何应对大规模代码托管的挑战

2019 年 10 月 10 日 InfoQ

随着 AI 技术发展导致开发复杂度增加,软件的可信再次受到了行业的重视。从互联网到产业互联网到 IoT,随着多样设备的接入,以及更多私密信息的上云,软件开发和管理中的小隐患都可能引发大问题:经济损失、企业信任危机、人身信息的泄露……所以在今天 Cloud+AI+5G+IoT 的时代,我们必须对软件的安全性和可靠性提出更高的要求。

可信软件开发为未来的软件工程指出了发展方向,而可信的概念则包含安全性、韧性、隐私性、可靠性和可用性这五个维度。为了保证这五个维度的水平,在追求可信的道路上,需要团队软件研发水平提升,保证从产品研发到交付全流程的高质量,同时需要软件管理及维护方法与时俱进。

做好代码仓库的版本控制,保证软件开发过程可控性

源代码总行数 1100 亿、代码仓库数 60 万 +、每天下载容量 60 T、高峰并发下载达到 1 万次 / 秒……

这些是华为云 DevCloud 旗下内源平台(iSource 平台)的几个数据,我们现在可以清晰地看到这些数据,但是在 5 年前,你随便问一个华为的工程师,他可能都无法说明华为公司一共有多少源代码。因为 2014 年以前,华为公司的代码以各种不同的形式,不同的版本管理工具,存储在不同的地方,如 CleanCase、SVN、Git、TFS、MKS...... 无法准确的统计。

2014 年开始,华为公司启动内源(Inner Source)平台建设,这一内源平台建设的过程,也是代码迁移的过程,从愿意尝鲜的试点团队的小规模试用,到华为全面支持内源,逐步要求所有的源代码(除涉及关键信息资产的代码以外),全部要上到内源平台,iSource 平台开始承载越来越多的华为内部开发者与华为内部代码托管的服务。

华为是一家成立 30 年、业务连续性高且跨度极大的公司,因此各个业务线产生的代码数量非常庞大,从开始试用时只有 5 台服务器,到现在的 1100 亿行源代码,华为内部成功地应对了如此规模代码托管与协作的挑战,确保了华为业务的快速创新。

你可能想知道,大公司的代码迁移、代码托管难不难?华为踩过哪些坑?解决了哪些技术挑战?2019 年 10 月 17 日下午,QCon 上海华为云「技术裂变中的可信软件开发」专场等你来参加。

其实,为了应对这样的挑战,华为云 DevCloud 团队在架构层面、功能性层面、用户体验层面做了很多工作,其中,难度最大,影响也最为深远的,就是 OMEGA。本次大会,华为也将向业界揭开 OMEGA 神秘的面纱。

OMEGA (One-stop MultipurposE Git Access) 译为一站式多用途 Git 访问协议,华为云 DevCloud 改造了 Gitlab,并开发了一个名为 git-mm 的客户端,而 OMEGA 是两者的结合,在 Gitlab 上,华为基于 Merge Requst,实现了类似 Repo+Gerrit 的集中式多仓库代码提交与代码评审工作流,可以说是一种集中式仓库管理模式。

了解它的含义后,可能有随之而来的疑问:

  • 为什么不直接使用 Gerrit?

  • 为什么不直接使用 Repo 客户端?

  • 为什么不使用 Submodule 管理多仓库?

  • 为什么不支持 Fork?

  • 为什么不支持多分支模型?

  • ……

这些疑问要一一解答起来,就太复杂了,10 月 17 日下午,华为云「技术裂变中的可信软件开发」专场,来自华为 iSource 代码平台专家孙超,将为大家分享《华为云 DevCloud 在大规模团队的 Git 协作上的探索与实践》,前文所述的种种疑问,在这次分享中,都能够得到解答。在现场,大家不仅能够听到 OMEGA 技术的设计理念与具体实现方案,更能够了解到这些技术诞生背后的故事,以及华为工程师们在迎接这些技术挑战时,所面临的抉择与思考。

使用经典的 Git 开发工件流,对代码仓库管理、内容同步、开发效率提出了巨大的挑战,只有做好代码仓库的版本控制,才能保证软件开发过程的可控性,打好可信软件开发的基础。

华为云微服务、区块链、鲲鹏云服务都基于可信开发

华为云 DevCloud 让可信体现在软件开发的方方面面:微服务转型与构建、鲲鹏云服务应用移植方法与生态服务能力、安全的区块链应用构建……

华为云微服务应用平台 ServiceStage 为企业提供微服务、Web、移动和函数应用、DevOps全栈四大解决方案,帮助企业开发者聚焦业务逻辑,快速开发、构建、部署、上线和运维。本次华为云微服务应用平台负责人、高级技术专家李勇军将分享如何打造安全的、高可靠性及高可用性的微服务。

随着 5G 技术的应用和普及,企业需要一个新的云架构生态系统支撑。华为云基于华为鲲鹏处理器打造了全面的解决方案,并让可信软件开发体现在其中方方面面。本次,华为云鲲鹏云解决方案总监高雪松将为大家分享华为云鲲鹏云服务中的关键技术解析,及其中的可信软件设计理念。

信息技术高速发展,如何高效地进行数据可信共享、提高业务协作效率在很多机构中诉求越来越强烈。本次,华为云区块链高级产品经理王磊将分享如何高效构建可信、共享、安全的区块链应用,重点剖析区块链应用的设计开发思路和技巧。


华为今年在软件领域发力,让可信渗入到企业文化中,我们看到,华为从上到下的变革已经启动,从可信的产品定义、可信设计、可信代码、可信软件工程能力(构建,发布,追溯)、可信测试、可信运维、可信 Build-in 流程、文化等多个方面启动变革。

关于可信软件开发,了解华为工程师在面对技术挑战时如何贯彻可信开发理念,这里有你想要的答案,扫码或阅读原文报名:

登录查看更多
0

相关内容

华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
125+阅读 · 2020年5月22日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
《人工智能2020:落地挑战与应对 》56页pdf
专知会员服务
195+阅读 · 2020年3月8日
5G时代:北京移动业务支撑系统 DevOps 实践
DevOps时代
15+阅读 · 2019年6月13日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
防代码泄漏的监控系统架构与实践
FreeBuf
5+阅读 · 2019年4月30日
一篇文章读懂阿里企业级数据库最佳实践
阿里巴巴数据库技术
5+阅读 · 2017年12月20日
可怕,40 行代码的人脸识别实践
51CTO博客
3+阅读 · 2017年7月22日
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
Arxiv
101+阅读 · 2020年3月4日
Arxiv
92+阅读 · 2020年2月28日
A Modern Introduction to Online Learning
Arxiv
20+阅读 · 2019年12月31日
Arxiv
6+阅读 · 2018年3月29日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
11+阅读 · 2018年1月11日
VIP会员
相关资讯
5G时代:北京移动业务支撑系统 DevOps 实践
DevOps时代
15+阅读 · 2019年6月13日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
防代码泄漏的监控系统架构与实践
FreeBuf
5+阅读 · 2019年4月30日
一篇文章读懂阿里企业级数据库最佳实践
阿里巴巴数据库技术
5+阅读 · 2017年12月20日
可怕,40 行代码的人脸识别实践
51CTO博客
3+阅读 · 2017年7月22日
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
相关论文
Arxiv
101+阅读 · 2020年3月4日
Arxiv
92+阅读 · 2020年2月28日
A Modern Introduction to Online Learning
Arxiv
20+阅读 · 2019年12月31日
Arxiv
6+阅读 · 2018年3月29日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
11+阅读 · 2018年1月11日
Top
微信扫码咨询专知VIP会员