私たちは小さなウェブソフトウェア会社です(〜10人)。現在、すべての開発者がローカルのApache(一部のWindows、一部のUbuntu)でローカルのApacheを使用しています。共有ファイル用のSamba共有と中央のSVNリポジトリがあります。
インフラを一元化して、みんなが中央のサーバーで作業できるようにしたいと思っています。 2つのオプションがあります。
どちらのソリューションも、高速ネットワークとファットサーバーが必要です。現時点では、リモートデスクトップアクセスとしてxrdpを使用する傾向があります。どんな経験がありますか?もう一方のアプローチに不利な点はありますか?私が見逃したオプションは?ソフトウェア開発チームの仮想化に成功した人はいますか?
あなたが説明した短所は、現代のITの世界では、実際にはありません。ハードウェアはかなり安価であり、仮想化が使用されたときに見られるROIは高くて迅速です。ソフトウェアの更新と管理は、シェフや人形を使用して簡単に管理できます。セキュリティの問題は、ターミナルマシン全体ではなく、単一のVMに限定されます。適切なソリューションを選択すると、セキュリティは更新レベルでベンダーによって処理されます。ところで、リポジトリへのアクセスを高速化するには、gitを使用します-開発者は、最初のショックを乗り越えたら、それに夢中になります。
ターミナルマシンを使用すると、リソース管理がかなり難しくなる可能性があります。VMを使用すると、リソースの割り当てが改善されるだけでなく、ハードウェアを改善する正当な理由も得られます。
私たちは3人の開発者がいて、リモートデスクトップを使用しています(ただし、開発中のWebサイトがRDを実際に使用していないため、EclipseまたはNotepad ++またはCodaで「リモートファイルブラウジング」を使用してコードを開発し、インターネット)。私はそれがうまく機能すると思います、そして同時更新の利点は素晴らしいです。私たちはチーム内のセキュリティにはそれほど関心がないので、その懸念について話すことはできません。 Apacheの再起動には2.5秒かかるので、誰が気にしますか?
編集そして、私はウィンドウを使用し、他の2つはMacを使用しています。それは誰にとっても素晴らしい働きをします。
すべての人に独自の仮想マシンを提供するアプローチは、共有システムよりもメモリの点ではるかに効率的ではありませんが、異なるApache構成を同時に実行することをはるかに容易にします。また、スケーラビリティの管理も簡単です。必要に応じて、VMを新しいハードウェアに移行できます。突然多くのスタッフを引き受けるとは思わないかもしれませんが、どちらのアプローチも、アプリでパフォーマンススケーラビリティテストを簡単に実行できないことを意味します(そのため、ユーザーを専用マシンに数日間移行できるのは、良いアイデア)。
「クラスター」を管理するための優れたツールがいくつかあります。そのほとんどは複数のデスクトップマシンの保守に適用されます。すでにUbuntuを実行しているため、 Canonical's Landscape は明らかな選択肢です。しかし、それが私なら、標準のビルドを使用して、ユーザーのホームディレクトリをVMの外のNFS共有に移動します。そして、/ etc/sudoersの巧妙な計画により、ユーザーは「自分の」マシンでrootアクセスを取得します。
NoMachine(NX) を試してください。無料の製品と商用ソリューションがあります。それは軽量、高速、かなり普遍的なクライアントアプリケーションのセットがあり、トランスポートとしてsshを使用します。必要に応じて、NoMachineを仮想システムと組み合わせて、異なるレベルの分離を行うこともできます。テキストモードで実行されているサーバーに対してNXを実行できます。 GUI要素がインストールされている限り、ユーザーはフルスクリーンのXセッションを取得します(これは複数のモニターにまたがることができます)。