2015-10-24 3 views
0

У меня есть клиент, для которого я разработал приложение Rails. Приложение полагается на то, что его клиенты загружают различные изображения, файлы и диапазоны размеров PDF от 1 до 100 мб.Улучшение скорости загрузки

Его рассказывали, что многие его клиенты жалуются на медленность и нестабильную скорость загрузки.

Я использую прямое подключение к Amazon S3 для обработки загрузки. Я объясняю ему, что могут быть факторы, которые не поддаются контролю с точки зрения скорости загрузки.

Но он настаивает на том, что мы можем что-то сделать, чтобы улучшить скорость загрузки.

У меня заканчиваются идеи и знания. у кого-нибудь есть решение?

ответ

1

На первый взгляд есть два ответа - нет, конечно, вы ничего не можете сделать, Интернет - это лучший транспорт и т. Д., И т. Д., ... и нет, на самом деле не должно быть проблемой, потому что загрузка S3 выполняется достаточно хорошо.

Однако есть возможность рассмотреть вопрос.

Вы можете развернуть глобальную сеть прокси-серверов перед S3 и использовать географический DNS для маршрутизации этих клиентов до ближайшего прокси. Затем установите высокоскоростные оптические схемы с малой задержкой с прокси-серверов обратно на S3, уменьшив количество «неизвестных» на пути, а также уменьшив время округления и потери пакетов между браузером и выбранным прокси-узлом на край вашей сети, улучшая пропускную способность.

Надеюсь, что предыдущий абзац забавен в первом чтении, поскольку это звучит как нелепо грандиозный план улучшения загрузки на S3 ... но, конечно, я имею в виду CloudFront.

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

Ваши пользователи теперь могут воспользоваться ускоренными загрузками контента. После того, как вы включите дополнительные методы HTTP для распространения вашего приложения, операции PUT и POST будут отправлены в исходное состояние (например, Amazon S3) с помощью края края CloudFront, повышая эффективность, уменьшая задержку и позволяя приложению получать выгоду от контролируемого, постоянного соединений, которые CloudFront поддерживает от крайних мест до исходных серверов.

https://aws.amazon.com/blogs/aws/amazon-cloudfront-content-uploads-post-put-other-methods/

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

Назад в день, когда мы по-прежнему используется телнет, когда T1s были соединения быстрый интернет и 33,6 кб было хороший модем, я обнаружил, что у меня была гораздо лучшая отзывчивость из дома, что привело к подключению telnet к удаленной системе, если я сначала сделал соединение telnet с сервером сразу на другой стороне линии модема, а затем подключился к telnet удаленный узел изнутри сервера.

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

Объяснение состояло в том, что промежуточное соединение с сервером означало наличие двух TCP-соединений с привязкой только их полезной нагрузки: я к серверу ... и сервер к удаленной системе. Оба соединения были плохими по-своему - высокая латентность на моем модемном канале, а также перегрузка/потеря пакетов на удаленном канале (который имел гораздо меньшее время туда и обратно, но был перегружен трафиком). Прямое подключение означало, что у меня было TCP-соединение, которое пришлось восстанавливать из потери пакетов при работе с чрезмерной задержкой. Создание промежуточного соединения означало, что восстановление от потери пакетов не было дополнительно ухудшено дополнительным временем ожидания, добавленным модемным соединением, поскольку потеря пакетов была обработана только на втором этапе соединения.

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

+0

спасибо за этот ответ. Я рассматривал CloudFront, потому что любое другое решение из моего опыта, времени и его стоимости. – Steve

+0

Что касается других сервисов, таких как Box или Dropbox и т. Д. – Steve

+0

Я не могу прокомментировать возможности других сервисов, но переключиться с использования S3 напрямую, на использование поставщика, такого как dropbox, который сам по себе используйте S3, по крайней мере, в качестве резервного хранилища ... Я не уверен, какое явное преимущество будет. Я ответил на ваш вопрос в контексте «улучшения», а не «альтернативы» S3, поскольку вопрос, требующий последнего, будет означать поиск рекомендаций по продуктам, которые здесь не будут обсуждены. –

Смежные вопросы