Docker Django NGINX Postgres сборка с масштабированием - PullRequest
0 голосов
/ 29 апреля 2020

Я работал в основном с монолитными c веб-приложениями на протяжении многих лет и не тратил много времени на изучение Django высокопроизводительных масштабирующих решений.

Существует множество NGINX / Postgres / Django / Docker построен на хабе. docker .com, но не тот, который я мог бы найти, который был бы хорошей отправной точкой для масштабируемого Django веб-приложения.

В идеале проект Docker должен включать :

  • Конфигурация веб-контейнера, которая легко позволяет добавлять новые веб-контейнеры в веб-приложение
  • Конфигурация контейнера базы данных, которая легко позволяет добавлять новые шарды базы данных
  • Django Примеры микросервисов также были бы плюсом

К сожалению, у меня нет большого опыта работы с Kubernetes и Docker роями.

Если их нет, я могу сделать это своим следующим Проект github.com.

Заранее спасибо.

1 Ответ

1 голос
/ 29 апреля 2020

Это очень широкий запрос. Это зависит от многих факторов:

Какое требование к производительности?

Убедитесь, что вам действительно необходим такой масштаб. В большинстве случаев один хороший сервер с docker -композицией может удовлетворить ваши потребности. Если вы хотите уменьшить риск простоя, создайте 2 сервера, добавьте балансировщик нагрузки между ними и извлеките общие службы, такие как БД или кэширование, в другую службу, и пусть оба экземпляра сервера используют их.

Как сделать Вы хотите запустить свои приложения?

Docker -Композиция:

Оформить заказ https://github.com/pydanny/cookiecutter-django о том, как это сделать с docker -компоновать на одном сервере.

Kubernetes:

Django вполне подходит для работы в Kubernetes, я запускаю несколько приложений в Kubernetes. Проблема в том, что вам нужно правильно настроить все другие сервисы (redis, DB, ElasticSearch и др. c.). Каждая из этих служб работает независимо от вашего основного Django приложения и должна быть подключена через такие библиотеки, как haystack или python-redis.

Heroku и другие

Есть также провайдеры, такие как Heroku, которые предлагают автоматическое масштабирование по цене. Если цена менее важна, go с этими решениями, потому что они очень просты в настройке и обслуживании.

Насколько масштабируемой должна быть ваша БД?

Если вы пытаетесь настроить свой собственный кластер БД на разных серверах / регионах, вы потратите много времени на его создание и обслуживание. Я бы порекомендовал использовать службы БД, такие как AWS RDS. Они делают это для вас с простой настройкой и обслуживанием. Вы можете настроить масштабируемость. Это стоит денег, но это решение с наименьшими усилиями.

...