БЕКЕНД ТА API

Бекенд і API для мобільних додатків.

Створюємо серверну частину, з якою працює мобільний застосунок: API, облікові записи, синхронізацію та сповіщення. Враховуємо нестабільний зв’язок, різні версії клієнта й зростання навантаження.

pk@developer: ~/mobile-backend

$ ls ./deliverables

Що входить у послугу «Бекенд та API».

Дизайнери й інженери працюють над погодженим обсягом. Нижче наведено основні завдання, з якими можемо допомогти.

Проєктування й розробка API

Проєктуємо REST або GraphQL API та правила його версіонування. Зберігаємо сумісність, коли застосунок і сервер оновлюються в різний час.

Автентифікація й облікові записи

Налаштовуємо вхід через Apple і Google, токени, оновлення сесій, ролі та відновлення доступу.

Обмін у реальному часі та сповіщення

Реалізуємо сокети, статус присутності й push-сповіщення. Опрацьовуємо порядок повідомлень, повторну доставку та вибір пристрою.

Синхронізація та офлайн

Налаштовуємо розв’язання конфліктів на сервері та передавання лише змінених даних, щоб застосунок міг синхронізуватися після роботи без інтернету.

Хмарна інфраструктура

Налаштовуємо контейнери, інфраструктуру як код і тестове середовище, наближене до робочого. Передбачаємо повернення до попередньої версії після розгортання.

Моніторинг і контроль витрат

Додаємо трасування запитів, сповіщення про проблеми та облік витрат. Перевіряємо запити й ресурси перед збільшенням потужності серверів.

$ ./build --steps

Як організовуємо роботу.

Узгоджуємо завдання й показуємо результати кожного етапу. Ви знаєте, що вже готово та що заплановано далі.

  1. Модель даних і контракт API

    Узгоджуємо структуру даних і контракт API, щоб мобільна та серверна команди могли працювати паралельно.
  2. Сервіси й API

    Розробляємо типізовані сервіси з тестами та документацією API. Керуємо доступністю нових функцій за допомогою прапорців.
  3. Перевірка безпеки

    Складаємо модель загроз, налаштовуємо захист API та проводимо тести на проникнення для сценаріїв із платежами й персональними даними.
  4. Навантаження та швидкодія

    Проводимо тести за очікуваними сценаріями навантаження. Налаштовуємо кешування та індекси бази даних за результатами вимірювань.
  5. Розгортання та моніторинг

    Автоматизуємо розгортання, готуємо панелі моніторингу та інструкції для реагування на інциденти.

$ cat stack.json

Технології та інструменти.

  • Node.js
  • TypeScript
  • PostgreSQL
  • Redis
  • GraphQL
  • Firebase
  • AWS
  • Docker

$ pk --outcomes

На чому зосереджуємося.

pk@developer: ~ $ pk --outcomes mobile-backend

p95 < 200 мс

цільовий час відповіді для 95% запитів

Керовані оновлення

розгортання з можливістю повернення до попередньої версії

Один контракт

iOS, Android і веб з одного API

$ man mobile-backend

Питання та відповіді.

Firebase або Supabase можуть покрити потреби вашого застосунку. Власний бекенд розглядаємо, коли модель даних, нормативні вимоги або очікувані витрати потребують іншого підходу. Вибір починається з планів розвитку продукту.

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

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

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

$ ./start_project --service backend

Обговорімо
ваш проєкт.

Розкажіть про завдання. Запропонуємо план роботи, строки й оцінку вартості.