解密个推持续集成

       软件开发过程中,开发成员经常需要把自己工作集成到项目中,通常每个成员每天至少集成一次。如果项目较小,对外部的依赖较小,那么软件集成可能不会是什么问题。但是目前很多软件项目特别是互联网项目面临着需求不明确,系统架构复杂,任务分配混乱等一系列问题,从而给持续集成带来许多麻烦。也给整个项目带来不必要的风险。因此一个有效的持续集成系统越来越重要。

       个推平台是一个极其复杂的分布式系统,整个系统包含了 RPC 调用,高速缓存,集群同步等各种复杂的场景。整个团队只有二十来个人却维护了近百个模块的开发和测试工作,如果没有一套有效的机制,很难想象如何完成这些任务。持续集成在其中扮演了非常重要的角色,借助于 Git、Docker、Jenkins 以及 Nexus 等工具,个推搭建了自己的持续集成环境,并一步一步的摸索出了自己的最佳实践,这篇文章将会和大家一起分享个推是如何利用这些技术提高团队的生产力的。

持续集成系统的组成

使用git作为版本控制库

相比于同类项目版本系统,git有一项非常显著的优势,就是版本分支(branch)的合并(merge)十分方便。

使用docker搭建测试环境

作为一种新型的虚拟化方式,相对于传统的虚拟化方式有着众多的优势。例如,docker虚拟容器的启动可以在秒级实现,并且对系统资源的利用率很高。另外,docker的管理,迁移和扩展也更轻松有效。

使用jenkins作为持续集成服务器

Jenkins为开发人员提供了非常有效的持续集管理。其强大的插件系统和明确的构建逻辑,使得构建流程的创建非常简便。

Docker在持续集成系统中的作用

测试作为软件项目重要的一环,一般都需要开发团队搭建一套独立的测试系统。但作为持续集成的一个环节,此测试系统又异于一般的测试系统。主要原因为,持续集成测试系统主要用来做回归测试,而且需要支持快速大量的代码升级。基于docker的特性,以及持续集成的需求,个推采用docker为持续集成搭建了一整套测试系统。

镜像准备:docker 的运行基于镜像文件,而每个项目所需的镜像文件又不同。因此需要独立分析每个项目的需求以及未来扩展需要,创建出不同版本的镜像文件。目前,个推主要有4大类镜像,分别支持前端,后端,工具类等项目。以前端为例,个推采用了前后端分离的开发模式,因此此镜像主要用来支持web 前端的服务运行。

服务包准备:为了能在docker里运行所需要的服务,需要docker实例中安装相应的服务包(service package)。 一般有两种方法,一种是将相应的服务包在镜像文件中安装,另一种以docker 卷的形式动态映射到docker实例。 两种方式有其优劣,第一种方式使得每次docker 容器的启动非常迅捷,而第二种方式则更为灵活。这个需要根据不同的需求选择合适的方式。

下图为docker 在整个持续集成系统中的作用。Jenkins 作为主服务器将代码和docker 统一的管理起来。

个推持续集成流程

下面以user模块为例,对持续集成的流程进行阐述,如下图所示:

从图中可以看出,系统的git分支包括dev,master两个分支:

  • dev:开发分支,开发人员维护,开发人员将最新代码提交到这个分支,Jekins监视这个分支,任何代码改变都会触发自动化测试
  • master:发布分支,这个分支上的版本是自动化测试通过后的版本,且自动化打包监控这个分支

图中的每个长方形代表一个Jenkins Job。下面将对每个Job进行说明:

  • user: 监控user代码库的dev分支,当每次有新的代码提交时,就会自动触发构建任务。编译代码,同时生成code style,测试覆盖率等关于代码质量的报表。成功后将触发user-docker任务。
  • user-docker: 打包user工程,重启user的docker实例以便于使用全新的user包。成功后将触发testcase任务
  • testcase: 验收测试,检测改变是否满足业务需求所定义的验收条件。成功后将触发marge任务
  • merge:将user的dev分支merge到master分支
  • user-pkg: 监控user代码库的master分支,当有代码改变时,执行mvn package打包操作

经过上面的几个步骤,从代码提交到打包的整个过程就自动化起来了。

总结

目前越来越多的公司开始重视持续集成系统,但是缺乏定制化的系统真的能满足复杂的需求吗?当模块之间的联系越来越复杂,集成的频率越来越大,运行环境的不断升级 等等,缺乏定制的持续集成系统是否能达到预期,个推在docker 上找到了解决方案。 虽然仍然有许多挑战,但随着技术的升级和完善,也终会越做越好。

转载于:https://www.cnblogs.com/evakang/p/4895469.html

U盘超级加密3000是一款专业好用的U盘移动硬盘加密软件。软件可以几秒内实现加密U盘和加密移动硬盘里面的全部文件和文件夹或者是你指定的需要加密的文件和需要加密的文件夹。文件加密后和文件夹加密后保密性极高,加密和解密的速度快。打开软件后没有正确密码无法进入软件的主界面和使用加密和解密功能。是用户实现U盘移动硬盘加密的好帮手。 U盘超级加密3000 v7.56更新日志 - 其他若干改进和错误修复。 U盘超级加密3000特色功能 ㈠ U盘和移动硬盘加密后,不会受到机器的限制,可以在任一台机器上使用。 ㈡ 可以加密U盘和移动硬盘里面的全部数据或你指定的数据。解密时也可以解密全部解密数据或你需要使用的数据。 ㈢ 加密数据的保密性极高,U盘和移动硬盘加密后,不解密任何人无法看到和使用你的数据。 ㈣ 加密和解密的速度快。 ㈤ 软件自身有很好的伪装性,运行后是一个普通的背诗词软件,没有正确密码无法进入软件的主界面和使用加密和解密功能。 ㈥ 本软件是一个纯绿色软件,不需安装和不会在系统里写入任何数据。使用时只需把软件放到你需要加密的U盘和移动硬盘里即可。 U盘超级加密3000的使用    U盘超级加密3000是一款免安装的绿色软件,使用时只需要把下载的压缩包里面的ude.exe文件解压到需要使用的U盘、移动硬盘或者电脑的硬盘上就可以了。     如图所示,用鼠标双击ude.exe运行U盘超级加密3000,试用版会弹出欢迎窗口,点击开始试用按钮,软件会弹出密码输入窗口(正式版会直接弹出密码输入窗口)。试用版的默认密码是:888888,正式版可以修改密码,如果您已经修改了软件密码,请输入您设置的密码。     如图所示,这个软件的主界面,用户可以点击界面的各种按钮实现自己所需要的各种功能。软件窗口最上方是功能按钮区,通过这个区域的功能按钮,您可以对当前磁盘分区的文件或文件夹进行闪电加密、金钻加密,加速或者对文件夹进行伪装,还可以解密已经加密的文件或文件夹或者对闪电加密区进行镜像浏览。软件窗口下方是两个类似我的电脑的文件浏览框,左侧的文件夹浏览框显示的当前磁盘分区的文件,右侧显示的是当前磁盘分区的闪电加密区的文件,当前磁盘分区的文件或文件夹闪电加密后,就会进入到当前磁盘的闪电加密区,无法通过我的电脑或者其他的常规软件看到和使用。     如图所示,文件夹浏览框的使用方法和我的电脑是一样的,双击文件可以打开文件,双击文件夹可以打开文件夹,在文件夹浏览框中单击右键,有快捷菜单,您可以选择文件浏览框中文件的显示方式和排序方式,还可以对文件或问文件夹重命名等各种操作。软件的功能就大致介绍到这里了,软件其余的具体功能就有小伙伴们自己去发掘吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值