2014-02-11 2 views
6

У нас есть требование создать большие (1G-16G) отчеты о данных строк, сжимать и шифровать их. Наши клиенты будут использовать эти отчеты для sFTP. Мы заменяем существующую реализацию, поэтому наш клиент должен прозрачно воспринимать это изменение.Фазировка лазурного хранилища с sFTP-сервисом

Служба Azure Blob не предоставляет услугу sFTP, поэтому нам нужно каким-то образом обработать ее с помощью sFTP-сервиса. Нечто похожее на FTP to Azure Blob Storage Bridge на основе рабочей роли. Роль рабочего будет показывать конечную точку sFTP для внешнего мира. Мы создадим контейнер для каждого клиента и ограничим доступ только к ролям рабочих, чтобы контейнеры были защищены от прямого доступа.

Мои вопросы:

  1. Что вы думаете о таком подходе?
  2. Будет ли sFTP с использованием рабочей роли динамически масштабироваться/сжиматься при сохранении того же DNS-имени с точки зрения клиента?
  3. Поддерживает ли поддержка Azure Blob сжатие или шифрование?
  4. Вы знакомы с ролью sFTP-работника, похожей на FTP, на Azure Blob Storage Bridge (предпочтительный открытый исходный код)?

Вопросы, относящиеся:
In Windows Azure: What are web role, worker role and VM role?
Azure Architecture Design

+0

Как создать виртуальную машину и настроить IIS FTP в папке VHD виртуальной машины. В любом случае VHD будет сохраняться в хранилище Blob, вам не придется делать слишком много изменений в вашем обычном дизайне. Отладка и поддержание рабочих ролей болезненны, вот почему на сайтах Azure появилась фотография, и нам это более удобно. –

+0

Мне нужно sFTP и IIS предоставляет только FTP; в любом случае, если мне нужно будет перехватывать вызовы sftp и манипулировать ими, я предпочту решение на основе Java, такое как Apache SSHD. Я надеялся, что использование рабочих ролей поможет в автоматическом масштабировании для доступа sftp. Мне не хватает компонента, который будет перенаправлять запрос DNS на нужную рабочую роль. Почему вы нашли рабочие роли настолько болезненными? –

+0

Если вам нужно решение на базе Java, то лучше всего использовать VM, вы можете установить Java, Tomcat или любое программное обеспечение, в котором вы нуждаетесь. VM может иметь несколько жестких дисков, и вы можете масштабироваться, когда вам нужна более высокая производительность. Роли рабочих не имеют возможности устанавливать стороннее программное обеспечение. У рабочей роли есть всевозможные проблемы с управлением, одна неправильная конфигурация, и вы тратите часы, чтобы понять, что не так. –

ответ

1

Вы могли бы добиться этого, просто подвергая оконечные хранилище больших двоичных объектов непосредственно над HTTPS и искать использовать Shared Access Подписи (http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/), чтобы ограничить доступ к эти капли.

Основываясь на ваших отзывах, возможно, попробуйте использовать Linux для запуска sFTP-сервера и использовать SDK Java, Node или PHP Azure для достижения той же цели, что и вытащить ваш контент из хранилища blob на запланированной основе без необходимости рабочей роли (cron должен видеть вас правильно). Честно говоря, вы удвоите использование вашего хранилища (не то, чтобы это было так дорого), поскольку вы вытащите blob из памяти и на VHD вашей виртуальной машины, но этот подход будет работать.

Я замечаю, что вы сказали, что шифруете файлы, записанные в хранилище blob, - вы могли бы просто использовать подход PKI и делиться ключами с клиентами, позволяя им напрямую обращаться через HTTPS. Во всяком случае, sFTP это выглядит :).

+0

Спасибо за ваш ответ, я не уверен, что это сработает для нас. Клиенты дезактивируются из хранилища Azure Blob, получая доступ к их ресурсу только через sFTP. Роль рабочего должна объединить все запросы от sftp до Azure Blob. Как я вижу, разрешения - это только дополнительный уровень безопасности, чтобы убедиться, что в случае, если что-то не работает с мостом sFTP, хранилище ограничит доступ. –

+0

Мы не собираемся хранить две копии файлов. Наши мысли таковы: Когда запрос sFTP попадет в рабочую роль, мы перехватим запрос, разрешим имя клиента от аутентификации и запрошенный файл из запроса sFTP. Это даст нам URL-адрес Azure Blob Storage. Затем мы откроем соединение с Azure и будем обслуживать файл, действующий как прокси. В любом случае, если для этого есть какая-то существующая имплантация, мы предпочтем, чтобы это заняло нашу собственную реализацию. –

+0

. Проблема с вашим подходом будет заключаться в том, чтобы справляться с временными сбоями в извлечении контента из хранилища Blade Azure. Вы также можете выполнить некоторые тесты производительности, чтобы обеспечить пропускную способность, чтобы вы могли легко передавать 16-гигабайтный файл с достаточной скоростью, чтобы удовлетворить вашу службу sFTP. –