暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命.
基于golang编写,站在巨人肩膀上,充分利用golang的协程,channel还有高并发的特点,甩其它基于虚拟机或者解释性语言编写的发布系统几条街.
极速部署,其实部署是不存在的,本系统只需要下载二进制文件执行即可,想用立刻就能用.
GIT仓库支持,可以远程拉取GIT代码发布到集群节点上.
集群发布,一个GIT仓库可以配置发布到N个节点的集群.
命令支持,发布代码的前后,都可以自己定义执行一段系统命令,比如:重启程序.
构建发布,java,c,c++,golang等编写的程序需要先编译"发布包",然后分发"发布包"到节点集群.
封版管理,特有的封版本功能,同时具备封版白名单.公司在一些特殊时期,比如电商公司在某些促销或其它节日活动的时候,为了保证线上服务,往往需要对整个发布代码功能暂停,那么封版功能就十分好用了.
高性能,发布代码的速度极快,对系统环境的要求很低.
跨平台,Linux,windows,mac,树梅派,路由器等等...
人性化的权限控制,一般一个部门的老大是超级管理员角色,老大只需要管理谁是管理员即可,管理员只需要管理用户即可,用户能发布代码.每层的权限系统都做控制.
界面优美,交互简单,更符合现在的大众web审美.
公告功能,有时候有些重要事情需要告知使用发布系统的开发者,那么公告功能就很好的解决了这个问题.
集成外部登录,本系统支持通过外部系统认证用户,比如与公司的LDAP登录融合,只需要根据我们的开发文档花费几十分钟写个HTTP API接口即可.
找到对应平台的版本下载编译好的压缩包
# 创建目录 $ mkdir codepub $ cd codepub # 以 linux amd64 为例,下载版本 0.8 压缩包 $ wget https://github.com/bzppx/bzppx-codepub/releases/download/v0.8/bzppx-codepub-linux-amd64.tar.gz # 解压到当前目录 $ tar -zxvf bzppx-codepub-linux-amd64.tar.gz # 执行安装程序,默认端口为 8090,指定其他端口加参数 --port=8087 $ ./install/install # 浏览器访问 http://ip:8090 进入安装界面,完成安装配置 # Ctrl + C 停止 install 程序, 启动 codepub 管理后台 $ ./codepub --conf conf/codepub.conf
upstream frontends { server 127.0.0.1:8088; # codepub 监听的ip:port } server { listen 80; server_name codepub.com www.codepub.com; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://frontends; } # 静态资源交由nginx管理 location /static { root /www/bzppx-codepub; # codepub 的根目录 expires 1d; add_header Cache-Control public; access_log off; } }
- | 语言 | 部署 | 稳定性 | 系统要求 | 平台覆盖 | 发布速度 | 发布配置 | 邮件通知 | 封版 | 权限 | 公告 | 界面 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Jenkins |
java | 复杂 | 中 | 高 | 一般 | 很慢 | 灵活 | ✔ | ✘ | ✔ | ✘ | 丑陋 |
CodePub |
golang | 1分钟 | 高 | 低 | 广泛 | 极快 | 十分灵活 | ✔ | ✔ | ✔(更细) | ✔ | 优美 |
- | 用户管理 | 设置管理员 | 发布代码 | 回滚代码 | 封版 | 公告管理 | 项目管理 | 节点管理 |
---|---|---|---|---|---|---|---|---|
超级管理员 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
管理员 |
✔ | ✘ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
普通用户 |
✘ | ✘ | ✔ | ✔ | ✘ | ✘ | ✘ | ✘ |
环境要求:go 1.8
$ git clone https://github.com/bzppx/bzppx-codepub.git $ cd bzppx-codepub $ go get ./... $ go build ./
在SQL Server 2005数据库中实现自动备份的具体步骤: 1、打开SQL Server Management Studio 2、启动SQL Server代理 3、点击作业->新建作业 4、"常规"中输入作业的名称 5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句(红色部分要根据自己的实际情况更改,'D:/LMS2.0/LMS2.0/bak/' 改为自己的备份路径,'LMS2.0B
ORACLE中文排序方式 Oracle9i之前,中文是按照二进制编码进行排序的。 在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序 修改ORACLE字段的默认
1、概述 list是列表(接口),是可以允许出现重复值的, set是集合,不允许出现重复值 ArrayList和HashMap是异步的, Vector和HashTable是同步的, 所以Vector和HashTable是线程安全的, 而ArrayList和HashMap并不是线程安全的。 因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于ArrayList和HashMa
Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现。下面让我们来看看httpd.conf的内容,它主要分成3大部分: Section 1:Global Environment Section 2:'Main' server configurationphpma.com Section 3:Virtual Hos
1.什么是Apache ? Apache,是一种开放源码的HTTP服务器,可以在大多数操作系统中运行,由于其多平台和安全性所以被广泛使用,是目前最流行的Web服务器软件之一。Apache 起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发,开始Apache只是作为Netscape网页服务器之外的选择。渐渐的,它开始在功能和速度上超越其它基于Unix的HTT
持续集成与发布,简称CI/CD,是微服务构建的重要环节,也是DevOps中推崇的方法论。如何在kubernetes中使用持续构建与发布工具?可以既可以与企业内部原有的持续构建集成,例如Jenkins,也可以在kubernetes中部署一套新的持续构建与发布工具,例如Drone。 众所周知Kubernetes并不提供代码构建、发布和部署,所有的这些工作都是由CI/CD工作流完成的,最近TheNewS
translated_page: https://github.com/PX4/Devguide/blob/master/en/test_and_ci/continous_integration.md translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e PX4 Continuous Integration PX4 builds and
Drone是一个用Go语言开发的基于容器运行的持续集成软件。 配置GitHub 使用Drone对GitHub上的代码进行持续构建与发布,需要首先在GitHub上设置一个OAuth,如下: 1. 在Github上创建一个新的OAtuh应用 访问此頁面,创建新的OAuth应用。 填写应用程序的地址,因为是在本地与行,所以我们都填http://localhost。 2. 获取OAtuh Client I
我们基于Jenkins的CI/CD流程如下所示。 流程说明 应用构建和发布流程说明。 用户向Gitlab提交代码,代码中必须包含Dockerfile 将代码提交到远程仓库 用户在发布应用时需要填写git仓库地址和分支、服务类型、服务名称、资源数量、实例个数,确定后触发Jenkins自动构建 Jenkins的CI流水线自动编译代码并打包成docker镜像推送到Harbor镜像仓库 Jenkins的C
我们做的还不够好,先占个坑。 欢迎贡献章节。
注意有关编写测试的建议, 请参阅 Testing Your Code. Why? 与 Kent Beck 一起撰写关于 持续集成 (简称 : CI ) 的 Martin Fowler 对 CI 进行了如下的描述: 持续集成是一种软件开发实践,团队成员经常整合他们的工作,通常每个人至少每天集成一次 - 导致每天进行多次集成。 每个集成都通过自动构建(包括测试)进行验证,以尽快检测集成错误。 许多团队
对应于 Ruby 的一个或多个版本,你很轻松就可以测试你的网站构建。以下指引将展示怎样在 Travis 上建立一个免费的,集成了处理 pull 请求的 GitHub 的构建环境。如果你使用私有代码库的话,也有相应的付费选择。 1. 启用 Travis 以及 Github 启用 Travis 来构建你的 Github 代码库非常简单: 前往你在 travis-ci.org 的个人档案: https:
持续集成的目的,是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。由于我们的代码托管在github上面,所以选择Travis CI来做持续集成是一个不错的选择。 要触发构建工作,需要在项目根目录下面添加一个.travis.yml的文件: sudo: required services: - docker e