Люди просили безопасный механизм для обмена файлами. Сегодня мы рады представить новый модуль файлового сервера с открытым исходным кодом. Как новейший компонент в экосистеме Psono, он решает несколько проблем:
И вот тут-то и появляется Psono. Psono был разработан с учетом всех этих проблем и обладает чрезвычайной гибкостью.
Хорошо, как это выглядит для пользователя, спросите вы. Легко.
Надеюсь, это достаточно просто.
Под капотом клиент выполняет более сложные шаги, но все они скрыты от пользователя:
С помощью этого механизма мы можем решить проблему размера файлов, так как файлы разбиваются на фрагменты. Мы можем распределить загрузки по серверам даже для одного файла. Все файлы (как и все остальное в Psono) шифруются перед отправкой на сервер.
Верхняя часть показывает типичную настройку. Релейный сервер (простой обратный прокси) обслуживает некоторые статические файлы (веб-клиент). Веб-клиент передается в браузер, который затем вызывает REST API конечных точек на сервере. Сервер использует базу данных Postgres для хранения всех постоянных данных. Веб-клиент Psono и сервер Psono могут считаться безгосударственными, все данные хранятся в базе данных Postgres.
Если вы хотите подключить файловый сервер, вам сначала нужно создать конфигурацию фрагмента и кластера на сервере, которую вы затем сможете использовать для настройки фактического файлового сервера. Как только файловый сервер загружается, он автоматически регистрируется и продолжает объявлять о своей доступности с интервалами в 10 секунд. Если файловый сервер выходит из строя, сервер распознает это и прекращает отправлять клиентов на неработающий сервер. Как только сервер снова становится доступным, он автоматически регистрируется и начинает принимать запросы от клиентов. На рисунке выше мы храним все фрагменты в локальном хранилище и имеем релейный сервер (может быть тот же, что и для обычного сервера, веб-клиента в небольших окружениях) для разгрузки SSL.
Кроме локального хранилища, вы можете использовать различные хранилища и даже смешивать их.
В настоящее время поддерживаются (в дополнение к локальному хранилищу) Amazon S3, GCP Cloud Storage и Azure Blob Storage.
Вы можете использовать несколько файловых серверов, чтобы решить, например, проблемы с производительностью из-за ограничения пропускной способности. Вы можете иметь сотрудников, работающих удаленно, но с очень слабым интернет-соединением в вашем офисе. Другой возможный сценарий использования может заключаться в том, что вы хотите лучше защитить локальные файлы и
Настройка, которая решает проблему производительности и обеспечивает лучшую изоляцию, может выглядеть так:
Эта настройка распределяет весь трафик "внешнего" фрагмента между сайтами двунаправленным образом, позволяя внешним пользователям загружать файлы, которые затем могут быть скачаны сотрудниками, и наоборот.
Внутренний фрагмент, с другой стороны, никогда не синхронизируется с удаленной локацией и остается более защищенным. Поскольку файлы во "внешнем" фрагменте синхронизируются только один раз, когда они изменяются, у вас может быть 100 сотрудников, которые доступны к файлам из этого фрагмента без необходимости загружать их 100 раз из удаленной локации. Или, если вы загружаете файл, вы можете поделиться им с 100 внешними пользователями, без необходимости загружать его 100 раз.
Преимущество пропускной способности также можно использовать для соединения удаленных локаций с настройкой, схожей с этой:
В этой настройке каждое место имеет свой файловый сервер, и все файлы распределяются между сайтами. Записи идут только в определенный фрагмент, что позволяет однонаправленную синхронизацию каждого фрагмента. Такая настройка позволит людям в Нью-Йорке иметь доступ к файлам без задержек.
Следующий важный пункт — это балансировка нагрузки. Все это хорошо, если у вас есть лишь несколько сотрудников, которые не исчерпывают вашу пропускную способность. Если у вас 1000 сотрудников, которые все время получают доступ к файловому серверу, это приведет к ограничениям по пропускной способности для одного сервера. Но, к счастью, Psono может с этим справиться. Вот два варианта, предложенных файловым сервером Psono для балансировки нагрузки.
Возможно, у вас уже есть балансировщик нагрузки, который вы хотели бы использовать, тогда ваша настройка может выглядеть следующим образом:
В этой настройке балансировщик нагрузки используется для разгрузки SSL. Два файловых сервера, расположенных за ним, используются для обработки реальных запросов. Оба анонсируют один и тот же фрагмент, поэтому им либо нужно синхронизировать фрагмент, либо иметь какое-то совместное хранилище. Можно использовать GlusterFS или простой rsync.
Альтернативный вариант — позволить клиенту балансировать всё это и сэкономить на настройке и расходах. Настройка без дополнительного балансировщика могла бы выглядеть так.
Все эти настройки могут быть объединены, например, 3 кластера по 2 сервера каждый. Каждый кластер обслуживает один и тот же фрагмент и имеет под собой синхронизированное (или общее) хранилище.
Надеюсь, я смог дать вам хорошее представление о возможностях нового и мощного модуля файлового сервера Psono.