摘要
在 12 月 7 日的 NGINX Sprint APAC 2.1 大会上,F5 NGINX 业务部门总经理 Robert Whiteley 在主旨演讲中探讨了开源核心在现代应用架构中的重要性,分享了平衡开发速度和运维一致性的经验,并阐述了 NGINX 为开发者和运维团队带来的独特价值。
Rob 不仅回顾了 NGINX 在亚太地区为开源社区所做的实际行动,还预告了近期将推向市场的商业产品特性升级。最重要的是,Rob 首次透露了 NGINX 在未来 6 个月即将发布的全新开源项目:NGINX 扫描升级工具、NGINX Essential 开源软件包(仅限中国大陆地区)、实用的 Kubernetes Gateway API。
新冠疫情产生的深远影响
我们从这场疫情中认识到一个道理:疫情加速了商业模式的改变。在线业务快速发展,为了支持更高的业务量,在数字时代下生存且茁壮成长,改变是必须的。
开发人员是在线生存的关键。面对数字服务,开发人员需要更加敏捷。我们发现,那些最善于让开发人员变得敏捷的公司,成长速度更快、竞争力更强,为开发人员提供动力是至关重要。
但同时,我们也在承受着开发敏捷性带来的“风险”。当授权给开发人员时,开发人员会为每一项工作挑选工具,随意扩展导致复杂性,造成工具的无序蔓延,将风险引入到环境中。
那我们要如何实现两者的平衡?如何在赋予开发人员权力的同时设置规则,以确保操作的一致性,从而降低风险,减少复杂性,避免出现随意扩展?
一般来说,当开发人员将应用发布到生产环境中,会有另一个团队需要对其进行运维,这是整个 DevOps 体系的运作方式。但是 DevOps 团队有一系列完全不同的需求,所以经常需要引入一组全新的工具来进行应用运维。那么,如果开发人员喜欢的技术同时拥有运营人员需要的另一套功能,就不需要引入新的工具,并且可以规避风险,从而实现体系平衡。
而这可以通过NGINX实现。
DevOps 方程的一端:应用开发
开发者喜欢 NGINX 这一点是毋庸置疑的。因为在已知的 4.5 亿个互联网站点中,大约三分之一都运行于 NGINX 之上。
NGINX 的速度快,代码简洁,可以快速地处理流量;NGINX 还很灵活,可以用于多种用途,包括 web 服务、反向代理、负载均衡、API 网关,这使开发人员能够灵活地使用一个代码库来处理多种任务。
NGINX 还非常轻量,只有 2 MB 左右,可以在容器中运行,可编排性极强,并可以轻松扩展收缩。NGINX 非常易于使用,我们提供了一种简单直接的配置语言,使得 NGINX 的启动和运行变更加容易。
从开源的角度,我们在亚太地区做了哪些实际行动?
在全球已经接入网络的所有国家中,我们是获得参与度是最高的开源项目之一。我们的目标是把大家聚在我们的社区,让大家能够互相结识,并且让我们的社区获得认可。为了达到这一目的,我们做了诸多努力。
-
部署本地资源
我们建立了本地化且权威的 NGINX 站点以便社区能够访问,从而了解更多关于 NGINX 软件及其最佳实践的信息。
如果你想尝试 NGINX 开源版,你可以访问 nginx.org 或者 nginx.org.cn —— 这是我们的全球网站之外唯一的 NGINX 官方开源网站,专为中国市场打造。
除此之外,我们还利用我们的全球网站 nginx.com 的丰富经验,通过 nginx.co.jp 在日本实现本地化、通过 nginx-cn.net 在中国实现本地化。
-
提供理想的会议或聚会空间
我们在澳大利亚、新加坡和香港等多个城市使用英语举行会议,也在泰国、日本、中国举行会议。每次会议都使用当地语言进行本地化,为大家提供融入同行并互相交流最佳实践的绝佳机会。
-
超级用户项目
在东盟地区,我们设立了“超级用户项目” ,其目的是找到优秀用户,证明他们的技能,让他们在社区中得到广泛认可。我们希望在东盟之外更广泛区域推广这个项目。
更大的投入与更多开源项目与新产品的推出
开源在亚太地区具有巨大的吸引力和发展势头,我们还有多项激动人心的投资。
-
NGINX 扫描升级工具
它的意义在于简化操作,帮你识别不同版本的 NGINX 并知道它们可以升级到哪个版本。这样你就可以使用最新功能,并确保 bug 和关键漏洞都被修复,这个工具将使你能够轻松使用最新的、稳定的 NGINX 版本。
-
NGINX Essential 开源软件包
这个软件包目前仅限于中国市场,希望能够为我们的开放源码提供专门的支持。如果你不需要商业版的 NGINX Plus,仍然可以倚赖 NGINX 全球领先的支持服务。
-
实用的 Kubernetes Gateway API
我们始终活跃在 Kubernetes 的一些特别兴趣小组。对与 Gateway API 小组进行合作特别感兴趣。关于一个很特别的下一代 Ingress 项目,其目的是改变 Kubernetes 的运行方式,我们承诺在不久的将来推出一个实用且可参考的 Gateway API。
NGINX 开源开放的速度会进一步加快,而这些都只是刚刚开始。
DevOps方程的另一端:平台运维
如果说,以上是我们为了确保开发人员拥有出色的开源技术,而做出的种种努力与承诺,是解开实现平衡“方程式”的一端。那么,如何通过工具来确保平台拥有大规模应用运维能力,则是同等重要的另一端。
我们非常注重 PlatformOps(平台运维)小组,它指的是为开发人员构建友好基础设施的团队。这个团队构建了 Kubernetes、创建容器和可组合的基础设施,以便开发人员在发布代码时能够自动扩展并继承所有好处。
对于这些平台团队来说,他们有一系列独特的需求:
-
需要扩展:需要确保容器可以被复制、扩展、实现更大的吞吐量、更多的流量和更大的弹性,避免服务用户时发生崩溃情况。
-
平台治理:谁有权访问此环境,开发人员是否可以通过自助服务进行管理,如果可以,是否有合适的基于角色的访问控制。因此,需要有围绕治理的一组独立功能。
-
安全防护:我们需要将特定的功能进行分层,比如 web 应用防火墙,或者 DDOS 保护以及 anti-bot 防护,以确保应用不易受到不同来自内部或外部的攻击。
-
可观测性:以便在高度动态的环境中对应用的各种行为进行端到端跟踪,更轻松地排除故障,缓解和解决各类停机类型错误。
我们发现,开发人员正在转向开源,而平台团队却更倾向于商业解决方案。如果我们能够消除这一分歧呢?如果开发人员构建生产级应用时倾向使用的工具,同时具备一组功能,可以被添加、付费、订阅以自动解决平台团队的问题呢?
这就是 NGINX 的使命,这就是我们解开这个方程,让你的架构面向未来的方式,为了帮助你的平台团队实现这四项成果,我们有哪些例子可以参考,又在投资哪些产品呢?
-
实例管理工具 NGINX Instance Manager
六个月前,我们发布了实例管理工具 NGINX Instance Manager,用于配置、监控和跟踪大量 NGINX 实例,无论是开源的还是商业的。我们也即将推出2.0 版本,新版将提高治理能力、可观察性以及一些扩展功能。
-
即将推出 NGINX Plus R26
预定于 2022 年 2 月,我们将发布 NGINX Plus R26 ,它将带来围绕安全性和可扩展性的工具,从而使 NGINX Plus 更适合微服务环境。
-
NGINX Ingress Controller 1.14 版本
我们最主要的用例之一就是将 NGINX 部署为 Kubernetes 的 Ingress Controller,事实上 NGINX 市场份额的 60 % 以上都与 Kubernetes 有关。
因此我们想要发布 NGINX Ingress Controller 1.14 版本,这是商业化支持的 Ingress 控制器的新版本。它有为 Kubernetes 打造并基于 NGINX Plus 的特有功能,借此我们得以利用刚才提到的那些属性来解决基础 Kubernetes 环境所面临的挑战。
如何打造面向未来的架构
概括来说,首先需要优化 Kubernetes 流量;然后,需要管理和保护微服务;最后,在不同的 Kubernetes 集群之间实现负载平衡。
-
优化 Kubernetes 流量
NGINX 通过 Ingress Controller、服务网格和 WAF 开展了一系列工作,以确保 Kubernetes 做好投入生产环境的准备。如同建造房子的地基,有了坚实的基础,开发人员就可以开始在其测试和开发环境中使用容器。
-
管理 API
而这些容器是通过 API 调用来相互通信的,所以就会出现全新的微服务 API 流量。你需要防护和管理这些流量,而这也是我们帮助你打造面向未来架构的第二种方式——我们启用了一组 API 网关、API 生命周期管理和 API 安全工具,以实现 API 流量的自动管理。
这建立在各项基础工作之上以确保优化 Kubernetes 流量,不仅拥有稳定的基础,而且拥有坚实的 API 基础设施,从而可以提供最有说服力的基于微服务的体验。接下来就可以为 API 提供安全保障并进行管理了。
-
集群间的负载均衡
下一步你需要将该集群连接到另一个集群,或者连接到运行于传统环境的另一个应用。这时,需要处理一些云原生的负载均衡选项。
我们付出了艰苦努力来构建软件负载均衡,并提供 DDOS 保护和 BOT 缓解等附加功能,可以保护流量的路由过程。而通过 BIG‑IP 来实现全局服务器负载均衡,DNS 是最常用的方式。这样就实现了集群的自动故障转移和恢复能力。
至此,你就拥有了稳定的基础、可靠的 API 和容错能力。这就是在这个时代取得成功的路径图,这一切都可以通过 NGINX 开源版实现,并辅以平台团队以生产规模运维 Kubernetes 所需的商业功能。