Предложения по веб-развертыванию прототипа - PullRequest
0 голосов
/ 11 июля 2019

Я создал прототип системы с использованием Python на Linux.Сейчас я разрабатываю архитектуру для перехода на веб-систему.Я буду использовать Django для обслуживания публичных и частных админ-страниц.Мне также нужна работающая служба, которая будет периодически запускать сценарии, подключаться к Интернету и разрешать обмен сообщениями API с администратором.Таким образом, будет 3 компонента: веб-сервер, api_service и база данных.

1) Каков наилучший механизм для развертывания python api_service на виртуальной машине?Мой опыт работы в основном с C ++ / C #, и я обычно развертывал службу, написанную на C #, на той же виртуальной машине, что и веб-сервер, и использовал какую-то оболочку обмена сообщениями TCP для API.Мой код API администратора будет специальным скриптом Python, запускаемым с моего компьютера для выполнения функций в этом сервисе.

2) Весь код моей базы данных записывается в интерфейс, который в настоящее время использует плоские файлы.Любое предложение базы данных?PostgreSQL, MongoDB, ...

Большое спасибо заранее за полезные предложения.Я бывший разработчик Windows / C ++ / C #, который сейчас абсолютно любит Python / Cython и нуждается в небольшой помощи, пожалуйста ...

1 Ответ

0 голосов
/ 15 июля 2019

Да, я отвечаю на свой вопрос.С момента публикации было проведено немало исследований.

2) PostgreSQL кажется хорошим выбором.Там, кажется, нет никаких проклятых предупреждений против его использования, и есть много помощи для поиска.Поэтому я реализую конкретные классы PostgreSQL для реализации моих интерфейсов сериализации.

1) Вместо того, чтобы реализовывать свой собственный сервис на python, который находится на удаленной машине, я собираюсь использовать Celery.RabbitMQ будет действовать как оболочка для распределенных TCP-сообщений.Я могу поместить необходимые функции в скрипты Python на виртуальной машине, которые Celery может найти и выполнить как задачи.Я могу выполнить эти задачи Celery тремя способами.i) Веб-запрос через Django может поставить задачу в очередь.ii) я могу вручную поставить в очередь удаленную задачу Celery со своего компьютера, запустив скрипт на python.iii) Я могу использовать Celery Beat для периодического планирования задач.Это полностью соответствует моим потребностям, так как у меня есть несколько ежедневных / периодических задач, которые можно запланировать, а также несколько редких задач по обслуживанию, которые я могу запустить с моей машины.

Подводя итог, где раньше я бы создалСлужба Windows, которая обрабатывает как входящие команды TCP, так и запланированное поведение, я могу использовать скрипты RabbitMQ, Celery, Celery Beat и python, которые находятся на виртуальной машине.

Надеюсь, это поможет любому с похожим «как начать»проблема .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...