最近刚刚完成java项目上线,在此略作整理,也给在座各位打发下时间。

1.java网站上线流程:

公司内部服务器-->github-->IDC机房预发布机器-->测试集群-->线上集群

开发人员将java web网站代码传到公司内部服务器,git add . ,git commit -m 'version2.0' ,git push上传到我们github上,运维人员从github上将version2.0版本代码下载到预发布机器,并制作成war包,先在测试集群中进行功能检测,bug处理,运行没有问题后,将代码迁移到线上服务器,从而实现java网站项目上线发布运行。

2.war包讲解与制作:

刚刚上线流程已经简要说明,那么对于运维来说,war包的组成与应用可能就不太了解了,如果对这一块不了解,就很难与开发做好合作。
war包的组成:
  

index.html
        添加其他网页文件,如JSP,HTML,CSS,JS,IMG等
    WEB-INT
        web.xml
            war的描述文件
        weblogic.xml
            WEB-INIT和一些xml配置文件用来生成war包
        classes
            一些java类文件存放处
        lib
            jar包文件存放处
    OTHER-DIRECTORIES
        可以创建其他目录,里面能够包含HTML,JSP,IMG等。
    META-INF
        MAVEN自动生成的目录

war包制作与解压
    打包命令(带目录):

jar -cvfM hello.war ./hello

    解包命令:

jar -xvf hello.war

    自动解压:
        放在webapps目录或者work目录下,tomcat只要是运行着的就会自动解压,访问的时候http://ip:port/war包解压后文件夹名

3.新老项目交替:

新项目写完准备上线,一般不会直接把老项目替换掉,如果新项目有漏洞,我们就得还原到之前的老项目。此处实现这种功能的方法比较多,我给大家提供一个简单的脚本,更加方便我们对项目的管理操作。

vim /bin/change

    #!/bin/bash
    #定义war包存放路径
    WAR_PATH=/opt/wars
    read -p '输入war包完整名称' WAR_NAME
    #定义tomcat网页目录
    WEB_PATH=/usr/local/tomcat/webapps/ROOT
    #定义老项目备份存放目录
    OLD_PATH=/tmp/old/
    #将老项目打包存放到指定位置
    cd $WEB_PATH && tar -zcf last.tar.gz * && mv last.tar.gz $OLD_PATH && rm -rf *
    #将新项目部署上线
    jar -xvf $WAR_PATH/$WAR_NAME && cp -r ${WAR_NAME%.*}/* . && rm -rf ${WAR_NAME%.*}

chmod +x /bin/change

将war包项目放到指定目录下,执行change命令即可实现升级功能。

4.转到线上服务集群

在测试集群验证一段时间没有问题后,就可以着手将项目迁移到线上服务器,其实很简单,rsync加innotify即可,此处不做详细说明,各公司有各公司的方案。

项目上线比较简单,没接触过的会感觉高大上,其实你若操作操作也不过如此。以上内容为个人整理,需要改进的地方留言交流。