Назад | Перейти на главную страницу

Как написать надежные сценарии автоматизации для управления крупномасштабными данными?

Мне нужно было автоматизировать перемещение довольно больших объемов данных (возможно, около 1 ТБ / день + в среднем. Пока что 60 ТБ, и это количество растет) в отдельную удаленную систему хранения.

До сих пор я делал это путем написания собственного кода на Python из-за некоторых особых проблем, связанных с упаковкой данных в подходящие блоки для передачи по сети и для доступных протоколов (в нашем случае GridFTP).

Мне было интересно, есть ли какие-либо материалы (статьи, сообщения в блогах или книги - если они действительно хороши), содержащие передовые методы и / или советы о том, как писать сценарии управления данными надежным и отказоустойчивым способом?

ОБНОВЛЕНИЕ / УТОЧНЕНИЕ: Добавлю, что мы более-менее решили проблему с загрузкой файлов (сравнением удаленных и локальных контрольных сумм). Тем не менее, нам нужно обрабатывать гораздо больше, чем это, поскольку мы предоставляем решение типа Dropbox для всех проектов в Центре HPC, поэтому мы в основном управляем всем из этого интерфейса Dropbox, пока пользователь не захочет вернуть специальный файл из хранилища. .

Итак, нам нужно обрабатывать проекты, архивировать события, метаданные для всех файлов, включая создание контрольных сумм и тому подобное, и все это полностью автоматизировано, когда одно событие архивирования может состоять из 5 ТБ, распределенных на тысячах средних и малых- размер файлов.

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

Таким образом, я ищу больше общих советов / лучших практик для написания программного обеспечения (и, в частности, для обработки данных / выполнения системных вызовов), а не только того, как проверять загрузки.

Вещи, для которых я хотел бы увидеть лучшие практики и подсказки, например: обработка исключений, ведение журнала, проверка, автоматические тесты и т. Д. И то, как объединить все это, чтобы получить решение, на которое вы можете положиться, не наблюдая его постоянно. (при необходимости вы должны получить письмо и т. д.).

Я бы использовал классический метод контрольной суммы с архивами tar.

  1. Создать смолу
  2. вычислить контрольную сумму SHA-1
  3. Трансфер
  4. Сравните контрольную сумму

Достаточно простой сценарий, независимый от протокола и, безусловно, самый надежный метод.

Для протокола, я думаю, что сам нашел кое-что сейчас (но ищу больше, если есть!):