Web開発エコシステムのリエンジニアリングを検討しています。 Gitを非常にうまく使用して、本番サーバー、ステージングサーバー、開発サーバーに新しい変更をデプロイしています。従来、私は常にローカルマシンにApacheのコピーを持っていました。ローカルマシンをできるだけスリムに保つために、非ローカルでApacheを実行することを検討していますVM同期はどういうわけか変更されます。
私の最初の考えは、rsync
やcron
(Mac開発システム)のようなものを実行して、ファイルの変更についてディレクトリを監視し、それらを同期することでした。 Gitで別のブランチを使用し、Apacheサーバーに変更をプルさせるフックを作成したいと思っていますが、特に非常に実験的な追加では、すべての変更をバージョン管理すると非生産的である可能性があります。
私の質問は、このワークフローで考慮していないことはありますか?この特定のプロジェクトにはColdFusionが必要ですが、Apache/CFIDEをローカルに持たないことよりも大きなメリットを実感できますか?
サーバーがローカルであるか別のマシン上にあるかは実際には問題ではありません。重要なのは、コードへの変更を十分に速くテストできるかどうかです。たとえば、cronジョブがコードの変更をサーバーにプルするのを1分も待たなくてもかまいません。また、通常は、最初にコードへの変更をテストしてから、リポジトリにチェックインする必要があります。
したがって、別のマシンの場合、必要なのは、コードの変更をローカルマシンから開発サーバーに「オンデマンド」で転送するための迅速な可能性です。サーバーにログオンし、そこでいくつかのコマンドを実行する単純なシェルスクリプトは、ローカルボックスからシームレスに実行できます。このスクリプトがどのように見えるかは、主にネットワーク環境によって異なります。おそらく、いくつかのftp
コマンドだけが必要ですが、rsync
について言及したので、共有ファイルシステムを利用できると思います。
これが「十分に速く」なった場合は、環境で自分でテストする必要があります。また、おそらく最適化を行う必要があります(たとえば、数万のファイルを含む大規模なコードベースがある場合は、ネットワーク速度が要因になる可能性があります)。
開発サーバー上のバージョンをネットワーク共有としてエクスポートし、その方法で開発してみましたか?
私は逆の状況にあります。私は限られたストレージのワークステーションを持っていますが、うなり声がたくさんあります。ギガビットイーサネット上でほとんど問題なく/home
として使用するNFSエクスポートを備えたNAS)があります。すべてのWebファイルは、ほとんどのファイルとともにその共有上にあります。私のPC上の残りのサービスは使用しており、ギガビットバックボーンで非常に応答性が高いです。あなたの場合、すべてのサービスがファイルと同じローカルマシン上にあるため、アクセスする必要があるのはエディターだけであることに注意してください。ネットワーク全体のファイル。さらに優れたパフォーマンスが見られるはずです。
開発スタックにビルドステップが含まれるかどうかによって異なります。
含まれている場合は、「開発サーバーへのコピー」ステップを個人のビルド構成に追加する必要があります。ステップデバッグに大きく依存している場合は、開発環境がリモートデバッグをサポートしているかどうかを確認してください。
もう1つの解決策は、最初にソースファイルをリモートサーバーに保持し、そこで作業することです。サーバーにsshしてsshでコーディングするか(vi/emacsのような人なら、これはかなりうまくいきます)、サーバーに関連するディレクトリをローカルにマウントします。
ここで解決策を見てみましょう:
ビルド構成にデプロイコマンドを追加する
これは、開発目的では大したことではありません。これは、別のチームによるQAにのみ使用されます(QAチームが望ましいですが、プロジェクトにあまり精通していない別の開発者が役立ちます)。
ローカルファイルをWebサーバーが配置されているリモートの場所に同期する
これは機能する可能性がありますが、たとえばクイックフィックスをテストする場合、実際にデータを同期する(または定期的なチェック)のにかかる時間は、多くの不要な遅延/オーバーヘッドになります。
ローカルApacheを保持しますが、オン/オフにします
これはシステムの学習に役立つ可能性がありますが、それでも毎回のオーバーヘッドはパフォーマンスの向上よりも大きくなります。
私の提案:
共有フォルダで直接動作するようにワークステーションを設定する必要があります。これは、変更をWebサーバーフォルダーに直接保存することを意味します。オーバーヘッドは最小限であり、保存を押してからAlt + Tabキーを押して更新を押すまでに、ファイルはすでにWebサーバーに渡されているためほとんど気付かれません。ターミナルのように、開発にのみ必要な最小限のソフトウェアでコンピューターを維持します。