Проблема: 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+ проектів. Ми гарантуємо якість та сертифікацію рішення.







