软件生产环境系统监控方案设计_第1页
软件生产环境系统监控方案设计_第2页
软件生产环境系统监控方案设计_第3页
软件生产环境系统监控方案设计_第4页
软件生产环境系统监控方案设计_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 软件生产环境系统监控方案设计 架构之家 微信号 itfly8功能介绍 ITFLY8架构之家,专注于架构知识分享交流,涵盖项目管理和产品设计。包括大型分布式网站架构(高性能,高可用,缓存,消息队列.),设计模式,架构模式,大数据,项目管理(SCRUM,PMP,Prince2),产品设计等作为软件开发人员,我们的最终目标是让自己的辛勤工作能顺利部署到生产环境中。如今凭借敏捷开发、DevOps和连续部署工具,我们已经能够让此过程变得比以往更快速了!但是,我们需要记住的是:软件部署更是一个过程,而非单一的事件。因此,作为该过程的一部分,你需要监视生产环境中的各种服务器和应用程序,以确保每一步都能够平

2、稳运行。在本文中,将讨论在软件部署过程中应该监控的八个关键方面。1.了解你的错误率程序错误是识别应用程序问题的第一道防线。因此,在所有监控范围内的服务器上,开发者需要收集出现的全部错误。这些错误将有助于准确定位那些在部署新的软件应用时出现的问题。当然,在部署过程中,它们还会产生大量的“噪声”。比如:在部署的环节中,应用程序中途被重新启动是很常见的情况。因此,这些都可能会导致大量的,诸如:SQL连接问题、线程中止异常、以及其他类型的短暂错误。提示:在部署之前,掌握自己应用程序的标准错误率是非常重要的。这样你就可以判断出在部署之后,各种问题是成上升趋势,还是仍然保持着正常的错误率。提示:寻找那些你

3、从未见过的、新的应用程序错误。有趣的是,那些新产生的、空的引用异常,SQL的超时,或其他出现的错误,都会随着新的部署而浮出水面。所以你需要迅速找到它们,并为修复它们做好准备。注意:请重点关注那些通过你的代码本身所记录下来的、由应用程序异常所产生的HTTP 4XX和5XX的错误。2.比较Web流量和页面加载时间你的应用消耗了多少流量?其普通页面加载时间是多少?这些都是你应该部署之前和之后需要监测的关键指标。如果你突然碰到了大量的流入或流出数据,那么肯定是某处出了问题。一般情况下,这种高额流量的涌入会意味着:用户碰到了错误,而且无法在你的应用程序中跳转到其他页面。这同样会降低你的网站的总体用户体验

4、。有时候你甚至还没有开始进行部署,这类问题就已经在应用程序自我显现了。例如:如果你的应用程序使用了微服务的架构,或是用到了很多内部HTTP的Web服务调用,那么在新的部署中,对于其他应用程序的下行流量则会有明显的变化。因此,请留心观察它们的流量水平,以确保不会发生显著的变化。3.追踪你的应用性能指标或是客户满意度评分监测你的应用程序性能指标或客户满意度评分,是掌握其运行状况的一种非常好的“号脉”方式。Stackify公司的Retrace产品就可以实现对客户满意度得分的自动跟踪。这些评分是基于各种Web请求的响应效率,即有多少是快速、停滞、缓慢、以及失败得出的。通过简单的数学公式,它可以帮助你了

5、解到软件的整体性能。可见,请求跟踪是业内的普遍实践模式。使用Stackify,我们的目标是要使评分达到99。通过那些需要持续监视的指标,你可能会发现在部署的过程中分数会略有下降。这并没关系,只要你能保证在部署之后,分数能够恢复到正常水平便可。4.服务器的数量、负载和CPU使用率就算部署到云端,CPU使用率和整体的服务器负载仍然是不可忽视的因素。有时候,略微的代码变更就会导致CPU使用率和整体性能上的巨大差异。这种现象在那些能够横跨多台服务器,以进行扩展的应用程序上尤为明显。比如说:我们对于某处一些代码的调整,就会直接导致在另一处整体服务器数量的减少。因此,留意你所需要运行应用程序的服务器数量,

6、以及各台服务器上的CPU负载和它们的使用率是非常重要的。5.数据库和SQL查询的性能如果应用程序用到了SQL数据库,那么你的每一次部署就需要考虑到所用SQL数据库的各种变更因素了,其中包括:新增的SQL查询和现有查询的修改等方面。你应该持续跟踪那些被频繁使用的SQL查询和在数据库服务器上对应使用量偏大的资源。记住:有时候,就算是对SQL查询的略微修改,也有可能会导致出现性能上的重要瓶颈!6.各种与应用依赖性有关的性能如今各种应用程序之间都有着广泛的相互依赖性,包括:SQL与NoSQL数据库、缓存、队列、存储、以及HTTP的Web服务等。因此,密切关注所有这些依赖性的性能状态是非常重要的。与此有

7、关的常见服务包括:Redis、Elasticsearch以及MongoDB等。同样地,就算是对应用代码的略微修改,也可能会导致在你的生产环境中,诸如Redis或HTTP Web服务的显著性能变化。因此,在有重大变更发生的时候,请你留意部署前后的性能差异。7.内部通信(Slack)软件部署成功的一个关键因素就是通信。如果使用Stackify,我们会在很大程度上依赖Slack作为公司内部的各种通信的中枢,当然也包括所进行的部署。我们会有一个#deployments的Slack通道,任何人都可以籍此监控部署前、部署中和部署后的准确状况。同时,我们也可以在部署的过程中使用Bamboo的自动化Slack

8、警告提醒功能。众所周知,软件部署并非简单的一键推送。举例而言,如果使用Stackify进行部署的话,我们必须首先将各种SQL的更改脚本推送到超过1000个数据表中。之后,我们还必须在自己的架构内对10台不同的Web和后台服务的应用程序进行部署。可见,这是一个相当耗时的过程。因此,在Slack的各个通道上进行有效的通信,将有助于项目组的每个人保持同步。任何人只要想监控的某个进展,就都可以进行随时追踪。8.回归测试在完成了新代码的推送之后,我们进行一些最后的回归测试是很有必要的。它们既可以是自动化的综合测试,也可以是我们自己进行的快速测试。对我自己而言,即使用到了像Retrace这样的工具来全程监控自己的应用程序,我也会自己登录进去,在一些关键页面上四处点击一下,以求心理安慰和技术确认。当然,许多组织也有自己的一整套流程去验证发布,并进行回归测试。他们一般会在QA阶段反复进行多轮测试。同时,在告知客户进行各种补丁的部署之前,他们通常也会针对各种bug的修复效果进行重复性的测试。如果你已经有了自动化的测试,那么对于它们的监视正好适用于本文所涉及的内容。如果没有的话,请务必通过Slack的监视,来顺利

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论