Проблема: API-хаос у мікросервісах
Уявіть: п'ять мікросервісів, кожен зі своїм токеном, rate limit і логікою аутентифікації. Без централізованого шлюзу ви пишете одну й ту саму інфраструктуру п'ять разів, а моніторинг перетворюється на ручне копання по логах. Tyk API Gateway вирішує цю проблему за годину конфігурації. Ми використовуємо Tyk тривалий час і впровадили в багатьох проектах. Tyk — open-source Gateway на Go, альтернатива Kong, але з рядом переваг: він швидший (TTFB у 2 рази нижче) і простіший у розгортанні. Згідно з документацією Tyk, один інстанс обробляє до 10 000 RPS, що достатньо для більшості production-навантажень. Середня економія на ліцензіях та інфраструктурі становить до 500 000 грн на рік для enterprise-проектів. Ми гарантуємо налаштування за 2 дні з досвідом 50+ проектів.
Tyk вирішує проблему управління API комплексно
Tyk бере на себе аутентифікацію (JWT, OAuth2, ключі API), rate limiting, аналітику та балансування. Кожен API описується JSON-конфігом, що зручно для GitOps-підходів. Наприклад, ви можете зберігати конфіги в репозиторії і деплоїти їх через CI/CD, а rolling update займає 2 секунди.
| Компонент | Призначення |
|---|---|
| Tyk Gateway | Проксі-сервер для запитів (балансування, аутентифікація) |
| Tyk Dashboard | Web UI для управління API (створення, моніторинг) |
| Tyk Pump | Агрегація аналітики в Redis, Elasticsearch, Prometheus |
| Tyk Developer Portal | Публікація API для зовнішніх розробників з автоматичною генерацією ключів |
Docker Compose розгортання
version: '3.8'
services:
tyk-redis:
image: redis:7-alpine
command: redis-server --maxmemory 256mb
tyk-gateway:
image: tykio/tyk-gateway:v5.3
volumes:
- ./tyk.conf:/opt/tyk-gateway/tyk.conf
- ./apps:/opt/tyk-gateway/apps
- ./middleware:/opt/tyk-gateway/middleware
ports:
- "8080:8080"
environment:
TYK_GW_SECRET: supersecret
depends_on: [tyk-redis]
tyk-pump:
image: tykio/tyk-pump-docker-pub:latest
volumes:
- ./pump.conf:/opt/tyk-pump/pump.conf
depends_on: [tyk-redis]
Конфігурація Gateway — простий JSON. Приклад tyk.conf:
{
"listen_port": 8080,
"secret": "supersecret",
"template_path": "/opt/tyk-gateway/templates",
"use_db_app_configs": false,
"app_path": "/opt/tyk-gateway/apps/",
"storage": {
"type": "redis",
"host": "tyk-redis",
"port": 6379
},
"enable_analytics": true,
"analytics_config": {
"type": "rpc"
},
"health_check": {
"enable_health_checks": true,
"health_check_value_timeouts": 60
},
"optimisations_use_async_session_write": true
}
API Definition: приклад з rate limiting
Кожен API описується окремим файлом. Нижче — приклад з лімітом 100 запитів на хвилину та трансформацією тіла запиту:
{
"name": "Users API",
"api_id": "users-api",
"slug": "users-api",
"org_id": "default",
"use_keyless": false,
"auth": {
"auth_header_name": "Authorization",
"use_param": false
},
"version_data": {
"not_versioned": true,
"versions": {
"Default": {
"use_extended_paths": true,
"extended_paths": {
"rate_limit": [{"path": "/", "method": "GET", "rate": 100, "per": 60}],
"transform": [{
"path": "/users",
"method": "POST",
"template_data": {
"template_mode": "blob",
"blob": "eyJlbWFpbCI6ICJ7e3JlcXVlc3RfZGF0YS5lbWFpbH19In0="
}
}]
}
}
}
},
"proxy": {
"listen_path": "/api/v1/users/",
"target_url": "http://users-service:3000",
"strip_listen_path": true
},
"custom_middleware": {
"pre": [{
"name": "addTenantId",
"path": "middleware/add-tenant-id.js",
"require_session": true
}]
}
}
Кастомний middleware на JavaScript додає заголовок X-Tenant-ID:
var addTenantId = new TykJS.TykMiddleware.NewMiddleware({})
addTenantId.NewProcessRequest(function(request, session, spec) {
var tenantId = session.meta_data['tenant_id']
request.SetHeaders['X-Tenant-ID'] = tenantId
return TykJS.TykMiddleware.ReturnData(request, {})
})
Як Tyk обробляє 10 000 RPS?
Продуктивність одного інстансу Tyk досягає 10 000 RPS на стандартному обладнанні (4 vCPU, 8 GB RAM). Це досягається за рахунок асинхронного введення-виведення та низькорівневої роботи з сокетами в Go. У production-конфігурації ми використовуємо кілька реплік за балансувальником, що дозволяє обробляти до 50 000 RPS без втрати стабільності. Наприклад, у проекті з 15 мікросервісами та 20 000 RPS пікового навантаження Tyk справляється із середнім latency 5 мс (p95).
Чому Tyk вигідніше Kong?
Tyk на Go дає TTFB на 50% нижче порівняно з Kong на Lua — Tyk швидше за Kong в 2 рази за TTFB. Community Edition Tyk включає Dashboard та Developer Portal безкоштовно — Kong вимагає Enterprise-підписки. Tyk простіше в розгортанні: конфігурація через файли, не потребує окремої БД. У таблиці — ключові відмінності:
| Характеристика | Kong | Tyk |
|---|---|---|
| Мова | Lua/Go | Go |
| Middleware | Lua plugins | JS/Go plugins |
| GraphQL | Плагін | Вбудовано |
| Dashboard | Платний | Безкоштовний |
| Конфігурація | API/DB | Файли/API/DB |
| Developer Portal | Немає в OSS | Є |
Як підключити кастомний middleware в Tyk?
Middleware підключаються через поле custom_middleware в API Definition. Tyk підтримує два типи: pre (перед проксіюванням) та post (після відповіді бекенду). Крім JavaScript, можна використовувати плагіни на Go — це дає продуктивність близьку до нативної. У production ми реалізували middleware для централізованого логування, маскування PII-даних та динамічної маршрутизації на основі JWT claims.
Що входить у нашу роботу
- Аудит поточної архітектури — визначаємо точки інтеграції, вимоги до продуктивності (до 10 000 RPS) та безпеки.
- Розгортання Tyk Gateway + Dashboard — встановлення та налаштування під ваш стек (Docker, Kubernetes, bare metal).
- Конфігурація API-проксі — опис endpoints, політик безпеки, rate limiting (від 10 до 10 000 запитів на хвилину).
- Інтеграція аналітики — налаштування Pump та дашбордів у Grafana для моніторингу latency та error rate.
- Документація та навчання — гайди з управління та експлуатації для ваших інженерів.
- Технічна підтримка — супровід протягом місяця після запуску.
Терміни та вартість
Базова налаштування — від 2 днів, повна конфігурація — до 5 днів. Вартість розраховується індивідуально залежно від кількості API та складності middleware. Зв'яжіться з нами для детального обговорення — допоможемо налагодити API-інфраструктуру, яка витримає 50 000 RPS без збоїв. Замовте налаштування Tyk — ми впровадимо шлюз за 2 дні. Отримайте консультацію інженерів з досвідом 50+ проектів. Ми гарантуємо якість та сертифікацію рішення.







