作为开发者,代码发布与部署是必经的流程,每个公司或组织都有自己的一套代码发布机制,下面我简单整理了下发布系统的几个发展阶段
手动部署,上传代码到服务器,然后修改配置,启动服务器。如果发现有上线代码问题,再重新打包替换代码。这类只适合于单台机器,单个业务的代码部署,如果增加机器,或者增加业务,每次去上传代码到服务器显然是不现实的。
开始封装脚本,每次运行脚本自动化更新代码。并考虑到需要有个界面,至少可以知道发布的状态,进度等信息,使用简单的页面进行操作自动部署
既然已经有了界面,那就规范部署流程,可持续集成部署,操作更简单,发布更高效
类似 docker 容器,整个代码、运行环境、甚至操作系统全部打包进行拷贝部署,这类部署成本相对比较高
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins 功能:
- 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
- 需要有专门的集成服务器来执行集成构建;
- 需要有代码托管工具支持;
Jenkins 特点(网上搜索结果):
- 安装简单:首先安装 java 环境,然后从官网下载安装文件后,直接运行 java -jar jenkins.war;
- 可视化配置:提供友好的 GUI 配置界面;
- 变更支持:Jenkins 能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
- 支持永久链接:用户是通过 web 来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
- 集成 E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果;
- JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能;
- 支持分布式构建:Jenkins 可以把集成构建等工作分发到多台计算机中完成;
- 文件指纹信息:Jenkins 会保存哪次集成构建产生了哪些 jars 文件,哪一次集成构建使用了哪个版本的 jars 文件等构建记录;
- 支持第三方插件:使得 Jenkins 变得越来越强大;
其它比较著名的持续集成工具有:CruiseControl,TeamCity,Continuum 等,这里不再一一介绍。
基于此,如果你想构建一个包含检出代码,代码检测,编译构建,运行测试,上线部署等完全持续集成系统应用的话,相信 Jenkins 或许是你最好的选择!
OK, 既然 Jenkins 如此强大,那么为什么还需要 bzppx-codepub,要回答这个问题,我们又回到 Jenkins 上
- 虽然部署还算简单,但对于不懂 Java 的小白来说首先要去了解怎么去安装 JDK。
- Jenkins 正是因为强大,虽然有 GUI 的配置界面,但是配置还是相对比较复杂。
- 有时候我们部署很可能不需要集成度这么高(代码检测,编译构建,运行测试),我们最核心的要求是保证代码发布快速稳定。
- 软件本身是老外开发的,操作和 UI 都不符合国人的胃口和体验。
- 插件太多必然增加了维护的成本,需要有一定的技术能力及投入才能搭建应用。
- 有时候你可能需要封版、公告等一些附属但实际的小功能。
所以我们希望开发出一款安装部署零成本,代码发布可持续、快速、稳定,系统简洁,功能实用清晰,UI 优雅美观,用户体验更人性,使用操作更符合国人习惯,维护低成本的可持续代码发布系统!
一款开源的支持 GIT 仓库的可持续的代码发布系统!当前已有的功能特点如下:
- 零成本安装配置,直接二进制文件运行,进入安装 web 界面手动点击配置
- 支持主流的操作系统 Linux / windows / MacOS
- 完善的用户权限管理
- 清晰的功能菜单完全符合你的操作习惯
- 代码支持 https/http/ssh 方式快速发布和回滚
- 支持代码发布前后执行命令
- 实用的发布公告和封版管理
- 可快速集成第三方登录(LDAP)
如果您感觉不错,可以下载试用。如果您不喜欢并提出批评,我们也都虚心接受。