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