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

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

    关注

    69

    文章

    5297

    浏览量

    90881
  • devops
    +关注

    关注

    0

    文章

    130

    浏览量

    12778

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一图看懂绿电直连的四种玩法

    通过 “总览框架 + 分模式图解” 的形式,用可视化逻辑拆解绿电直连的四种核心模式,涵盖每种模式的核心特征、适用场景、参与主体三大关键信息,帮你快速区分不同 “玩法” 的差异与适配
    的头像 发表于 10-15 10:18 747次阅读
    一图看懂绿电直连的<b class='flag-5'>四种</b>玩法

    从入门到精通:基于开源代码的BLE四种模式开发详解

    Bluetooth Smart,是蓝牙4.0及更高版本引入的低功耗无线通信技术,专为低带宽、间歇数据传输的物联网(IoT)和穿戴设备设计。   一、Air8000蓝牙大模式 Air8000蓝牙支持
    的头像 发表于 10-09 18:00 233次阅读
    从入门到精通:基于开源代码的BLE<b class='flag-5'>四种</b>模式开发详解

    CI/CD实践中的运维优化技巧

    在数字化转型的浪潮中,CI/CD已经成为现代软件开发的基石。然而,真正能够发挥CI/CD威力的,往往在于那些不为人知的运维优化细节。本文将深入剖析C
    的头像 发表于 09-18 15:05 619次阅读

    RDMA简介3之四种子协议对比

    CPU卸载到RDMA网卡处理。仅需要使用普通以太网交换机和iWARP网卡即可实现路由。但在大规模部署时,由于TCP/IP协议点对点连接的特性,将会占用大量的内存资源,对系统规格的要求更高在对比这四种
    发表于 06-04 16:05

    Jenkins和Docker自动化CI/CD全流程

    要想做到一个高效的CI/CD流程,需要有能力整合DevOps工具链及多环境适配,并且设计之初以自动化为原则,如一键部署、一键升级。
    的头像 发表于 05-14 11:50 717次阅读
    Jenkins和Docker自动化<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>全流程

    变频器主要支持哪四种模式?有什么区别?

    变频器作为现代工业自动化领域中的关键设备,其控制模式的多样和灵活性对于满足不同应用场景的需求至关重要。变频器主要支持四种控制模式:无PG的V/F模式、有PG的V/F模式、无PG的矢量控制模式以及有
    的头像 发表于 04-16 18:22 1763次阅读
    变频器主要支持哪<b class='flag-5'>四种</b>模式?有什么区别?

    芯片封装中的四种键合方式:技术演进与产业应用

    自动键合和混合键合四种主流技术,它们在工艺流程、技术特点和应用场景上各具优势。本文将深入剖析这四种键合方式的技术原理、发展现状及未来趋势,为
    的头像 发表于 04-11 14:02 2377次阅读
    芯片封装中的<b class='flag-5'>四种</b>键合方式:<b class='flag-5'>技术</b>演进与产业应用

    【Android开发者必看】使用JetBrains TeamCity为Android项目构建CI/CD管道详细指南

    CI/CD】定义明确的构建、测试和部署工作流对Android应用的开发至关重要。JetBrains TeamCity是一个用于构建可靠管道的CI/CD平台,可与流行的Android开
    的头像 发表于 03-21 15:42 996次阅读
    【Android开发者必看】使用JetBrains TeamCity为Android项目构建<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>管道详细指南

    DeepSeek赋能Vixtel飞思达CloudFox可观平台,打破可观工程的实施壁垒

    观测功能集中在同一个Agent中和数据处理平台中,实现了一次部署,全面观测的能力,是当前云运维中广泛使用的工具。 在可观概念大行其道的今天,可观工程的落地却仍然困难重重。这是因
    的头像 发表于 02-21 17:20 601次阅读
    DeepSeek赋能Vixtel飞思达CloudFox<b class='flag-5'>可观</b>测<b class='flag-5'>性</b>平台,打破<b class='flag-5'>可观</b>测<b class='flag-5'>性</b>工程的实施壁垒

    四种常用的最大功率点跟踪MPPT技术介绍

    伏」多通道太阳能电池MPPT系统除以上四种技术外还增加了恒压和恒流老化模式以增加稳定性研究的灵活性。太阳能电池的工作点可以从零伏变化到开路电压。工作点很少保持在最大功率,
    的头像 发表于 02-06 14:00 3308次阅读
    <b class='flag-5'>四种</b>常用的最大功率点跟踪MPPT<b class='flag-5'>技术</b>介绍

    四种常见ADC的特性和应用

    模拟-数字转换器(ADC)在现代电子系统中扮演着至关重要的角色,它们负责将连续的模拟信号转换为离散的数字信号。这一转换过程对于信号处理、通信、控制等多个领域都至关重要。本文将深入探讨四种常见的ADC
    的头像 发表于 02-02 13:52 2761次阅读

    私藏技术大公开!四种常见供电方案

    在现代生活中,供电问题直接关系到我们的生活质量与工作效率。以下是四种超实用的供电方案,无论是在家庭生活还是工作场景中,都能为你提供稳定可靠的电力支持。 常见的物联网应用场景下,供电方式有四种
    的头像 发表于 12-31 14:28 2779次阅读
    私藏<b class='flag-5'>技术</b>大公开!<b class='flag-5'>四种</b>常见供电方案

    被问爆的四种供电方式,来啦~

    4G模组的外部电源供电设计十分重要,对系统稳定、射频性能都有直接影响。 常见的物联网应用场景下,供电方式有四种: LDO供电方式 DCDC供电方式 锂电池供电以及充电方式 不可充电锂亚/锂锰电池供电
    的头像 发表于 12-30 15:40 1498次阅读
    被问爆的<b class='flag-5'>四种</b>供电方式,来啦~

    云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

    Jenkins 是一个开源的自动化服务器,用于持续集成(CI)和持续交付(CD)软件项目。它允许开发人员在软件开发过程中自动化各种任务,如构建、测试和部署,从而提高开发效率和软件质量。
    的头像 发表于 12-29 15:43 671次阅读
    云服务器Flexus X实例,Docker集成搭建Jenkins <b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>平台

    CI/CD方案:推动智能汽车开发的高效利器

    在智能化和自动驾驶技术飞速发展的背景下,汽车软件开发的复杂正以前所未有的速度增长。面对市场对效率、质量和快速迭代的高需求,传统开发模式已然捉襟见肘。作为提升开发效率和质量的核心工具,CI/C
    的头像 发表于 12-18 10:03 1387次阅读
    <b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>方案:推动智能汽车开发的高效利器