Запуск

Получив команду на запуск, облако Amvera ищет в папке Code конфигурационный файл amvera.yaml. Возможны три ситуации:

  1. Отсутствует amvera.yaml, но удается найти Dockerfile.

    • Начинается запуск образа, полученного в результате сборки Dockerfile.

  2. Отсутствует и amvera.yaml и Dockerfile.

    • Запуск завершается ошибкой.

  3. Присутствует amvera.yaml.

    • Начинается запуск приложения.

Процесс запуска с amvera.yaml

build_proc Облако Amvera считывает раздел meta из файла конфигурации amvera.yaml и ищет подходящий инструмент для запуска в списке поддерживаемых окружений. Под инструментом для запуска подразумевается готовый образ с установленным в него программами, которые позволят запустить приложение (python, JVM и т.д). Выбранный благодаря конфигурации образ запускается в новом контейнере с параметрами, указанными в секции run этой-же конфигурации.

В процессе создания контейнера в него монтируются две папки:

  • artifacts - папка с полученными в результате процесса сборки файлами (может затираться при пересборке). Монтирование происходит в папку /app запущенного контейнера.

  • data - папка постоянного хранилища, которую не затрагивает процесс сборки и, следовательно, файлы остаются нетронутыми. Для хранения получаемых в процессе работы программы данных, таких как: БД, логи и т.д. необходимо использовать именно эту папку. Монтирование происходит в папку /{persistenceMount}, заданную конфигурации (по умолчанию /data).

В процессе запуска статус приложения будет «Выполняется запуск», который при успехе сменится на «Приложение запущено». В случае, если статус «Ошибка развертывания» или проект долго висит в статусе «Выполняется запуск» стоит искать проблему в секции run файла конфигурации.

Жизненный цикл

Важно

В первые минуты работы приложения статус может быть «Ошибка работы приложения», так как приложение формально ещё не запустилось и Амвера не может явно определить его точный статус.

Amvera стремиться обеспечить бесперебойную работу развернутого приложения. Если приложение по какой-либо причине завершает работу (возникло исключение, программа дошла до конца) оно автоматически будет перезапущено. Если возникающая ошибка не дает проработать приложению больше минуты, то статус приложения переходит в «Ошибка работы приложения», однако облако продолжает пытаться его перезапустить снова и снова. Если впервые развернутое приложение находится в этом состояние больше получаса, то оно автоматически останавливается и переходит в статус «Остановлено из-за повторяющейся ошибки».

Важно

Для профилактики ошибок работы приложения рекомендуем перейти во вкладку «Лог приложения»

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

Если требуется на время остановить проект, можно воспользоваться кнопкой «Включить/Выключить» или задать желаемое кол-во реплик равное нулю на панели инструментов. При этом данные во всех папках остаются нетронутыми.

Если приложение находится в выключенном статусе более 30 дней, то оно автоматически замораживается.

Заморозка приложения

Если приложение больше не нужно, но вы хотите сохранить данные в репозитории и в постоянном хранилище, то можно воспользоваться кнопкой «Заморозить проект» во вкладке «Настройки».

При заморозке полностью очищается папка Artifacts, а так-же привязанные домены. Приложение переходит в статус «Заморожено». Для разморозки требуется инициализировать процесс сборки проекта и выставить кол-во желаемых реплик более нуля.

Лог приложения

Для отслеживания работы приложения следует воспользоваться консолью вывода логов, которая находится во вкладке «Лог приложения». Загрузка логов может занимать некоторое время и работать с задержкой.

Для загрузки логов необходимо нажать на кнопку «Загрузить историю», которая расположена в нижнем правом углу окна логов и выглядит как циферблат. load_logs