4

ミニマル/ボイラープレート プロフェッショナル PHP チーム開発環境について、一般的なコンセンサスを得たいと考えています。この情報は Web のどこにもありません。オープンソースの世界では、非常に多くの選択肢と方法がありますが、インフラストラクチャ/配管の側面に関する共通のベスト プラクティスをまだ見つけていません。

5 ~ 10 人の開発者/デザイナーのチームがいて、LAMP CRUD アプリを作成している小さなショップを考えてみましょう。開発、ステージング、本番ビルドを管理する必要があります。彼らは高品質のソフトウェアを求めており、物事を成し遂げようとしてお互いに足を踏み入れることはできません。展開は簡単かつ迅速である必要があります。場合によっては、修正プログラムが提供されることもあります。運用サーバーを以前のバージョンにロールバックするのも、同じくらい高速である必要があります。

考慮すべき事項は次のとおりです。

  • ソースコード管理 (SVN、git、Hg)

  • データベース スキーマ/データの継続的な統合。ソース コードのリビジョンに関連付けられています。これは私が特に興味を持っているものです。

  • 個々の開発環境 (たとえば、各開発者は開発環境の VMware インスタンスを使用して (DB サーバー、Web サーバー、コード、データなど) を調整します)

  • 集中開発、ステージング、本番ビルドの管理

  • 本番デプロイメント (例: tar ボール、.rpm/.deb)

  • 自動化されたテスト (例: SVN コミット フック、遅いテスト用の夜間の cron テスト)

  • チームのコミュニケーション (バグ追跡、内部文書、irc/im など)

これはコミュニティが編集できるように開いたままにしてあるので、自由に編集/追加してください. 理想的には、誰かがこのページにアクセスして、数時間後にチームが開発を開始するための基盤を整えることができます。

4

2 に答える 2

1

始めます。これを自由に編集して改善してください

これは、dundermifflin.com という架空の製品用です。

  1. 本番環境で使用する予定の同じソフトウェアを実行する開発用仮想マシンをセットアップします。たとえば、PostgreSQL、Apache、および PHP5 を使用した Ubuntu です。

  2. 各開発者は、ホスト名をユーザー名に設定して、この VM の独自のコピーを実行します (例: phpguy.dundermifflin.com)。

  3. 中央ステージング サーバーをセットアップします (開発用 VM と同じ)。staging.dundermifflin.com です。

  4. dundermifflin.com の新しいリポジトリを使用して、中央の Subversion サーバーをセットアップします。これは devel.dundermifflin.com です。

    • 4a. 「トランク」コミットのテストを実行するコミット後のフックを追加します
    • 4b. 「ステージング」とタグ付けされたコミットのためにステージング サーバーにパッケージ化/デプロイするポストコミット フックを追加します。
    • 4c。「リリース」とタグ付けされたコミットのために、実稼働サーバーにパッケージ化/デプロイするコミット後のフックを追加します

この方法は、データベースの継続的統合に対応していません。つまり、SVN を以前のリビジョンにロールバックすると、データベースが非常に静的でない限り、ビルドが中断されます。提案?

  1. バグの追跡には、中央の Subversion サーバー (devel.dundermifflin.com) で Bugzilla を使用してください。

  2. PHPUnit/SimpleTest テストを実行するためのシェル スクリプトを記述します (項目 4a で呼び出されます)。

于 2008-10-17T00:45:28.433 に答える
0

継続的インテグレーション、バージョン管理システムとのリンク、および自動化された単体テストについては、この記事が非常に興味深いと思います。

CruiseControl、Ant、PHPUnitを使用した継続的なビルド

于 2008-10-20T01:30:33.287 に答える