Go to file
Naeel 9c7d634986 feat(POSTGRES): stress-тесты — 10 сервисов, full_test.sh 48/48 PASS
- stress.tf: 10 новых sless_service (Go: fast/nil/pgstorm, Node: async/badenv, Python: slow/bigloop/divzero/writer/pg-stats)
- full_test.sh: 4 фазы — CRUD / функциональные / PG-стресс / краш-шторм (48 тестов)
- stress-go-fast/handler.go: удалён дублирующий заголовок package (баг сборки)

Результат: 48/48 PASS
- 40× parallel writer 40/40 OK (ThreadingHTTPServer + backlog=128)
- 75× краш-шторм → 75× HTTP 500 (паники не роняют платформу)
2026-03-21 08:45:19 +03:00
POSTGRES feat(POSTGRES): stress-тесты — 10 сервисов, full_test.sh 48/48 PASS 2026-03-21 08:45:19 +03:00
.gitignore change 2026-03-11 18:41:01 +04:00
README.md chore(examples): remove stale examples, keep only POSTGRES 2026-03-21 07:49:23 +03:00

Примеры использования sless

Обзор платформы

sless — система управления serverless-функциями на базе Kubernetes. Разработчик загружает код функции, платформа собирает из него Docker-образ, разворачивает его в кластере и предоставляет HTTP-эндпоинт для вызова. Всё описывается декларативно через Terraform.

Основные ресурсы провайдера

Ресурс Назначение
sless_service Long-running HTTP-сервис: всегда активен, отвечает на запросы. Имеет свой URL после деплоя.
sless_job Одноразовый запуск функции: собирает образ, выполняет код, завершается. Используется для миграций БД, batch-обработки и т.д.

Namespace функций вычисляется автоматически из JWT-токена: sless-{sha256[:8]}.


Требования

  • Terraform >= 1.3
  • JWT-токен для аутентификации в sless API
  • JWT-токен для Nubes Cloud API (если используются managed-ресурсы: PostgreSQL и т.д.)
  • Доступ к https://sless.kube5s.ru

Конфигурация провайдера

provider "sless" {
  endpoint = "https://sless.kube5s.ru"
  token    = var.sless_token
}

provider "nubes_cloud" {
  base_url = "https://deck-api-test.ngcloud.ru/api/v1"
  token    = var.nubes_token
}

Токены задаются в terraform.tfvars — этот файл добавлен в .gitignore.


Примеры

POSTGRES — Serverless-функции с Managed PostgreSQL

Полный пример: managed PostgreSQL + одноразовый init-job + 3 HTTP-сервиса (чтение/запись данных и информация о PG).

Языки: Python 3.11, Node.js 20.

cd POSTGRES
terraform init
terraform apply

Подробности: POSTGRES/README.md


Полезные команды

# Посмотреть состояние задеплоенных ресурсов:
terraform show

# Принудительно пересобрать сервис (после изменения кода):
terraform apply -replace=sless_service.<имя>

# Повторно запустить job: увеличить run_id в .tf-файле, затем:
terraform apply

# Удалить все ресурсы примера:
terraform destroy