一台阿里云ECS下的CIDI方案 最具性价比的简化DevOps自动化部署方案

一、方案简介

1、项目代码存储阿里云CODE

2、Java项目 maven私有仓库使用阿里云仓库服务

3、镜像仓库使用阿里云容器镜像服务

代码推送到仓库---->触发镜像服务自动生成项目镜像----->触发rancher的Webhooks容器自动升级

二、具体实施步骤(举例)

1、阿里云CODE创建项目

2、阿里云容器镜像服务

  • 新增命名空间
  • 创建镜像仓库
  • 代码与镜像仓库的关联就在这里
  • 选择项目
  • 创建完成,进入仓库详情页
  • 构建-主要是提交代码触发镜像构建的的一些设置,比如分支提交自动构建,分支tag自动构建
  • 触发器-主要是构建完成后自动进行镜像的处理,比如直接调用rancher的Webhooks进行升级

3、镜像自动构建

  • 构建-默认规则为分支提交tag,tag命名为tags:release-v$version格式,比如:tags:release-v20202020
  • 例:构建后的镜像版本为20202020

  • 新建构建规则,分支提交自动构建,提交代码到指定分支,可自动触发
  • 注意此处的Dockerfile目录及Dockerfile文件名称,镜像构建依赖此配置,可在项目根目录放置Dockerfile文件
  • 镜像版本此处只支持静态即命名为latest,但是有缺陷的是镜像版本会覆盖,回滚时无法选择版本号

4、触发rancher自动升级

  • 创建触发器
  • 触发器URL填写rancher内设置的Webhooks地址,触发方式可选择Tag触发,即上面配置的版本号latest

5、rancher配置

  • 添加镜像库为阿里云镜像地址,输入账号密码
  • 选择专有网络地址会更快 例如: registry-vpc.cn-shanghai.aliyuncs.com
  • 新增Webhooks地址 API菜单Webhooks
  • 镜像标签即为镜像的版本号,当阿里云触发此Webhooks时,会json传参数,其中tag:latest
  • 服务选择器即为要升级的服务,比如task项目,可在task项目打一个标签,在此处填写
  • 多个服务需添加多个Webhooks地址
  • 添加成功后,将此地址填写到 上面看到到阿里云触发器URL即可

 6、完成配置

  • 至此整个流程配置完成
  • 开发人员开发dev分支,提交测试,codereview后最终代码合并到release分支,自动触发镜像构建。镜像构建完成后,自动推送到rancher的webhooks,服务即滚动升级完成。

三、其他说明

## docker环境安装

yum install docker

service docker start

chkconfig docker on
## ECS 上 安装 rancher


sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:v1.6.21

 

## java 项目Dockerfile需两阶段构建

1、先使用maven镜像将项目打包成jar包 maven镜像可用自己的
2、将jar包传入二阶段镜像继续制作


例子:

FROM maven:3.5-jdk-8 AS build

RUN mkdir -p /build/app
RUN mkdir -p /build/config

COPY ./ /build/app

##此处因为涉及私有maven仓库settings文件覆盖默认的
COPY docker/settings.xml /build/config

##打包代码
RUN mvn clean -f /build/app clean -s "/build/config/settings.xml" package -Pprod -Dmaven.test.skip=true

##此处为最终镜像依赖
FROM registry.cn-hangzhou.aliyuncs.com/xxx/centos-tomcat8:latest


RUN mkdir -p /build/deploy

##从一阶段 镜像内拷贝WAR包
COPY --from=0 /build/app/target/app.war /build/deploy/

如有更好方案或其他问题可留言

                                                                         登录阿里云赶紧操作吧

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
云燕DevOps是一种软件开发与运维结合的实践方法,旨在通过自动化来提高软件交付的质量和效率。在云燕DevOps中,自动化测试是其中一个重要的环节。 自动化测试是使用自动化工具和脚本来执行测试任务的过程。它可以代替手动测试,提高测试的速度和准确性。在云燕DevOps中,自动化测试的目的是验证软件的功能和性能,以确保软件在发布之前没有明显的问题,并且能够满足用户的需求。 云燕DevOps自动化测试通常包括以下几个步骤: 1. 测试计划和用例设计:根据软件的需求和功能设计测试计划和用例。 2. 自动化工具选择和配置:选择适合的自动化测试工具,并进行相应的配置。 3. 脚本开发和编写:根据测试计划和用例,编写自动化测试脚本,用于模拟用户的操作和输入,并验证软件的功能。 4. 测试执行和报告生成:使用自动化测试工具执行测试脚本,并生成测试报告,包括测试结果、错误信息和建议。 5. 错误修复和迭代测试:根据测试报告中的错误信息,开发团队进行错误修复,并进行迭代测试,直到软件达到预期的质量标准。 通过云燕DevOps自动化测试,可以实现以下几个好处: 1. 提高测试效率:自动化测试可以大大减少测试人员的工作量和时间,提高测试的效率。 2. 提高软件质量:自动化测试可以快速、准确地执行测试用例,发现潜在的问题,提高软件质量。 3. 快软件交付速度:自动化测试可以快速执行,减少测试的时间,从而快软件的交付。 4. 减少人为错误:自动化测试减少了手动测试的过程,减少了人为错误的可能性。 总之,云燕DevOps自动化测试是一种通过自动化工具和脚本执行测试任务的方法,可以提高测试效率、软件质量和交付速度。它在软件开发与运维中起到了重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值