- architecture overview and stack - project structure and development order - API design (endpoints, models, runtimes) - infrastructure overview (k8s cluster, S3, registry) - decisions log with rationale - progress tracker v1/v2
50 lines
2.2 KiB
Markdown
50 lines
2.2 KiB
Markdown
# Структура проекта
|
|
|
|
## Репозиторий
|
|
|
|
`gitea-naeel.giteak8s.services.ngcloud.ru/naeel/sless`
|
|
|
|
## Директории
|
|
|
|
```
|
|
sless/
|
|
├── cmd/
|
|
│ └── api/
|
|
│ └── main.go # точка входа API сервера
|
|
├── internal/
|
|
│ ├── api/
|
|
│ │ ├── handler/ # HTTP хендлеры (functions, versions, triggers)
|
|
│ │ ├── middleware/ # auth, logging, rate limit
|
|
│ │ └── router.go # регистрация маршрутов
|
|
│ ├── model/ # доменные модели: Function, Version, Trigger, Invocation
|
|
│ ├── storage/
|
|
│ │ ├── postgres/ # CRUD функций, версий, логов вызовов
|
|
│ │ └── s3/ # загрузка/скачивание zip архивов кода
|
|
│ ├── builder/ # сборка Docker образа из кода пользователя
|
|
│ ├── runner/ # запуск функций в k8s (Jobs / Deployments)
|
|
│ └── config/ # конфиг из env переменных
|
|
├── migrations/ # SQL миграции (numbered: 001_, 002_, ...)
|
|
├── deployments/
|
|
│ └── k8s/ # манифесты: Deployment, Service, Ingress, RBAC
|
|
├── api/
|
|
│ └── openapi.yaml # OpenAPI 3.0 спецификация
|
|
├── doc/ # документация проекта (эта папка)
|
|
└── docker-compose.yml # локальная разработка: postgres, redis, minio
|
|
```
|
|
|
|
## Go module
|
|
|
|
```
|
|
module gitea-naeel.giteak8s.services.ngcloud.ru/naeel/sless
|
|
```
|
|
|
|
## Порядок разработки
|
|
|
|
1. `internal/config` + `internal/model` — базовые структуры данных
|
|
2. `migrations/` + `internal/storage/postgres` — схема БД и CRUD
|
|
3. `internal/api` — HTTP хендлеры, роутер, middleware
|
|
4. `internal/storage/s3` — загрузка кода функций
|
|
5. `internal/builder` — сборка Docker образов
|
|
6. `internal/runner` — запуск функций в k8s
|
|
7. `deployments/k8s` — манифесты для деплоя
|