2016-04-28 12 views
-2

私たちはLinuxのプロダクションサーバーと、スクリプトを実行してデータを収集してSparkデータレイクに入れるスクリプトを用意しています。本番環境で実行されているRスクリプトのベストプラクティスコーディング

私の背景はSQL Server/Fortranであり、非常に具体的なベストプラクティスがあります。

  • プロダクション環境では、バージョン管理の点で安定であるべきであり、その両方などビューのコードポイントだけでなく、インストールされたアプリケーション、オペレーティングシステムからのコード/アプリケーション/オペレーティングシステムへ
  • 変更が行われるべきです別の環境または制御された方法で行われ、がバックアウトされてになる可能性があります。
  • 第2の環境が存在する場合、システムの変更をテストするための並列実行の可能性が実行できます。
  • は(主に)、開発者はRコードの見直しでは、本番環境

を変更することが制限されている、私が質問を持っているものがいくつかあります。

  • library()、install.packages() - スクリプトを実行するたびに新しいバージョンのパッケージをインストールする可能性を除外したいと思いますか?
  • CRONジョブでスケジュールされたRパッケージを呼び出すにはどうすればよいですか?ここにはいくつかの選択肢があります。
  • RSeleniumを使用する場合、gui/webブラウザまたは仮想化されたWebブラウザを使用する最も効率的な方法は何ですか?
+0

あなたのRの質問は、まだ広すぎると漠然としているため、簡単に答えられないと私を驚かせます。この質問がうまくいく場合は、より具体的な詳細を提供する必要があると思います。 – joran

+1

最後の3つの箇条書きは、明確に別々の質問です。 – lmo

+0

'install.packages'を自由にコメントアウトしてください。 Rは、あなたが紛失した場合、あなたのチャグリンに利用可能なものを使用するか、エラーを生成します(あなたが明示的にそれを捕まえない限り)。 –

答えて

1

いずれにしても、私はパッケージを自動的に更新するという考え方に傷つきます。依存しているパッケージの保守担当者が、後方互換性のない変更を導入することを期待してください。自動更新すると、コードが青色から消えてしまいます。神聖な何かを仮定しないでください。

これまでの展開はどれほどの手間を要しているのでしょうか。手動で各展開を設定しても問題ない場合は、packratパッケージを使用して、使用している正確なバージョンのソースをプルダウンして保存することができます。展開を再現するこの方法は苦痛ですが、少なくとも可能です。完全に自動化された再現可能なデプロイメントが必要な場合は、パッケージでドッカーイメージを構築し、日付またはバージョンでタグ付けすることをお勧めします。

環境を再現するための規定がない場合は、問題を尋ねていますが、最初に互換性を修正するだけで問題は解決すると思われるかもしれませんが、実際には、それは間違っているが、そうである。最終的にコードベースが成長するにつれて、それはあなたが終わるすべてのものになるでしょう。

+0

あなたの有益な答えをありがとうが、さらに上記のコメントに、私はこの質問を削除し、うまくいけば批判的な検査を渡す3つの新しい質問を作成するつもりですので、あなたはこの新しい質問に答えを加えることができるでしょうか?それはアップですか?どうも。 –

+0

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

関連する問題