架构系列(五)应用架构准备就绪,是时候开始自动化上云了

首语

关于应用架构,博主会出一系列的后台相关博客。为大家展示

之前介绍了一些云资源的使用和设计。那么,当应用框架与服务器全部准备就绪之后,我们如何快速的进行自动化的发布。博主这里介绍一小部分利用jenkins这样的工具配合脚本,进行快速发布(restart,就是要暴力)

并不是所有的业务场景一定要求99.999%,并且要求蓝绿或者灰度发布。因为这样的运维成本是非常高的。

自动化工具

市面上有n多的自动化工具。大部分公司可能会使用jenkins。博主团队使用自建devOps+jenkins。尽可能减少对jenkins的依赖

自动化方式

目前就简单的业务场景(暴力restart),来为大家展示
最简单的方式,将大部分的命令直接写在jenkins中,但是这样做,就会将自动化命令分散。
我们可以创建一个devops项目,将命令以及配置都放在这个项目,提供更多的脚本执行参数
在这里插入图片描述

后端自动化脚本

这里放一个最简单的restart脚本

#执行命令如: sh /home/digital/gateway/deploy.sh restart gateway qa

#!/bin/bash

ACTION=$1
APP_NAME=$2  # jar包
ENV=$3  # JAVA spring.profiles.active

JAR_NAME="$APP_NAME.jar" # jar包的名字
APP_PATH=/home/digital/${APP_NAME} #所有的应用放在digital用户下当前应用的目录下
PID_FILE=${APP_PATH}/pid   # 应用的pid会保存到这个文件中

echo "ACTION: $ACTION, APP_NAME: $APP_NAME, ENV: $ENV, JAR_NAME: $JAR_NAME, APP_PATH: $APP_PATH"

#创建相关目录,如果存在就算了(jenkins会自动创建)
if [ ! -d ${APP_PATH} ]; then
  mkdir ${APP_PATH}
  echo "$APP_PATH is created."
fi

start() {
    echo "start ${APP_PATH}/${JAR_NAME}"
    if [ -f "$PID_FILE" ] && kill -0 "$(cat ${PID_FILE})"; then
        echo "Application is running, exit"
        exit 0
    fi

    java -jar ${APP_PATH}/${JAR_NAME} --spring.profiles.active=${ENV} >/dev/null 2>&1 &
    echo $! > ${PID_FILE}
}


stop() {
    echo "stop ${APP_PATH}/${JAR_NAME}"
    if [ -f "$PID_FILE" ]; then
        kill -9 `cat $PID_FILE`
        rm $PID_FILE
    else
        echo "pid file $PID_FILE does not exist, do noting"
    fi
}

case "$ACTION" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
esac

前端自动化脚本

这个其实很简单,分两种情况:

  • 前后不分离:这种统一走后端脚本即可,前端资源都在后端的web服务器上
  • 前后分离:以nginx为例,以vue为例,使用build之后,打成zip,然后流程一样,scp到服务器,然后unzip解压,restart nginx即可,后续博主会有前端服务器以及自动化设计的博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值