云效搭建流水线实现自动化构建部署

前言

云效,是阿里云提供的一款服务类产品,能够多人协作开发集成、多种编程语言构建打包和分布式集群部署发布等服务。轻松搭建从代码提交、集成、构建到测试环境、预发环境、线上环境部署发布验证的持续交付流水线。

搭建自动化构建部署详细步骤

运作流程:

    运行流水线——>流水线拉取仓库中指定分支下的代码——>执行代码扫描阶段——>执行构建Jar包以及基于Jar包构建Docker镜像,上传指定的私有docker镜像仓库——>执行部署阶段,执行部署命令使阿里云服务器pull下远程仓库中最新构建的docker镜像并运行——>通知对应人员进行查看验收部署结果

一、创建企业

1.输入企业名称
    
2.绑定邮箱验证

二、搭建构建部署流水线

1.进入企业首页

2.鼠标移至研发,展开下拉栏点击流水线

3.点击新建流水线,开始搭建构建部署的流水线:

    3.1 选择项目对应的编程语言,选择步骤模板,点击下一步

    3.2 选择代码仓库,这里使用码云为例:

        3.2.1 点击绑定链接,进入码云绑定码云账号

        3.2.2 回到云效,刷新弹出框,选择需要构建的代码仓库以及分支(建议选中动态分支,便于后续构建时修改构建分支),填写别名,点击下一步

    3.3 重命名流水线名称,设置流水线管理员以及运行权限,点击创建

    3.4 在阶段中详细添加构建阶段:

        3.4.1 设置代码扫描阶段:
    
            <1> 点击任务列表选项,填写构建步骤名称

            <2> 填写规则集合,按提示中给出的默认值填写即可

            <3> 填写子目录及排除子目录,保存关闭任务框

        3.4.2 设置构建阶段:

            <1> 默认给出的是Java构建步骤及构建物上传步骤,需将构建物上传步骤删去。

            <2> 在Java版本中选择与项目对应的Java版本

            <3> 输入构建命令(使用maven命令打包构建):
                        
                mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip

            <4> 点击添加步骤,选择执行命令选项(执行的命令为Shell脚本)

            <5> 填写执行命令:
                        
                echo "将构建完成的jar包拷贝至Dockerfile所在文件夹下"
                cp ./auieo-manage/target/auieo.jar ./auieo-manage/src/main/docker/

            <6> 点击添加步骤,选择Docker构建镜像并上传

            <7> 此处需要ROM授权,点击授权链接,授权之后返回此页面,点击授权链接的刷新按钮(如已授权可跳过此步)

            <8> 选择区域(需选择与容器服务中创建私有镜像仓库的区域保持一致,否则无法检索到私有镜像仓库)

            <9> 选择仓库(此处会检索你选择区域所拥有的私有镜像仓库,如果没有可以选择新建)

            <10> 填写标签

            <11> 填写Dockerfile文件路径,例如:./auieo-manage/src/main/docker/Dockerfile

            <12> 填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录,点击保存关闭任务框

        3.4.3 设置部署阶段:

            <1> 点击加号添加阶段,选择主机部署

            <2> 填写阶段名称

            <3> 点击任务列表中主机部署选项

            <4> 在制品栏选择对应制品(制品即:在构建阶段完成后所产生的产品)

            <5> 在应用栏选择对应的应用,如果没有,则点击新建应用,弹出新建应用框,填写应用名(应用一般为正在构建部署的产品,也可以在外创建),点击确认
                
            <6> 在环境栏选择对应部署环境,如果没有,则点击新建环境:

                - 填写环境名称

                - 选择环境类型,选择预发布环境

                - 选择发布方式,默认为发布到ECS

                - 设置部署配置,将默认的部署脚本删除,输入如下脚本:

                    systemctl daemon-reload
                    sudo service docker restart
                    sudo docker login --username=苏喔信息科技 --password=sworld0799 registry.cn-beijing.aliyuncs.com
                    sudo docker pull registry.cn-beijing.aliyuncs.com/wilson-lao/test:auieo
                    sudo docker run -p 443:443 -d  registry.cn-beijing.aliyuncs.com/wilson-lao/test:auieo -f

                - 设置执行用户(执行用户为阿里云服务器上存在的账户,一般填写root)

                - 设置机器配置,勾选需要部署的服务器,点击保存关闭任务框

        3.4.4 设置审核阶段

            <1> 点击加号添加阶段,选择人工卡点

            <2> 根据情景需求修改阶段名称与任务名称

            <3> 点击任务列表中选项

            <4> 选择验证者类型,选择角色选项

            <5> 选择应用以及角色,保存关闭任务框即可

        3.4.5 不建议将阶段中的构建步骤拆分为阶段单独构建,因为对应的构建命令在不同环境上执行不了,执行构建脚本这个过程,相当于新起了一个容器镜像,跟前面的阶段不在一个容器内,找不到对应的内容,就会产生报错。

后记

相对于Jenkins创建对应的构建部署Job而言,在云效中搭建流水线更为便捷,且最大特点是脱离本地,一切构建操作在云端实现,便于远程操作。当然Jenkins也可以实现在云端完成构建,不过需要将Jenkins安装在服务器中,这无疑是一种对资源的不必要消耗。不仅如此,云效具有较为完善的构建部署机制,不需要再后续安装各种对应的功能插件,给开发人员更好的交互体验。

你可能感兴趣的:(云效搭建流水线实现自动化构建部署)