引言
华为轮值CEO胡厚崑在HUAWEI CONNECT 2016全联接大会上提到:过去,计算资源非常分散,难以共享,利用率较低。从2013年开始,我们整合利用研发资源,实现代码和研发作业的上云部署,重构研发流程,研发效率大幅提升,其中,资源复用率提升2.5倍,各环节作业时间平均缩短50%,产品上市时间也大幅提前。”
正文
你知道吗?在早期,华为内部研发部门的工作模式是小烟囱、小作坊实验室模式,不同类型机器资源混合部署、无法复用。研发人员过度依靠单机处理能力,资源无法规模扩展,研发能力难以提升。
而华为的业务却飞速的跑在了研发的前面,产品线越来越多,涵盖通信设备、芯片、服务器、手机等。如何满足海量的开发测试计算需求?如何实现产品的快速迭代,缩短产品的上市时间?如何快速响应全球多个行业的客户需求?
这对承载着全球15个研究中心、8万+研发人员的IT协同开发系统提出了巨大的挑战。而且众所周知,华为IT系统的信息安全保障极为严格,如果让大量的信息安全相关的人工流程来处理工作,这将内耗大量的研发人员工作时间。
于是,华为将“数字化华为”立为未来的变革方向与目标。依托云计算、大数据等新技术,开始规划研发云,将研发相关业务搬迁到云上。研发云基于IPD(Integrated Product Development)流程,识别了七大研发作业场景,规划了设计云、桌面云、编译云、测试云、仿真云、杀毒云、分析云七个服务。有了华为研发云,即使员工分布全球的每个角落,依然能基于同一个项目快速完成团队开发、测试、版本发布,让研发人员聚焦产品创新,减少环境搭建等待的时间,让开发回归开发。
这朵研发云,能够同时容纳几万人基于同一个IT平台上进行协同开发,从全世界来看,也没几家公司能够做到。在这里,必须提到一个华为的秘密“杀手锏”:分布式云数据中心解决方案SD-DC2。
全球分布式云数据中心解决方案SD-DC2 相信很多ITer一定很好奇,华为研发云具体是如何搭建的?在上个月举行的华为内部IT云实践CIO峰会现场,华为详细分享了代码上云,作业上云,云上和云下隔离的整个过程。 首先,从技术架构上,采用了SD-DC2分布式云数据中心解决方案:华为在全球建设了“5+8+N”的数据中心架构来支撑全球的业务。选择“成本洼地”,在廊坊和贵阳部署核心节点,实现南北双中心,与深圳东莞南京三个企业级数据中心形成核心;边缘节点依托研究所业务布局,满足就近接入及法规遵从;短期紧急需求采用租用IDC(Internet Data Center)方式快速构建。整体构成“集中+分布”的CDC(Cloud Data Center)架构,在满足性能的基础上追求运营成本最优。 在基础设施层,通过FusionSphere级联OpenStack架构构建大规模弹性资源池,实现全球统一的资源池部署,研发环境云化、构建高计算、高网络、高I/0弹性分布式调度系统,为实现万级并行编译、测试等奠定基础。存储部分采用ServerSAN分布式存储(FusionStorage),并在网络部分实现SDN+VxLAN的大二层网络,为不同业务部门(如泛网络、IT、终端、芯片等各产品线)提供VPC(Virtual Private Cloud)服务。研发云可以实现资源快速创建、业务部门研发人员可以实现自助服务,同时开放API接口,供PaaS层与SaaS应用层使用。 在运营管理方面,构建全球统一云管理平台,实现快速提供资源、一键部署到用户环境,一键回退到历史环境,全面配置管理,按需获取的弹性动态资源分配与调度。在运维管理方面,依靠架构上的可靠性设计,不再依赖单个物理组件,应用云化分布式架构、分层分级多AZ部署,降低对底层依赖;故障自动发现自动隔离,减少现场操作频次,降低操作难度,集中例行化处理,降低现场人员技能要求;同时版本在线升级,集群批量上线、自动重构,运维走向自动化和智能化。 华为研发云基于业界开源技术,重构研发开发模式 想提升研发编译测试效率?数据靠近计算是关键。 研发云基于业界开源如CloudFoundry 、OpenStack、Docker等技术的产品(FusionSphere, FusionStage),打通IaaS和PaaS层,实现IaaS和PaaS层紧密结合,并用Docker部署和管理企业应用,最终实现I/P/C(IaaS/PaaS/Container)融合打通。 利用FusionSphere构建IaaS层虚拟化平台,管理计算、网络和存储池,实现自动化的I层资源统一管理和资源调度。在PaaS层,利用FusionStage实现I/P/C(IaaS/PaaS/Container)融合打通,向下对接OpenStack实现自动化的虚拟机资源部署、配置和管理,实现APP按需动态管理-虚拟机资源资源,同时对APP容器环境的自动编排、部署和管理以及对用户请求、负载和资源进行动态调度。在PaaS层实现了基于Docker Container部署和管理应用,包括APP环境的容器化,Docker封装应用运行时环境和代码,构建可以快速迁移的轻量化容器;利用容器实现异构和多样化的服务环境构建;支持用户自助上传容器和编排环境管理。 应用了容器方案后,研发人员只需下载一份数据,然后通过克隆多份链接,在线将数据盘挂到Docker这两步就能完成环境准备,整个搭建秒级就能完成;同时容器用完销毁的特性极大提升资源共享效率,每次编译测试都是全新的环境。2015年容器方案已在各产品线场景完成试点,2016年正在全面推广,已上线超过一万个容器,2017年计划上线十万。 代码上云,作业上云,让开发回归开发 研发云部署后的效果显著,大大提升了研发的效率,如某版本的编译,以前需要68分钟,现在只需要32分钟就能够完成,某千万行代码级产品,版本迭代周期从8周提升到3周,特性CycleTime从9个月到6个月。同时通过自助服务界面,分钟级完成环境准备,缩短自行准备周期,开发人员更聚焦代码开发,摒除了大量的环境搭建准备工作,得到了研发小伙伴们的大大称赞。 未来,研发云要构建内部研发员工的开发者生态,让大家不单单是资源的共享,能力也要共享,把开发整个流水线也做成自动化,让不同产品的设计、开发、测试等不同领域在统一的平台上来做,通过这个平台把不同产品不同领域的能力以云服务的形式进行实时的共享,汇聚各个领域的特长,各个领域的优势,形成一个非常良好的内部开发者的生态。 | |