Рубрики
Uncategorized

Начало работы в строительстве и развертывании интерактивных научных приложений данных с помощью TreamLit — часть 2

После создания приложения Data Science мы хотим сделать его доступным вместо того, чтобы собрать пыль в коде … Теги с DevOps, Docker, начинающими, облаками.

После создания приложения Data Science мы хотим сделать его доступным вместо того, чтобы сбрать пыль в свавании кода.

В предыдущем посте мы использовали streamlit, чтобы быстро раскрутить скромное приложение с простым сценарием Python, а не даже одной линейкой rest.js. Далее мы будем проходить несколько методов развертывания: пробавшими его на Heroku, контейнерируя его докера, плюс пробег его из GitHub Direct как простой способ поделиться.

  1. Аккаунт GitHub/Gitlab
  2. Файлы в этом Гист покрыты от предыдущего поста

Среди нескольких вариантов развертывания я нахожу Heroku один из самых удобных для начинающих. Прежде чем мы начнем, нам нужно зарегистрировать учетную запись на Heroku, установить его CLI и создать папку проекта на своем UI с предпочтительным именем папки.

Хостинг на Героку

Два дополнительных файла от Gist необходимы в папке проекта.

ProCFile

web: sh setup.sh && streamlit run app.py

setup.sh

mkdir -p ~/.streamlit/

echo "\
[general]\n\
email = \"your-email@domain.com\"\n\
" > ~/.streamlit/credentials.toml

echo "\
[server]\n\
headless = true\n\
enableCORS=false\n\
port = $PORT\n\
" > ~/.streamlit/config.toml

После этого в вашем локальном терминале запустите:

git init

Если вы работаете с местного репо, вы можете пропустить часть GIT INITAL. Затем последовал

heroku git:remote -a 
git add .
git commit -am ""
git push heroku master

И теперь вместо того, чтобы иметь только приложение в вашем локальном браузере, у вас есть живой URL для поделиться. Это напоминает .herokuapp.com.

💡 советы и трюки

Как и большинство облачных платформ, Heroku имеет функцию автоматического развертывания через интеграцию GitHub, под вкладкой развертывания. Приятно протестировать код заранее.

Развертывание с Docker через GCP или AWS Cloud Services

Почему докер

Хотя вы могли бы иметь другие пользователи Git клонировать вашу репо и запустить его на месте, они могут работать во всевозможные проблемы — такие как установка определенных пакетов, или некоторая неправильная версия может выбросить все, или они могут быть в другой операционной системе. Все, что вы не хотите видеть, происходящие после всей этой работы. Наличие приложения/кода легко доступна и воспроизводимо, также может облегчить проведение тестирования пользователей и сбора обратной связи.

Два основных концепции

  • Контейнер: контейнер Docker инкапсулирует приложение вместе с пакетами и библиотеками, которым требуется запустить
  • Изображение: Снимок контейнера

Готовиться

Для начала мы можем зарегистрировать учетную запись Dockerhub и создать репо там.

Два варианта — публичные и частные, очень похожи на варианты GitHub. Можно предоставить доступ к конкретным людям для своего частного репо. На данный момент мы создадим общедоступную для демонстрации демонстрации.

Далее вам понадобится Dockerfile , например, этот один Отказ

Теперь мы готовы подключить приложение, есть всего несколько ключевых команд для знания. Поскольку Docker/Kubernetes (вещь, которую оркестры несколько докеров) могут получить сложную, лучше начать с голых существ.

Я предпочитаю работать с CCP Cloud Console или AWS Cloud9, поэтому мне не нужно устанавливать Docker, но вы можете работать с местного терминала, если у вас уже есть Docker.

Основные команды

В облачной консоли выберите проект, клонировать репо, если у вас есть код на GitHub или загрузите папку проекта.

  • Авторизоваться
docker login

Это пригласит имя пользователя и пароль Docker Hub.

  • Строить
docker build --tag=/:0.0 .

Вы можете указать номер версии или использовать последние.

  • Проверить
docker images

Вы должны быть в состоянии найти изображение, которое вы просто построен под репозиторием

  • Толкать
docker image push /

Далее вы увидите, что последняя версия была отражена в Docker Hub. Нажав на публичный вид справа, вы сможете поделиться URL-адресом, а другие должны быть в состоянии потянуть его.

💡 советы и трюки

  • Лучше использовать черту вместо подчеркивания в тегах докера
  • Если вы хотите сохранить Dockerfile Clean и Tidy, вы можете использовать HADOLINT, который является DockerFile Linter, а также добавить это в Make File Hadolint streamlit_demo/dockerfile
  • Чтобы сохранить хлопоты, чтобы нажать на Docker Hub после каждого обновления, вы можете нажать на сборки> Настроить автоматические сборки и подключиться к Github.
  • Вместо того, чтобы запустить несколько команд для каждого проекта, вы можете сохранить их в файле bash под названием run.sh, а затем запустить sh run.sh Для выполнения всех команд.
dockerpath="change this to /"
#log in
docker login
#build
docker build --tag=$dockerpath:latest .
#push
docker image push $dockerpath

Запуск приложения напрямую с URL GitHub

3-й метод состоит в том, чтобы поделиться ссылкой URL-адреса GitHub вашего App.py, в соответствии с приложением App.py — это все файл, необходимый для запуска приложения, и у вас нет других зависимостей, таких как файлы данных, либо сценарии вспомогательных данных и т. Д.

streamlit run 

И посмотреть приложение в действии. Однако этот метод не приносит одни файлы CSV в вашей папке. Таким образом, предыдущие 2 метода по-прежнему наиболее прочные для совместного использования ваших приложений.

Еще один вариант заключается в том, что streamLit предложит свое собственное решение развертывания. Когда это произойдет, это было бы самое удобное решение для TreamLit. Но методы развертывания, которые мы охватываем ранее, все еще применимы ко всем видам приложений и сценариев за пределами StreamLit (некоторые настройки могут потребоваться в файлах конфигурации).

⌛wrap-up.

Сегодня мы рассмотрели, как использовать Docker для контейнеризации приложения TreamLit и как развернуть его к Heroku. Вы также можете развернуть его в GCP/AWS/Azure

Дополнительные полезные ресурсы TreamLit Wiki — Ссылки на статьи на развертывании GCP/AWS/Azure Пожалуйста, содержать себя — Очистить и тщательное объяснение того, как Docker работает в серии.

Обложка фото кредит

Оригинал: «https://dev.to/hannahyan/getting-started-in-deploying-interactive-data-science-apps-with-streamlit-part-2-3ob»