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-gatewaytyk-dashboard 是否都在運行中。


三、 實戰練習:代理第一個公共 API

Step 1: 登入 Dashboard

開啟瀏覽器前往 http://localhost:3000

  • 帳號admin@tyk.io
  • 密碼353535

Step 2: 建立 API 定義

  1. 點擊左側選單的 APIs -> Add New API
  2. API Name: 填入 Weather-Proxy
  3. Target URL: 填入 https://api.openweathermap.org/data/2.5/weather
  4. 點擊 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 的架構對比及運維哲學

留言

熱門文章

Docker 環境下的 Proxy 配置