QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

  • 2019-10-11
  • 本文字数:2069 字

    阅读完需:约 7 分钟

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

随着 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 Request,实现了类似 Repo+Gerrit 的集中式多仓库代码提交与代码评审工作流,可以说是一种集中式仓库管理模式。


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


为什么不直接使用 Gerrit?


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


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


为什么不支持 Fork?


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


……


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


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

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

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


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


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


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


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


关于可信软件开发,了解华为工程师在面对技术挑战时如何贯彻可信开发理念,这里有你想要的答案。


2019-10-11 10:332347
用户头像
王利莹 InfoQ编辑

发布了 48 篇内容, 共 18.7 次阅读, 收获喜欢 36 次。

关注

评论

发布
暂无评论
发现更多内容

k8s中几个基本概念的理解

Java-fenn

Java

SpringBoot与Thymeleaf模板入门整合篇

Java-fenn

Java

数据结构与算法(四)——栈和队列

Java-fenn

Java

设计模式之工厂方法模式--更加符合开闭原则的工厂模式

Java-fenn

Java

22个每个程序员都应该知道的 Git 命令

Java-fenn

Java

力扣142 - 环形链表||【二重双指针+哈希表】

Fire_Shield

链表 LeetCode 9月月更

物理层基本概念

StackOverflow

编程 计算机网络 9月月更

Fast.Framework ORM 于中秋节后 正式开源

Java-fenn

Java

小公司里用SpringBoot做MySQL分库分表,踩了一些坑!

Java-fenn

Java

我的设计模式之旅 ⑦ 观察者模式

Java-fenn

Java

九个写 TypeScript 的坏习惯,看看你有没有?

Java-fenn

Java

知道这些坑,你还敢乱把单体架构拆成分布式吗

Java-fenn

Java

Netty系列教程(二)Netty架构设计剖析

Java-fenn

Java

Flutter - Google 开源的移动 UI 框架

陈橘又青

谷歌 flutter 调试工具 9月月更

详解容灾架构中的数据复制技术

Java-fenn

Java

什么是X态传播?

Java-fenn

Java

SpringBoot 源码 | prepareEnvironment 方法解析

Java-fenn

Java

弱隔离级别 & 事务并发问题

Java-fenn

Java

GreatSQL vs MySQL性能测试来了,速围观~

Java-fenn

Java java;

TAP 基于 Knative 的 云原生运行时

Java-fenn

Java

高项-第一章 信息化和信息系统(2)

索隆

项目管理 软考

【JavaWeb】JDBC快速入门时间

Java-fenn

Java

SAP 电商云 Spartacus UI 同 SAP Customer Data Cloud 的集成

汪子熙

typescript SAP Hybris Spartacus 9月月更

开箱即用,40 个 SpringBoot 常用注解!

Java-fenn

自动化测试中对多断言的思考和实践

Java-fenn

Java

C++最佳实践 | 6. 性能

Java-fenn

Java

C++ 20 协程 Coroutine之剖析

Java-fenn

Java

Java 多线程:锁

Java-fenn

Java

数据湖与数据仓库

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

css实现模糊镜效果及渐变字体和text-shadow冲突解决方案

Java-fenn

Java

大厂工程师如何给SpringBoot封装响应数据和异常处理?

Java-fenn

Java

1100亿行源代码,这家公司如何应对大规模代码托管的挑战_云原生_王利莹_InfoQ精选文章