流水线Flow提供了多种部署能力,通过原生构建或者镜像构建方式,自动化形式部署到SAE服务并运行,从而达到了发布应用版本持续部署到SAE应用自动化能力。
背景信息
通过流水线部署SAE应用,上游使用的目标流水线源,可以支持两种构建方式。
原生构建,例如Java构建JAR包或者WAR包文件。
镜像构建,例如阿里云镜像构建。
前提条件
请确保您已经创建配置完成SAE应用实例,根据构建方式选择SAE应用部署方式,参考如下。
原生构建,请配置SAE应用代码包部署方式,具体操作请参阅在SAE控制台使用JAR文件部署微服务应用。
镜像构建,请配置SAE应用镜像部署方式,具体操作请参阅SAE控制台镜像部署。
步骤导航
步骤一:新建流水线
登录流水线Flow服务控制台,在控制台界面,请单击右侧上方新建流水线按钮。
在弹出窗口页面,根据需求选择合适的流水线模板,选择好流水线模板后,单击创建按钮。
步骤二:配置流水线-代码源
添加流水线源,可以选择多种方式,如:自建Gitlab、Codeup、Github等,可以根据您的需求选择,请单击任务节点,选择代码源为示例代码源,选择代码类型为JAVA,完成添加任务。
另外也可以通过制品源、Jenkins、Flow流水线,链接外部服务,完成添加流水线源。
如果部署SAE应用,选择的是镜像构建方式,请确保目标代码源包含有构建镜像的Dockerfile指令文件。
步骤三:配置流水线-构建与上传
原生构建
添加构建任务节点,根据需求选择合适的构建方式,请单击空任务或者新的任务节点按钮,在右侧滑出编辑页面或者导航菜单界面,选择任务构建>Java构建,
参数
说明
任务名称
自定义任务名称。
构建集群
根据需求选择云效默认构建集群或者自定义的私有构建集群。
说明关于选择使用私有构建集群,请参阅具体操作构建集群。
构建环境
根据需求选择合适的构建环境。
说明任务执行期间,流水线任务构建环境分配给用户使用,构建环境使用权限归属用户,任务执行脚本由用户自定义。
下载流水线源
根据需求选择合适的方式。
在任务步骤配置项,请确保已经添加Java构建和构建物上传两个任务,关于这两个任务配置参数请参考下图。
根据需求进行Java构建参数配置。
设置构建物上传任务参数,可以自定义命名步骤名称,根据需求选择合适的上传方式,选择企业私有通用制品仓库,需要添加服务链接,授权Flow访问制品库资源,选择自定义通用制品仓库。
说明关于企业私有通用制品仓库,具体操作请参阅制品管理。
镜像构建
完成步骤二配置流水线源任务后,单击任务节点或新建任务节点,右侧滑出编辑页面,单击导航菜单镜像构建,单击添加阿里云镜像构建企业版任务。
说明建议选择使用镜像构建并推送至阿里云镜像仓库企业版,企业版支持多地域,提供稳定快速的镜像上传、下载服务。
镜像构建并推送至阿里云镜像仓库个人版,是面向个人开发者,功能受限较多,不保障SLA(镜像网络加速性能),具体详情请参阅什么是容器镜像服务ACR。
单击新添加的任务镜像构建并推送至阿里云镜像仓库企业版,在编辑页面配置参数。
参数
说明
任务名称
自定义任务名称。
构建集群
根据需求选择合适的构建集群地区。
构建环境
根据需求选择合适的构建环境。
说明任务执行期间,流水线任务构建环境分配给用户使用,构建环境使用权限归属用户,任务执行脚本由用户自定义。
下载流水线源
根据需求选择合适的方式,当流水线源为代码源时,选择下载流水线源,运行目标任务时将会克隆相应代码。
以下提供了企业版和个人版的任务配置参数,根据您的需求选择,完成任务参数设置。
企业版
企业版配置参数设置。
步骤名称:您可以自定义步骤名称,本文保持默认名称。
选择服务链接:单击右侧添加服务链接按钮,在弹出窗口页,选择您的ACR服务链接信息,在设置服务授权/证书时候,如果没有ACR资源授权访问权限,请单击右侧新建按钮,进行同意授权,最后单击创建按钮,完成选择服务链接。
地域:根据容器镜像服务ACR目标实例的区域,选择相同的区域。
企业实例:选择容器镜像服务ACR企业版目标实例。
命名空间:选择目标ACR镜像仓库所属的命名空间。
仓库:选择目标ACR镜像仓库。
标签:设置动态参数${DATETIME},表示镜像被推送到ACR后,将会以当前日期时间作为版本名称。
说明标签:支持固定参数例如1.0,或者动态参数例如${DATETIME}。
Dockerfile路径:本文示例代码源仓库中Dockerfile文件是在根目录下,保持默认路径即可。
说明如果非本文示例代码源,请正确设置您的Dockerfile路径地址。
Dockerfile路径,默认路径是相对于代码库根目录所在路径,如META/config/Dockerfile或Dockerfile。
完成参数设置后,单击右上方X关闭按钮。
重要由于Flow需要将构建的镜像推送到ACR仓库,需要ACR企业版目标实例开启镜像仓库公网进行通信,请设置ACR访问控制公网是开启状态,再将Flow构建集群公网出口地址,添加到ACR公网白名单里。
查看Flow构建集群公网出口地址,在流水线Flow控制台界面导航菜单最下方,单击菜单全局设置,在全局设置页面导航菜单里单击构建集群管理,在构建集群管理页面,本文使用的云效默认构建集群下的云效北京构建集群,根据需求选择地区集群,将查看的公网出口地址添加到ACR访问控制白名单里。
如果您使用私有构建集群,Flow是通过VPC地址推送ACR镜像仓库的,需要在任务编辑页面的任务步骤配置项里单击勾选私有构建集群使用VPC地址推送镜像,就无需开启ACR公网。添加私有构建集群,具体操作请参阅构建集群。
个人版
个人版配置参数设置。
步骤名称:您可以自定义步骤名称,本文保持默认名称。
选择服务链接:与企业版服务链接设置相同。
地域:根据容器镜像服务ACR目标实例的区域,选择相同的区域。
仓库:选择目标ACR镜像仓库。
Dockerfile路径:本文示例代码源仓库中Dockerfile文件是在根目录下,保持默认路径即可。
完成参数设置后,单击右上方X关闭按钮。
步骤四:配置流水线-部署SAE应用
请单击任务节点新的任务,在右侧滑出页面的导航菜单选择部署可以选择多种部署方式,比如ECS应用部署、Kubernetes发布等,根据您的需求选择,请单击添加Serverless(SAE)应用发布部署任务到流水线流程中。
说明有关更多部署方式,具体可以参阅持续部署(CD)。
在添加完部署SAE应用任务后,在任务步骤配置项进行参数配置,下图可作为参考。
参数
说明
选择服务链接
请单击右侧添加服务链接,进行Flow访问SAE资源的授权配置。
地域
选择SAE应用目标实例所属区域。
命名空间
选择SAE应用目标实例所属自定义命名空间。
SAE应用
选择SAE应用目标实例应用名称。
构建产物
根据构建物上传任务中企业私有通用制品仓库配置项制品名称参数设置的特定值进行选择。
重要如果使用镜像构建方式,请确保如下基本配置。
请勾选下方使用阿里云镜像仓库企业版,构建产物选择镜像构建并推送至阿里云镜像仓库企业版.镜像公网地址(如果使用私有构建集群可以选择镜像构建并推送至阿里云镜像仓库企业版.镜像VPC地址)。
在阿里云容器镜像服务ACR控制台界面,进入企业版仓库目标实例管理界面,配置访问控制,添加专有网络的VPC,用于SAE应用目标实例可以和ACR进行通信。
镜像仓库企业版实例ID
当使用使用阿里云镜像仓库企业版时候,需要配置此项参数。
说明关于镜像仓库企业版实例ID,可以在容器镜像服务控制台界面,进入目标企业实例,在概览实例信息中查看到实例ID。
发布策略
选择合适的发布策略,分批发布是根据SAE应用容量配置的实例数,灰度发布是一种通过占比平滑过渡的发布方式。
分批方式
选择合适的应用部署执行方式。
发布批次
根据SAE应用容量实例数,选择应用部署的实例数量。
说明如果您创建的SAE应用实例配置容量是2个实例,比如A容器和B容器,发布批次设置2批,就是发布到2个实例。
分批批次间等待时间
根据需求选择合适的SAE应用部署实例间的部署等待时间。
分批批次内等待时间
表示SAE应用目标实例中开始部署的等待时间。
步骤五:运行并查看目标流水线任务
在流水线Flow控制台界面我的流水线列表,单击目标流水线右侧运行按钮,单击目标流水线名称,查看流水线任务节点界面。
运行流水线任务完成后,在部署SAE应用任务节点,右下方单击日志,查看到流水线任务的执行过程结果日志。
在SAE控制台界面,通过流水线部署的SAE应用目标实例,可以查看到应用部署的变更记录和实例日志。