私の会社ではCMSを開発しましたが、現在は問題を抱えています。すべての変更は実際の環境に直接関連しています。サイトの大幅な見直しを行う場合は、すべての作業を最初に行い、すべての変更をライブサイトに一度に公開したい場合があります。CMSのステージング環境のアーキテクチャ
ソフトウェア
を開発するため、私は今内容について話している、いない開発/テスト/ステージング/本番環境私はこの問題を解決するためにいくつかのオプションを見てきましたが、どれもこの問題を完全に解決することはできません。
- バージョン管理を使用します。バージョンxは本番環境で実行中です。yはステージング中です。
- ドラフト/パブリッシュフラグを使用:すべてのドラフトコンテンツはライブサイトから隔離されています。
- ステージング環境用とライブ用の2つのデータベースを使用します。
それらのすべてが問題を抱えて:(?生産のヌル版)
- バージョンが新しく作成されたページの問題があり、ページのサイトマップの変更を(私たちはそのためのネストされたセットを使用)。
- 下書きの場合、すでに公開されているページの2番目のバージョンを作成することはできません。あなたは二つの場所の間で異なるようにしたくないすべてのデータを同期する/コピーする必要が第二のデータベースと
- :ユーザー、ユーザーグループ、アクセス権など
があり、他のオプションはありますか?好ましくは、ユーザーレバーでこれを行いたいので、ユーザーAは大きなオーバーホールを開始でき、ユーザーBは引き続き新しいコンテンツを公開することができます。しかしおそらくこれは今のところ難しすぎるので、今は最初の問題を解決するだけです。
PS。それはMySQLのバックエンドを持つPHP、ZFアプリですが、それは私が思うアーキテクチャの問題ではありません。