2016-04-28 7 views
1

У нас есть производственный сервер linux (Ubuntu 14.10) и ряд написанных нами R-скриптов, которые мы хотим запустить на нем, которые собирают данные либо из API, либо из веб-скребок , Затем данные будут записаны в файлы CSV.Сценарий Best Practice R, работающий в производстве - версии пакета

Мой фон - это SQL Server/Fortran, и есть очень конкретные рекомендации, которые следует соблюдать в отношении производственных сред. Некоторые Характерными из них являются: -

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

Мой вопрос заключается в следующем: Как я могу гарантировать, что пакеты, связанные с моим R кодом остается последовательной и неизменной, пока не решили обновить их?

+0

Никогда не использовал его, но вы взглянули на [Packrat] (https://rstudio.github.io /воришка/)? –

ответ

4

Вы можете использовать Docker; наш Rocker project имеет несколько подходящих контейнеров для запуска.

В противном случае просто использовать базовый Unix sys.admining:

  • , если вы не хотите изменения в пакет каталогов АиР, делает их только для чтения
  • использование возможно некоторые трюки из HPC людей и использовать «модули '(т.е. слои симлинок или настройка PATH), чтобы сделать определенные пути и каталоги видны или не

в общем, Task View on Reproducible Research имеют некоторые дополнительные указатели. You может Документ в каждом исполнении запускает то, какие версии были использованы, а вы устанавливаете таким образом, чтобы версии можно было сравнить с ожидаемыми версиями.

Но все это не является подлинным для R - это все вопросы «Мета» для развертывания.

0

@Lev Кузнецов отправил еще одно решение, используя packrat, сослаться на его answer к более общему вопросу