У меня есть локальная Docker установка, состоящая из четырех контейнеров: flask веб-приложение, MySQL, Redis и RQ worker.
Настройка, по сути, такая же, как и у Мигеля Гринберга Flask Мега-учебник. Вот ссылки на его учебник и его код .
Единственное отличие в моем случае состоит в том, что я заменил его функцию экспорта сообщений в блоге, которая работает на rq-worker, с другим, который невероятно интенсивен в вычислительном отношении и долго работает (30 минут).
Каков наилучший способ развертывания этого приложения для производства?
Я ожидаю, что к нему могут обращаться только один или два человека за раз, и чтобы они посещали его только один или два раза в неделю.
Я изучал примеры Kubernetes, но мне трудно переводить их к моей настройке и выяснить, как развернуть в GCP. Я открыт для других вариантов развертывания.
Вот docker команды запуска из учебника:
docker run --name redis -d -p 6379:6379 redis:3-alpine
docker run --name mysql -d -e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_DATABASE=flaskapp -e MYSQL_USER=flaskapp \
-e MYSQL_PASSWORD=mysqlpassword \
mysql/mysql-server:5.7
docker run --name rq-worker -d --rm -e SECRET_KEY=my-secret-key \
-e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
-e MAIL_USERNAME=example@gmail.com -e MAIL_PASSWORD=mysqlpassword \
--link mysql:dbserver --link redis:redis-server \
-e DATABASE_URL=mysql+pymysql://flaskapp:mypassword@dbserver/flaskapp \
-e REDIS_URL=redis://redis-server:6379/0 \
--entrypoint venv/bin/rq \
flaskapp:latest worker -u redis://redis-server:6379/0 dyson-tasks
docker run --name flaskapp -d -p 8000:5000 --rm -e SECRET_KEY=my_secret_key \
-e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
-e MAIL_USERNAME=example@gmail.com -e MAIL_PASSWORD=mypassword \
--link mysql:dbserver --link redis:redis-server \
-e DATABASE_URL=mysql+pymysql://flaskapp:mysqlpassword@dbserver/flaskapp \
-e REDIS_URL=redis://redis-server:6379/0 \
flaskapp:latest