OxL Справочник OxL
РусскийEnglish

Развёртывание

Сборка. oxl build собирает пакет или файл; профиль выбирает уровень оптимизации и отладочной информации: dev (без оптимизаций, полная отладочная информация, контракты и трассы включены), test и prod (opt = 3, таблица строк вместо полной отладочной информации, контракты и трассы выключены). Профили настраиваются в [profile.prod] файла oxl.toml (III.2). oxl build --profile prod --image registry.local/shop:0.3.0 пишет образ без Docker: программа, её динамические библиотеки и корневые сертификаты в формате OCI (--image oci:<dir>[:tag] — каталог слоёв, --image name[:tag] — архив build/image/name-tag.tar). Образ загружается обычным skopeo copy / docker load / ctr images import.

sh
oxl build --profile prod                               # build/prod/<пакет>
oxl build --profile prod --image shop:0.3.0            # build/image/shop-0.3.0.tar

Запуск узла. Один бинарник на все роли. Роль, адрес и данные — флаги oxl run/бинарника или переменные окружения (§III.6):

ФлагПеременнаяНазначение
--role r1,r2OXL_ROLEроли узла (иначе assign by … из cluster)
--listen aOXL_LISTENадрес межузлового протокола и gRPC
--data-dir dOXL_DATA_DIRданные встроенного хранилища узла
--profile pOXL_PROFILEпрофиль конфигурации (dev по умолчанию); в production dev-режимы запрещены
--set K=VAPP_*значение конфига
--log-level lOXL_LOGуровень логов (info по умолчанию)

Кластер защищён mTLS всегда: сертификаты выдаёт встроенный CA (oxl cluster: init, token create, node remove) или внешний (OXL_CLUSTER_CERT/KEY/CA); oxl dev использует одноразовый dev-CA. В профиле production dev-CA и --insecure-dev отключены (§13.1).

Kubernetes. seeds k8s(label: "app=shop") находит узлы по меткам; число реплик роли — replicas a..b; роль узла берётся из метки пода oxl/role (assign by env("OXL_ROLE") else label("oxl/role") else auto). По SIGTERM/SIGINT узел дренирует запросы (drain в defaults, по умолчанию 30 с; §2.4).

Наблюдаемость. Метрики, логи и трассы — часть языка и рантайма: OpenTelemetry (OTLP) выдаётся при OTEL_EXPORTER_OTLP_ENDPOINT; @trace(sample: p), trace_sample в кластере; живой интерфейс — oxl inspect, профайлер — oxl prof, запись и воспроизведение трафика — oxl trace --record и oxl replay (руководство по наблюдаемости).

Обновление. Совместимость схем rpc и данных проверяется при сборке по oxl.schema.lock (SemVer: добавление полей — minor, ломающее изменение — major); oxl publish не пропустит несовместимое. Миграции таблиц — oxl db.

См. также