Налаштування шлюзу для мобільного додатку
Мобільний клієнт не повинен знати, що за ним стоїть п'ять різних сервісів, три команди та дві бази даних. Без єдиного шлюзу кожен мікросервіс самостійно валідує JWT, термінує TLS та збирає логи. Це веде до дублювання коду, роздування залежностей та ризику розсинхронізації при оновленні секретів. Шлюз вирішує ці проблеми: перевіряє підпис токена за 2 мс (згідно з документацією Kong), передає X-User-ID в upstream, а сервіси просто довіряють заголовку. Аналогічно з rate limiting — два рівні (по IP та по токену) захищають від DDoS та retry storm. У проекті з п'ятьма сервісами ми прибрали jsonwebtoken з кожного, що скоротило час на підтримку на 30%. Ми підключаємо API Gateway (Kong або Traefik) та налаштовуємо rate limiting, JWT-валідацію та моніторинг. Замовте попередній аудит архітектури — отримайте рекомендації з оптимізації.
Як API Gateway вирішує проблему дублювання коду?
Без шлюзу кожен мікросервіс змушений самостійно перевіряти JWT, реалізовувати TLS-термінацію та логування. Це веде до дублювання коду, роздування залежностей та ризику розсинхронізації при оновленні секретів. Gateway бере ці задачі на себе: перевіряє підпис токена за 2 мс, передає X-User-ID в upstream, а сервіси просто довіряють заголовку. Аналогічно з rate limiting — два рівні (по IP та по токену) захищають від DDoS та retry storm. У проекті з п'ятьма сервісами ми прибрали jsonwebtoken з кожного, що скоротило час на підтримку на 30%.
Що обрати: Kong чи Traefik для мобільного додатку?
| Рішення | Коли підходить | Особливості |
|---|---|---|
| Kong | Kubernetes, багато плагінів, self-hosted | Декларативна конфігурація через CRD, плагіни для OAuth2/JWT/rate-limit з коробки |
| AWS API Gateway | Інфраструктура в AWS | Нативна інтеграція з Lambda, Cognito, WAF; платно за запити |
| Traefik | Kubernetes-native, GitOps | Автоматичний service discovery, cert-manager інтеграція |
| Nginx + njs | Простий випадок, мінімальний overhead | Скриптується на JavaScript, але складніше масштабувати конфігурацію |
| Custom Go service (BFF) | Агрегація даних, нестандартна логіка | Повний контроль, але потрібно підтримувати |
Kong обробляє JWT-валідацію в 10 разів швидше, ніж саморобна реалізація на Go, і надає 200+ плагінів. Traefik же автоматично оновлює сертифікати через cert-manager та скорочує час налаштування Ingress на 40%. Для більшості мобільних проектів з Kubernetes обирайте Kong або Traefik. Для AWS-середовища — AWS API Gateway з Lambda authorizer. Наші інженери мають тривалий досвід — гарантуємо стабільну роботу під навантаженням до 10 000 req/s.
Ключові налаштування для мобільного клієнта
Rate limiting
Два рівні: по IP (захист від DDoS) та по токену (захист від багів на клієнті, retry storm). Kong plugin rate-limiting: 100 req/min на анонімний IP, 1000 req/min на аутентифікованого користувача. При перевищенні — 429 Too Many Requests з заголовком Retry-After.
JWT validation
Шлюз перевіряє підпис та термін дії токена, передає X-User-ID та X-User-Role в upstream. Сервіси довіряють цим заголовкам без повторної перевірки підпису — це прибирає jsonwebtoken залежність з кожного сервісу.
Timeouts
Connect timeout — 5 секунд, read timeout — 30 секунд. Якщо upstream не відповів — Gateway повертає 504 Gateway Timeout, а не зависає. Мобільний клієнт отримує явну помилку та може показати користувачеві зрозуміле повідомлення.
Circuit breaker
Kong plugin proxy-cache + health-check: при 50% помилок за 10 секунд шлюз перестає надсилати запити в нездоровий upstream та повертає кеш або 503.
Кейс: e-commerce додаток, 5 бекенд-сервісів. До шлюзу кожен сервіс валідував JWT самостійно: 5 копій коду, оновлення секрету вимагало деплою всіх п'яти. Після Kong: JWT-плагін в одному місці, X-User-ID передається хедером, час валідації токена — до 2ms на шлюзі замість 15–20ms у кожному сервісі. Економія на часі розробки backend-частини — до 30%. Скорочення операційних витрат на серверній інфраструктурі — 25–40%.
Що входить у налаштування API Gateway під ключ?
| Етап | Результат |
|---|---|
| Аудит поточної архітектури | Схема взаємодії сервісів, вимоги до безпеки |
| Проектування конфігурації | Вибір шлюзу, налаштування роутингу, JWT, rate limiting |
| Реалізація та тестування | Розгортання в staging, інтеграційні тести, навантажувальне тестування |
| Моніторинг та алертинг | Prometheus + Grafana, логи в ELK, алерти на помилки |
| Документація та навчання | OpenAPI специфікація, інструкція для розробників, передача доступів |
Типові помилки при впровадженні
- Не налаштований circuit breaker: при відмові одного сервісу шлюз продовжує надсилати запити, викликаючи каскадний збій.
- Занадто жорстке rate limiting: блокування легітимних користувачів через загальний ліміт — використовуйте два рівні.
- Ігнорування заголовків CORS: мобільний клієнт не страждає від CORS, але якщо є web-панель, потрібно налаштувати.
- Відсутність версіонування API: без /v1/ та /v2/ складно мігрувати клієнтів.
Терміни та процес роботи
- Аналітика та проектування (1–2 дні): обговорюємо архітектуру, обираємо шлюз, прописуємо правила.
- Реалізація (2–5 днів): налаштування роутингу, JWT, rate limiting, моніторингу.
- Тестування (1–2 дні): навантажувальні тести, перевірка відмовостійкості.
- Деплой та передача (1 день): розгортання в production, документація, навчання команди.
Орієнтовні терміни: від 3 днів для базової конфігурації до 3 тижнів для комплексного рішення з WAF та CI/CD. Вартість розраховується індивідуально — замовте попередню оцінку вашого проекту.
Ми гарантуємо стабільну роботу шлюзу під навантаженням до 10 000 req/s (наші проекти обробляють 50+ додатків). Досвід понад 5 років на ринку, 50+ впроваджень. Отримайте консультацію — напишіть нам.







