本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
AppFormix:帮助企业运营 Kubernetes
如果您以运营云为生,那么您会非常清楚,我们自客户端/服务器时代以来用于监控、分析和优化的工具,在应用于现代云基础设施的敏捷、动态和快速变化的世界时,已经力不从心。
而且,如果您是企业云的运营者,您就会知道,实施容器和容器集群管理旨在为您的应用程序开发人员提供更敏捷、响应更快、效率更高的云基础设施。应用程序正在被重写,新应用程序正在开发——它们不是为相对静态工作负载是常态的传统环境而开发,而是为动态、可扩展的云环境而开发。云原生应用程序的动态特性,再加上向持续部署的转变,意味着应用程序对基础设施的需求不断变化。
这种转变需要基础设施的透明化以及实时监控和分析。没有这些关键部分,应用程序及其底层管道都无法提供最终用户所期望的低延迟用户体验。
AppFormix 架构评审
从运营角度来看,有必要了解应用程序如何消耗基础设施资源,以最大限度地提高投资回报率并保证 SLA。AppFormix 软件使运营者和开发人员能够监控、可视化和控制云工作负载对物理资源的利用情况。
该软件的核心是 AppFormix 数据平台,它提供了一个分布式分析引擎,可以对深入、高分辨率的指标进行可配置的实时评估。在每个主机上,资源高效的 AppFormix 代理从硬件、虚拟化层一直到应用程序收集和评估多层指标。智能代理提供亚秒级的响应时间,使得在问题开始影响应用程序和用户之前检测并解决问题成为可能。原始数据与构成云原生环境的元素相关联:应用程序、虚拟机、容器、主机。然后,AppFormix 代理将指标和事件发布到数据管理器,数据管理器将数据存储并转发到分析模块。事件基于用户或基础设施运营者设置的预定义或动态条件,以确保满足 SLA 和策略。
| | | 图 1:Kubernetes 集群的汇总视图。运营者和用户可以定义其 SLA 策略,AppFormix 提供 Kubernetes 集群中所有元素的实时运行状况视图。
| | | 图 2:Kubernetes 节点遥测的实时可视化提供了主机上资源利用率以及 Pod 和容器消耗的资源的快速概述。用户定义的标签使捕获命名空间和其他元数据变得容易。
其他子系统是策略控制器和分析。策略控制器管理资源监控、分析和控制的策略。它还提供基于角色的访问控制。分析模块分析数据平台生成的指标和事件,实现跨多个元素的相关性,为运营者和开发人员提供更高级别的信息。分析模块还可以根据基础设施中的条件在策略控制器中配置策略。
AppFormix 围绕主机和实例(容器或虚拟机)以及这些元素的逻辑组组织云基础设施的元素。AppFormix 通过适配器模块与云平台集成,适配器模块发现环境中的物理和虚拟元素,并将这些元素配置到策略控制器中。
将 AppFormix 与 Kubernetes 集成
企业通常运行许多位于本地或异地的环境,并运行不同的计算技术(虚拟机、容器、裸机)。我们 AppFormix 开发的分析平台为 Kubernetes 用户提供了一个单一的管理界面,可以从中监控和管理私有和混合环境中的容器集群。
AppFormix Kubernetes 适配器利用 Kubernetes 的基于 REST 的 API 来发现节点、Pod、容器、服务和副本控制器。通过每个元素的关系信息,Kubernetes 适配器能够在我们系统中表示所有这些元素。Pod 是一组容器。服务和副本控制器都是不同类型的 Pod 组。此外,使用 watch 端点,Kubernetes 适配器能够感知环境的变化。
AppFormix 在企业中的 DevOps
借助 AppFormix,开发人员和运营者可以协作优化应用程序和基础设施。用户可以获得自助式 IT 体验,从而可视化堆栈各层(物理硬件、平台和应用程序软件)的 CPU、内存、存储和网络消耗。
- 实时多层性能指标 - 开发人员可以实时查看多层指标,这些指标在容器执行的物理节点的上下文中显示容器资源消耗。通过这种上下文,开发人员可以确定应用程序性能是否受限于物理基础设施(由于争用或资源耗尽),或者受限于应用程序设计。
- 主动资源控制 - AppFormix Health Analytics 根据集群中的条件提供基于策略的操作。例如,当工作节点上的资源消耗超过阈值时,Health Analytics 可以通过调用 Kubernetes REST API 将该节点从调度池中移除。这种动态控制由每个节点的实时监控驱动。
- 容量规划 - Kubernetes 将调度工作负载,但运营者需要了解资源如何被利用。哪些资源需求最大?需求随时间的变化趋势如何?运营者可以生成报告,为容量规划提供必要的数据。
如您所见,我们正在努力为 Kubernetes 用户提供一个有用的、高性能的工具集,用于 OpenStack 和 Kubernetes 环境,使运营者能够为他们的应用程序开发人员提供自助式 IT。我们很高兴能成为 Kubernetes 生态系统和社区的贡献伙伴。