1. API網關的作用和定位
- 為對內外關鍵http服務提供統一的入口骂澄,并為集中提供安全,審計,監(jiān)控婉称,預警,風控構建基礎腳手架
- 為對外接口調用提供反向代理
- 節(jié)約后端服務開發(fā)成本构蹬,減少上線風險
- 為服務熔斷王暗,灰度發(fā)布,線上測試提供簡單方案
傳統的服務架構
使用API網關后的服務架構
使用API 網關作為外部服務的反向代理
帶來的好處:
- firewall統一對api網關服務器集群做策略庄敛,邏輯簡單清晰俗壹,易于維護
- 對外訪問控制由網絡層面轉換成了運維層面,減少變更的流程和錯誤成本
- 兩級控制藻烤,簡單靈活绷雏,網絡組先變更,運維做測試怖亭,成功后授權應用服務器訪問涎显。
- 出口審計,監(jiān)控和報警
2. API網關在整體架構體系的位置
- 鑒于中樞和中央預定系統在生產環(huán)境中的位置和功能兴猩,API網關會作為中樞和中央預定系統的代理網關提供服務給華住內部渠道和外部合作伙伴
- 華住與外部對接同樣需要一層代理來簡化部署期吓,減少安全策略的配置變更
3. tyk.io作為華住網關第一版的基準
選擇tyk.io中間件作為API網關第一版的基準主要出于以下原因和目的:
- 輕量,但功能足夠
- 結構簡單倾芝,邏輯清晰
- 存儲基于mongodb和redis讨勤,兩者廣泛應用于華住生產環(huán)境系統箭跳,有能力做好運維,以及在突發(fā)異常事件中有能力在較短事件內恢復潭千。
- 性能足夠 衅码,以下是官方benchmark
4. tyk.io結構
5. API網關第一期里程碑以及時間節(jié)點
任務 | 時間點 | 狀態(tài) |
---|---|---|
技術選型與論證 | 2月 - 3月 | Ready |
測試環(huán)境部署 | 3月底 - 4月初 | |
確定性能基線 | 4月中 | |
安全評審 | 4月中 | |
高可用與災難恢復評審 | 4月底 | |
預發(fā)布部署 | 5月初 | |
生產部署 | 5月中 | |
H5 中樞1.0,2.0部分接口 pilot實驗 | 5月底 | |
H5完成切換 | ? | |
官網完成切換 | 脊岳? | |
app完成切換 | 逝段? | |
出口服務切換 | ? |
6. API網關第一期硬件需求
***三臺中配centos 7虛機服務器 ***
7. 風險點
- mongodb存儲冷熱備份與切換方案是否成熟
- 災難恢復過程中的應急預案是否有效
- 線上服務灰度發(fā)布
- tyk使用go語言實現對現有二次研發(fā)能力的挑戰(zhàn)
附錄:
Change Log
日期 | 內容 | 作者 |
---|---|---|
2016.3.17 | 第一版 | 陸贇 |
2016.3.26 | 修改第二節(jié)整體架構位置的圖割捅,增加對外服務反向代理示意圖奶躯,修改里程碑 | 陸贇 |