ITPub博客

首页 > 应用开发 > Java > weblogic集群自动批量化补丁升级(一)

weblogic集群自动批量化补丁升级(一)

原创 Java 作者:jaymarco 时间:2020-10-13 22:04:49 0 删除 编辑


一、前言介绍

    Weblogic是一种基于J2EE架构的中间件,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,是目前商业市场上主要的J2EE应用服务器软件之一,广泛应用于运营商、金融、政府、证券行业等。目前绝大部分企业的核心系统都承载在Weblogic中间件上面。规模较大的核心系统的weblogic集群至少100+节点来管理业务应用,就是为了保障业务系统7*24小时高可用服务在线。然而,大规模的业务系统使用的weblogic中间件软件时常会有安全加固和软件漏洞问题,这些问题都是需要用weblogic软件软件补丁来修复,才能确保系统业务运行安全可靠。现在面临的问题是当前采用纯手工升级方式来修复对于100+大规模的weblogic集群节点补丁升级效率无疑是很低的,工作量庞大,又容易出错。甚至要消耗大量的人力和物力成本。如何提升WebLogic中间件集群补丁升级的效率是目前有待解决的问题。

二、升级痛点

    在大规模的weblogic集群环境下人肉升级weblogic补丁会存在以下缺点:

         1)、效率低下:首先是人工通过命令来升级补丁,1台主机15分钟,100+以上节点需要至少24小时,如果并行来操作需要安排更多的人力来支持,这样工作量巨大,耗费大量工作时间。

        2)、容易引起误操作:由于要求短时间内快速定位升级问题处理。非常容易引起误操作,导致前功尽弃。

        3)、长时间业务中断:不能在客户指定时间内完成补丁修复,意味着业务中断的时间大大拉长,将大大降低客户的满意度。

        4)、升级问题诊断:由于没有很好的升级日志输出,一旦升级失败无法快速定位升级失败原因。

        5)、补丁回退问题:因升级补丁导致业务无法办理,影响客户满意度。当升级失败后客户提出回退 补丁来恢复业务。重复的工作量,也无法保证补丁在指定时间回退成功。

三、提出人肉变自动化技术

    通过客户提出来的痛点,我们研究了一套有效而又能落地的方案,就是将人肉变自动化。那就是weblogic集群自动批量化补丁升级,通过一系列自动化脚本指令交给机器去完成升级工作,升级过程中脚本会打印升级日志信息到文件中方便升级问题诊断,然后自动化的将日志汇总出升级成功和失败的结果信息出来。不需要完全依赖于人工处理,直接自动批量升级操作。完全解脱了运维人员人工升级工作,大大提升了运维升级效率,也提高了客户对维护工作的满意度。

    本项技术采用三层模式来实现:



1 )、配置准备

该层主要负责补丁升级前的配置准备,主要由建立主机互信、配置更新、补丁批量上传和软件备份等操作部分。该层是升级补丁的前置工作,并将要升级的weblogic 集群节点的主机IP 地址和账号密码配置到指定参数文件中,然后执行脚本实现主节点和从节点之间的主机互信关系。而建立主机互信关系的目标是为了通过一台主机远程操作其它节点免密码校验,直接控制多台主机实现补丁批量上传、软件备份和补丁升级工作。一台机器远程管理多个备节点升级操作大大增强。

2 )、批量升级

       该层的批量升级是本方案的核心层,通过前置准备条件建立了主机之间的互信访问关系后,该层就可以实现一台主机操作多个节点的条件。补丁批量升级首先可以通过weblogic 自带的wlst 工具完成服务的停止或检查,然后在借助weblogic 自带的bsu 工具进行补丁升级,但是这里批量升级完全是通过脚本自动化批量并行来处理,并且脚本是具备了补丁冲突校验功能,一旦补丁校验返回的冲突,脚本会判断下一步是要删除旧的补丁,然后在去正常升级。否则直接进行升级。该层自动化批量升级具备良好的逻辑条件判断机制,一旦部分升级失败还是会继续升级不影响其他节点升级工作,最后会将升级失败的节点输出日志文件中,方便排查升级失败问题。整个升级流程全部实现自动化。

附批量升级代码:


批量补丁回退代码:

3 )、结果校验

  该层主要负责对整个升级结果作出校验与判断,并将升级的全部过程的日志信息记录到文件,方便升级问题诊断。最后解除weblogic 集群节点主机之间的互信关系,保持原有系统登录状态。

四、升级流程图

自动化升级流程图如下:


1)补丁升级前置条件,采用shell脚本配置集群主机节点免密码访问。

2)通过shell脚本实现补丁解压和配置文件变更,并将补丁文件自动传输到集群节点的指定路径下。

3)采用weblogic自带的wlst工具调用python启动服务脚本实现自动化批量启停weblogic服务。

4)通过shell脚本去完成自动校验补丁冲突、自动补丁删除和自动批量补丁安装等一系列操作。

5)整个升级过程都会记录每一个步骤,并以日志文件方式来存储,方便升级失败后续问题跟踪。

6)升级完成后自动进行日志统计,报告出升级成功率。最后自动解除主机互信关系。

五、总结

    通过此项技术从人肉转变成自动化运维,为工程师与客户带来了高效运维、也为客户免去人工升级带来的问题和人力浪费。更加有效的减少了weblogic集群补丁升级引发出来的故障,避免了工程师过于依赖于人员对于系统的熟悉程度,技术水平等条件,提高了故障处理的成功率。特别是批量升级模块中的补丁冲突校验子模块可以实现自己判断补丁冲突问题,提升自动化补丁升级的智能化。 而结果校验模块中的升级核查子模块也能进行自动排查升级,并将整个升级过程以日志文件记录出来,方便问题定位分析。大大减少了日志查找与定位时间。说到最后重点还是能将重复性的工作转化为指令级变为自动化,解放双手,才能体现运维工作的价值。

有需要的朋友可以关注我的公众号,文章每日一更





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28833846/viewspace-2726722/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
负责数据库、中间件、大数据等基础软件建设、优化和业务保障工作。具有10年的电信与银行企业一线/二线运维管理经验。目前专注研究云计算、中间件和数据库等领域技术研究。持有Oracle OCP、weblogic OCP、Docker容器、PGCE和阿里云ACP等认证

注册时间:2020-06-22

  • 博文量
    65
  • 访问量
    27674