当前位置:首页 > 数码 > 探索监控和自动化在现代软件开发中的作用-从Kubernetes的探针到DevOps (探索监控和自拍的区别)

探索监控和自动化在现代软件开发中的作用-从Kubernetes的探针到DevOps (探索监控和自拍的区别)

admin8个月前 (04-25)数码37

探针的作用

从功能上讲,探针的作用很简单:它是一种由 Kubernetes 提供的检查机制,用于检测应用程序是否正常运行。最常见的探测方式是 HTTP 探测。应用程序需要公开一个地址,Kubernetes 会定期调用该地址。如果地址返回 200 状态码,则认为应用程序正常;否则,认为应用程序异常。 一般情况下,需要为应用程序配置两个探针:活跃探针(liveness probe)和就绪探针(readiness probe)。 活跃探针:可以在应用程序有问题时触发重启,应用程序在重启后可能可以恢复正常。 就绪探针:保证应用程序有问题时切断流量,避免该应用程序被调用到。 虽然从功能角度看,这两个探针的区别似乎不大,但设置两个不同的探针是有原因的。后面将详细解释。

宏观的意义

作为运维人员,特别是做过微服务应用程序运维的人,一定遇到过某个基础组件或上游服务出现故障的情况。在这种情况下,可观测工具可能会显示满屏的红色惊叹号。 当上游的 Pod 不可用时,其下游的 Pod 也无法工作,故障会传播到所有相关的 Pod 中。此时,运维人员需要一个工具来告诉他们:某个 Pod 本身出了问题,而其他 Pod 是因为依赖的 Pod 出问题了才报错的。这样才能专注于解决关键问题。 这种级联反应的故障恢复时,也往往绝非病去如抽丝,可能不断遇到个别的业务问题。有时,运维人员需要手动重启服务才能解决。他们一定希望:应用程序能在条件具备时自动恢复。 解决这两个需求的方法就是探针。

探针如何发挥作用

这两个探针正是 Kubernetes 平台与应用程序之间沟通的契约。当返回报错时,应用程序实际要表达的意思和做出的承诺是: 活跃探针报错:应用程序本身存在问题,需要重启。 就绪探针报错:应用程序依赖的服务出现故障,应用程序无法正常工作,需要切断流量。 这样看,两个探针有着明显的区别。这两个探针与应用程序配合,是如何解决上一章所说的问题呢? 对于应用程序完全 hang 死的情况,无论是活跃探针还是就绪探针,都会探测异常,肯定会触发重启。这是探针机制最立竿见影的一个情况。 当应用程序本身发生问题时,活跃探针应该报告异常,从而触发重启。此时,问题的关键是,应用程序如何知道自己存在异常?确实挺难的。这个探针对应的接口应该能够模拟正常业务的主要逻辑,而且如果依赖的服务有问题,而且应用程序能够处理这个问题,则不应该报告异常。 当应用程序依赖的服务出现故障时,我们希望应用程序的活跃探针报告正常,而就绪探针报告报告异常。因为此时活跃探针报告异常触发应用程序重启也解决不了任务问题,大量的重启以及相关的报错反而会让运维人员感到恐慌。 探针这样工作有一个非常重要的前提条件,那就是应用程序在其依赖服务恢复时也能够自己恢复。如果应用程序无法自动恢复,也许我们只能选择让活跃探针在此时报告异常,运维需要面对反复重启的无尽惶恐之中。

开发人员的责任

对于应用程序恢复的重要性,开发者需要理解上述过程,然后进行实现。 尽管像 Spring 这样的开发框架已经提供了探针相关的功能,开发人员可能配置一下就能完成,但实际情况往往并不简单。 例如,Spring 文档指出: Liveness 探针不应当依赖外部系统的状态。 但在实际中,外部系统的定义未必那么笃定。我们的应用程序也可能依赖于外部服务,并且能够处理该服务出现问题的情况。在这种情况下,活跃探针不应该报告异常。 开发人员需要根据应用程序的具体情况进行探针的配置和实现,这是确保应用程序能够在 Kubernetes 环境中正常运行的关键。

总结

Kubernetes 探针是运维和开发人员在 DevOps 实践中需要密切关注的一个重要特性。了解探针的作用、配置方法和在解决应用程序可用性问题中的作用,对于提高应用程序的稳定性和可运维性至关重要。 希望本文能够帮助您更好地理解 Kubernetes 探针,并将其运用到您的应用程序中。 从Kubernetes的探针到DevOps

为什么企业需要构建一站式DevOps平台呢?

可能有些读者不知道DevOps工具是什么,这里简单说一下,DevOps工具指用于支持DevOps流程的软件工具,包括但不限于以下几类:

这些工具可以帮助开发团队实现快速、高效、可靠的软件开发和运维流程,从而提高软质量和交付速度。

而一站式DevOps平台则是指一个集成了多种DevOps工具和服务的平台,可以满足软件开发、测试、部署、监控等全流程的需求。这种平台可以提供代码管理、构建、测试、部署、容器化、自动化运维、日志监控等多种功能,使得开发团队可以在同一个平台上完成整个软件开发和运维的过程,从而提高开发效率和质量。

所以不难理解,企业需要构建一站式DevOps平台的原因一般也就有以下几点:

简单点说,构建一站式DevOps平台可以帮助企业提高开发效率、加快交付速度、提高软件质量、降低成本和提高团队协作效率,是企业实现数字化转型和提高竞争力的重要手段。

在生活中,一站式DevOps平台可以应用于各个行业,特别是那些需要快速交付高质量软件的行业,比如:

总之,一站式DevOps平台可以帮助企业提高软件开发效率、加快交付速度、提高软件质量、降低成本和提高团队协作效率。所以一般情况下,有条件的企业都有应该构建一个一站式DevOps平台。

可观测性有哪些好处?

可观测性的最大好处是,在所有其他条件相同的情况下,一个更可观测的系统更容易被理解(整体和部分),更容易被监控,更容易和更安全地发布代码,并且更容易修复故障。 更具体地说,可观测性能够直接支持敏捷/DevOps/SRE 团队的该目标:更快地交付更高质量的软件:发现并解决“未知的不确定问题”——超出现有认知的问题。 监控工具的一个主要限制是它们只关注“已知的某个具体问题”——您已经知道需要注意的异常情况。 可观测性能够发现以前不知道但可能会导致问题的条件,然后跟踪它们与特定性能问题的关系,并提供上下文来确定根本原因和快速解决问题。 在开发早期发现并解决问题。 可观测性将监控纳入软件开发过程的早期阶段。 DevOps 团队可以在影响客户体验或 SLA 之前识别并修复新代码中的问题。 自扩展性。 例如,您可以将检测和数据聚合指定为 Kubernetes 集群配置的一部分,并从它启动的那一刻开始收集遥测数据,直到它停止运行。 支持故障自愈的基础架构。 将可观测性与 AIOps 机器学习,自动化功能相结合,根据系统的输出来预测问题的发生并全自动的解决问题。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Kubernetes

“探索监控和自动化在现代软件开发中的作用-从Kubernetes的探针到DevOps (探索监控和自拍的区别)” 的相关文章

Kubernetes-网关-战略的流量治理-基于-API (kubernetes)

Kubernetes-网关-战略的流量治理-基于-API (kubernetes)

Kubees网关API经过形象复杂性并提供申明式的方法来定义路由和流量战略,简化了性能流程。 译自EffectiveTrafficManagementwithKubernetesGatewa...

深入了解-不够用时-调试的救星-superdebug-当debug-Kubernetes (深入了解不够)

深入了解-不够用时-调试的救星-superdebug-当debug-Kubernetes (深入了解不够)

kubectlexec 命令的限制 kubectlexec 命令用于在正在运行的 Pod 中执行命令,但它在 Kubernetes 中有以下限制: 不能以 root 身份运行:容...

100个常用命令-Kubernetes-提升集群管理和故障排除效率 (100个常用的关联词)

100个常用命令-Kubernetes-提升集群管理和故障排除效率 (100个常用的关联词)

本指南提供了全面的命令清单,用于诊断 Kubernetes 集群以及在其中运行的应用程序。请在使用这些命令时务必将占位符(如 <namespace> 和...

LTS-现状-常年支持-的-Kubernetes-解谜与揭秘 (ltsg)

LTS-现状-常年支持-的-Kubernetes-解谜与揭秘 (ltsg)

从一个幽默的疑问引出很多人都在关注的KubeesLTS的疑问。 幽默的疑问 2019年,一个名为apiserverLoopbackClientServercertexpire...

ChatGPT避而不谈-揭开Kubernetes消费运行的十大秘诀 (chatgpt官网)

ChatGPT避而不谈-揭开Kubernetes消费运行的十大秘诀 (chatgpt官网)

理想证实,生成式在许多相对基础的用例中已施展作用,然而当它须要在技术方面给予更多指点时,体现又如何呢? 在推出时,咱们也和大家一样想将它给出的答案与惯例网络搜查获取的答案启动比拟。咱们启动试...

Kubernetes弃用Dockershim-转向Containerd-影响及应对指南 (kubernetes与docker的关系)

Kubernetes弃用Dockershim-转向Containerd-影响及应对指南 (kubernetes与docker的关系)

Kubernetes 1.24 版本发布时,正式宣布弃用 Dockershim,转向 Containerd 作为默认的容器运行环境。 Kubernetes 为何弃用 Dockershim?...

b-一文读懂Kubernetes部署战略-b (bci原文)

b-一文读懂Kubernetes部署战略-b (bci原文)

在这篇文章中,咱们将深化钻研Kubees部署概念和一些经常出现战略,了解每种战略的优缺陷。适合的部署战略使咱们能够在颁布运行程序时最大限制地缩小停机时期、增强客户体验并提高牢靠性。 什么是K...

简介及其主要特点-Kubernetes (简介及其主要事迹)

简介及其主要特点-Kubernetes (简介及其主要事迹)

Kubernetes,也被称为K8s,是一个开源的容器编排系统,最初由谷歌开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器管理的方法,使得开发人...