资讯专栏INFORMATION COLUMN

应用维护之后台进程

IT那活儿 / 2942人阅读
应用维护之后台进程
[
一、后台进程介绍
]


应用后台进程的意义不同于系统后台进程,系统后台进程指的是系统守护进程等,应用后台进程指的是应用系统中独立部署的一种进程,一般此类进程大多按功能点划分部署,一个进程实现一个功能点。


使用后台进程的优缺点:

优点:通过后台进程实现功能的解耦,当业务需求变更时,只需要找到对应功能的进程进行代码更新即可,且便于版本上线发布;


缺点:业务复杂且变更频繁的系统,会产生大量的后台进程,不便于后期维护管理;


[
二、后台进程的管理
]


以某运营商为例,笔者刚接手生产系统维护时,维护范围包括2000多的后台进程维护,但没有任何的资料,进程的功能用途全都在前辈的脑海里。


1、梳理后台进程信息

该项工作前期花费笔者大量时间,前期跟局方多次讨论后确定可能涉及的项目后,花费数月的时间将分布在40余台小机上的进程进程信息并整理入库。


1 )主要梳理方法通过ps取到所有进程的运行目录,然后根据目录类启动脚本进行匹配,得到进程目录、脚本、进程数量、开发语言、资源类等部分所需信息形成初步进程列表。


2 )将初步进程列表反馈给局方以及开发商,协调其补充进程信息、业务、项目经理、网络等信息,形成一个较为完备的进程信息并写入到性能基线库的process进程信息表,如下;

这是个排雷踩坑的过程,期间发现各式问题(分享2个常见问题):

1 )期间发现大量无人认领的进程,对于该部分进程只能以现有信息入库作为存量待补全进程,在后期版本更新中慢慢补充;

2 )同一目录多个进程多个启动脚本且脚本之间相互有交集,对于该部分只能仔细区分同时协调开发商测试环境进行确认;


2、梳理完善进程监控

在前期进程信息梳理基本完成后,开发工具对主机进程进行管理,主要两个方面:


1 )常驻进程监控,同步process表至主机比对主机实际运行进程情况,主要比对进程数量、生产用户以及资源使用等情况


2 )定时任务监控,主要与process表数据对比,是否存在未经授权或登记的任务;


3、梳理进程用途及责任人

在初步完成主机进程整理以及监控后,由于局点每月有多次上线任务且均伴有进程上线或更新工作,经与局方讨论我们开始对进程涉及业务、涉及资源(数据库、中间件、网络、文件系统等)进行登记及新增进程审核等工作。

存量进程:基于监控项梳理责任人后,分别跟进责任人确认进程功能用途;


新增进程:版本上线前要求开发侧提交进程信息,介入进程评审管控,上线完成后对实际进程进行检查;

对于进程管理经与局方讨论,目前已明确所有进程变更(新增、修改、下线)均要求走进程变更流程,按下图excel表格提供进程信息提交维护团队进行评审管理。


评审通过后将进程信息更新入库。


[
三、进程故障诊断及处理
]


在维护后台进程过程中,笔者发现进程故障主要有以下三种情况:


1、进程异常掉线

对于进程异常掉线情况,目前已做bomc监控以及异常进程信息入库等


2、进程僵死

在进程维护中,经常会发现进程状态或者日志等均显示正常,但是进程数据未得到处理,这种情况我们将其定义为僵死。该种情况目前处理办法主要是通过添加业务监控,发现数据积压或规定时间未处理及时告警。目前该种情况笔者及同事未有较为有效的办法进行处理,欢迎提供意见。


3、处理效率不足

特殊情况下处理效率问题主要是月头月末关键进程比如各渠道的缴费、停开机等数据量监控,发现处理效率不够时及时扩容进程个数等。


[
四、进程高可用改造及性能优化
]


进程信息梳理完后,标志后台进程已经纳入维护管理范围,但并非针对进程的维护到此为止,专业的维护工程师还可以进一步对后台进程进行高可用改造及性能优化;


1、进程高可用

1 )对进程进行分级,时效性要求没有那么高,我们目前采用冷备的方式实现进程高可用;

2 ) 对关键、实时性要求较高进程,我们采用分布式部署;

流程说明:

  1. 进程调用中间件来驱动任务处理。

  2. 中间件调用zookeeper获取锁,如果获取失败,则等待一定时间,再次尝试。

  3. 获取锁成功后,查询数据,将取出的数据状态修改为处理中。

  4. 中间件调用zookeeper释放锁。

  5. 逻辑处理。


2、数据源高可用

考虑当出现数据库单节点故障时,支持进程failover自动切换,同时采用LDAP实现数据源的统一管理。

1 )在所有进程主机上配置优先使用ldap获取tnsname

  1. ) 将tnsname配置为支持failover自动切换


3、进程的分类分机器部署

为了方便进程的管理,我们按进程所属业务分类,将一类业务的进程都集中部署到指定的几台机器,提升可维护性。

目前共计部署有54台进程主机,共计分16类业务主要包括集团业务、工单发送、后台批量、短信等


4、后台进程之守护进程

后台进程的守护进程是指通过定时任务的方式定时探测后台进程状态是否存活,如状态异常则立即重启后台进程。

使用守护进程的优点是异常自愈,缺点是异常处理不够健壮的进程,出现故障时容易反复掉线。守护进程反复重启,可能会掩盖掉进程的监控告警,不便于运维人员及时发现异常。

因此笔者维护的系统一般在开发商修复过程中使用,其他情况不推荐使用守护进程。


[
五、进程自动化
]


1、后台进程的批量启停,批量启停笔者分了两种场景


1 )按机器全停,该场景适用于大型割接,局点业务全停

2 )部分资源割接,涉及指定进程,该部分通过process表配置启停任务程序自动处理;


2、数据源切换

配置进程failover自动切换,同时采用LDAP实现数据源的统一管理


3、平台查询功能

目前可以通过自动化平台查询各进程相关信息等


[
五、总结
]


后台进程作为应用系统中的一种类型,维护思路与中间件等其它应用大同小异。由于笔者维护系统的特殊性,后台进程非常多,且变更频繁。在初期维护过程中走了不少弯路,特此总结下经验分享给大家。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130107.html

相关文章

  • 构建 Web 应用 Service Worker 初探

    摘要:诞生之初,是单线程的。当接收到服务端的响应之后,便通过回调函数执行之后的操作。冲锋基于事件驱动。拥有拦截请求消息推送静默更新地理围栏等服务。控制时处于两种状态之一终止以节省内存监听获取和消息事件。支持的所有事件五销毁浏览器决定是否销毁。 这次体验一种新的博客风格,我们长话短说,针针见血。 showImg(https://segmentfault.com/img/remote/14600...

    voidking 评论0 收藏0
  • 干货|宏巍软件Java线程监控

    摘要:宏巍电商软件是在阿里体系内使用他们的,然后在上用多进程做的集群,端和接口系统都是使用语言实现的。宏巍电商软件架构我们尝试过很多方法来进行线程状态的监控,比如开始时使用等工具来读取的状态,同时也尝试用过的,但都不能满足电商产品性能监控需求。 宏巍软件 许向 大家好,我是上海宏巍信息技术有限公司(简称:宏巍软件)的许向,宏巍软件成立于2005年,是一家以电商ERP软件开发为主的高新技术科技...

    entner 评论0 收藏0
  • Docker 笔记(1):介绍、镜像、容器及其基本操作

    摘要:由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。镜像实际是由多层文件系统联合组成。容器可以被创建启动停止删除暂停等。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。 Docker简介 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS ...

    khs1994 评论0 收藏0
  • ANR详细介绍

    摘要:使用或者时,调用设置优先级,否则仍然会降低程序响应,因为默认的优先级和主线程相同。使用处理工作线程结果,而不是使用或者来阻塞主线程。目录介绍 1.ANR简单介绍 2.ANR发生场景 3.ANR发生的原理 4.ANR有哪些具体案例 5.ANR具体如何分析 6.解决方案 7.ANR问题解答 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,P...

    番茄西红柿 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<