刘伟业 阿里云智能混合云PDSA团队 高级解决方案工程师

曾就职于新华三云做软件定义数据中心解决方案,负责多个省级云平台的架构设计和落地。现就职于阿里云智能混合云PDSA团队负责容器和云原生产品的方案设计、POC和最佳实践工作。

背景

企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是阿里云原生产品体系的核心产品之一,为复杂微服务的构建和托管提供端到端应用生命周期管理。在不少企业级场景中,EDAS会被集成到客户侧的研发测试的IT流程中形成更加完整的企业IT云化整体解决方案,如对接到客户的CMP多云管理平台,被串联到客户的CICD流水线中,和客户的统一监控运维平台对接等。对于以上场景我们在多个真实项目中帮助客户一起完成了整体实践的设计和落地,在这里以最佳实践的方式系统性地输出给专有云的广大客户进行参考,以期EDAS可以在各行业的客户场景中更好地被使用、被集成。

本次最佳实践通过打通客户侧GitLab、Jenkins与专有云企业版提供的EDAS和ACK来帮助客户构建端到端企业级云原生CICD流水线。具体实现思路为通过JAVA编写一个EDAS-SDK适配插件,Jenkins通过在脚本库预先设置的SHELL脚本来调用该插件,从而集成EDAS在持续交付层面的能力。

软件环境

本期最佳实践基于阿里云专有云企业版V3.9.0版,EDAS控制台由Apsara Stack控制台单点登录并跳转。

基于GitLab+Jenkins+Edas+K8S组装CICD流水线

  • 操作流程

    本期最佳实践涉及的任务流程如下:

    (1)开发提交代码(本示例中代码管理在GitLab中)。

    (2)WebHook触发Jenkins的构建任务。

    (3)调用EDAS OpenAPI拉取镜像部署应用。

  • 提交代码

    (1)开发提交代码到git本地仓库。

    (2)开发对需要发布的版本打上Tag。

    (3)通过GitLab的tag push,将本地仓库代码同步到远程的gitLab服务上。

  • WebHook触发Jenkins的构建任务

    提交代码到GitLab服务,WebHook触发Jenkins的构建任务,Jenkins和WebHook配置如下:

    (1)在cicd的源码管理页面,配置git库地址。

    图1:git库地址配置

    (2)在cicd的构建触发器页面,配置触发器,并获取触发器的URL和Secret Token。

    图2:构建触发器示意图-1图3:构建触发器示意图-2

    (3)在cicd的Settings页面,配置git库的WebHook。

    说明:URL和Secret Token的值即上一步中获取的触发器的URL和Secret Token。

    图4:git库的WebHook配置

    (4)在cicd的构建页面,配置构建镜像和推送镜像。

    图5:cicd构建页面配置

    (5)执行如下命令配置触发调用EDAS Open API小程序对外暴露的请求地址,用于访问EDAS后台。

    图6:请求地址配置

结语

本期对EDAS及Open API最佳实践的前两步工作进行了介绍,下期将对调用EDAS OpenAPI拉取镜像部署应用进行详细介绍,敬请期待!