自动化发布在开发过程中至关重要,可以有效提升发布效率,大大提升发布频次,降低人工操作带来的错误风险。
其重要性简要概括为以下3点:
1)提升效率与速度:自动化发布通过预定义流程替代人工操作,显著缩短部署时间并降低错误风险,例如Netflix通过自动化实现每小时数千次部署。
2)确保一致性与可靠性:消除环境差异问题,使开发、测试和生产环境保持相同状态,减少30%以上的环境相关故障。
3)支持规模化与协作:自动化工具(如Jenkins)帮助团队管理复杂技术栈,并通过透明化流程促进跨部门协作,释放人力以聚焦创新。
下面分三部分先简单介绍自动化发布,jenkins安装、发布方式、发布环境
1、jenkins安装
docker run --name=jenkins -d -p 8080:8080 -p 50000:50000 \
-v /Users/zhangzhonghua/data/jenkins:/var/jenkins_home jenkins/jenkins:jdk17
安装好后,配置OpenLDAP,参见盘古栈云相关文章:OpenLDAP篇。
8080:为管理端口、50000:为agent代理端口
2、发布方式
对于自己公司环境可以采用源码形式发布;
对于客户环境可以通过编译结果发布,避免源码在非必要环境下流转。
主要配置内容:服务器连接配置、编译配置、发布脚本、发布权限,涉及一系列操作。这些配置跟web终端等开发运维系统组件是重复配置,权限也是各管个。
当然如果不想这么繁琐,也可以试试盘古开发运维系统。统一的服务器管理和权限控制。
授权管理
服务器管理
3、发布环境
1)在公司环境,可以将jenkins环境跟公司不同环境网络打通,通过jenkins直接将编译结果上传至各个环境,并执行相关的发布脚本,完成发布动作。
2)对于客户环境,如果网络允许直连,则参照公司环境,直接发布即可。但往往客户环境网络跟公司环境网络不通,此时可以通过在客户侧安装jenkins agent ,由agent反向连接至jenkins master节点完成发布任务。
此外盘古开发运维系统也是另一种选择,也是借助盘古agent,反向连接至盘古开发运维系统,由盘古开发运维系统向agent下达web终端/sql执行器/文件上传下载/应用发布等指令。
web终端(直连+代理)
文件上传下载(直连+代理)
SQL执行器(直连+代理)