1

私たちの会社は、すべてのビジネスロジックなどを含むWebサイトの管理に非常に成功しています. ただし、ファイル システム上のシリアル化された PHP オブジェクトにコンテンツを格納するテンプレート システムを使用して現在提供されている静的コンテンツ ページも多数あります。

現在、「本物の」CMS の使用を検討していますが、通常の疑わしいものを多かれ少なかれ整理する要件がいくつかあります。最も重要な要件は、ホスティング環境です。

フェールオーバーのための「共有なし」アプローチを使用して、2 つの完全に独立したホスティング ロケーションがあります。どちらの場所にも、本社のオンサイトにあるマスター データベースのスレーブ () である個別の MySQL インスタンスがあります。両方の場所には、それぞれが完全な Web サイトを格納する特定の数の Web サーバーがあります (これもフェイルオーバー用です)。

このアーキテクチャから、2 つの可能なアプローチが自然に生まれます。 - 本社で管理され、ホスティング ロケーションにレプリケートされるデータベース ドリブン CMS (および、ファイル同期プロセスを使用してレプリケートされる画像など) - ファイル ドリブン CMS添付ファイルだけでなく、コンテンツ ファイルもファイル同期を使用して同期されます。

データベース駆動のアプローチはより柔軟に思えますが、「読み取り/書き込みデータベースでローカルに管理し、読み取り専用スレーブのみを使用してコンテンツを提供する」で機能する CMS を見つけることができませんでした。たとえば (Typo3) の通常の容疑者は、ログ記録とセッション管理のために書き込むデータベースを必要とするため、オプションではありません。他の CMS もこの問題を共有しているようです。

要するに、これを処理できる (PHP/MySQL-) CMS はありますか? 助言がありますか?

CMS が Zend Framework アプリケーションと簡単に統合できる場合 (またはその逆) は、追加のポイントです。

4

2 に答える 2

3

MySQL を強化する MySQL Performance Company である Percona を調べる必要があります。マスター/マスター/マスター環境を簡単にサポートし、自動インクリメント値をマスターごとに変更する必要なく簡単に実現できます。

という商品がありXtraDB Clusterます。これは無料の製品で、MySQL と同じように機能し、同じ方法でインストールしますが、DB レベルでクラスタリングを処理し、非常に優れた仕事をします。

DB を管理下に置いたら、サーバーの 1 つに CMS をインストールし、変更を加え、それを他のすべてのサーバーにコピーすると、環境全体でフェイルオーバーの準備が整います。

于 2012-07-24T17:33:48.897 に答える
2

あなたのコメントに追加された情報によると、静的コンテンツについて話しているようです。

既存のシステム

私が見る限り、静的コンテンツを展開できるシステムがすでに整っていて安定しています。その意味で、より複雑な状況を作ることは意味がありません。シンプルに保つことは、ほとんどの場合、ニーズに合っている場合に最も効果的です。

必要に応じて、データベース同期またはファイル同期を選択できます。

ファイル同期

すべてを完全に静的に送信できる場合、ファイル同期はうまく機能します。そこに問題がありますが。例: 最新のニュース項目のリストが必要な場合は、それを生成して同期する必要もあります。データベース同期を使用すると、SELECT * FROM news ORDER BY created_at DESC LIMIT 0,10 という単純なクエリを実行するだけで済みます。

同期アクションの量

もう 1 つのポイントは、実行する必要がある同期の量です。たとえば、バックエンドに 10 個のニュース項目がある画面があるとします。ライターは 3 つの投稿を作成し、それぞれの投稿の [公開] ボタンをクリックし始めました。基本的に、ファイル同期は最初の同期の後に同期を開始します。したがって、最初に同期し、次に新しいニュース項目を同期する必要があります。次に、最新のニュース項目のリストを更新してから、それを同期する必要があります。

彼らが非常にうまく編集を開始した場合、それはちょっと悪いことかもしれません. これは、たとえばタイトルの変更でも行う必要があるためです。

データベース ソリューション

これは、データベースが得意とするところです。レコードを更新するだけでそこに到達します。最新のニュース セクションは、新しいレコードが利用可能になると自動的に更新されます。

関連する静的コンテンツの問題

ここで 1 つの問題があります: プロセスが 2 つのステップで行われることを確認する必要があります: 1. 画像とその他の静的コンテンツを同期する 2. ニュース項目を同期および/または公開する

そうしないと、壊れた画像が表示されます。これは、たとえば次のように行うことができます: 新しいイメージの同期が直接開始されることを確認します。そのため、CMSにアップロードされたとき。その後、ニュース項目が公開される前に表示されます。ニーズに基づいてそれを確認できます。

代替案

これは静的コンテンツであるため、もう少しうまく処理できる可能性があります。それにはスタックに新しいテクノロジーが必要になるため、最初にそれが本当に必要かどうかを確認してください。ニュース アイテムはワークフローです。そのため、隣り合ったステップがあります。一般に、ワークフローではキューを使用できます。そのため、新しいニュース アイテムのキュー、公開用のキュー、静的アイテムの同期用のキューなどを作成します。

キューは、キャッシング システムと非常にうまく連携します。そして、見直すべき非常に興味深い部分があると思います。現在、コンテンツを利用可能にして同期できる強力なキャッシュ システムが利用可能です。それらは、同じコンテンツを提供するサーバーが多数あるという事実に基づいています。これらは、作業を完了するための非常に安定したシンプルなソリューションになる可能性があります。しかし、前述のように、それらがまだない場合は、スタックに新しい複雑さを追加するかどうかを検討してください。

于 2012-07-25T07:51:41.877 に答える