Nginx 推出 Kubernetes 微服务参考架构
在今年的NGINX Sprint 2.0虚拟大会上,NGINX(来自流行的开源web服务器/负载均衡器和反向代理背后的公司F5),发布了NGINX现代应用参考架构(MARA)。该公司在一篇博客文章中说,这将帮助用户“创建一个完整的,完全可操作的基于微服务的应用程序,你可以在几分钟内启动并运行,托管在单个GitHub Repo中。”
“部署Kubernetes有很多不同的方法——网络、安全、身份验证,甚至API网关之类的东西。对于大多数刚刚起步的企业来说,这有点像黑魔法。”F5 NGINX产品集团总经理Rob Whiteley在接受采访时说,“它并没有被很好地理解,你很容易就陷入错误配置的状态。因此,我们开始创建一种方法,自动将所有NGINX组件配置为最佳实践状态。”
他们在另一篇博文中写道,MARA是“开发人员、DevOps和平台运维团队可以使用、修改和改进的'可窃取’代码”。它由YAML文件和Python脚本组成,Pulumi被设置为作为代码实现的基础设施的默认选择。作为用户,你只需运行启动脚本,Pulumi运行一系列命令,部署Kubernetes环境和后续部分。
“我们开始时创建了一个巨大的清单,列出在生产中运行Kubernetes所需的工作,这是任何一家在这条道路上走过的企业都经历过的。我们意识到,没有什么能阻止我们将所有这些作为模板ID参考架构,作为真正的操作代码。”
Whiteley还表示,MARA试图超越其他一些已有的Kubernetes部署,通过提供这种能力,可以使用单个命令部署完全成形的环境,同时保持平台无关性。
“问题是那些只存在于纸面上的东西。没有工作代码。你仍然需要去获取所有的组件,并按照经过验证的设计将它们连接在一起。我们想更进一步,让这个代码可以部署。它使经过验证的设计更进一步,使其可部署,而不是仅供参考。”
在发布时,MARA预先配置了许多选项,使用Elastic进行日志管理,使用Prometheus和Grafana进行监控和仪表盘,使用AWS的Elastic Kubernetes Service(EKS)作为部署目标,使用Spinnaker进行连续交付,使用cert manager进行TLS,以及中间层的多个NGINX产品。
然而,向前推进的计划是鼓励其他人为堆栈所有级别的其他工具提供集成。
“我们在此过程中意识到,可以依靠社区、供应商伙伴和其他人,然后交换所有这些模块。因此,我们确保从一开始你就可以在Terraform上选择Pulumi和sub,可以在Pupper或Chef中选择Ansible和sub。可以对内部和外部进行抽象,然后你真正需要做的就是将这些其他工具打包,使它们成为参考架构的一部分。”
关于这些计划,NGINX表示,它有一些具体的“近期改进”,例如部署到DigitalOcean、Red Hat OpenShift、Rancher、VMware vSphere和其他Kubernetes环境、原生Terraform集成以及对其他CI/CD平台的支持。它还为F5和NGINX工具制定了许多计划,例如与NGINX Controller集成以管理和监控NGINX Plus入口控制器、NGINX App Protect的开箱即用配置、与F5产品和服务(如BIG‑IP、云服务和Volterra)的集成,以及与NGINX服务网格和基于Istio的Aspen Mesh的集成。
Whiteley解释说:“很快,企业得到了一个挑选名单,说明'我关心我环境中的这些工具’,它将自动拉取、组装和预集成所有脚本。然后,通过一个命令就可以部署。”