Skip to content

一个Java应用一键部署和自动升级的工具

License

Notifications You must be signed in to change notification settings

Zerounary/JavaStarter

Repository files navigation

JavaStater

包含发布版本管理,Java应用发布,一键部署,增量升级

需求场景

在一些Java项目制的开发中,开发人员在开发之后,将应用(如接口程序)部署到客户自己的应用服务器上。后期,由于代码变化,就需要将新编译产生的class文件,复制到客户环境上替换代码。

整个操作过程是,(1)要客户服务器远程。(2)登录远程服务器替换文件。(3)重启Java应用。

如果这个项目代码只有一个客户会用到,是客制化的开发还好。

但是,如果后期成为了一个标准化产品。部署方式还和原来一样就会很有问题了。

第一个问题是,加入已经上线了100个客户,如果因为一个数据查询取值错误的BUG,造成有一小段代码变化了,需要到客户环境上替换class文件。因为有100个客户,就需要重复的到不同客户环境上去升级替换。如果,某些客户还进行过一些客制化的开发,或者环境差异带来了新的问题,就更让人头疼了。

使用效果

在发布阶段,开发人员通过发布工具(Publisher)向发布服务器(Server)发布应用(War包/Jar包),发布工具会将Java应用程序存储到服务器,并提供资源路径供部署程序(Deployer)下载。

每次Deployer下载都会默认下载最新版本的应用。也可以下载指定版本的应用。Deployer根据应用中的环境要求为应用自动下载安装运行环境(下载JRE,Tomcat等)。运行环境搭建好后,将Java应用程序在环境中运行,如果需要会注册为启动运行。

Deployer每分钟,都会和服务器保持心跳,检查更新。如果监测到有强制更新的内容,会根据更新脚本(增量OR全量)自动更新应用。如果有异常日志会自动推动到服务器,并邮件通知相关人员。

技术要点

  • 使用什么GUI框架
  • 文件发布发布使用什么
  • GO如何注册到开机启动运行
  • 有什么版本管理工具
  • 邮件通知
  • 定时框架

About

一个Java应用一键部署和自动升级的工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages