API Gateway 系列 1 - Tyk 入門與 Docker 實戰:代理你的第一個 API
在微服務架構盛行的今天,API 閘道器(API Gateway)已成為企業基礎設施的標配。提到開源閘道器,很多人首選 Kong,但在地端環境(On-Premises)且追求輕量化、內建視覺化管理介面(Dashboard)的場景下,Tyk 展現了極強的競爭力。
本系列文章將分為三部分,從基礎安裝、架構對比到最深層的運維陷阱(APIOps)。從最基礎的 Docker 實戰開始。
一、 Tyk 的核心魅力
- 內建 Dashboard:不同於開源版 Kong 缺乏原生的 GUI,Tyk 提供直觀的介面供開發者管理 API。
- 效能卓越:使用 Go 語言開發,專為高併發環境設計,延遲極低。
- 地端友善:安裝過程極其精簡,且不強制依賴雲端服務,非常適合企業內網部署。
二、 Docker 實戰:五分鐘啟動你的 Tyk 環境
在沒有現成後端應用程式的情況下,我們將利用公開的 OpenWeatherMap API 作為練習對象,模擬真實的 API 代理場景。
1. 下載官方 Docker Compose 設定檔
Tyk 官方提供了一個快速演示包,包含了 Gateway (閘道器)、Dashboard (管理介面) 與 Redis (資料庫):
wget https://raw.githubusercontent.com/TykTechnologies/tyk-pro-docker-demo/master/tyk-pro-docker-demo-ce.yml -O docker-compose.yml
2. 啟動服務
docker-compose up -d
等待啟動完成後,你可以透過 docker-compose ps 確認 tyk-gateway 與 tyk-dashboard 是否都在運行中。
三、 實戰練習:代理第一個公共 API
Step 1: 登入 Dashboard
開啟瀏覽器前往 http://localhost:3000。
- 帳號:
admin@tyk.io - 密碼:
353535
Step 2: 建立 API 定義
- 點擊左側選單的 APIs -> Add New API。
- API Name: 填入
Weather-Proxy。 - Target URL: 填入
https://api.openweathermap.org/data/2.5/weather。 - 點擊 Save 儲存。
Step 3: 設定金鑰認證 (Security)
為了保護 API,我們在 Auth 選項中開啟 Authentication Token。這意味著未來存取此 API 必須帶上 Tyk 發放的密鑰(API Key),否則 Gateway 會直接攔截請求並回傳 401 Unauthorized。
四、 關鍵思維:API Key 的生命週期陷阱
在這裡,初學者常犯一個嚴重的架構錯誤:「完全依賴 Gateway 儲存 API Key」。
專業建議:API Key 的「發放權」與「永久紀錄」應留在業務後端 APP,Gateway 僅作為「執行層(Enforcement Layer)」。
如果你的應用程式在發放 Key 時沒有在自己的資料庫留底,一旦 Tyk 的資料庫(Redis/MongoDB)在升級過程中損毀或未移轉,這些 Key 就會永久消失。屆時,你的客戶端必須全部更新版本才能連接,這將是一場運維災難。
五、 結語與預告
今天我們成功透過 Docker 跑起了 Tyk,並完成了簡單的代理與安全設定。但實務上的挑戰才剛開始:
在下一篇文章中,我們將深入探討 Kong 與 Tyk 的架構對比及運維哲學
留言
張貼留言