目前我们每次版本发布时大致流程为:停所有服务器→传war包→刷数据库脚本→启动所有服务器。整个流程经常因为数据库脚本有误、操作员不熟悉操作规范、 安全策略要求使用堡垒机逐个登录各服务器操作等原因而导致发布过程漫长,我们需要开发实现一个自动发布的工具,当进行版本发布时,先将war包、数据库脚 本等上传至服务器指定目录后,操作员可以通过浏览器访问一个页面,输入后续操作需要的用户名密码(如刷数据库脚本时需要的数据库用户名密码)、然后通过傻瓜式的发布向导指引操作员"是否停止服务器"、点击下一步按钮"是否开始上传war包"、再点击下一步按钮"是否开始刷数据库脚本"等。每一步都实现程序自动控制,并且每一步操作都有提示结果返回,以便在操作员发现自动程序出错时改为手动执行,直到整个发布过程结束。
总体设计方案:
1、 整个软件架构为:一个部署在某台服务器上的HTTP Server作为总控的客户端,在生产环境各应用服务器上各部署一个简化的HTTP Server作为服务器端。客户端作为Web服务器向操作员提供web操作界面,并接收操作员指令向各服务器端发送命令请求,服务器端执行命令后返回结果,在客户端将其显示以便操作员掌握指令执行情况。
2、 客户端为JSP+Java Bean架构,JDK版本1.5,须运行在J2EE容器之上,可通过部署一个Tomcat或者在应用中内嵌Jetty实现。
3、 服务器端执行客户端的指令请求是通过Java调用本地Shell脚本实现的,并接收脚本执行的输出内容返回客户端。
4、该次版本实现各服务器仅实现停止、启动和重启Weblogic各节点的指令;向数据库刷脚本的操作是由客户端通过调用本地的Oracle客户端实现。
页面设计方案:
1、 首页为登录页