Основная функция сервиса приложений — автоматический деплой. Apps автоматически выгружает на сервер код вашего сайта, API-сервиса, приложения и т.п.
Процесс работы с Apps при использовании backend-фреймворков выглядит так:
Подключение репозитория: Вы подключаете репозиторий к Timeweb Cloud, выполняя вход в свой аккаунт на GitHub, GitLab или Bitbucket, или по ссылке.
Подтягивание кода и установка зависимостей: Сервис автоматически подтягивает код из указанного репозитория и устанавливает необходимые зависимости, указанные в специальных файлах — таких как requirements.txt
для Python или package.json
для Node.js.
Сборка приложения: Сервис определяет параметры сборки для вашего приложения и собирает его.
Запуск в Docker-контейнере: После сборки запускается Docker-контейнер с подходящим окружением, внутри которого работает ваше приложение.
Настройка Nginx: Timeweb Cloud Apps автоматически настраивает Nginx для проксирования вашего домена на запущенное приложение.
При выполнении git push
в ваш репозиторий (при включенном автодеплое) процесс начинается заново — начиная со второго этапа: сервис подтягивает код, ставит зависимости, собирает приложение и так далее.
Важно понимать, что каждый новый деплой запускает новое окружение, то есть создается новый Docker-контейнер, в котором не сохраняются данные из предыдущих версий контейнера. Это позволяет обеспечить чистоту деплоя, но имеет свои особенности в управлении данными.
Поскольку данные внутри Docker-контейнера не сохраняются при повторном деплое, важно предусмотреть использование внешних хранилищ для данных, которые необходимо сохранить между деплоями:
Файлы и медиа: Если ваше приложение позволяет пользователям или администратору загружать файлы или медиа-контент, рекомендуется сохранять их в хранилище, таком как S3. Это гарантирует, что данные останутся доступными после обновления или повторного деплоя приложения.
Базы данных: В качестве базы данных также следует использовать внешние решения, такие как облачные базы данных или отдельные серверы баз данных, чтобы информация не терялась при обновлении контейнера.
К приложению будет привязан бесплатный технический домен с SSL-сертификатом Let's Encrypt, который можно использовать для тестирования работы и, если вам это подходит, — для запросов к приложению.
Работа сервиса с frontend-приложениями имеет одно важное отличие от backend-приложений — после сборки мы не создаем Docker-контейнер, приложение хранится в директории на сервере. Такое приложение — это статические файлы, которые отдаются клиентам с сервера.
Однако, в отличие от обычного размещения приложения на сервере, где вам нужно самостоятельно настраивать окружение, сервис Apps, как и в случае с бэкенд-приложениями, сделает всё за вас:
«подтянет» код из репозитория,
установит зависимости и ПО,
настроит Nginx,
выпустит SSL-сертификат,
выполнит сборку вашего приложения.
А в дальнейшем будет автоматически деплоить изменения — если вы оставите включенной опцию автодеплоя.
Понятно