Когда хорошо использовать FTP? - PullRequest
8 голосов
/ 19 мая 2010

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

Как человек, который не принимает архитектурных решений, но склонен смотреть на архитектурные диаграммы, кто-нибудь может объяснить, в чем ценность использования FTP, где это уместно и когда передача данных в виде файлов - хорошая идея.

Я понимаю, что часто бывают устаревшие системы, которые просто должны работать таким образом, хотя любая историческая проницательность тоже была бы интересна

Я вижу привлекательность в передаче файлов (особенно, если это то, что нужно передавать) из-за простоты и привычности, и задаюсь вопросом, выходит ли за рамки этого обоснование.

Редактировать: Спасибо тем, кто указал, что SFTP предпочтительнее, однако мой вопрос более широк, чем необходимость рекомендации по протоколу передачи файлов. Извините за путаницу.

Ответы [ 7 ]

8 голосов
/ 19 мая 2010

Когда хорошо использовать FTP?

До изобретения SFTP.


Обращение к редактированию (он же более широкий вопрос в этом вопросе)

Все сводится к предполагаемому использованию. Посмотрите на вашу ситуацию и определите

  • Какие данные я перемещаю?
  • В каком формате он изначально генерируется? (PDF на диске, текстовый вывод из скриптов веб-сервера и т. Д.)
  • Как используются данные?
  • Когда используются данные? (Мгновенно по прибытии, запланированные пакетные задания?)
  • Какая среда связи соединяет генератор данных и потребителя данных?

Например:

Процесс генерирует документы PDF, записывая их в локальный массив raid. У вас есть другой компьютер, предназначенный для печати всех PDF-файлов, созданных на множестве серверов, подключенных к локальной гигабитной локальной сети через задание cron, запланированное на полночь.

Учитывая, что данные, скорее всего, будут слишком большими, чтобы все они могли находиться в оперативной памяти на сервере печати, имеет смысл использовать SFTP для передачи PDF-файлов, чтобы их можно было извлекать с диска при печати. ​​

Другой пример:

Машине необходимо извлекать большое количество маленьких файлов с машины специальным образом, анализировать их и сохранять результаты в базе данных. В этом случае использование SFTP для перемещения их с диска обратно на другой диск для немедленного чтения и загрузки в БД просто глупо. Нет причин, по которым файлы меньшего размера не помещались в ОЗУ, пока их не проанализировали и не поместили в базу данных, и, следовательно, SFTP, вероятно, не является лучшим решением.

4 голосов
/ 19 мая 2010

Если вам нужно отправить физическое письмо в самый захолустный регион, трудно превзойти почтовую службу 2000 лет . Если вам нужно отправить файл в место захолустья, трудно превзойти 40-летнюю службу Postel .

3 голосов
/ 19 мая 2010

Если безопасность не имеет значения, тогда может пригодиться FTP.

Однако, учитывая современные возможности, я бы, вероятно, никогда не использовал бы его, вместо этого выбрав SFTP / SCP / rsync или HTTP (возможно, с WebDAV). Во-первых, у всех этих протоколов есть варианты для лучшей безопасности (HTTP, по крайней мере, через SSL). Кроме того, они являются более простыми протоколами. У FTP есть неприятное замечание, что реальные данные передаются по отдельному соединению, а не по управляющим командам, что делает межсетевой экран более сложным. Кроме того, в непассивном режиме это соединение между сервером и клиентом делает межсетевой экран почти кошмаром. Если есть унаследованные потребности взаимодействия, это может быть полезно, но клиентские программы и библиотеки HTTP легко доступны, поэтому я бы просто использовал это в наши дни.

3 голосов
/ 19 мая 2010

Некоторые устаревшие системы используют папки для передачи данных в формате XML или CSV и т. Д., В этих случаях файлы должны быть записаны на диск. При интеграции с другой системой вне сети / в Интернете имеет смысл сделать их доступными на FTP-сайте. Более новые системы могут использовать WebServices или другие технологии «по проводам», чтобы уменьшить сохранение на диск. Возможно, что если эти файлы очень большие, FTP может быть лучшим решением.

В некоторых отраслях, например в полиграфии, большие файлы PDF - это маршруты через различные рабочие процессы, где файлы PDF обрабатываются, обрабатываются и т. Д. Через этот рабочий процесс. В полиграфии использование папок (и, в свою очередь, FTP) является обычным явлением, и они обычно называют их «горячими папками»

1 голос
/ 20 мая 2010

Файловая связь (например, через FTP, SFTP, SCP ...) хороша для

  • передача больших объемов данных
  • сценарии пакетной работы
  • асинхронная связь

Нет ничего плохого в использовании файлов. Это хорошо понятная зрелая технология, ее легко применять, легко отслеживать и отлаживать.

1 голос
/ 19 мая 2010

FTP - это простой, кросс-платформенный способ передачи файлов, если у вас надежное соединение и вам абсолютно не нужна безопасность (не дайте себя обмануть, спрашивая о паролях - там нет реальной безопасности). *

Часто люди действительно нуждаются в безопасности, но они ошибаются, используя FTP, потому что они просто верят, что именно это и сделано. Лучший способ добиться этого - обычно использовать SFTP (мне нравится реализация OpenSSH) или передавать данные, используя безопасный веб-сервис.

Конечно, правильная реализация SFTP означает, что разработчики должны будут правильно генерировать, хранить и обмениваться ключами и понимать, как работает доверие. Часто для них это слишком много усилий, поэтому люди склонны идти по простому пути и использовать FTP. Как-то грустно, если вы спросите меня.

0 голосов
/ 19 мая 2010

Я полагаю, что безопасность и отключенные сети или сегменты сети могут вступить в игру. У меня были различные проекты, в которых кому-то нужно было импортировать данные из другой системы, и FTP - это простой / безопасный способ вывести данные через брандмауэр. Как правило, вы можете запланировать его автоматический запуск, и большинство сотрудников службы безопасности сети будут в порядке с открытыми портами FTP.

...