概念回顾:现代应用架构中的数据平面、管理平面和控制平面
原文链接:概念回顾:现代应用架构中的数据平面、管理平面和控制平面
转载来源:NGINX 中文官网
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 阅读原文。
企业必须发挥好数据平面、管理平面和控制平面的作用,并对其现代应用的部署、管理、防护和迭代进行大局设计。
什么是数据平面?
在现代应用架构中,数据平面用于存放和传输应用流量和数据流量。
在部署云原生应用时,该层控制不同环境、应用和平台之间的应用流量。由于缺乏可见性并且存在治理差距,分布式环境扩大了威胁面并增加了系统中断的几率。
数据平面对于大规模构建高性能现代应用而言至关重要。决定应用性能的关键指标(例如用户体验和延迟)取决于响应迅速、安全可靠且高度可扩展的数据平面。通过执行所有的策略、服务级别协议 (SLA) 、扩展行为以及其他的行为触发器(例如重试、keepalives 和横向扩展),数据平面可以对应用下达指示。
在 Kubernetes 中,数据平面由 worker 节点及其 pod ,以及通过 kubelet 代理进行通信的容器(与容器引擎和维护状态信息的数据库共享状态和条件)组成。每个节点都有一个 kubelet,负责从控制平面(即 API 服务器)接收配置指令。
尽管 Kubernetes 数据平面在构造和设计上与传统的三层 Web 应用所用数据平面有所不同,但功能大致相同,可确保应用运行良好。
什么是管理平面?
在现代应用架构中,管理平面可为数据平面和控制平面建立安全防护。
在部署云原生应用时,该管理层在分布式环境中执行通用标准、访问控制和策略。管理平面能够将控制平面操作的复杂性抽象出来,并提供应用性能的可视性和洞察。由于缺乏可视性并存在治理差距,分布式环境扩大了威胁面并增加了中断几率。
平台运营团队正引入管理平面,以实现更加敏捷和以开发人员为中心的应用开发。他们可以在管理平面搭建透明护栏,确保用户不会伤害自己或他人。
尽管两者功能类似,但管理平面实际上是一个浮动在控制平面之上的元层(meta layer)。管理平面位于堆栈的较高层面,旨在简化控制平面的配置,以便更轻松地进行扩展并实现可观测性和弹性。它可以制定用于所有应用、API 和微服务的全局策略并设置必要的配置。
管理平面还能够按应用组、类型或地理位置治理并应用策略。在现代应用时代,许多团队都可以从强大的管理平面中受益 — 包括网络运营团队和业务线(营销团队、安全团队、合规团队等)。
什么是控制平面?
在现代应用架构中,控制平面为数据平面配置规则。
在部署云原生应用时,需要该管理系统来简化分布式环境中流量管理和安全策略的创建与实施。由于缺乏可见性并且存在治理差距,分布式环境扩大了威胁面并增加了系统中断的几率。
控制平面是一个单独的实体,位于数据平面之上,为数据平面实施规则。它最初是用于四层网络的策略引擎,现在还影响 Kubernetes 中的七层流量。在数据平面治理通过应用的数据流和 pod 级的应用行为后,控制平面可以引导数据平面,以监督容器、节点、pod 及集群的编排和协调。控制平面的组件就集群做出全局决策(例如调度),同时检测并响应集群事件。
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 阅读原文。
版权声明: 本文为 InfoQ 作者【NGINX开源社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/1aca86b58bb260762d6d7ecbd】。文章转载请联系作者。
评论