web-dev-qa-db-ja.com

開発環境から製品に変更をプッシュする方法

10人の開発者からなる私たちのチームは、大規模なサイトにDev、Test、Staging、およびProduction環境を使用したいと考えています。 変更を1つのサイトから別のサイトにプッシュすることを合理化して、可能な限り同一に保つにはどうすればよいですか?

この質問と テスト環境から本番環境に移行する方法? の違いは、環境があまり変わらないように、変更を自動的/定期的にプッシュすることです。

私たちはここ数年、開発と本番環境を使用しており、各環境には独自のSVNコードリポジトリがあります。機能モジュールはいくつかの場所で使用されていますが、ブロックやコンテンツでは機能しません。

Drushを使用し、archive-dumpとarchive-restoreを使用して環境間の変更をプッシュするという提案がありましたが、Productionには訪問者とユーザーが提供するコンテンツがあり、Productionにプッシュするとそのコンテンツが消去されます。

誰かがこの質問に以前に回答しましたか?

5

私は カスタムスクリプト を使用して、プロダクションをバックアップサーバーと更新サーバーに自動的にプルします(更新サーバーは、pm-updateを介して適用された更新を備えた、プロダクションのサニタイズクローンであり、待機してテストの準備ができています)。あなたはそれを見ていくつかのアイデアを得るかもしれません。ただし、prodをdevに、またはdevをprodに自動的に同期することは悪い考えだと思います。本番環境に公開するのは、公開したいリリースを人間がテストして検証した後のみです。開発者の更新への製品の自動化に関しては、開発者がそれを非常に煩わしく思うだろうと私は思います。

簡単にできることの1つは、ステージングサーバーの更新を自動化することです。データベースを本番環境からプルダウンし、リポジトリのdevブランチから最新のコードをプルアップして、updatedbとテストスイートを実行するだけです。その後、人間は結果を検証し、準備ができていればコードを本番環境に公開できます。

3
greg_1_anderson

FeaturesContextBoxesDeploy および [〜#〜] uuid [〜#〜] コンテンツ用。

可能な限り、カスタムモジュールのコード、CToolsエクスポート可能ファイル、および更新フックを使用してください。

2
Yuriy Babenko

私は先日、似たようなものを調査していました。ただし、これは、リモートリポジトリからローカルの開発環境に最新のコードを定期的にプルダウンする自動方法でした。 IIRCには、いくつかのdrushスクリプトが含まれていました。ちょっと待ってください。もう一度見つけることができます。

0
EddieN120

パンテオン( https://www.getpantheon.com/ )は、このワークフローを管理するのに優れています。私はこれまでgit + features +スクリプトで自分で処理していましたが、それ以上に面倒でした。私はパンテオンを使い始め、私の生活をとても簡単にしました。個人的には、ワークフローやサーバーなどを心配するのではなく、ウェブサイトの構築に時間を費やしたいと思っています。ただし、開発、テスト、ライブの3つの環境しかないため、4つの環境が必要な場合は機能しない可能性があります。彼らは無料のティアを持っているので、それを試してみることができます。

0
Steven