点赞
评论
收藏
分享
举报
在 Kubernetes 中部署应用交付服务(第 1 部分)
发表于2022-07-20 14:26

浏览 571

原文作者:Owen Garrett of F5  
原文链接:在 Kubernetes 中部署应用交付服务(第 1 部分)
转载来源:NGINX 官方网站    

本文是以下系列博文中的一篇:

  • 在 Kubernetes 中部署应用交付服务(第 1 部分)(本文)解释了为什么因分治而重复使用的应用服务反而可以提高整体效率:因为 NetOps 和 DevOps 团队有不同的要求,所以他们会选择最适合他们特定需求的工具。
  • 在 Kubernetes 中部署应用交付服务(第 2 部分)以 WAF 为例,就应用交付服务在 Kubernetes 环境中的部署位置提供了指导。您可以根据自己的需求,以基于每个 Service 或基于每个 POD 的方式,将 WAF 部署在 Kubernetes 环境的“前门” 或 Ingress Controller上。

如果要说伴随 Kubernetes 和云原生架构的增长而产生的最大改变,那就是 DevOps 团队和应用所有者能够更直接地控制应用的部署、管理和交付方式。

现代应用依赖一套日益成熟的配套“应用交付服务”以确保其在生产环境中成功运行。应用与其配套服务之间的界限已经模糊,DevOps 工程师渐渐发现他们需要自己左右或管理这些服务。

我们通过几个具体的例子了解一下。

  • 灰度和蓝绿部署 —— DevOps 团队将应用推进到生产环境中,有时每天会推送多次。他们积极使用负载均衡器或应用交付控制器 (ADC) 的流量导向功能,先使用少量流量验证新的应用实例,然后再将所有流量从旧实例切换到新实例。
  • DevSecOps 流水线 —— DevOps 团队直接将安全策略构建到 CI/CD 流水线中,例如 Web 应用防火墙 (WAF) 规则集。这些策略被当作又一个应用工件来处理,被自动部署到测试、预生产及生产环境中。虽然 SecOps 团队可以定义安全策略,但 DevOps 执行在生产环境中的实际部署。

这些例子都与我们所说的“应用交付服务”有关 —— 不属于应用的功能性需求,但却是确保应用成功运行不可或缺的重要能力。这些功能可能是缓存、负载均衡、身份验证、WAF 和拒绝服务(DoS措施,目的是提供出色的可扩展性、性能加速或安全防护。

NetOps 和 DevOps 都关注应用交付服务

DevOps 的兴起一点没有削弱 NetOps 团队的作用,后者仍然负责整个平台及其所需的应用交付服务的运营。NetOps 需要控制这些全局性的服务,这一点仍然至关重要。事实上,当 NetOps 和 DevOps 都关注应用交付服务(例如 ADC 或 WAF)时,我们经常会发现应用交付服务的分而治之。这不是效率低下,而是反映了各方在使用该服务时的不同需求和目标:

  • NetOps SecOps 负责企业基础架构的整体安全性、性能和可用性。衡量其目标的标准是可靠性、正常运行时间、延迟状况以及建立安全边界的能力。他们使用的工具通常是多租户的(管理多个应用和多个业务线的流量)、以基础架构为中心的且持久使用的。同样的,他们使用的监控和警报工具也是以基础架构为中心的。
  • DevOps DevSecOps 负责其相关业务线需要运营的每个应用。衡量其目标的标准在于能否快速迭代、轻松将新服务推向市场,并能响应不断变化的业务需求。系统出现故障很正常——对他们来说,可靠性和正常运行时间是第二位的,最重要的是要快速排除故障并解决不可避免且不可预见的生产问题。他们使用的工具往往是基于软件(通常是开源)的,很容易通过配置文件和 API 实现自动化,并根据需要迅速部署和扩展。

有时分而治之反而会提高运营效率

为什么功能重复不会导致效率低下?简单地说,因为 NetOps 和 DevOps 都需要使用某些功能,但他们的目标、指标和运营方式却截然不同。因期望 DevOps 和 NetOps 共享一个共同的 ADC(比如说)而造成冲突并导致各自效率低下的案例数不胜数。

NetOps 和运营团队最关心的往往是位于基础架构的前门、更接近客户的全局服务。DevOps 和应用团队最关心的则是部署位置更接近应用代码的、针对特定应用的服务。而他们的关注点通常会在中间重合。

您可以根据每个团队的需求为其提供合适的工具,从而提高运营效率。例如,经过多年的产品开发,F5 BIGIP ADC 基础架构已经能够有效满足 NetOps 的需求。NGINX 的软件 ADC 可轻松通过 CI/CD 流水线部署和自动化,能够有效满足 DevOps 用户的需求。

审慎安排每个应用交付服务的所有权和责任归属是提升运营效率的核心。例如,当部署两层 ADC 或负载均衡器时:

  • NetOps 能够管理所有网络流量、应用安全策略、优化路由,并监控基础架构的健康和性能。稳定且妥善管理的配置可最大限度地减少变化带来的风险,并最大可能地增加正常运行时间。通过将应用交付服务部署在数据中心的前门,NetOps 可创建一个安全的托管边界,让所有流量必须流经此处进行检查。
  • DevOps 团队可完全控制按应用部署的 ADC,根据应用和运营流程自由优化和调整 ADC 配置。他们可以调整必要的参数,以缓存和加速应用,或优化健康检查、超时和错误处理。他们还可以安全地进行蓝绿部署及其他部署,而不必担心同一基础架构上的其他无关服务运行中断。

通过将 ADC 功能放置在两个不同的位置(基础架构的前门和靠近应用的位置),企业可实现专门化和精准控制,从而更高效地部署和运营业务所依赖的各项服务。

Kubernetes 突显了智能定位应用交付服务的必要性

作为以 DevOps 为中心的数字化转型计划的一部分,企业正在快速采用 Kubernetes。Kubernetes 为 DevOps 工程师提供了一个可轻松自动化、运行时保持一致且高度可扩展的应用平台。

许多传统上位于数据中心前门的应用交付服务都可以在 Kubernetes 中部署或实现自动化。这进一步突显了在生产环境中 DevOps 团队在应用运营管理方面所扮演的角色,并为重要应用的部署方式和位置提供了更多选项。

在本系列博文的第二篇,我们将介绍一些服务部署的成熟实践,比如在 Kubernetes 环境中运行的应用 WAF 的部署。我们将探讨不同选择的利弊以及最重要的挑选标准,以帮助您做出最佳决策。

想要在 Kubernetes 环境中将 NGINX Plus Ingress Controller 用作负载均衡器?想要通过 NGINX App Protect 保护您的应用?立即下载 30 天免费试用版,或与我们联系以讨论你的用例




更多资源

想要更及时全面地获取NGINX 相关的技术干货、互动问答、系列课程、活动资源?

请前往NGINX 开源社区:


已修改于2023-03-06 21:21
本作品系原创
创作不易,留下一份鼓励
NGINX官方账号

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
NGINX官方账号
这家伙很懒还未留下介绍~
171
文章
21
问答
180
粉丝
相关文章
原文作者:BrianEhlertofF5,JennGileofF5原文链接:NGINXIngressController2.0版:那些你不得不知道的事儿-NGINX转载来源:NGINX官方网站(首次发布于2021.12.27)10月份,我们推出了F5NGINXIngressController2.0版(nginxinc/kubernetes-ingress),增加了对 Kubernetes1.22 和 IngressAPIV1(networking.k8s.io/v1)的支持。您可能会想,那又怎样呢?“那又怎样”是一个很微妙的问题,我们可以从三个相互关联的问题中一探究竟:为什么Kubernetes的发布事关重大?什么是IngressAPI,为什么升级到 networking.k8s.io/v1 至关重要?NGINXIngressController2.0对当前客户有何影响?《Kubernetes版本攻击应对计划》为什么Kubernetes的发布事关重大?这个问题的答案
点赞 0
浏览 746
原文作者:ScottvanKalken原文链接:Namespace和Cgroup的简介及其工作原理-NGINX转载来源:NGINX官方网站本文是容器技术系列文章的一部分:  Namespace和cgroup简介及其工作原理(本文)构建小型容器镜像我最近一直在研究开源多语言应用服务器 NGINXUnit。在研究中,我注意到Unit同时支持namespace和cgroup这两项进程隔离的特性。本文将介绍这两大构成容器基础的Linux技术。  容器及相关工具(例如Docker和 Kubernetes)出现有一段时间了。它们改变了现代应用环境中软件的开发和交付方式。容器可支持软件在各自的隔离环境中快速部署和运行,而无需用户构建单独的虚拟机(VM)。  大多数人可能很少考虑容器的工作基础,但我认为,了解底层技术很重要,因为这有助于我们制定决策。另外,就我个人而言,能够彻底弄清事物的工作原理令我心情舒畅!什么是Namespace?Namespace作为Linux内核
点赞 0
浏览 672
原文作者:AmirRawdatofF5原文链接:比较裸机和虚拟环境中的NGINX性能-NGINX转载来源:NGINX官方网站由于新冠疫情爆发,公有云的采用呈爆炸式增长的同时,企业也正积极拥抱混合云,即在公有云和本地(比如私有数据中心)同时运行工作负载。  这一混合方案使企业能够在最能满足其需求的环境中部署工作负载。例如,企业可以在本地环境中部署具有高度敏感数据的任务关键型工作负载,同时利用公有云运行仅需对核心网络基础架构进行有限访问的Web托管和边缘服务(如物联网)等工作负载。当在本地运行工作负载时,您可以进一步选择是在裸机环境还是在虚拟(管理程序)环境中运行。为了帮助您确定最出色、最经济的本地解决方案来满足您对性能和扩展性的需求,我们提供了一份选型指南,比较了NGINX在这两种环境中的性能。本文介绍了如何测试NGINX以得出选型指南中发布的数值。由于许多客户也将应用部署至Kubernetes,因此我们还在RancherKubernetesEngine(RKE)平台上分步测试了NGINXIngressController
点赞 1
浏览 643