云效

Posted by ni on December 2, 2024
本文共2851 字 | 大约需要9.5 分钟阅读

学习使用云效的3个基本功能

  • 代码管理
  • 制作仓库
  • 流水线

代码管理

在云效中,它为我们提供了一个内部的代码管理仓库。其实就和github,gitlab是一样的,供我们和团队内的其它同学一起协作开发。

以本地的一个工程代码smartplan-user为例,将工程代码上传到云效的代码管理,然后再次基础上进行协作开发。

  1. 新建代码仓库

  2. 找到本地项目所在的目录。执行相关命令将本地项目代码上传的远端仓库

    cd existing_folder
    git init
    git remote add origin https://codeup.aliyun.com/63412cc6bd947c7ec67c22a5/smartplan-user.git
    git add .
    git commit
    git push -u origin master
    
  3. 在最后git push -u origin master 推送代码之前,点击头像–>在个人设置中配置相关方式。

    这里的https的密码账户不是我们云效的登录用户名好密码,就是专门添加了之后用于git推送代码的。

  4. 上传成功之后就可以在云效看到了。

制品仓库

云效提供了制品仓库这么一个服务。如下图,大家可以看到,为java后端提供Maven的团队内部仓库,为前端同学提供了NPM的内部仓库。这些仓库充用于存储我们自己开发的内部依赖的包,只供团队之间依赖使用,不会对外暴露。

以刚才的smartplan-user这个服务为例,它需要暴露自己的服务,供其他服务调用。所以这里的smartplan-user-api模块就封装了feign的相关内容,其它微服务如果有调用user服务的需求,就可以依赖这个模块。所以我们需要将它放到制品仓库去。

  1. 以为maven为例,登录自己的云效的,找到下图的位置,即有详细教程配置教程。

  2. 将教程中相关的配置设置完毕之后,即可推送到制品仓库仓库。推送成功之后,其它小伙伴配置之后即可使用

流水线

接下来介绍流水线功能,这个功能可以帮助我们将代码检查,编译打包,上传部署,启停服务等一系列频繁而重复的工作,进行自动化的管理。最终达到的效果可以是,代码分支有提交,就可以自动完成刚才说的一些步骤,然后在服务器上,运行着最新的代码。

以刚才的smartplan-user这个服务为例。我们将创建一个流水线,然后最终部署到指定的服务器。

  1. 进入流水线模块,新创建一个流水线

  2. 添加流水线,就是选择代码源和相关设置。

    在此我们开启代码源触发,待会就可以达到有commit就可触发流水线的运行。

  3. 新建第一个任务,比如我们这里是java项目,那我们可以选择一个代码扫描。让我们的源码进行一次阿里的java代码规范的扫描。这个任务基本不用设置什么参数。

  4. 新建第二个任务,这里我们就选择java构建。

    这里需要修改打包路径,一般情况下,我们打包之后,服务的jar包就在target文件夹下,然后这里的deploy.sh这个启停脚本会也需要一并打包。构建这步就会进行编译打包,并且会将打好的包放在云端。在后面供下载。

    1.smartplan-user-service/target/smartplan-user-service-1.0-SNAPSHOT.jar

    2.deploy.sh

  5. 新建第三个任务,选择主机部署。

    选择自己的下载上一步打包好的制品。选择部署的主机,我这里已经配置了一个主机了。但是大家第一次操作的时候,选择新建主机组。

    如果你有阿里云的服务器,那非常的方便。但如果你是其它云的服务器,就选择自有主机

    这里我已经新增好了一个实例

    回到部署配置页,选择刚才新增的主机组。这里的下载路径,就是将构建那一步产生的包,下载到我们服务器的指定目录,然后就可以在下面编写部署脚本。

    写了个简单的脚本

    cd /home/jogeen/app/user #切换到下载的目录
    ./deploy.sh stop         #停掉之前的服务
    tar -zxvf package.tgz    #解压当前下载的最新包
    chmod +x deploy.sh       #重新给启停脚本新增运行权限
    ./deploy.sh start			   #用启停脚本启动服务
    

    下面附带一个启停脚本

    #!/bin/bash
    app='smartplan-user-service-1.0-SNAPSHOT.jar'
    args='-Xms512m -Xmx512m'
    cmd=$1
    pid=`ps -ef |grep $app | grep -v 'grep'| awk '{print $2}'`
       
    startup(){
      nohup java -jar $args smartplan-user-service/target/$app > logs/server.log &
    }
       
    if [ ! $cmd ]; then
      echo "Please specify args 'start|restart|stop'"
      exit
    fi
       
    if [ $cmd == 'start' ]; then
      if [ ! $pid ]; then
        startup
      else
        echo "$app is running! pid=$pid"
      fi
    fi
       
    if [ $cmd == 'restart' ]; then
      if [ $pid ]
        then
          echo "$pid will be killed after 2 seconds!"
          sleep 2
          kill -9 $pid
      fi
      startup
    fi
       
    if [ $cmd == 'stop' ]; then
      if [ $pid ]; then
        echo "$pid will be killed after 2 seconds!"
        sleep 2
        kill -9 $pid
      fi
      echo "$app is stopped"
    fi
    
    1. 最后配置好了,可以手动运行流水线,也可以通过提交代码出发。