在今年的Nginx Sprint 2.0虛擬大會上,NGINX(來自流行的開源web服務器/負載均衡器和反向代理背后的公司F5),發(fā)布了NGINX現(xiàn)代應用參考架構(MARA)。該公司在一篇博客文章中說,這將幫助用戶“創(chuàng)建一個完整的,完全可操作的基于微服務的應用程序,你可以在幾分鐘內啟動并運行,托管在單個GitHub Repo中。”
“部署Kubernetes有很多不同的方法——網(wǎng)絡、安全、身份驗證,甚至API網(wǎng)關之類的東西。對于大多數(shù)剛剛起步的企業(yè)來說,這有點像黑魔法。”F5 NGINX產品集團總經理Rob Whiteley在接受采訪時說,“它并沒有被很好地理解,你很容易就陷入錯誤配置的狀態(tài)。因此,我們開始創(chuàng)建一種方法,自動將所有NGINX組件配置為最佳實踐狀態(tài)。”
他們在另一篇博文中寫道,MARA是“開發(fā)人員、DevOps和平臺運維團隊可以使用、修改和改進的‘可竊取’代碼”。它由YAML文件和Python腳本組成,Pulumi被設置為作為代碼實現(xiàn)的基礎設施的默認選擇。作為用戶,你只需運行啟動腳本,Pulumi運行一系列命令,部署Kubernetes環(huán)境和后續(xù)部分。
“我們開始時創(chuàng)建了一個巨大的清單,列出在生產中運行Kubernetes所需的工作,這是任何一家在這條道路上走過的企業(yè)都經歷過的。我們意識到,沒有什么能阻止我們將所有這些作為模板ID參考架構,作為真正的操作代碼。”
Whiteley還表示,MARA試圖超越其他一些已有的Kubernetes部署,通過提供這種能力,可以使用單個命令部署完全成形的環(huán)境,同時保持平臺無關性。
“問題是那些只存在于紙面上的東西。沒有工作代碼。你仍然需要去獲取所有的組件,并按照經過驗證的設計將它們連接在一起。我們想更進一步,讓這個代碼可以部署。它使經過驗證的設計更進一步,使其可部署,而不是僅供參考。”
在發(fā)布時,MARA預先配置了許多選項,使用Elastic進行日志管理,使用Prometheus和Grafana進行監(jiān)控和儀表盤,使用AWS的Elastic Kubernetes Service(EKS)作為部署目標,使用Spinnaker進行連續(xù)交付,使用cert manager進行TLS,以及中間層的多個NGINX產品。
然而,向前推進的計劃是鼓勵其他人為堆棧所有級別的其他工具提供集成。
“我們在此過程中意識到,可以依靠社區(qū)、供應商伙伴和其他人,然后交換所有這些模塊。因此,我們確保從一開始你就可以在Terraform上選擇Pulumi和sub,可以在Pupper或Chef中選擇Ansible和sub。可以對內部和外部進行抽象,然后你真正需要做的就是將這些其他工具打包,使它們成為參考架構的一部分。”
關于這些計劃,NGINX表示,它有一些具體的“近期改進”,例如部署到DigitalOcean、Red Hat OpenShift、Rancher、VMware vSphere和其他Kubernetes環(huán)境、原生Terraform集成以及對其他CI/CD平臺的支持。它還為F5和NGINX工具制定了許多計劃,例如與NGINX Controller集成以管理和監(jiān)控NGINX Plus入口控制器、NGINX App Protect的開箱即用配置、與F5產品和服務(如BIG?IP、云服務和Volterra)的集成,以及與NGINX服務網(wǎng)格和基于Istio的Aspen Mesh的集成。
Whiteley解釋說:“很快,企業(yè)得到了一個挑選名單,說明‘我關心我環(huán)境中的這些工具’,它將自動拉取、組裝和預集成所有腳本。然后,通過一個命令就可以部署。”
原文鏈接:
https://thenewstack.io/nginxs-reference-architecture-for-kubernetes-microservices/