2016-04-28 7 views
-2

У нас есть сервер производства Linux и ряд сценариев, которые мы пишем, которые мы хотим запустить на нем, чтобы собирать данные, которые затем будут помещены в озеро данных Spark.Кодирование лучшей практики для скрипта R, запущенного в производстве

Мой фон - это SQL Server/Fortran, и есть очень конкретные лучшие практики, которым следует следовать.

  • производственной среды должны быть стабильными с точки зрения контроля версий, как с точки зрения кода, но и установленных приложений, операционной системы и т.д.
  • Изменения кода/приложений/операционной системы должно быть сделано либо в отдельной среде, либо таким образом, который контролируется, и может быть зарезервировано.
  • Если существует вторая среда, тогда может быть выполнена возможность параллельного выполнения для проверки изменений системы.
  • (в основном), разработчики ограничены от изменения производственной среды

При рассмотрении кода R, существует целый ряд вещей, которые у меня есть вопросы по.

  • library(), install.packages() - Я хотел бы исключить возможность установки более новых версий пакетов при каждом запуске скриптов?
  • Как лучше всего назвать пакеты R, запланированные с помощью задания CRON? Здесь есть несколько вариантов.
  • При использовании RSelenium самый эффективный способ использования gui/web-браузера или виртуализированного веб-браузера?
+0

Ваши вопросы R поражают меня, поскольку все еще слишком широкие и расплывчатые, на которые можно легко ответить. Если этот вопрос будет работать, я думаю, вам нужно будет предоставить более конкретные детали. – joran

+1

Заключительные три пулевых пункта - это отдельные вопросы. – lmo

+0

Не стесняйтесь комментировать 'install.packages'. R будет использовать то, что доступно, или приносить ошибки в ваше огорчение, если они отсутствуют (если вы явно не поймаете их). –

ответ

1

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

Прошлое, что вам нужно спросить себя, сколько рук - ваше развертывание. Если все в порядке с настройкой каждого развертывания вручную, вы можете, вероятно, уйти с помощью пакета packrat, чтобы вытащить и сохранить источники точных версий, которые вы используете. Таким образом, воспроизведение вашего развертывания является болезненным, но, по крайней мере, возможным. Если вы хотите полностью автоматизировать воспроизводимые развертывания, я предлагаю вам начать создавать изображения докеров с вашими пакетами и пометить их датами или версиями.

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

+0

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

+0

http://stackoverflow.com/questions/36925855/best-practise-r-script-running-in-production-package-versions –