Уявіть: ваш інтернет-магазин обробляє 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 місяць після здачі — консультації та виправлення багів |
Процес роботи
- Аудит вимог — аналізуємо навантаження, сценарії використання, обираємо тригери (HTTP, Pub/Sub, Cloud Storage).
- Проєктування — розробляємо архітектуру: функції, топіки, черги, бази даних.
- Розробка — пишемо код, покриваємо тестами, налаштовуємо CI/CD.
- Тестування — навантажувальне тестування (k6), перевірка безпеки, відмовостійкості.
- Деплой — розгортаємо в production, налаштовуємо моніторинг та алерти.
- Документування та навчання — передаємо знання вашій команді.
Строки та вартість
- Базова 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-рішення під ваші завдання. Отримайте консультацію вже сьогодні.







