CICD+蓝绿部署
详解:
1、服务类型:本服务是负载的、两个服务、通讯接口服务、通过阿里云的SLB来接收请求、把域名解析到SLB、然后上下游调度、API请求
2、构建作用:本脚本流程就是CICD构建、灰度发布、实现服务之间无状态切换、
3、步骤:
(1)、首先拉取代码(git或者svn)
(2)、前提是把docker镜像打出来(mvn、加环境变量、dockerfile、把镜像打出来)
(3)、然后就是下面CICD脚本(就是2个shell命令模块)
(3.3.1):启动第一个模块(HEAD探测是否接口正常、2分钟的缓冲器)、HEAD探测成功后报警通知
(3.3.2):构建第二个模块、然后HEAD检测后报警通知
(4)、Jenkins构建成功失败告警通知
第2步
#!/bin/sh
. /etc/profile_jdk11
cd ${JENKINS_HOME}/workspace/${JOB_NAME}/src/main/resources
sed -i 's/spring.profiles.active=dev/spring.profiles.active=prod/' application.properties
cd ${JENKINS_HOME}/workspace/${JOB_NAME}
mvn clean install dockerfile:build -Ddockerfile.tag=${BUILD_TAG} dockerfile:push
###dockerfile文件
FROM openjdk:11.0.7
MAINTAINER jigaobo <jigaobo@163.com>
VOLUME /tmp
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
EXPOSE 7090
ARG JAR_FILE
ADD ${JAR_FILE} ipu-mcapi-microservice.war
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/ipu-mcapi-microservice.war"]
###157执行模块
echo date +'%Y%m%d_%H_%M_%S'
echo `date +'%Y%m%d_%H_%M_%S'` > /opt/a.txt
echo 11111 >> /opt/a.txt
/ipudata/runsh/ipusoft-mcapi-microservice.sh ${BUILD_TAG}
###此脚本就是docker的stop、pull拉取新的镜像、然后start运行镜像
sleep 60
#!/bin/bash
set +e
curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
sleep 30
fi
curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
sleep 30
fi
curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
sleep 30
fi
curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
sleep 30
fi
curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
echo "命令执行失败,退出构建"
exit 1
fi
set -e
curl -I http://172.16.17.157:7090/HEAD/jenkins && curl -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"157节点HEAD成功\"}}" webhook连接地址
###141执行模块
echo date +'%Y%m%d_%H_%M_%S'
echo 22222 >> /opt/a.txt
echo `date +'%Y%m%d_%H_%M_%S'` >> /opt/a.txt
/ipudata/runsh/ipusoft-mcapi-microservice.sh ${BUILD_TAG}
###此脚本就是docker的stop、pull拉取新的镜像、然后start运行镜像
sleep 60
curl -I curl -I http://172.16.17.141:7090/HEAD/jenkins && curl -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"141节点HEAD成功\"}}" webhook连接地址

浙公网安备 33010602011771号