翻譯 | 李守超後端
原文 | https://www.getambassador.io/...api
導讀緩存
企業API網關是一個很成熟的工具,市場上的相關成熟產品也不少。可是,在對輕量級、快速響應要求很高的微服務架構下,傳統企業級API網關做爲企業的公共基礎設施,又顯得有些重了。在本文中,咱們將討論業務目標(生產率與管理)的不一樣是如何要求咱們實現一種徹底不一樣的API網關。安全
在過去十年中,企業組織一直致力於經過定義良好的API公開內部的業務系統。如何將數百或數千個API安全地暴露給最終用戶(內部和外部),巨大的挑戰促使了API網關的出現。在對外發布服務時,傳統企業級API網關做爲一個系統的後端總入口,承載着全部服務的組合路由轉換等工做。除此以外,咱們通常也會把安全,限流,緩存,日誌,監控,重試,熔斷等放到 API 網關來作。隨着時間的推移,API網關逐漸成爲核心且重要的基礎架構之一。架構
隨着對雲原生和微服務的概念的不斷推廣和使用,咱們開始遇到一些新的問題。區別於傳統企業級API網關,業界提出了旨在加速獨立服務團隊的開發工做流程的微服務API網關。微服務API網關爲團隊提供了獨立發佈,監控和更新微服務的全部功能,關注於加速開發測試部署的工做流程。運維
微服務組織微服務
在微服務組織中,小型開發團隊彼此獨立工做,以快速向客戶提供功能。爲了使每一個服務團隊獨立工做,經過高效的工做流程,服務團隊須要可以:工具
團隊須要作到全部這些而不須要其餘操做或平臺團隊的幫助,由於只要服務團隊須要另外一個團隊,他們就不是所謂的獨立工做,進而致使瓶頸的出現。測試
對於服務發佈,微服務API網關爲消費者提供靜態地址,並動態地將請求路由到適當的服務地址,這裏的服務地址通常指由服務團隊開發和維護的一個或多個服務的多個實例。此外,爲安全性提供身份驗證和TLS終止是向其餘使用者公開服務的典型考慮因素。spa
瞭解服務的最終用戶體驗對於改進服務相當重要。例如,軟件更新可能會無心中影響某些請求的延遲。微服務API網關能夠很好地收集最終用戶流量的關鍵可觀察性的指標,由於它能夠將流量路由到終端服務。
微服務API網關還支持將用戶請求動態路由到不一樣的服務版本以進行金絲雀測試。經過將一小部分最終用戶請求路由到新版本的服務,服務團隊能夠安全地測試本次更新對一小部分用戶產生的影響。
微服務API網關與企業API網關
乍一看,上述用例能夠經過以企業爲中心的API網關來實現。雖然能夠實現,但企業API網關和微服務API網關的實際重點有些不一樣:
自服務發佈
團隊須要可以向客戶發佈新服務,而無需運營或API管理團隊。這種部署和發佈自助服務的能力使團隊可以保持較高的發佈速度和頻率。雖然傳統的企業API網關能夠提供用於發佈新服務的簡單機制(例如,REST API),但實際上只限於負責網關運維的團隊使用。限制單個團隊發佈API,主要緣由是爲了安全考慮:錯誤的API調用可能會對生產環境形成災難性影響。
微服務API網關容許服務團隊輕鬆和安全地發佈新的服務,是由於在微服務場景下,咱們默認服務團隊對微服務有清楚的瞭解並承擔所有的責任。一旦有問題出現能夠快速解決。並且微服務網關能夠提供可配置的監控以方便發現問題,並提供調試鉤子,例如檢查流量或流量轉移/複製。
監控和速率限制
API的常見商業模式是計量,其中根據API使用狀況向消費者收取不一樣的費用。傳統的企業API網關在這一點上通常作的比較好:它們提供了監控每一個客戶端API使用的功能,而且具有當客戶端超出配額時限制其使用的能力。
微服務網關也須要監控和速率限制,但緣由有所不一樣。監控用戶可見的指標(如吞吐量,延遲和可用性)很是重要,它能夠確保微服務的更新不會影響到最終用戶。穩定可靠的監控指標對於實現快速增量更新相當重要。速率限制則用於提升服務的總體彈性。當服務未按預期響應時,API網關能夠限制傳入請求以容許服務恢復並防止級聯故障,也即微服務設計中常用的熔斷、降級等模式。
測試和更新
微服務應用程序具備多個服務,每一個服務都是獨立更新的。上生產環境以前的自動化測試是必要的,但對於微服務來講仍是不夠。金絲雀部署將一小部分生產流量路由到新服務版本,是幫助測試更新的重要工具。經過將新服務版本限制爲一小部分用戶,即使出現問題,服務故障的影響是有限的。當測試穩定之後逐步替換舊版本,最終實現全部服務實例的版本更新。
在傳統的企業API網關中,路由用於隔離或組合/聚合變化的API版本。上生產環境前的自動化測試,上生產環境後的手動驗證和檢查,兩者都是必須的。
總結
傳統的企業API網關旨在解決API管理的挑戰。雖然它們彷佛能夠解決微服務架構下的一些挑戰,但實際狀況是微服務工做流提出了一組不一樣的需求。將微服務API網關集成到微服務的開發工做流程中,使服務團隊可以快速,安全地自行發佈,監控和更新其服務。這將使咱們可以以更快的速度發佈軟件,而且具備史無前例的可靠性。
本文由博雲研究院翻譯發表,轉載請註明出處。