0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

提高CI/CD系统可观察性的四种技术

阿铭linux 来源:CSDN博客 作者:琦彦 2021-08-17 09:31 次阅读

可观察性是DevOps团队的重要组成部分,它可以帮助组织从系统的输出信息,推断系统内部状态。它是一个持续的过程,从你的CI/CD流水线开始,并贯穿于应用程序的整个生命周期。

可观察的CI/CD流水线,使你能够主动监视问题并跟踪CI/CD构建期间发生的错误。如果没有对流水线的可见性,在系统出现异常时,很难追溯到其根本原因。在这篇文章中,我们将讨论提高系统可观察性的四种技术。

1. 生产环境的可观察性

有些错误仅在应用程序部署到生产环境后才会发生,因此很难在本地复现,有些还只是间歇性地发生。当涉及到这些问题时,传统的测试和监控是不够的,因为它们主要用于检查和监控已知错误或问题。但是,如果你能确保你的生产系统是可观察的,那么你可以在故障发生时尽快找到原因或解决问题,从而避免代价高昂的停机时间。应用程序还依赖于许多关键组件,例如存储、队列等。生产环境的可观察性,还使你可以监视应用程序所依赖的三方组件的持续正常运行的时间。生产环境的可观察性有两个关键部分——警报和被动监控。

警报

监控系统,不断检测重要的系统事件并向组织发送警报信息。大多数警报系统都是可配置的,允许你在应用程序的行为方式超出预定义阈值时发送警报。警报可以通过短信、电子邮件甚至Slack消息发送——因此开发人员和利益相关者都知道系统什么时候发生问题。此类警报系统可确保开发人员在应用程序未按预期运行时收到通知。

被动监控

被动监控,对于全面了解应用程序性能和用户使用习惯至关重要,允许软件团队使用真实数据直接跟踪用户体验质量。它不会将测试数据注入网络以模仿用户行为。相反,它从各个网络位置收集用户实际数据。

2. 优化日志记录

日志记录,一般包含有关软件系统发生事件的信息。在对软件进行故障排除时,日志可让你深入了解系统最初出现故障的时间和原因。毫无疑问,日志数据为DevOps团队提供了对被监控应用程序或系统的更高级别的可见性。这使他们能够识别错误原因,以及应用程序中特定问题发生的频率。

但是,如果不对日志进行格式优化和集中处理,日志数据可能会膨胀,直到变得难以使用,尤其是在分布式架构中。当你收集大量业务无关和非结构化数据时,日志分析的挑战会增加。良好的日志记录,会优先记录对应用程序性能至关重要的指标,并确保日志消息结构化、描述性强并包含有用的信息。该信息应包括:

时间戳

唯一用户ID

会话ID

资源使用信息

日志也应该在一个集中的、可访问的位置进行管理。这样,你可以轻松关联不同的日志,将它们与特定会话或用户联系起来,以便于更快地进行故障排除并了解整个基础架构中发生的情况。

3.DevOps文化

仅收集日志或监控生产环境的应用程序是不够的。为了在跨职能团队中实现系统全面的可观察性,你还需要围绕共同目标调整人员和团队协作流程。尽管看似无形,但至关重要。如果团队成员不支持该DevOps文化,组织可能无法实施战略计划。因此,DevOps文化转型,是构建高度可观察的应用程序的基础。创建DevOps环境的最简单方法是将运维团队和开发团队结合起来,这样他们就必须进行更多的沟通和协作。要真正实现由可观察性驱动的DevOps文化,你需要:

营造协作环境

对端到端负责

持续改进

关注客户的需求

接受故障并从中学习

自动化

从软件开发开始到结束,软件团队应该始终编写可调试的代码。该代码还应包含适当的KPI、指标和日志记录。这提高了应用程序的整体可观察性,并为运维团队提供了更多数据指标来检测故障并预测未来可能发生的故障。实现可观察性不仅仅是软件工程师和开发人员的工作,这应该是跨职能团队的共同责任。

可观察性驱动的DevOps文化改变了组织对其开发过程的看法,并将运维思维方式注入到他们的日常实践中。最终,这会提高云应用程序的性能和可用性,同时提高团队的生产力和满意度——反过来也简化了工作流程和协作。

4. 部署前的可观察性

很多组织,都关注在生产系统中实现可观察性,但较少强调从开发阶段就使应用程序具备可观察的能力。部署前的可观察性在许多日常活动中发挥着重要作用,包括决定构建什么或如何发布新功能、优化关键代码以及应用程序的架构调整。部署前的可观察性使DevOps团队能够主动提前修复,在其代码投入生产环境时可能出现的问题。

远程调试

远程调试工具提供了另一种安全感,这些工具允许开发人员调试–在本地环境之外运行的应用程序,而不会干扰应用程序的正常运行、还可以筛选大量日志文件或在本地复制生产环境。通过远程调试,开发人员可以使用不间断断点轻松调试任何环境中的错误,包括云原生开发环境等。如果操作恰当,远程调试可以为开发团队节省大量金钱和时间,对于依赖云平台、服务和基础设施的组织尤其有用。

总结

虽然这四种最佳实践都是有益的,但部署前的可观察性是提高可观察性的最经济的方法。它允许软件开发人员及时检测和修复代码中的问题,同时修复成本最低,不会影响用户。生产环境的可观察性也很重要,在生产环境中任何事情都可能发生,许多不可预测的因素可能会破坏你的应用程序或使其不可用,但它成本高昂。

应用程序日志记录也很重要,但日志管理成本也高且难以分析——尤其是在分布式系统中尝试追踪问题的根本原因时。最后,任何想要实现完全可观察性的企业都应该接受DevOps文化,但这个过程需要时间和整个组织的支持。

译文链接: https://thenewstack.io/improve-your-ci-cd-observability-with-these-4-best-practices/

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    67

    文章

    4345

    浏览量

    85609
  • devops
    +关注

    关注

    0

    文章

    100

    浏览量

    11899

原文标题:提高CI/CD可观察性的4 个最佳实践

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电子电路故障检查观察法实战应用

    观察法是指在维修过程中,通过眼睛、耳朵、鼻子、手等感器直接观察电子设备内部元件有无损坏的判断方法。利用观察可观察电子设备许多故障点。
    的头像 发表于 03-29 11:05 130次阅读

    A/D转换的四种误差

    针对A/D转换中可能出现的误差,主要分为以下四种情况,漂移误差、线型比例误差、非线性误差、非单调性误差。还有那些能够引起AD转换出现比较大的误差类别? 先说AD转换是怎么取值的,假设输入信号0-3V
    发表于 01-30 14:19

    什么是CI/CD?基本的gitlab CI/CD流程详解

    什么是CI/CD?通俗来说就是启动一个服务,能够监听代码变化,然后自动执行打包,发布等流程;
    的头像 发表于 12-08 09:50 1170次阅读
    什么是<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>?基本的gitlab <b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>流程详解

    提高PCB设备可靠技术措施

    提高PCB设备可靠技术措施:方案选择、电路设计、电路板设计、结构设计、元器件选用、制作工艺等多方面着手,具体措施如下: (1)简化方案设计。 方案设计时,在确保设备满足技术、性
    发表于 11-22 06:29

    如何实现RTOS、中间件和芯片厂商API的跟踪可观察性?

    新的Percepio Tracealyzer®SDK为RTOS、中间件和芯片厂商API提供可扩展性,使应用程序和平台开发人员能够构建自定义扩展,实现C/ C++应用程序的完整跟踪可观察性。
    的头像 发表于 10-20 15:29 386次阅读
    如何实现RTOS、中间件和芯片厂商API的跟踪<b class='flag-5'>可观察</b>性?

    关于STC单片机IO口状态双向、推挽、开漏、高阻四种状态切换的疑问

    STC单片机IO口可以在双向、推挽、开漏、高阻四种状态切换。在切换过程中IO口会变成什么状态,手册没有明确说明。比如推挽为0时切换到双向,IO口是0还是1,推挽为1时切换到双向,IO口是0还是1,其他状态之间切换时有什么特别的变化?有哪位大神知道?
    发表于 09-27 07:57

    通过PLC组态软件提高系统可靠的措施

    通过PLC组态软件提高系统可靠的几项措施
    发表于 09-25 06:26

    无线传感器网络中几种无线通信技术比较分析

    网络覆盖区域中感知对象的信息,并发送给观察者。传感器感知对象和观察者构成了无线传感器网络的三个要素。红外线.IEEE8O 11、HomeRF和蓝牙技术是无线传感器网络中四种典型的无线通
    发表于 09-20 08:22

    《电子工程师必备——九大系统电路识图宝典》之浅读负反馈以及四种组态

    电路、以及四种组态之间如何区别有了进一步的了解。 交流负反馈电路:简单来说就是用来改善放大器的交流工作状态,从而提高交流信号质量的一电路; 直流反馈电路:是用来稳定放大器直流工作状态的,直流工作状态
    发表于 08-06 13:27

    ARM PrimeCell智能卡接口(PL130)技术参考手册

    和信号。本技术参考手册可以使用的公约说明载于:(cd:129) (cid:129) (cid:129) (ci:129) (cis:129) 在Timasimimal 页面上的标记Xximal 1219页。
    发表于 08-02 07:38

    EBL4300CI-EVALZ 用户指南

    EBL4300CI-EVALZ 用户指南
    发表于 07-12 19:02 0次下载
    EBL4300<b class='flag-5'>CI</b>-EVALZ 用户指南

    84330CI 数据表

    84330CI 数据表
    发表于 07-11 18:42 0次下载
    84330<b class='flag-5'>CI</b> 数据表

    DevOps的最佳CI/CD工具

    CI/CD是一种 DevOps 方法,它结合了持续集成和持续交付的概念,允许企业通过在软件开发生命周期中集成自动化来始终如一地向客户交付应用程序。
    的头像 发表于 07-11 11:06 421次阅读

    华为云应用运维管理平台获评中国信通院可观测性评估先进级

    近日,华为云应用运维管理平台参与了中国信息通信研究院(以下简称“中国信通院”)主办的“稳保行动”的可观测性平台能力评估。经过中国信通院的检验,华为云应用运维管理平台满足云上软件系统稳定-可观测性平台
    的头像 发表于 07-01 21:16 288次阅读
    华为云应用运维管理平台获评中国信通院<b class='flag-5'>可观</b>测性评估先进级

    使用Percepio的Tracealyzer和DevAlert实现FreeRTOS的可观察

    ,甚至可以通过DevAlert启动Tracelyzer。通过这种方式,这两工具相辅相成,为FreeRTOS 应用程序带来全面的可观察。适用于FreeRTOS的Tracealyzer和DevAlert 还有很多值得探索之处,因
    发表于 05-18 13:41