首页 存档 技术 查看内容

CA 搭建统一交付平台,实现快速发布

2018-3-30 13:00 |来自: 互联网 320 0

摘要: 关注世界领先 DevOps 平台 JFrogCA Technologies介绍CA 是全球领先的软件生命周期管理工具提供商: ● 全球10多个研发中心。 ● 业务:基础设施管理,应用程序生命周期管理,安全,DevOps。 ● 业务线复杂,需要搭建 ...

关注世界领先 DevOps 平台 JFrog



CA Technologies介绍



CA 是全球领先的软件生命周期管理工具提供商:

● 全球10多个研发中心。

● 业务:基础设施管理,应用程序生命周期管理,安全,DevOps。

● 业务线复杂,需要搭建统一的快速发布平台支持所有的业务产品线。


CA 经过一系列的技术演进,已经实现了高效的自动化发布平台,支持 CA 内部所有产品线的研发,测试和发布,CA 是如何做到的?



CA 快速发布平台的目标非常明确,是将之前发布产品的周期从数月,减少到数天或者数小时,并且保证高质量的发布产品。


CA 软件发布流程中的痛点


● 不同产品线使用不一致的工具链。

● 自研件存储在 SCM。

● 构建耦合度高 构建时间达到16小时。

● 18-24个月的发布周期。

● 缺少自动化测试 软件发布需要2300的人工测试

● 缺少”完成”的定义。

● 没有代码扫描工具。


CA 构建快速发布平台的过程


1. 使用统一的快速发布工具栈



● 使用 Github,因为它具备社交编程的能力,支持离线提交,并且对于新毕业的程序猿,接受度非常高。


● 在 CI 服务器选择上,60%使用 TeamCity, 剩下的大部分使用 Jenkins。


● SonarCube 使用 Sonar 进行静态代码扫描,能够检查代码库里是否有 copy-paste 的代码,如果有的话,需要进行重构。


● BlackDuck 进行第三方代码扫描。能够检查是否存在从第三方代码 copy-paste 到了本地代码库的抄袭,避免软件授权纠纷。同时能够进行漏洞扫描,避免有漏洞的第三方包进入内部系统。


● Artifactory 管理第三方依赖(NPM,YUM,Docker,Debian 等),存储所有自研件到本地仓库。为所有自研件添加元数据,为之后的产品发布提供自动化上线的 REST API。


2. 有了工具栈,然后呢?


●CA 的自研件通常会比较大,当转变为 DevOps 模式时,高频率的拷贝,构建,测试会花费大量的时间。

● Clone 到远程研发中心通常比较慢。

仓库的复制受到带宽影响。

内网复制到外网复制的差距在7-10倍。


所以CA 需要先定义”完成”目标

● 在多研发中心里按需复制工件。

● 在几分钟之内创建出一条运行环境。

● 产品能够实现自动升级(如果有更新发布)。

● 能够实现按需的扩容构建环境。


3. CA 快速发布平台工具链实践



● Nutanix

Nutanix 是 CA 现有的 IT 基础设施平台,用于装机,网络,部署等等。


● Vmware Centos/Docker

Vmware实现 底层虚拟化,快速创建虚机环境, 为Centos 或者 Docker提供计IaaS 服务。


● Artifactory

使用 Artifactory 作为异地复制,和本地缓存的中央仓库。 所有人访问的是本地的缓存,提供开发和构建的效率。所有的二进制包,无需担心存储,数据备份,Artifactory 都已经保管好。

同时,Artifactory 是一站式的Docker 的镜像注册中心,因为所有的自研件,yum 仓库,第三方依赖,bower,NPM都存储在 Artifactory。


Artifactory 提供了 多Docker注册中心的支持,这为 CA 提供了 dev 的 Docker 仓库,以及生产环境的 Docker 仓库。


使用 Bintray 作为全球分发的平台,为全球的用户提供了快速下载软件的通道。包含了软件在全球下载量的统计,以及权限的控制。

● Github Cache



由于 CA 的代码库非常大,所以需要为Git提供 CDN。CA 构建了内部的 Github Cache,目的是解决跨研发中心的大量代码克隆,快速为程序猿创建 workspace,已经构建环境。

CA 通过 webhook 封装 Git,用户的仓库权限,仓库复制,SSH key 配置等都通过 webhook 配置到底层 Git。当用户改变了仓库内容,SSH 配置,都会通过 webhook 反映到底层。

这个系统使用 Nodejs 实现,用户的 clone 请求通过 Apache代理到 Git.

● Jenkins服务

使用 Docker 打包 Centos 和 Ubuntu 的Jenkins 镜像,为整个公司提供公共镜像,任何团队可以重用基本 Jenkins 镜像,并且实现按需的创建构建环境。


统一快速发布平台带来的价值


CA通过搭建统一快速发布平台,为 CA 带来了巨大的变化,这些变化包含:


● 已经实现跨研发中心按需复制二进制包。

● 能够实现在数分钟之内,快速构建一套环境,用户测试和部署。

● 为产品发布实现最小化的配置。

● 12GB 的构建结果之前需要400分钟拷贝到另一个研发中心。现在在新的方式下,拷贝只需花费12分钟,这得益于 Docker 的镜像打包,以及 Artifactory 基于 Checksum 的存储,不会重复传输未变化的文件。

● 产品实现自动化更新。

● 按需扩容构建集群。

得益于这个快速发布平台,CA已经实现了快速发布,按需扩容构建环境,大大提升了 CA 软件的交付速度。未来 CA 计划将文中提到的 Github Cache 项目开源出来,回馈社区。


关于JFrog

世界领先DevOps平台

公司成立于2008年,在美国、以色列、法国、西班牙,以及中国北京市拥有超过200名员工。JFrog 拥有3000多个付费客户,其中知名公司包括如腾讯、谷歌、思科、Netflix、亚马逊、苹果等。连续两年,JFrog 被德勤评选为50家发展最快的技术公司之一,并被评为硅谷增长最快的私营企业之一。


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部