如何监视应用程序做了什么
许多开发团队专注于实现CI / CD管道 ,自动化回归测试 ,将基础结构配置为代码以及对应用程序运行时环境进行容器化。 这些实践和技术共同帮助组织更频繁地部署应用程序,并减少手动步骤和配置中的错误。
但是许多企业希望获得更多,并期望其应用程序具有类似SaaS的性能。 这不仅关乎应用程序的可靠性(即正常运行时间是9s)还是响应时间。 这些只是监视应用程序的赌注。 越来越多的企业以战略性方式使用技术,这些技术中的用户问题可能会影响收入或运营。
这种愿望推动了围绕应用程序的全新的监视注意事项。 知道Web服务器正在响应,微服务具有毫秒响应时间以及数据库查询性能满足SLA不再足够。
想想您上一次乘坐飞机的时间。 我们都希望安全着陆,如果航班延误或行李出现问题,我们会感到愤怒。 更深入地讲,我们希望从进入飞机场以来获得更好的体验:安全需要多长时间? 等候区有多惬意,我们能找到东西吃吗? 登机是否无缝? 机上娱乐和Wi-Fi是否正常工作?
然后想想如果出问题了该怎么办。 如果有延误,航空公司与您交流状态和航班选择的准确性和效率如何? 如果机上娱乐系统无法正常工作,他们能否在机上并Swift解决问题,以便您观看电影? 您在回答“您的飞行情况如何?”问题时会考虑所有这些问题。
有关应用程序监视的新问题
开发人员,工程师和管理人员应考虑一组扩展的应用程序监视需求。 更具体地说,希望在运营绩效方面表现出色的devops团队应考虑进行监控以解决以下一些问题:
- 您的CI / CD和测试管道的性能如何,团队如何快速解决破坏构建的问题?
- 应用程序满足用户需求和期望的程度如何?
- 从用户行为中可以看出哪些应用程序改进?
- 可以在最小的用户影响下隔离和解决操作事件吗?
- 开发人员在多大程度上受到操作事件(即进行消防)的干扰?
- 逐渐增加的使用指标是否开始影响性能?
- 应用程序数据能多快被加载,处理和报告?
- 如果应用程序位于公共云上,成本增长是否快于预期,还有其他成本优化值得考虑吗?
- 应用程序应如何监视上下文,例如浏览器,设备,位置和时间?
- 关于API,特别是第三方应用程序使用的API,还需要哪些其他监视?
- 大规模物联网应用或其他与区块链接口的工具将需要哪些监控工具?
- 应用程序组件上是否有任何新版本,补丁程序或警报?
- 应用程序中是否存在任何安全问题或漏洞?
除了在传统应用程序监视下传统存储和配置的内容之外,这还大大扩展了关注范围。 但是,随着越来越多的企业像科技公司一样运作,开发团队应该考虑这些要求。
devops团队可以使用以下四个选项来解决此应用程序监视范围。 与所有转换优先事项一样,开发团队应精打细算,将监视工作重点放在最大的机会上,以了解使用方法,同时满足对最大风险的要求。
1.汇总有关用户体验的信息
如果要构建Web或移动应用程序,通常会嵌入一个分析跟踪器以捕获用户,访问和其他使用情况指标。 应用程序还可以直接捕获更高级的指标,并将其存储在日志文件,数据库中,或通过管道传输到数据流中 。 用户注册系统,单点登录(SSO)工具和客户关系管理(CRM)系统中也可能有相关数据。
以我的经验,业务团队和营销人员更有可能在面向客户的应用程序中查看用户行为。 当IT部署企业或内部工作流应用程序时, 内部应用程序的使用和行为通常是事后才想到的。
在这两种情况下,开发人员,数据库工程师和IT运营部门都对获取指标,查看使用情况,理解模式以及评估应用程序用户的满意度有着既得的兴趣。 一种方法是将相关指标聚合到数据仓库或数据湖中 ,然后使用Tableau,Microsoft PowerBI之类的工具或开源数据可视化工具来监视性能并发现有关用户行为的见解。
2.大型IT组织应定义CI / CD绩效指标
支持更多应用程序开发和微服务架构的大型开发团队应建立CI / CD管道和测试指标。 对于大型组织,这些指标代表了团队工作的吞吐量和质量,并应警告可能阻碍其进度的障碍和质量问题。 诸如Jenkins,Jira和Git之类的工具可以跟踪开发,测试,构建和部署流程的不同方面。
其中一些指标应具有战略意义,并与关键设备性能指标相关联 。 作为一名首席信息官,我对战略指标最感兴趣,例如每季度发布的功能和缺陷逃逸率。
但是开发团队还应该建立度量标准,以使软件开发像生产装配线一样运行。 诸如部署频率,构建持续时间,构建失败率和自动化测试覆盖率之类的指标提供了有关团队效率和工作质量的指标。
3.使用机器学习来改善事件响应
一旦应用程序在生产环境中运行后,开发团队的首要考虑就是处理影响用户,使组织面临风险或使IT团队处于救火模式的事件。 出现问题时,关键问题是IT部门是否具有适当的应用程序监视器来向其发出警报,以及IT可以多快地解决该问题。 了解谁参与研究,诊断和解决问题也很重要。 如果将事件上报给开发人员,则这些问题通常会花费更长的时间,并且解决起来的成本也更高。
积极的开发团队可以实施更多的监视器,记录更多的数据,并投资于代码级异常处理,以确保有足够的指标和数据来检测和诊断问题。 但是,当单个应用程序有来自不同工具的多个警报指示一个或多个问题时,这也会使团队感到不知所措。
BigPanda,BMC,HPE,IBM和Splunk等供应商提供的新的自主数字操作和AIops工具旨在通过使用机器学习来简化操作管理并缩短事件响应时间。 这些工具可以关联来自多个监视器的信息,帮助发现根本原因,通过使用预测分析来预测未来的问题,并自动进行事件响应的元素。 管理关键任务用户体验和连接到多个数据源,微服务和第三方API的大规模应用程序的组织应受益于机器学习支持的工具。
4.全面了解操作环境
监视的最后一个方面要求开发应用程序的使用情况,环境,基础结构和生态系统的整体视图。 可以将其视为应用于应用程序的设施管理实践,以显示所有资产,资产维护因素(例如打补丁和安全警报),长期使用模式以及异常活动。 此宏视图为devops管理团队提供了一组指标和任务,以更好地维护应用程序组合。
翻译自: https://www.infoworld.com/article/3321667/application-monitoring-what-devops-can-do-better.html
如何监视应用程序做了什么