Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Окружение и структура приложения

В этом разделе приведен общий обзор подготовки приложения Tarantool к развертыванию и описано, как может выглядеть окружение и структура приложения. Эта информация полезна для понимания того, как управлять экземплярами Tarantool с помощью утилиты tt CLI в средах разработки и эксплуатации.

Основные шаги по созданию и подготовке приложения к развертыванию:

  1. Запуск локального окружения.
  2. Создание и разработка приложения.
  3. Упаковка приложения.

В качестве примера в разделе используется приложение sharded_cluster_crud. Такой кластер включает 5 экземпляров: один роутер и 4 хранилища, которые составляют два набора реплик.

Cluster topology

Запуск локального окружения

Перед созданием приложения необходимо настроить локальное окружение для работы tt:

  1. Создайте домашний каталог для окружения.

  2. Выполните tt init в этом каталоге:

    ~/myapp$ tt init   • Environment config is written to 'tt.yaml'

Эта команда создает файл конфигурации tt по умолчанию (tt.yaml) для локального окружения, а также каталоги для приложений, управляющих сокетов, журналов и других артефактов:

~/myapp$ lsbin  distfiles  include  instances.enabled  modules  templates  tt.yaml

Подробная информация о параметрах конфигурации tt и режимах запуска – на странице конфигурации tt.

Создание и разработка приложения

Приложение можно создать двумя способами:

  • Вручную, подготовив структуру в каталоге внутри instances_enabled. Имя каталога используется в качестве идентификатора приложения.
  • Из шаблона с помощью команды tt create.

В этом примере структура приложения подготовлена вручную и выглядит следующим образом.

~/myapp$ tree.├── bin├── distfiles├── include├── instances.enabled│   └── sharded_cluster_crud│       ├── config.yaml│       ├── instances.yaml│       ├── router.lua│       ├── sharded_cluster_crud-scm-1.rockspec│       └── storage.lua├── modules├── templates└── tt.yaml

Каталог sharded_cluster_crud содержит следующие файлы:

  • config.yaml: содержит конфигурацию кластера. Этот файл может включать всю топологию кластера или задавать параметры подключения к централизованному хранилищу конфигурации.
  • instances.yaml: определяет экземпляры для запуска в текущем окружении. Например, на машине разработчика этот файл может включать все экземпляры, определенные в конфигурации кластера. В рабочем окружении этот файл содержит экземпляры для запуска на конкретной машине.
  • router.lua: содержит код, специфичный для роутера.
  • sharded_cluster_crud-scm-1.rockspec: определяет требуемые внешние зависимости (например, vshard и crud).
  • storage.lua: содержит код, специфичный для хранилищ. Полный пример доступен в описании sharded_cluster_crud.

Упаковка приложения

Для упаковки готового приложения используйте команду tt pack. Эта команда может создать устанавливаемый DEB/RPM-пакет или сгенерировать архив .tgz.

Структура ниже отражает содержимое упакованного архива .tgz для приложения sharded_cluster_crud:

~/myapp$ tree -a.├── bin│   ├── tarantool│   └── tt├── instances.enabled│   └── sharded_cluster_crud -> ../sharded_cluster_crud├── sharded_cluster_crud│   ├── .rocks│   │   └── share│   │       └── ...│   ├── config.yaml│   ├── instances.yaml│   ├── router.lua│   └── storage.lua└── tt.yaml

Структура приложения аналогична той, что определена при разработке приложения, с некоторыми отличиями:

  • bin: содержит исполняемые файлы tarantool и tt, упакованные вместе с приложением.
  • instances.enabled: содержит символическую ссылку на упакованное приложение sharded_cluster_crud.
  • sharded_cluster_crud: упакованное приложение. Помимо файлов, созданных при разработке приложения, включает каталог .rocks с зависимостями приложения (например, vshard и crud).
  • tt.yaml: файл конфигурации tt.

Развертывание приложения

Запускаемые экземпляры

При развертывании распределенного кластерного приложения из архива .tar.gz можно определить экземпляры для запуска на каждой машине, изменив содержимое файла instances.yaml.

  • На машине разработчика этот файл может включать все экземпляры, определенные в конфигурации кластера.

    Cluster topology

    instances.yaml:

    storage-a-001:storage-a-002:storage-b-001:storage-b-002:router-a-001:
  • В рабочем окружении этот файл содержит экземпляры для запуска на конкретной машине.

    Cluster topology

    instances.yaml (Server-001):

    router-a-001:

    instances.yaml (Server-002):

    storage-a-001:storage-b-001:

    instances.yaml (Server-003):

    storage-a-002:storage-b-002:

В разделе Запуск и остановка экземпляров описано, как запускать и останавливать экземпляры Tarantool.

DEB и RPM пакеты

Приложения Tarantool, установленные из DEB и RPM пакетов, созданных командой tt pack, могут работать как службы systemd. Они запускаются от имени системного пользователя tarantool. Этот пользователь создается автоматически при установке пакета.

По умолчанию артефакты приложения размещаются в следующих каталогах:

  • /var/lib/tarantool/sys_env – данные приложения;
  • /var/log/tarantool/sys_env – журналы;
  • /var/run/tarantool/sys_env – рабочие артефакты.

Если требуется изменить эти каталоги, убедитесь, что у пользователя tarantool достаточно прав на используемые каталоги.