Куб
Куб
Любой образ контейнера, который просыпается на каждый запрос
Ваш образ — приложение со своим адресом. Его экземпляры просыпаются на запросы, засыпают, когда запросы прекращаются, и продолжают с того места, где остановились.
Куб в цифрах
В три шага
Одни и те же вызовы из командной строки, API, SDK и MCP-сервера.
Перед началом работы
Запишите свой API-ключ в GLAC_API_KEY.
curl -fsSL https://glac.ai/install.sh | sh
export GLAC_API_KEY=ak_...API=https://api.glac.ai/v1
AUTH="Authorization: Bearer $GLAC_API_KEY"from glac import Glac
glac = Glac()import { Glac } from "glac";
const glac = new Glac();# give your agent the tools (Claude Code here)
claude mcp add glac -e GLAC_API_KEY=ak_... -- npx glac-mcpРазверните образ
Версия начинает принимать трафик по собственному адресу, как только будет готова.
glac deploy ghcr.io/acme/api:1.4 \ --name api --port 8080curl $API/apps -H "$AUTH" --json '{"name": "api", "image": "ghcr.io/acme/api:1.4", "port": 8080}'app = glac.cube.deploy("ghcr.io/acme/api:1.4", name="api", port=8080)const app = await glac.cube.deploy("ghcr.io/acme/api:1.4", { name: "api", port: 8080 });cube_deploy {"app": "api", "image": "ghcr.io/acme/api:1.4", "port": 8080}Вызовите его
Первый запрос будит экземпляр.
curl https://api-‹project›.glac.run/curl https://api-‹project›.glac.run/import urllib.request print(urllib.request.urlopen(app.url).status)console.log((await fetch(app.url)).status);# from a sandbox made for the one command sandbox_run {"command": "curl -s https://api-‹project›.glac.run/"}Следите за ним
По строке на каждый запрос: разбудил ли он экземпляр и сколько времени на это ушло.
glac cube logs api -fcurl -N "$API/apps/api/logs?follow=true" -H "$AUTH"for line in app.logs(follow=True): print(line)for await (const line of app.logs({ follow: true })) console.log(line);cube_logs {"app": "api", "kinds": ["requests"]}
‹project› — шесть символов ID вашего проекта. В API Куб называется app.
Возможности
Засыпает, когда запросы прекращаются, а к следующему просыпается за 3.5 мс.1
Каждое развёртывание — это версия: трафик переходит на неё, как только она готова, и возвращается одним вызовом.
Экземпляр на каждый ключ: создаётся первым запросом, со своей памятью и диском.
Масштабирование в каждом регионе: экземпляры запускаются по мере поступления запросов — до заданного вами максимума.
Ваш собственный домен — сертификат для него мы выпускаем и продлеваем за вас.
Ваш Compose-файл превращается в Куб для каждого сервиса, и к каждому можно обратиться по имени.
Иллюстрации условны
Сравнение
Куб в сравнении с двумя привычными способами запуска сервиса.
| Всегда включённый сервер | Контейнер с масштабированием до нуля | Куб | |
|---|---|---|---|
| Первый запрос после затишья | Ответ сразу | Ждёт, пока контейнер заново запустится из образа | Будит экземпляр за 3.5 мс1 |
| Память и процессы в простое | Сохраняются | Теряются | Сохраняются, пока экземпляр спит: час или всё время жизни экземпляра по ключу |
| За что вы платите в простое | Полную цену | Ничего | Ничего за CPU, только за хранимое |
| Изоляция от других | Виртуальная машина | Обычно общее ядро | Собственная microVM |
Для чего подходит
API и веб-приложения
CPU оплачивается по миллисекундам работы, а между запросами приложение спит.
glac deploy ghcr.io/acme/web:2.0 \ --name web --port 3000 curl https://web-‹project›.glac.run/Бэкенд на каждого пользователя или агента
Один экземпляр на ключ, у каждого своя память и свой диск.
glac.cube.deploy( "ghcr.io/acme/agent:3", name="agent", port=8080, keys={"from": {"header": "User"}})Задания
Образ, который выполняется до конца и останавливается.
glac deploy ghcr.io/acme/report:1 \ --name report --kind job glac cube logs report -f
Цены и лимиты
Оплата по использованным ресурсам Куба — как у любого продукта. Все цены и тарифы
| Что учитывается | Как | Цена |
|---|---|---|
| CPU | Время занятости CPU, с точностью до миллисекунды | $0.01 / млн CPU-мс$0.00001 / CPU-секунда$0.036 / CPU-час$26.28 / CPU-месяц |
| Память | Удерживаемая хостом, с точностью до миллисекунды и с шагом 128 MiB | $0.00222 / млн GiB-мс$0.00000222 / GiB-секунда$0.008 / GiB-час$5.84 / GiB-месяц |
| Запросы | За запрос в Куб или через ссылку песочницы | $0.30 / млн |
| Исходящий трафикNA · EU | За GB трафика из Северной Америки и Европы | $0.004 / GB |
| Исходящий трафикАТР | За GB трафика из Азиатско-Тихоокеанского региона | $0.01 / GB |
| Хранится во сне3 | То, что хранят спящие экземпляры, и снимки | $0.00000761 / млн GB-мс$0.00000000761 / GB-секунда$0.0000274 / GB-час$0.02 / GB-месяц |
| Логи3 | Хранимый вывод Кубов, в исходном объёме | $0.00000761 / млн GB-мс$0.00000000761 / GB-секунда$0.0000274 / GB-час$0.02 / GB-месяц |
Рассчитать стоимость за месяц
Реальная нагрузка — и сколько стоит месяц её работы на тарифах «Платный» и «Бесплатный».
JSON на входе, JSON на выходе, один-два запроса к базе данных.
Страницы с серверным рендерингом и входом в аккаунт.
Каждый запрос ждёт ответа модели.
События от других сервисов и работа по расписанию.
Экземпляр активен в среднем 23.8 ч в сутки и ещё 0.21 ч приостановлен в памяти. На каждый запрос учитывается ещё 0.61 мс CPU сверх его собственного: время, когда экземпляр активен между запросами, а также каждая остановка и каждое пробуждение.
Месяц в 30 дней; на аккаунте только эта нагрузка. Источники
Месяц на тарифе «Платный»
$0.39 за миллион запросов
- CPU11 млн CPU-мс$0.11
- Память90 GiB-ч$0.72
- Запросы10 млн запросов$3.00
- Хранимые данные$0.00
- NVMe-кеш$0.00
- Исходящий трафик6 GB$0.02
- Потребление по прайс-листу
- $3.85
- Включено в тариф «Платный»
- −$3.85
- Плата за тариф «Платный»
- $5.00
Превышены лимиты тарифа «Бесплатный» для запросов.
Glac$3.85
По размеру
Лимиты тарифов
Все лимиты каждого тарифа| Бесплатный | Платный | |
|---|---|---|
| Кубына аккаунт | 10 | 500 |
| Экземпляры одного Кубав каждом регионе, не больше | 5 | 500 |
| Активных одновременноэкземпляров и песочниц | 5 | 500 |
| Самый большой экземпляр | 2 vCPU, 4 GiB | 8 vCPU, 16 GiB |
| Переменные и секретына Куб | 64 | 128 |
| Логи хранятся | 3 дня | 30 дней |
Изоляция
Виртуальная машина для каждого экземпляра, и всё, что он хранит, зашифровано ключом вашего проекта.
БезопасностьСобственная microVM
MicroVM на Firecracker с собственным ядром, загруженная из вашего образа.
Изолированная среда вокруг неё
Пустой корневой каталог, пользователь без привилегий, собственные лимиты.
Доступ через API
Команды и файлы идут через агент внутри неё, а не через её сеть.
Сеть по вашим правилам
Частная сеть на каждый проект; правила, к каким хостам можно обращаться.
Зашифровано вашим ключом
Диски, память спящих экземпляров, снимки и логи — до того, как они покинут машину.
Ключи открывают только то, что в них указано
API-ключ открывает один проект в пределах своих прав; журнал аудита записывает, что он делает.
Что почитать дальше
- КубАдреса, версии, экземпляры и их сон, протоколы, экземпляры по ключу.
- Сервисы и ComposeЧастная сеть, общие переменные, развёртывание нескольких сервисов, файлы Compose.
- Логи и экспортЛог Куба, его метрики и отправка того и другого в любой приёмник OpenTelemetry.
- Справочник APIВсе вызовы для приложений, версий, экземпляров и доменов.
Платформа
Куб
Управляемые приложения
- ПесочницаСвой компьютер для каждого агента
- СкороБраузерНастоящие браузеры, управляемые из кода
- СкороБессерверный PostgresPostgres, который спит в простое и просыпается при подключении
- СкороСторонние приложенияПроекты с открытым кодом под нашим управлением, а затем — маркетплейс