私の (非常に小さな) 会社に、継続的インテグレーションを実行するためのコンピューターを購入することを提案する予定です。彼らが「はい」と答えた場合、実際にマシンを購入する作業はおそらく私にかかってくるので、私の質問は次のとおりです。
非常に小規模 (3 人) の PHP チームの継続的インテグレーションに使用されるコンピューターに何を求めますか?
どの「もの」(メモリ、プロセッサなど) が重要で、どれが重要でないか?
私の (非常に小さな) 会社に、継続的インテグレーションを実行するためのコンピューターを購入することを提案する予定です。彼らが「はい」と答えた場合、実際にマシンを購入する作業はおそらく私にかかってくるので、私の質問は次のとおりです。
非常に小規模 (3 人) の PHP チームの継続的インテグレーションに使用されるコンピューターに何を求めますか?
どの「もの」(メモリ、プロセッサなど) が重要で、どれが重要でないか?
それほど強力なマシンは必要ありません。テストやその他のメトリクスを実行している場合、おそらく処理能力が主な関心事ですが、実際には古い pentium 1 で実行でき、おそらく動作するでしょう。
制約が動作環境になります。LAMP を実行している場合は、LAMP のセットアップを適切に処理できるマシンを使用する必要があります。これは、かなり最新の *nix マシンです。
横に置いていた古い Pentium4 ワークステーションで .NET の継続的インテグレーションをセットアップしたところ、問題なく処理されました。
ビルドでコードをアーカイブする場合は、ストレージ容量に注意してください。
Maven、Continuum、Clearcaseを使用し、1 時間ごとにビルドしていたときに、ストレージが問題になりました。スナップショット ビューは、各ビルド後に残されていました。
十分に強力なボックス (Sun Fire V490) があり、それを開発統合環境とArchivaリポジトリーに使用しました。そのため、パフォーマンスとメモリに関して実際に問題が発生したことはありません。実際、PermGen メモリで問題が発生したのは、Maven サイト ターゲットをビルドするときだけでした。これは、-XX:MaxPermSize=128m を使用することを意味していました。
今日購入できるほとんどすべての新しいマシンは、大きすぎないソースツリーで継続的インテグレーションのタスクを処理できます。探すべきいくつかの事柄:
私の経験から、これは強力なマシンである必要はありません。開発に使用するすべてのマシンで十分です。明らかに、コードのコミットに対して単体テストを実行している場合、マシンが高速であるほど、応答も高速になります。私たちの CI サーバーは、XP SP2、3G プロセッサ、3G の RAM を実行していますが、現在のニーズに対して非常に強力です。そうは言っても、コミット後 6 分以内に、ビルドがクリーンですべてのテストに合格したかどうかを知らせる電子メールを受け取るのは良いことです。ナイトリー ビルドを行う場合、おそらくそれらを完了するためにより多くの時間があるため、仕様はおそらくさらに低下する可能性があります。ハード ドライブの容量 (最近では 300G が適度に達成可能です) は、レポートの保存やリグレッションへのビルドには適していますが、NAS を使用している場合は、ビルド後にアーティファクトをプッシュすることができます。
RAM: CI ツール ( phpUnderControl ?) と、ビルドとテストに必要なサポート ソフトウェアを実行するのに十分です。
ストレージ: マシンに保持する古いビルドの数を決定します。私の経験では、特に多くを保持することは役に立ちません。古いビルドにロールバックするための正式なプロセスが多くない小さなチームの場合。
CPU: 問題なし。購入できるどのマシンでも動作します。
そのため、私はストレージ容量よりも RAM を好む傾向にあります。
ここで多くの人が理解していることの 1 つは、マシンは CI ソフトウェアほど重要ではないということです。マシンが重要になるのは、異なるアーキテクチャが必要な場合だけです。それ以外の場合は、ターゲット環境に一致するマシンを入手してください。サーバー アプリを構築している場合、アプリはおそらく 64 ビット サーバー上で実行されるため、64 ビット プロセッサを入手するのが賢明かもしれません。
CIに使用しているツールについてもっと気にします。ここにいる人々が指摘しているように、古いビルドを利用できるようにする必要がない限り、古いビルドを保持するべきではありません。もしそうなら、ビルドと結果を別のサーバーにアップロードできるものを探します。
アプリが巨大でない限り、約 4 ギガの RAM とおそらく 2 つの適度に高速な SATA ディスクが RAID 0 に設定されたデュアル コア ボックスを取得します。500 ギガでしょうか。
本当に安全に使用したい場合は、OS パーティション用に RAID 0 用に 2 台の 70 ギグ ドライブを入手し、次にデータ用に RAID 5 で 3 台の 140+ ギガ ドライブを入手してください。
マシンのパフォーマンスはほとんど問題ではありませんが、使い始めて、ある日魔法の煙が消えてしまうと、作業を続けるためにすぐに交換する必要があるため、可用性には十分注意してください。適切なバックアップ ポリシーを定義し、必要に応じて新しい同一システムをセットアップする方法を知っていることを確認してください。たとえば、別のマシンにイメージできる小さなパーティションから実行し、データの主要部分が RAID1 上にあり、少なくとも 1 台のドライブが機能している場合 (他の場所で利用できるバックアップがある場合)、データの主要部分を物理的に移動できます。ネットワーク上でも)。