Hi!咱们是 DevSecOps 研发平安经营一体化解决方案提供商、Atlassian 寰球白金合作伙伴——龙智。在过来的十多年间,传统软件研发模式发生巨变,从瀑布式开发到麻利再到 DevOps,开发和运维之间已经明确的界线正在缓缓变得含糊。
DevOps 因为可能促成开发、运维、测试等不同部门的沟通、合作与整合,正在悄悄成为软件研发经营支流趋势。倒退至今,DevOps 也联合了新的流程,比方继续集成和继续部署来疾速交付价值。
如果您对 DevOps 还知之甚少,或是想要更深刻地理解 DevOps 工具链,请不要错过本系列文章。龙智将从 DevOps 的概念、DevOps 工具链、CI 及工具比照、DevOps 监控、DevSecOps 五个方面动手,让您从起源开始,逐渐深刻理解 DevOps 这个已风行数十年的方法论。
借助 DevOps,⼈们冀望能实现更疾速的开发、更常态化的测试和更频繁的公布,同时还能提⾼产品质量和降低成本。为了帮忙实现这⼀⽬标,DevOps 监控⼯具在整个开发生命周期(从打算制订、开发、集成、到测试、部署和经营)中提供执⾏流程的⾃动化、监测范畴的扩大以及可视化。
现在的软件开发⽣命周期⽐以往任何时候都快,多个开发和测试阶段同时发⽣。这催⽣了 DevOps,使之前执⾏开发测试与经营治理彼此孤⽴的团队转化为了要执⾏所有性能并承受“⾃⼰构建,⾃⼰经营”(YBIYRI)的联结团队。
随着频繁的代码更迭变得司空⻅惯,开发团队须要 DevOps 监控,以提供对⽣产环境全⾯的实时的监管。
什么是 DevOps 监控?
DevOps 监控须要观测从打算制订、开发、集成到测试、部署和经营的整个开发过程。它波及对⽣产环境中应⽤程序、服务及基础架构状态等⽅⽅⾯⾯进⾏全面的、实时的查看。其中实时采集、历史回放和可视化等性能是应⽤程序和服务监控的要害组件。
DevOps 监控使团队能疾速、⾃动地响应任何引起客户好感度降落的问题。更重要的是,它容许团队“左移”到开发的晚期阶段,并最⼤限度地缩小会导致⽣产中断的变更。例如:对软件进⾏更好地检测和及时响应谬误,既能够通过“呼叫”⼿动进⾏,也能够在可能的状况下⾃动进⾏。
DevOps 监控与可观测性
当您将⽆限循环的左侧视为产品开发⽅,将右侧视为经营⽅时,将新性能推⼊⽣产的产品经理会对项⽬如何合成为工作和⽤户故事感兴趣。
项⽬左侧的开发⼈员须要理解如何将性能转移到⽣产环境中,包含项⽬工单、⽤户故事和各种依赖关系。如果开发⼈员保持“⾃⼰构建,⾃已经营”的 DevOps 准则,他们也会对事件的补救措施感兴趣。再来看⽣命周期的经营⽅⾯,保障站点可靠性的⼯程师须要理解那些可供评测和监控的服务。如果呈现⼀个能够修复的问题,⽽您此时没有⼀个能将所有这些处理过程分割在⼀起的 DevOps ⼯具链,那么就将⾯临⼀个芜杂、⽆关联的、混沌的环境。但如果您有⼀个集成良好的⼯具链,则能够更好地理解正在发⽣的事件。
DevOps 监控的重要性
DevOps ⽅法将继续监控的对象扩大到模仿 (Staging)、测试 (Testing) 甚⾄开发 (Devlopment) 环境。这其中有多个起因。
频繁的代码更改须要可视化
继续集成和继续部署驱使着代码更迭的频率一直减少,这也使得⽣产环境变得越来越简单。随着微服务和微前端的应⽤进⼊当初的云原⽣环境,在⽣产中会产⽣数百甚⾄上千种不同的服务的⼯作负载,每种⼯作负载对规模、提早、冗余和安全性都有不同的环境要求。
这推动了对可视化更⾼的需要。团队不仅须要疾速侦测到并响应存在客户体验降落的性能, 还须要在限定工夫内实现修复。
您能够以 Jira 为根底,来实现代码更改的可视化。Jira 云版很轻易就能对 Pipeline 过程可视化,在 Developer Dashboard 中的界面能间接看到 Bitbucket 数据。
如果您应用的是本地部署版的 Jira,能够将其与 Bitbucket 和 Bamboo 集成,达到在 Jira 中一览代码与部署状态的目标。集成后,您能够间接在 Jira 中查看正在解决的代码,查看 CI/CD 部署信息和预布局公布,以及能够在事务中实时查看开发状态更新信息。
合作⾃动化
DevOps 要求团队中的开发、经营和业务这些性能组之间实现更严密的合作。然⽽,⼯具之间如果不足集成性就可能会妨碍此类合作,并在协调不同性能组时形成的挑战,这是 Atlassian DevOps 调研得出的⼀个要害论断。
您能够通过诸如在编辑器中内嵌开发 Pipeline 的残缺视图等性能来实际⾃动化合作。还有就是,设置⾃动化规定⽤于侦听代码的提交或拉取申请,而后更新相干的 Jira 问题的状态并将音讯发送给团队的 Slack Channel。还能够利⽤ Insights 插件来提供扫描、测试和剖析的报告。
Jira 作为 DevOps 中治理和监控整个 DevOps ⽣命周期的⼯具,其 Server/DC 版的合作⾃动化是通过⼯作流的 Trigger 性能实现的,在构建和 CI/CD 过程中,Bitbucket,Fisheye/Crucible 等⼯具能够在提交,分⽀创立,代码评审等多个阶段实现 Jira ⼯作流的⾃动化。
试验
在个性化和优化转换程序的推动下,为响应客户需要导致了须要进⾏⼤量的产品优化试验。⽣产环境能够运⾏数百个试验和性能标记,这使得监控零碎很难精确传播导致⽤户好感度降落的起因。
对于永恒在线服务和应⽤程序⽇益增⻓的需要,以及严格的 SLA 承诺可能会造成安全漏洞的减少。因而开发团队须要确保他们定义了监控和执⾏⽅⾯的服务⽔平⽬标 (SLO) 和服务⽔平指标 (SLI)。
变更治理
因为⼤少数⽣产零碎的停机都是由变更引起的,因而变更治理⾄关重要,尤其是对于执⾏关键性工作的应⽤程序,例如⾦融和医疗保健⾏业的应⽤程序。须要确定与变更相干的⻛险,并且须要依据变更的⻛险⾃动化审批流程。
解决这些复杂性须要全⾯的理解和监管策略。这须要有定义和驳回监控的实际,并领有⼀套能监控开发过程的丰盛、灵便和先进的监控⼯具。
相干零碎的监控
分布式系统曾经变得越来越遍及,它们通常是由许许多多跨公司的微服务组成。团队当初不仅须要监控他们构建的零碎,还须要监控和治理相干零碎的性能和可⽤性。Amazon Web Services (AWS) 提供超过 175 种产品和服务,包含计算、存储、⽹络、数据库、剖析、部署、治理、挪动和开发⼯具。如果您在 AWS 上构建应⽤程序,则须要确保抉择适宜您应⽤程序需要的服务。您还须要⼯具和策略来以分布式的⽅式跟踪谬误以及解决相干的故障。
DevOps 监控的⼀些要害性能
为了与 DevOps 传统放弃⼀致,开发和施行监控策略时还须要重视要害性能的实际和相应的⼯具。
左移测试
左移测试在⽣命周期晚期执⾏有助于提⾼品质、缩短测试周期以及缩小谬误的产⽣。对于 DevOps 团队来说,扩大左移测试⼯作以监控那些预⽣产环境的运⾏情况,这点⾮常重要。这样就能够确保监控的尽早且经常性地施行,以放弃⽣产的连续性,以及确保监控所发警报的品质。测试和监控应该⼀起进⾏,通过晚期监控有助于透过要害⽤户的流程和解决来评估应⽤程序的⾏为能⼒。同时这也有助于在⽣产部署之前理解应⽤程序的性能和可⽤性⽅⾯的认知偏差。
在 Atlassian 的 DevOps 解决⽅案中,咱们将过来在测试阶段才进⾏的局部监测左移到了构建阶段。例如,代码语法分析,动态测试,合规性检测等通过诸如 SonarQube for Bitbucket,WhiteSource for Bitbucket 等插件与这些内部⼯具相集成,实现 了构建阶段即实现这些⾮功能性测试的科⽬。
警报和事件治理
在云的原⽣世界⾥,事件就像代码中的谬误那样⼤量存在于事实⽣活中。这些事件包含硬件和⽹络故障、配置谬误、资源耗尽、数据不⼀致以及软件谬误等等。DevOps 团队应该欣然接受这些事件并通过装备⾼品质的监控⼯具来应答。
⼀些有助于应答事件的最佳实际是:
- 建⽴合作的⽂化,在开发过程中对个性 / 性能和⾃动化测试进⾏监控
- 在开发过程中,在代码中内建适当的⾼品质的谬误警报信息,以最⼤限度地缩小均匀检测时间 (MTTD) 和均匀辨认/隔离工夫 (MTTI)
- 为构建增加监控以确保相干服务按预期运⾏
- 调配工夫来构建必要的仪表板并培训团队成员使⽤它们
- 为服务制订“演习”打算,以确保监控⼯具能按预期运⾏并抓出生效的监控器
- 在冲刺期间,为先前的的事件审核制订敞开操作,尤其是为构建过程中生效的监控器和⾃动化管制指定操作
- 针对平安问题的构建侦测器(降级 / 补丁 / 滚动凭证)
- 通过⾃动化规定确定对侦测到的警报的响应,造就“监测和监控⼀切”的⼼态
在这里,不得不提到 Statuspage 和 Opsgenie 这两个 SaaS ⼯具。
对于 Atlassian 的⼤局部云产品,其服务的衰弱状态和性能的监控是通过 Statuspage 来展现的。它能令管理员轻松地取得实时状态。并且,它能够与您喜爱的监控、警报、聊天和帮忙台⼯具集成,每次都能实现⾼效响应。
△ Statuspage 站点监控界面
△ Statuspage 系统分析界面
Opsgenie 是 Atlassian 推出的事件统⼀治理⼯具。它会收集针对应⽤程序的各项指标进⾏监控的⼯具收回的报警信息。而后进⾏分类加⼯,分级过滤,以及多渠道准确投送等步骤,将真正重要的报警信息精确传播给适合的解决⼈员。您能够在其中设置上报策略,来电路由,以及值班⽇程表等性能,完满实现事件处理的⾃动化与应答的⾼效。
DevOps 监控⼯具
使⽤与 DevOps/YBIYRI ⽂化匹配的⾼级⼯具,能对衰弱监控的实际起到补充作⽤。这⾥须要关注对监控⼯具的理解与实现,另外还有代码存储库、IDE、调试器、缺点跟踪、继续集成⼯具和部署⼯具等易于了解的开发⼈员⼯具。
单⼀治理平台,并不仅限于⽣产环境,也包含在模仿环境提供了对各种应⽤程序、服务和基础设施依赖关系的全⾯视图,这使得它可能有能⼒提供、接管、标记、查看和剖析简单的分布式环境的健康状况。
应⽤程序性能监控 对于确保监控应⽤程序特定的性能指标(例如加载⻚⾯的工夫、上游服务的提早或转换)以及 CPU 和内存利⽤率等根本零碎指标是必不可少的。SignalFX 和 NewRelic 等⼯具⾮常适宜实时察看指标数据。
实现不同类型的监控 ,在开发过程中包含了谬误(error)、事务(transaction)、合成(synthetic)、⼼跳(heartbeat)、警报(alert)、基础设施(Infrastructure)、容量(capacity) 和安全性(security)。确保每个成员都承受过这些畛域的培训。这些监控⼯具通常是特定于应⽤程序的,须要依据每个应⽤程序的要求来施行。例如,咱们 Opsgenie 的开发团队施行了合成的监控,可创立警报或事件并查看警流程是否按预期执⾏(即集成、路由和策略是否失常⼯作)。咱们还为基础设施依赖项施行合成监控,定期验证各种 AWS 服务的性能。
⼀个警报和事件管理系统,它⽆缝集成到您的团队的⼯具(⽇志治理、解体报告等),因而能⾃然地适应您团队的开发和经营节奏。该⼯具应将重要警报信息以最低提早发送到您⾸选的告诉渠道。它还应该具备对警报进⾏分组来对⼤量警报进⾏过滤的能⼒,尤其是当单个谬误或故障⽣成多个警报时。Atlassian 不仅将 Opsgenie 作为⼀种产品提供给客户,还在外部使⽤它,以确保有强⼤、灵便和牢靠的警报和事件管理系统来与他们的开发实际相结合。
综上所述 …
在拥抱 DevOps 的同时,重要的是要确保除了测试之外还要有进⾏监控,并且落实实际和⼯具,以实现疾速、⾼品质地将变更交付到⽣产环境中的承诺。
无论您喜爱应用什么监控工具,都能够集成到 Atlassian Open DevOps 中。Opsgenie、Statuspage、Xray…Atlassian 让您能够自由选择相熟的、青睐的工具,最大限度晋升团队效率。
龙智连续 Atlassian Open DevOps 凋谢的理念,引入更多寰球当先工具,包含 Helix Core, Whitesource, Sonarqube 等,为企业量身定制 DevSecOps 解决方案。
并且,龙智作为 Atlassian 寰球白金合作伙伴,为帮忙开释及拓展 Atlassian 工具的力量,也自主开发了多款 Atlassian 插件,更适宜外乡企业应用。包含 Jira 工时治理插件(TimeWise for Jira)、Confluence 水印插件(Watermark for Confuence)、Jira 工作流扩大和并行审批插件(WorkflowWise for Jira)等,欢送征询试用。
文章起源:本文编译摘录自 Atlassian 文章《DevOps Monitoring》,作者为 KRISHNA SAI,有删改。
想理解更多 Atlassian DevOps 解决方案、工具及客户案例?
欢迎您立刻征询 Atlassian 寰球白金合作伙伴—龙智:
电话:400-775-5506
邮箱:marketing@shdsd.com