资讯专栏INFORMATION COLUMN

老软件问题种种

bbbbbb / 3083人阅读

摘要:基于的软件系统部署时分层为应用包包启动脚本包这就是基线,三个环境中的分层,任何一层在发布上线过程中的不一致都会导致潜在的问题。人们发明了各种工具进行排包,判断,目前仍无法完全确保这种情况的万无一失。

一个软件
数据活的一定比应用长,
应用活的可能比维护的人长

有年头的老应用,通常最早的设计者已经不在了。

最初关注点,业务域的约束,以及为什么在这里是这么设计的信息都没有了。通常除了原创者,接手做维护的人,没有有全面的了解,可能也没有主观意愿想让其继续更好的工作下去。

设计是一个讲究权衡的过程,了解的信息越多,越能更好的选择策略。

所以后续的维护者会遇到以下问题范式:

基线问题

正常发布上线会经历三个日常,预发,线上三个环境。我们希望三个环境完全一致。基于linux的软件系统部署时分层为:

应用包

jar包

启动脚本

RPM包

OS

这就是基线,三个环境中的分层,任何一层在发布上线过程中的不一致都会导致潜在的问题。

随着时间推移,无论是谁在某台机上因为一些原因,动了一下脚本,问题就开始了。 可能在某个环境测试正常的应用,在下个环节就出了莫名其妙的情况。

这也是为什么一定要在组织中推动镜像化,docker形式的集装箱式封装,保证了以上几种层次在各个环境的一致性。杜绝前任跟下任埋坑。

我也曾遇到过日常预发的中间件基线版本跟较高,而线上中间件基线用的是已经找不到的老包,并且与部署系统用的基线仍不一致,这样的应用连无状态扩容都不行。

日志问题

日志是线上系统查问题利器,随着不断遇到问题,工程师倾向于打越来越多的日志。

INFO级的日志过多,线上系统一般会采用WARN级以上的打印级别。为了能看到日志,会有人把日志打到WARN,ERROR级别。

慢慢的,普通的排查日志取代了正常应该显示异常ERROR的日志,填满了正常输出,让初次看的人无从下手。只能靠看Exception,但毕竟不是有Exception就会导致系统业务异常,需要一段时间的观察才有更好的判断。

冲突问题

通常老应用在每次功能增加后,都有可能引入新的jar包。

由于maven的机制,新包会带来更多附带的包,这些问题在编译时并不能发现,只有随着JVM启动,业务线程跑到此处时类加载器才会报出Class Not Found/java.lang.NoClassDefFoundError 等问题。

人们发明了各种工具进行排包,判断,目前仍无法完全确保这种情况的万无一失。比如,还有一种方式通过扫描应用WEB-INF下的lib包名来辅助判断是否有相似jar包。

所以

每个应用都有它的故事,devops应有对以上问题处理的意识。

本文来自微信公众号「麦芽面包」,id「darkjune_think」
转载请注明。长按图片识别二维码关注。
交流Email: zhukunrong@yeah.net

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

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

相关文章

  • 使用 OAuth 2 和 JWT 为微服务提供安全保障

    摘要:作为目前最主流的微服务框架,发展速度很快,成为了最全面的微服务解决方案。通过认证后,转发给内部相应的服务器。所有远程访问资源服务器相关的必须提供。 Part 1 - 理论相关 作者 freewolf 关键词 微服务、Spring Cloud、OAuth 2.0、JWT、Spring Security、SSO、UAA 写在前面 作为从业了十多年的IT行业和程序的老司机,今天如果你说你不懂...

    littleGrow 评论0 收藏0
  • 使用 OAuth 2 和 JWT 为微服务提供安全保障

    摘要:作为目前最主流的微服务框架,发展速度很快,成为了最全面的微服务解决方案。通过认证后,转发给内部相应的服务器。所有远程访问资源服务器相关的必须提供。 Part 1 - 理论相关 作者 freewolf 关键词 微服务、Spring Cloud、OAuth 2.0、JWT、Spring Security、SSO、UAA 写在前面 作为从业了十多年的IT行业和程序的老司机,今天如果你说你不懂...

    xzavier 评论0 收藏0
  • 新手福音:巨杉数据库教程专区上线啦!

    摘要:为了提供更优质的学习资源,巨杉数据库的技术大牛录制了一套视频教程,以简单直观的方式提供大家学习使用巨杉数据库。如果你是刚刚接触巨杉数据库的用户,本套教程会让你对巨杉产生一套完整的认知,并系统的掌握使用方法。 作为一个程序员 在经历了种种入门之后…showImg(https://segmentfault.com/img/bVMhAI?w=640&h=406); showImg(https...

    liujs 评论0 收藏0
  • 杂谈:渐进增强与优雅降级

    摘要:而渐进增强和优雅降级两种不同的开发流程,也是在我们项目初期做调研选型时会考虑的一个点。二者区别渐进增强和优雅降级只是看待同种事物的两种观点。渐进增强和优雅降级都关注于同一网站在不同设备里不同浏览器下的表现程度。 作为一名前端开发人员,最头疼的莫过于浏览器兼容。远古时期万恶的IE6,到现在CSS3不兼容的IE7/8.为了保证不同版本浏览器都有共同或更优化的用户体验,前端搬砖的我们不得不与...

    hiyang 评论0 收藏0

发表评论

0条评论

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