Как повысить производительность приложения Django в разных географических регионах? - PullRequest
0 голосов
/ 29 июня 2018

У меня есть приложение Django, которое размещено на коробке AWS, расположенной в географическом регионе us-east-1 с использованием каналов Nginx и django. В последнее время некоторые пользователи из региона ap-southeast-1 жалуются, что мое приложение не очень отзывчивое. Приложение работает нормально для меня, так как я использую us-east-1.

  1. Как я могу обнаружить низкую производительность в регионе до того, как пользователь пожаловался?
  2. Что я могу сделать, чтобы улучшить производительность приложения и удобство работы в часовом поясе ap-southeast-1?
  3. Есть ли способ протестировать производительность в другом географическом регионе в рамках модульного тестирования или что-то подобное?

У меня есть ощущение, что ответ для # 2 будет иметь какое-то отношение к: (A) добавлению другого веб-сервера в ap-southeast-1 и (B) кешированию, но мне интересно узнать, есть ли дополнительные вещи Я должен делать.

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

1 Ответ

0 голосов
/ 30 июня 2018

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

Лучшим решением было бы иметь свой полный стек, серверы и базы данных во всех поддерживаемых регионах и использовать межрегиональную репликацию, чтобы гарантировать, что все регионы совместно используют одни и те же данные. Это поддерживается для некоторых баз данных AWS, таких как DynamoDB и RDS .

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

Что касается определения производительности, Cloudwatch - хороший инструмент для мониторинга ваших ресурсов AWS. В зависимости от того, какой ресурс AWS вы используете для своего сервера, он должен иметь некоторые метрики для измерения времени ответа.

Что касается тестирования производительности, вы можете посмотреть на создание dev / test версии вашего сервера в другом регионе и использовать прокси для доступа к ней. Затем просто используйте Cloudwatch, чтобы узнать, сколько времени занимают эти запросы.

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