背景

基于前面Github Action和AWS CodePipeline的实践基础,了解和熟悉如何通过Azure devops来实现类似的功能,进一步了家各大厂商在实践devops的各自特点和最佳实践

CI流程

从github下拉代码后,会设置maven的编译环境,首先build出jar包,然后将jar包打入docker image

密钥管理(service connection)

Azure devops中需要和第三方服务交互时(比如和github交互、docker hub,Azure container app等),通过创建service connection 来保存相关token,账号信息(类似于AWS的secretManager)。

制品管理(artifacts)

制品是docker image,存放在DockerHub中. 也可以用Azure提供的 container registry

CD流程

Azure devops pipeline中内置集成了和azure service交互的模块,可以直接使用(详细可以参考文末的完整pipeline)。

本次实践的pipeline需要提前创建好azure container app,然后在pipeline中使用该环境。也可以通过在pipeline中直接创建azure container app环境(可以通过az cmd, bicep, terraform的方式来初始化目标环境),这就需要结合业务的实际需求来决定。

结果验证