Налаштування Tyk API Gateway для мікросервісів

Проблема: API-хаос у мікросервісах

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування Tyk API Gateway для мікросервісів
Складний
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1419
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1245
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Проблема: 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.

Що входить у нашу роботу

  1. Аудит поточної архітектури — визначаємо точки інтеграції, вимоги до продуктивності (до 10 000 RPS) та безпеки.
  2. Розгортання Tyk Gateway + Dashboard — встановлення та налаштування під ваш стек (Docker, Kubernetes, bare metal).
  3. Конфігурація API-проксі — опис endpoints, політик безпеки, rate limiting (від 10 до 10 000 запитів на хвилину).
  4. Інтеграція аналітики — налаштування Pump та дашбордів у Grafana для моніторингу latency та error rate.
  5. Документація та навчання — гайди з управління та експлуатації для ваших інженерів.
  6. Технічна підтримка — супровід протягом місяця після запуску.

Терміни та вартість

Базова налаштування — від 2 днів, повна конфігурація — до 5 днів. Вартість розраховується індивідуально залежно від кількості API та складності middleware. Зв'яжіться з нами для детального обговорення — допоможемо налагодити API-інфраструктуру, яка витримає 50 000 RPS без збоїв. Замовте налаштування Tyk — ми впровадимо шлюз за 2 дні. Отримайте консультацію інженерів з досвідом 50+ проектів. Ми гарантуємо якість та сертифікацію рішення.