2010-12-01 18 views
3

開発パイプラインにステージングサーバーとバージョンコントロールを追加します。私たちのサイトは、PHP、MySQL、Apacheを備えたリモートLinuxサーバー上で動作する複雑なWebアプリケーションです。私たちはオフィスのLAN上にSubversionをセットアップし、Dreamweaver CS5で動作させました。私たちの開発マシンはWindowsを実行します。Subversionを使用してステージングおよびライブサーバーにプッシュ

質問は、このセットアップにステージングサーバーを最適に追加する方法です。私たちは小規模なチームで3人の開発者なので、堅牢で複雑なソリューションは必要ありません。私が理解できないことは、Subversionリポジトリ(開発者のマシンの1つにある)からステージングサーバまたはライブサーバへの変更をどのようにプッシュするかです。

  1. 私はこれについてフックを書いている人についてたくさん読んでいますが、それはステージングサーバーとライブサーバーにSubversionをインストールする必要があるということですか?私はむしろこれをしないだろう。

  2. 開発者がSubversionにコミットすると、ファイルを自動的にステージングサーバーにアップロードしたいと考えています。これはどうすればできますか?

  3. 次にステージングサーバーからライブサーバーにファイルをアップロードするための自動化プロセスが必要です。これは私が本当に理解していない部分です。特に私はLiveにSubversionをインストールしたくないからです。これは一般的にどのように行われますか?

  4. ステージングサーバーのすべてのファイルがライブにプッシュされていますか?あるいは、前回のプッシュ以来変更されたものだけをプッシュする方法はありますか?

  5. Windows XAMPPを使用してステージングサーバーをセットアップしたいと考えていましたが、LiveサーバーはLinuxであり、サイトコードの中にはLinux固有のファイルパスがあり、Windowsでは動作しないようです。この問題はどのように対処していますか?新しいLinuxステージングサーバーを作成する唯一のソリューションですか?私はむしろそれを避けたい。

  6. 私たちのサイトでは、ユーザーはサイトルートの外にある別のフォルダに保存されている画像をアップロードできます。 Windows XAMPPはセットアップなどで動作しますか?私たちの最大の課題は、同じコードがLinux/Windows上で動作することを確認することです。気をつけるべきことは何ですか?これは理論上でも可能ですか?

ありがとうございます!

+0

1つの質問が多すぎます。あなたは範囲を少し減らすことができますか? – RedFilter

答えて

0
  1. 必須ではありません。フックは、バージョンコントロールサーバー上で実行できます。フックは、ステージングサーバーにビルドをプッシュできる必要があります。

  2. フックはこれらの機能を提供することができますが、なぜそれをバージョンコントロールから分離しないのですか。

  3. 自動アップロードとは、ビルドをいつプッシュするかを制御できないことを意味します。ほとんどの場合、開発中の中間ビルドは壊れています。私はあなたのワークフローにBuildBotのような "continuos integration tool"を含めることをお勧めします。これは、壊れたビルドとビルドヘルスの現在のステータスを報告する仕事を行います。必要に応じて、常にこの機能を使用して、適切なビルドをステージングサーバーに自動的にアップロードすることができます。

  4. ステージングは​​、QA環境で複製が困難な完全なライブ環境でビルドをテストするために使用されます。ステージングのビルドは、バグであると判明した場合、ライブ環境にプッシュされないことがあります。

  5. XAMPPはウィンドウで動作します。 googleでそれをチェックしてください。ただし、ステージング環境とライブ環境は完全に同じである必要があります。ステージング環境とは、ステージング環境を意味します。

  6. 理論上、動作するはずです。特定の機能をテストする必要があります。

0

質問1と2については、あなたのステージングサーバーに最新バージョンをコピーするサブバージョンリポジトリ(Webサーバー上にある必要はありません)にポストコミットフックを使用します。

Re 3)これは悪い考えです。デプロイをプロダクションに自動化しないでください。あなたがこれを行うと、悪いコミットがサイトをダウンさせる可能性があります。

4,5,6は実際には異なる質問であり、別途質問する必要があります。

関連する問題