Перейти к содержанию

Обновление AW

Технические изменения в выпуске AW 1.34

Изменения в топологии:

Убрана зависимость сервиса etl-api от memcached (etl-api теперь не читает переменные MEMCACHED_HOST и MEMCACHED_PORT). Теперь кеши этого сервиса хранятся в etl-broker (переменная ETL_BROKER_URL).

Изменения в конфигурации

Добавлены переменные:

Переменная Новая? Описание Значение
по умолчанию
ETL_PULLER_TIMEOUT Да Количество секунд, через которое обращение к пуллеру из превью или синхронизации модели прерывается. Если значение не указано, то задержка считается бесконечной. <пусто>
ETL_API_START_PREVIEW_TIMEOUT Да Таймаут на соединение с сервисом data-preview (в сек.). Если в течение этого времени preview-задача не будет взята в работу, то пользователю будет показано сообщение, что сервис preview-недоступен. 10
ETL_DATA_PREVIEW_MAX_REQUESTS Да Количество запросов, которые обрабатывает каждый из воркеров etl-data-preview, перед тем, как принудительно перегрузиться. 1000
ETL_DATA_PREVIEW_MAX_TASK_DURATION Да Максимальное время на выполнение задачи в etl-data-preview (в сек.). Если в течение этого времени preview-задача не будет выполнена, то воркер принудительно перегрузится. 900
ETL_DATA_PREVIEW_WARMUP_SPARK_SESSION Да Выполнять ли прогрев спарк сессии при старте воркера. Любое из 1/true/on/yes - да. Пустое значение - да. Прогрев ускоряет обработку первых поступающих в data-preview запросов, но во время прогрева воркер недоступен. <пусто>
ETL_EXTRA_PYLIBS_INSTALL Да Перечисление дополнительно устанавливаемых py-библиотек <пусто>
ETL_EXTRA_PYLIBS_ALLOW Да Перечисление библиотек, импорт которых разрешен в etl-скриптах. <пусто>
ETL_EXTRA_PYBUILTINS_ALLOW Да Перечисление дополнительных стандартных функций, которые можно использовать в etl-скриптах <пусто>
ETL_EXTRA_PYWHEELS Да Путь к хостовой папке, в которой располагаются дополнительно устанавливаемые py-библиотеки <пусто>
BACKEND_LIVE_WIDGET_DATA_CACHE_DURATION Да Время жизни кеширования данных виджета, построенных на live-модели. Измеряется в секундах. При 0 или невалидном значении кэш отключается
ETL_KEEP_FILES_DAYS Перенос Через столько дней будут удаляться неиспользуемые файлы в папке запуска etl (допускается дробное значение) 7
ETL_KEEP_DAGS_DAYS Перенос Через столько дней будут удаляться неиспользуемые модели (допускается дробное значение) 7
ETL_TASKS_LOG_LEVEL Да Уровень логирования для сервиса ETL_TASKS. Допустимые значения: ERROR, WARNING, INFO, DEBUG INFO
ETL_BROKER_URL Да Адрес брокера ETL redis://etl-broker:6379/0
AW_S3_URL Да Адрес основного S3-хранилища http://minio_user:minio_access_pass@minio:9000

Удалены переменные:

Переменная Причина удаления Сервис
AW_FILE_PULLER_INTERNAL_DS_S3_URL Ранее переменная указывала в file-puller на S3 бакет, в котором хранятся загруженные пользователем файлы для файловых источников. Теперь в file-puller на S3 указывает переменная AW_S3_URL file-puller

Обновление AW

Для обновления Системы выполните следующие действия:

  1. Подключитесь к серверу через ssh: Перейдите в рабочую директорию приложения, в дальнейшем ожидается, что остальные команды выполняются из рабочей директории приложения:

    cd /opt/aw/app
    
    Загрузите на сервер дистрибутив AW BI.

  2. Создайте резервную копию файла конфигурации, а также сформируйте список изменений в файле конфигурации по сравнению с шаблоном:

    cp .env ../env.backup.$(date +'%Y-%m-%d_%H%M%S')
    diff -wu .env.dist .env > ../env.diff
    
  3. Остановите AW:

    docker compose down -v
    
  4. Удалите папку rabbitmq для корректного обновления версии:

    rm -rf ../db/rabbitmq
    
  5. Распакуйте дистрибутив:

    tar xvf ./release-VERSION.tar
    
    Файл дистрибутива можно удалить, если есть дефицит дискового пространства

  6. Скопируйте шаблон файла конфигурации .env.dist в файл конфигурации .env и примените изменения в нем (автоматически или вручную):

    cp .env.dist .env
    # автоматическое применение изменений:
    patch < ../env.diff
    
    Автоматическое применение изменений может не сработать в некоторых случаях. В этом случае необходимо будет вручную повторно внести изменения в файле .env

    Убедитесь, что произведены все изменения в конфигурации между старой и новой версиями, а также изменения, описанные на странице Технические изменения от релиза к релизу, требующие внимания разработчиков и девопсов

  7. Выполните очистку docker от старых образов.

    Данный пункт не обязателен, но является рекомендацией. Данная операция позволяет избежать лишнего использования дискового пространства.

    Важно: Выполняйте очистку старых образов до загрузки новых. Если команда была запущена после обновления, потребуется повторно выполнить загрузку образов!

    docker system prune --all
    
  8. Загрузите в Docker обновленные образы компонентов AW.

    Для закрытого контура перейдите в каталог установки Системы и выполните скрипт ./install.sh:

    chmod +x install.sh
    ./install.sh
    

    Для открытого контура: Подключите Docker Registry:

    docker login registry.analyticworkspace.ru
    # Отобразится запрос о необходимости ввести учетную запись. Введите данные учетной записи, ранее использованной для скачивания дистрибутива
    
  9. Запустите скрипт create_project_dirs.sh для того чтобы создать необходимые директории:

    chmod +x create_project_dirs.sh
    ./create_project_dirs.sh
    
  10. При обновлении с версии младше 1.30 необходимо очистить содержимое директории db/rabbitmq

    rm -rf db/rabbitmq/*
    
  11. Выполните запуск Системы и примените миграции:

    docker compose up -d
    docker compose exec backend php yii migrate --interactive=0 | tee ./backend_migration.log
    docker compose exec backend php yii run-code-migrations | tee ./backend_code_migration.log
    docker compose exec etl-api /app/manage migrate | tee ./etl_api_migration.log