转至:http://blog.itpub.net/28833846/viewspace-2726722/

一、前言介绍

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

weblogic集群自动批量化补丁升级的更多相关文章

  1. WebLogic集群案例分析

    WebLogic集群案例分析 2012年8月,某证券交易系统(采用Weblogic中间件),由于基金业务火爆,使系统压力太大,后台服务器频繁死机时,这时工程师们紧急调试系统及恢复操作,等完成这些操作花 ...

  2. Docker创建 tomcat/weblogic 集群

    安装 tomcat 镜像 准备好需要的 jdk.tomcat 等软件放到 home 目录下面,启动一个容器 docker run -t -i -v /home:/opt/data --name mk_ ...

  3. 怎么让CentOS集群自动同步时间

    怎么让CentOS集群自动同步时间?首先机器要连外网,这样才能从互联网上同步时间,这是首先要了解的.好了,主要的方法如下: 在除了运行ntpd之外的机器上,执行: [html] # chkconfig ...

  4. docker 实战---部署tomcat\weblogic集群 (二)

    安装tomcat镜像 准备好须要的jdk tomcat等软件放到home文件夹以下 启动一个虚拟机 docker run -t -i -v /home:/opt/data  --name mk_tom ...

  5. 双节点weblogic集群安装

    一.准备工作 1.环境信息规划 Server name Ip地址 Port 备注 AdminServer 192.168.100.175 7001 管理服务器 Ms1 192.168.100.175 ...

  6. CentOS7安装weblogic集群思路梳理

    以前经常用weblogic集群,但是却没有仔细想过要实现它.这不,前两天成功安装了weblogic集群,现在将其思路整理下.防止日后自己忘掉了. 一.安装weblogic10.3.6 1. 在官网下载 ...

  7. CentOS集群自动同步时间的一种方法

    CentOS集群自动同步时间的一种方法 之前有篇日志是手动同步时间的 http://www.ahlinux.com/os/201304/202456.html 之所以这么干,是因为我们实验室的局域网只 ...

  8. weblogic集群的资料

    博客分类: weblogic 其实网上关于weblogic集群的资料非常多[大部分都是从创建新的domain开始,我这篇先介绍怎么样把原本普通的domain改造为集群环境],如果觉得不够,可以啃web ...

  9. 深信服:Weblogic集群负载均衡技术解决方案

      深信服应用交付产品替换集群中的Master节点,以双机模式部署接入,为Cluster 内的服务器提供应用交换服务,结合健康检查和业务特点,提供十几种负载均衡算法组合,满足多种生产环境下的业务需求. ...

随机推荐

  1. Linux定时执行.sh脚本

    因为测试ffmpeg推流用flv方式的话没有做自动断流,所以要先用.sh脚本来执行关流,降低CPU和其他资源占用 首先编写.sh文件 #! /bin/bash echo "kill ffmp ...

  2. Pandas 学习手册中文第二版·翻译完成

    原文:Learning pandas 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 72418 ...

  3. C# 实例解释面向对象编程中的单一功能原则

    在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解.灵活和可维护.这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原 ...

  4. Nacos极简教程

    简介 Nacos是服务发现与注册,服务配置中心. Nacos 具有如下特性: 服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送 ...

  5. IDEA导入maven项目时,报各种包找不到--com.sunyard.encrypt.function

    IDEA错误归类 问题描述1 IDEA启动项目时,报maven引入的包找不到 暂时解决办法 问题描述2 IDEA启动项目时,报普通项目引入的包找不到 解决办法 总结: 问题1和问题2的解决办法明显冲突 ...

  6. 源码推荐 VVebo剥离的TableView绘制

    源码推荐 VVebo剥离的TableView绘制 https://github.com/johnil/VVeboTableViewDemo 此项目由VVebo剥离,希望你能通过这个demo看到我是如何 ...

  7. sort、uniq、tr、cut、eval以及正则表达式

    sort.uniq.tr.cut.eval以及正则表达式 目录 sort.uniq.tr.cut.eval以及正则表达式 一.sort命令 1. sort的作用 2. 语法格式 3. 常用选项 4. ...

  8. HTTP缓存协议实战

    一.什么是缓存 缓存,又称作Cache,我们把临时存储数据的地方叫做缓存池,缓存池里面放的数据就叫做缓存.当用户需要使用这些数据,首先在缓存中寻找,如果找到了则直接使用.如果找不到,则再去其他数据源中 ...

  9. Solution -「SV 2020 Round I」「SRM 551 DIV1」「TC 12141」SweetFruits

    \(\mathcal{Description}\)   link.   给定 \(n\) 个水果,每个结点可能有甜度 \(v_i\),或不甜(\(v_i=-1\)).现在把这些水果串成一棵无根树.称一 ...

  10. Nginx兼容框架的pathinfo模式与URL重写

    几乎所有的框架(ThinkPHP,Zend Framework,CI,Yii,laravel等)都会使用URL重写或者pathinfo模式,使URL看起来更美观,比如可以隐藏掉入口文件,并且有利于搜索 ...