Alibaba Cloud Toolkit 之一键部署远程运行实践

远程执行代码
placeholder image
admin 发布于:2023-11-01 19:53:44
阅读:loading

前一段时间在学习Arthas时,似乎从一些资料里有见到过Alibaba Cloud Toolkit插件相关的应用,再到我本次探索一键部署知识时有些资料里再次提到了它,所以就简单的摸索了一点点,尝试着将我的博客项目一键部署至一个测试环境。

1.基本介绍

Alibaba Cloud Toolkit 是一款基于 Eclipse/IDEA 的插件,旨在帮助开发者更加便捷地在 Alibaba Cloud 上部署和管理应用。它支持多种语言和框架,例如 Java、Python、NodeJS、Spring Boot、Django 等,对开发者来说非常友好。所以一键部署只是它提供众多功能中的一丢丢,高端一点的功能还包含了应用观测、热部署,等等等等,功能上非常非常的多,毕竟整个插件安装包有 120M 的大小,只摸索了一天,尝试着把工作中应用的日常部署测试给部署至测试环境,同时也将我的博客程序部署实践了,所以有一些小小的心得,就拿掌握的一点点远程部署来做一个简单的分享。

本次所实践的远程部署中的远程指的是同一内网环境下的其它服务器,并非云端的服务器(尽管它也可以支持)。以下几种实现方式是工作中见到过的远程部署实现:

(1)maven插件:可一键打包后自动部署至远程服务器,集成在项目的pom.xml中,作为代码配置的一部分存在。

(2)Jenkins是一个流行的开源持续集成和交付工具,可以用于自动化构建、测试和部署软件项目,独立于项目的外部存在,可方便的应用于企业级的团队应用。

(3)IDEA新版自带的Run on,一键部署远程应用,更偏重于开发人员应用,它有着它存在的必要性,本站另有文章专门介绍。

(4)Alibaba Cloud Toolkit插件,本次实践主角。

2.插件使用

(1)插件的安装直接跳过,默认已安装好该插件了,同时IDEA中也导入了对应的项目,直接在程序运行的位置新增加一个“一键部署”的运行配置,参考如下图所示:

新建一键部署.gif

(新建一键部署)

1、Deployment.jpg

(配置Deployment)

2、Advanced.jpg

(配置Advanced)

3.细节说明

(1)部署过程和部署的前置后置需要结合实际项目的情况进行个性化配置,也依赖于不同的打包方式,本次示例是将target目录下的chendd-admin目录下的所有文件上传至服务器,如下是我打包后的文件夹目录结构:

3、项目打包目录.jpg

(2)本次示例的maven打包命令区分test环境,打包的文件均从test环境下取配置文件,参考命令为“-DskipTests=true clean package -P test”,见配置Deployment的图片参考,该命令不需要mvn;

(3)一般在打包时需要判断是否为首次打包,或者说之前打包部署的文件夹是否存在,若存在需要将一些文件夹给删除掉,通常情况下有些文件存在则覆盖,不存在则新增即可,但有些第三方的jar文件升级了,就需要将它们先删除再新增,所以本次的配置中Before deploy提供了conf、lib-jar、lib-local、lib-project这几个目录的删除操作;

(4)一键部署起名“admin-test-8888”,含义是打包admin项目的test环境,并且运行的端口号为8888;

(5)一键部署的位置为“/app/admin-test-8888/”,完整路径为“/app/admin-test-8888/chendd-admin/”,配合启动脚本来便捷管理项目的启动和停止,所以脚本文件中用以判断部署的项目程序是否处于运行状态时,用的“admin-test-8888”名称作为识别条件关键字,若从进程中找到了该关键字,则表示服务器启动中,否则表示未启动,所以要求每个服务器上部署的程序目录名字唯一,管理脚本`startup-dir.sh`可见本站的另一篇文章《Spring Boot 项目启动脚本实践》;

(6)部署前置脚本和运行脚本合并参考如下:

# 前置脚本
if [ -d "/app/admin-test-8888/chendd-admin" ];then
      rm -rf /app/admin-test-8888/chendd-admin/conf/;
      rm -rf /app/admin-test-8888/chendd-admin/lib-jar/;
      rm -rf /app/admin-test-8888/chendd-admin/lib-local/;
      rm -rf /app/admin-test-8888/chendd-admin/lib-project/;
      echo "清空文件夹 /app/admin-test-8888/";
fi
 
# 启动脚本
cd chendd-admin/bin;
sh startup-dir.sh restart;

(7)启动脚本中包含了120秒的日志监控,所以在启动命令结束后,并没有再单独增加日志监控的脚本;

4.部署过程

一键部署.gif

(精简版)

(1)完整版图片较大3M,有兴趣自行下载,参考下载:《启动过程gif.zip》 ;

(2)该插件功能较为强大,本次也只是摸索了其中的一个功能,后续应该会有其它相关的文章;

(3)一键部署具体在应用时需要结合实际的场景,如:项目打包的目录结构、管理项目的启停脚本等,给出一个契合度较为优雅的启停管理脚本《startup-dir.zip》;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区