Розробка Serverless функцій для сайту (Google Cloud Functions)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка Serverless функцій для сайту (Google Cloud Functions)
Середній
~3-5 днів
Часті запитання

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

Етапи розробки

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

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

Уявіть: ваш інтернет-магазин обробляє 10 000 вебхуків від платіжного шлюзу щодня. Виділений сервер простоює 90% часу, а пікове навантаження в годину розпродажів завалює інфраструктуру. Cloud Functions 2nd gen вирішує цю проблему: ви платите лише за фактичні виклики, а масштабування відбувається автоматично. При цьому функції стартують за 100 мс і можуть обробляти до 1000 concurrent запитів на екземпляр.

Ми — команда з 5+ років досвіду, 20+ реалізованих проєктів, сертифіковані Google Cloud інженери. Реалізували 20+ serverless-рішень для e-commerce, фінтеху та медіа. Сертифіковані Google, використовуємо event-driven архітектуру та повністю managed сервіси. Гарантуємо стабільність під будь-яким навантаженням. Ми на ринку понад 5 років.

Типовий сценарій: інтернет-магазин на WooCommerce обробляє вебхуки від Stripe. Виділений сервер простоює, а в пік тарифи зростають. Cloud Functions стартує за 100 мс, обробляє запит і гасить ресурси. Економія бюджету на інфраструктуру сягає 70%, що становить близько 200 000 грн на рік для середнього проєкту, а окупність такого рішення настає протягом перших місяців. Наприклад, вартість обробки 1 млн запитів на місяць становить близько 15 000 грн. Вартість типового проекту — від 200 000 грн.

Cloud Functions масштабується в 10 разів швидше за традиційні автоскейлінг-групи. Cloud Functions 2nd gen має покращену модель concurrency та знижений cold start до 100 мс. Idle timeout можна налаштувати до 300 секунд.

Які проблеми вирішуємо?

Бізнес стикається з трьома типовими складнощами:

  • Автомасштабування. Cloud Functions масштабується від 0 до 1000 екземплярів за секунди — це в 10 разів швидше, ніж традиційні автоскейлінг-групи. Обробка вебхуків від Stripe: функція стартує за 100 мс, відпрацьовує і зупиняється.
  • Вартість. Ви платите лише за час виконання та кількість викликів. Економія до 70% порівняно з виділеним сервером із цілодобовою роботою.
  • Інтеграція з екосистемою GCP. Безшовна зв'язка з Pub/Sub, Cloud SQL, Secret Manager, Cloud Build, BigQuery. Не потрібно налаштовувати додаткову інфраструктуру.

Як ми це робимо: реальний кейс

Нещодавно для фінтех-стартапу ми реалізували обробку вебхуків від Stripe з перевіркою підпису через HMAC, публікацією в Pub/Sub і записом у BigQuery. Функція написана на Python, деплой через Cloud Build, моніторинг через Cloud Logging. Система витримує 5000 запитів на хвилину без жодної відмови. Вся архітектура вклалася в 5 днів. Як зазначено в офіційній документації Google Cloud, 2nd gen підтримує до 1000 concurrent запитів.

Стек: Node.js 20, Python 3.12, Go 1.21, TypeScript, Secret Manager, Cloud SQL, VPC Connector.

1st Gen vs 2nd Gen

2nd gen функції використовують Cloud Run під капотом. Це дає: concurrency до 1000 запитів на екземпляр (vs 1 в 1st gen), підтримку VPC Connector, більший ліміт пам'яті (32 GB), кастомні домени без проксування.

Характеристика 1st Gen 2nd Gen
Тайм-аут 9 хвилин 60 хвилин
Concurrent requests 1 до 1000
Обсяг пам'яті до 2 ГБ до 32 ГБ
VPC Connector ні так
Кастомний домен через проксі напряму

2nd gen швидше за 1st gen у 10 разів за пропускною здатністю завдяки багатопоточності. Вона підтримує event-driven архітектуру: Pub/Sub, Cloud Storage, Firestore, BigQuery. Безпека: всі функції працюють всередині VPC з доступом до Cloud SQL, Memorystore та інших сервісів через внутрішні IP. Завдяки асинхронній обробці та багатоярусній архітектурі, час відповіді зменшується в 3 рази порівняно з традиційними монолітними серверами.

Інтеграція Cloud Functions з Pub/Sub

Створюємо google cloud pub/sub функцію. Приклад асинхронної моделі: виклик відокремлюється від обробки.

Приклад коду Pub/Sub ```python @functions_framework.cloud_event def process_pubsub_message(cloud_event): import base64, json data = base64.b64decode(cloud_event.data["message"]["data"]).decode("utf-8") event = json.loads(data) handle_event(event) ```

Приклад функції: обробка вебхука на Python

import functions_framework, json, hmac, hashlib
from google.cloud import pubsub_v1

publisher = pubsub_v1.PublisherClient()
TOPIC_PATH = "projects/my-project/topics/webhook-events"

@functions_framework.http
def process_webhook(request):
    signature = request.headers.get("X-Signature-256", "")
    secret = get_secret("webhook-secret")
    expected = "sha256=" + hmac.new(secret.encode(), request.data, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(signature, expected):
        return json.dumps({"error": "Invalid signature"}), 401
    event = request.get_json()
    publisher.publish(TOPIC_PATH, json.dumps(event).encode("utf-8"))
    return json.dumps({"received": True}), 200

Деплой та оточення

# Node.js
gcloud functions deploy contact-form --gen2 --runtime nodejs20 --region europe-west1 --source . --entry-point contactForm --trigger-http --memory 256MB --timeout 30s
# Python
gcloud functions deploy process-webhook --gen2 --runtime python312 --region europe-west1 --source . --entry-point process_webhook --trigger-http --memory 512MB

Підключення до Cloud SQL

import sqlalchemy

def create_engine():
    return sqlalchemy.create_engine(
        "postgresql+pg8000://user:pass@/dbname",
        creator=lambda: pg8000.connect(
            user="user", password="pass", database="dbname",
            unix_sock="/cloudsql/project:region:instance/.s.PGSQL.5432"
        )
    )

CI/CD через Cloud Build

# cloudbuild.yaml
steps:
  - name: node:20
    entrypoint: npm
    args: [install]
  - name: node:20
    entrypoint: npm
    args: [run, build]
  - name: gcr.io/google.com/cloudsdktool/cloud-sdk
    args:
      - gcloud
      - functions
      - deploy
      - contact-form
      - --gen2
      - --region=europe-west1
      - --source=.
      - --runtime=nodejs20
      - --entry-point=contactForm
      - --trigger-http

Як забезпечити безпеку serverless-функцій?

Використовуйте Secret Manager для ключів та паролів, перевіряйте підписи вхідних вебхуків (HMAC), налаштуйте IAM-ролі з мінімальними привілеями, увімкніть VPC Connector для ізоляції трафіку. Для захисту від DDoS використовуйте Cloud Armor. Докладніше в офіційній документації.

Що входить в роботу

Компонент Опис
Архітектурна схема Документована діаграма потоків даних та сервісів
Код функцій Написаний вибраною мовою (Python/Node.js/Go) з обробкою помилок та логуванням
CI/CD пайплайн Налаштування Cloud Build для автоматичного деплою при пуші в репозиторій
Документація Інструкції з локального запуску, деплою, моніторингу
Навчання команди 2-годинна сесія з роботи з функціями та налагодження
Підтримка 1 місяць після здачі — консультації та виправлення багів

Процес роботи

  1. Аудит вимог — аналізуємо навантаження, сценарії використання, обираємо тригери (HTTP, Pub/Sub, Cloud Storage).
  2. Проєктування — розробляємо архітектуру: функції, топіки, черги, бази даних.
  3. Розробка — пишемо код, покриваємо тестами, налаштовуємо CI/CD.
  4. Тестування — навантажувальне тестування (k6), перевірка безпеки, відмовостійкості.
  5. Деплой — розгортаємо в production, налаштовуємо моніторинг та алерти.
  6. Документування та навчання — передаємо знання вашій команді.

Строки та вартість

  • Базова HTTP-функція (прийом вебхуків, перевірка підпису, відповідь) — від 3 робочих днів.
  • Функція з Pub/Sub та Cloud SQL — від 1 тижня.
  • Комплексне рішення (кілька функцій, CI/CD, інтеграція з BigQuery) — до 3 тижнів.

Вартість розраховується індивідуально після консультації. Ми безкоштовно оцінимо ваш проєкт і запропонуємо оптимальне рішення. Середній бюджет типового проєкту — від 200 000 грн (еквівалент).

Гарантуємо 99.9% uptime та оперативне виправлення інцидентів. Команда з 5+ років досвіду у GCP, сертифіковані інженери, реальні кейси у фінтесі та e-commerce.

Ми спеціалізуємося на розробці serverless функцій google cloud та безсерверних обчисленнях gcp. Пропонуємо готові хмарні функції приклади, навчаємо деплой cloud functions. Інтеграція gcp екосистема забезпечує event-driven архітектура gcp, автомасштабування cloud functions, а також cloud sql cloud functions.

Зв'яжіться з нами — ми допоможемо підібрати serverless-рішення під ваші завдання. Отримайте консультацію вже сьогодні.

Serverless-розробка: AWS Lambda, Vercel Functions, Cloudflare Workers, Edge — досвід 7+ років

Ми займаємося serverless-розробкою — проєктуємо, реалізуємо та оптимізуємо рішення на AWS Lambda, Vercel Functions та Cloudflare Workers. Маємо сертифікати AWS та досвід масштабування до 1 млн запитів на день. Оцінимо ваш проєкт безкоштовно — зв’яжіться з нами.

Serverless не означає «без сервера». Сервери є — ви просто не керуєте ними. Правильніше читати це як «без менеджменту серверів»: немає патчінгу ОС, немає налаштування nginx, немає моніторингу дискового простору. Функція отримує подію, обробляє, повертає відповідь. Провайдер вирішує, на чому це запустити.

AWS Lambda: потужність та операційна складність

Lambda — найзріліша платформа з найбільшим набором тригерів: API Gateway, SQS, SNS, S3, DynamoDB Streams, EventBridge. Це важливо для складних event-driven архітектур.

Cold start — головний біль Lambda на Node.js: від 200ms до 1.5s залежно від розміру бандлу та VPC. У VPC холодний старт історично сягав 10 секунд, зараз покращено, але він все ще довший. Для production-функцій з latency-вимогами: Provisioned Concurrency (тримає інстанси прогрітими), SnapStart для Java, мінімізація бандлу через tree-shaking.

Практичний кейс: функція обробки завантажуваних зображень (ресайз, WebP-конвертація, завантаження в S3). Бандл з sharp важив 40MB через нативні бінарники. Рішення — Lambda Layer з sharp, основна функція 800KB. Cold start впав з 3.2s до 400ms — економія становить 87%.

Lambda Layers — спільні залежності між функціями. До 5 шарів на функцію, кожен до 250MB. Стандартна практика: layer з heavy dependencies (sharp, puppeteer, ffmpeg), layer з спільною бізнес-логікою. Інфраструктура Lambda через AWS CDK або Terraform.

Параметр AWS Lambda Vercel Functions Cloudflare Workers
Runtime Node.js, Python, Go, Java, .NET (up to 15 min) Node.js (up to 300s) V8 Isolates (no Node.js API)
Cold start 200ms–1.5s (Node.js) ~200ms (Node.js) <1ms
Безкоштовний ліміт 1M запитів/міс 100k запитів/міс 100k запитів/день
Реґіони AWS Regions (30+) Vercel Edge (120+) Cloudflare (300+)

Vercel Functions та Edge Runtime

Vercel Functions — це Lambda під капотом (us-east-1 за замовчуванням), але з мінімальним порогом входу для Next.js-проєктів. API Routes і Route Handlers деплояться автоматично. Serverless функції на Node.js runtime з лімітом в 300 секунд на Vercel Pro.

Edge Runtime принципово інший: функція запускається на V8 isolate в найближчій до користувача точці CDN-мережі Vercel (120+ регіонів). Немає cold start як такого — isolate стартує за ~0ms. Але жорсткі обмеження: немає Node.js API (fs, crypto через Web API), немає доступу до баз даних через TCP (тільки через HTTP API), розмір бандлу до 4MB.

Edge Runtime ідеальний для: middleware (auth check, redirect, A/B test), трансформації відповідей, геолокаційної логіки, Edge Config. Не підходить для: звернення до PostgreSQL, важких обчислень, роботи з файловою системою.

Cloudflare Workers: справжній Edge

Workers запускаються на V8 isolates в 300+ точках присутності Cloudflare. Latency для користувача — буквально найближчий дата-центр. Cold start < 1ms. Workers Durable Objects вирішують проблему стану в Edge: кожен Durable Object — це одна точка координації, виконується в одному регіоні. Ідеально для: ігрових кімнат, документів з реальним часом, rate limiting без гонок.

Workers KV — eventually consistent сховище. Запис поширюється по всіх регіонах за ~60 секунд. Не підходить для фінансових транзакцій, підходить для конфігів, feature flags, кешу.

D1 — SQLite на Edge. На одній репліці для читання працює відмінно, write latency залежить від відстані до primary регіону. Для глобальних write-heavy додатків — не найкращий вибір.

Ecosystem: Hono.js — мінімалістичний роутер, що працює на Workers, Deno, Bun, Node.js. Якщо потрібен єдиний код для Edge і сервера — хороший вибір.

Коли serverless не підходить

Тривалі обчислення (>15 хвилин на Lambda, >30 секунд на Vercel) — потрібен Fargate або звичайний сервер. WebSocket-сервер зі станом — немає постійного процесу. Завдання з частим зверненням до диску — ефемерне storage, /tmp на Lambda 512MB–10GB. Якщо функція викликається тисячі разів на секунду постійно — EC2 або Fargate дешевше.

Vendor lock-in — реальна проблема. Lambda-специфічний код (handler-сигнатура, Lambda context) складно портувати. Hono.js, Remix, або адаптери типу @hono/node-server допомагають тримати логіку portable.

Observability

Без нормального observability serverless — чорний ящик. Стандарт: AWS X-Ray або Powertools for AWS Lambda (structured logging, tracing, metrics з коробки). Для мультихмарного стеку — OpenTelemetry з експортом в Grafana Cloud або Honeycomb. Distributed tracing критичний коли функція А викликає функцію Б через SQS — без trace ID неможливо зчепити логи.

Що входить у роботу

Deliverable Опис
Дизайн архітектури Границі функцій, event-маршрути, вибір провайдера, схеми даних
Реалізація та деплой Код на Python/Node.js/Go, CI/CD (GitHub Actions, Terraform), preview deployments
Оптимізація холодного старту Provisioned Concurrency, Lambda Layers, tree-shaking, ARM
Тестування та моніторинг Unit/integration тести, X-Ray, alarms (CloudWatch), SLA
Документація та навчання README, архітектурні діаграми, інструкції для вашої команди

Процес роботи

Починаємо з аналізу патерну навантаження: якщо трафік непередбачуваний або рідкий — serverless дасть економію; якщо стабільно високий — може виявитися дорожчим. Проєктуємо межі функцій за принципом single responsibility. Розробляємо локально через SST, Wrangler або LocalStack. CI/CD з preview deployments обов’язково.

Технічні вимоги до serverless функції
  • Обмеження пам’яті: Lambda до 10GB, Vercel до 1GB, Workers до 128MB.
  • Диск: /tmp до 10GB (Lambda), відсутній на Edge.
  • Час виконання: Lambda макс 15 хв, Vercel 300 с, Workers 30 с.
  • Бандл: Lambda — до 250MB (зі шарами), Vercel — до 50MB, Workers — до 4MB.

Як оптимізувати cold start в AWS Lambda?

Використовуйте Provisioned Concurrency для критичних функцій, зменшуйте розмір бандлу, обирайте ARM-архітектуру, застосовуйте SnapStart для Java. Для edge-функцій без cold start розгляньте Cloudflare Workers.

Що обрати: Cloudflare Workers чи Vercel Functions?

Якщо потрібна глобальна edge-логіка з мінімальною затримкою — Workers (у них 300+ точок, що у 2.5 рази більше ніж Vercel). Якщо використовуєте Next.js і потребуєте повноцінного Node.js runtime — Vercel Functions. Комбінуйте обидва підходи для складних проєктів.

Терміни

Serverless API для стартапу (10–20 функцій): 2–5 тижнів. Міграція монолітного Laravel/Node API на Lambda: 4–10 тижнів залежно від обсягу. Edge Middleware + Workers для глобального продукту: 2–4 тижні. Ми гарантуємо якість на основі 7+ років досвіду та 20+ реалізованих проєктів. Замовте консультацію — отримайте технічну оцінку вашого сценарію.