0

現在、Magento を搭載した 1 台のサーバーを所有しているクライアントがいてadmin、更新のためにサイト全体を数時間ダウンさせています。彼がどのように設定すべきかについて新しい解決策を提案したかったので、私はそれを即座に処理したいと思います。

  • Magento 本番サーバー 1 (WEB+DB)
  • Magento 本番サーバー 2 (WEB+DB)
  • マジェント開発サーバー 1

DBはこれらの2つのサーバー間で何らかの方法で同期する必要があり(クラスター?レプリケーション?)、可能な限りダウンタイムを最小限に抑えるために、最初にDev Server(アップグレードの直前に本番サーバーからDB / WEBを同期)で更新をテストする必要があると考えていました。それが正常に動作することを確認し、プロセスがどのように見えるかを知ることで、サーバー 1 のみに対して LoadBalancing または RoundRobin DNS を無効にしてから、サーバー 2 でアップグレード/更新を行い、次に運用サーバーとしてサーバー 2 に切り替え、サーバー 1 を更新します。オン LoadBalancing/ラウンド ロビン オン。

私はWindows環境から来たので、これはWindowsで行う方法です(おそらく別のデータベースとWebでも)、RedGate SqlCompare/Sql Data Compareなどのツールを使用すると動作するはずです。

しかし、私はMagentoをまったく知らないので、クライアントが自分のショップをダウンさせたくない場合に何が可能で、どうすればよいか教えてください...

4

2 に答える 2

1

運用サーバーと、何らかのステージング/バージョン管理システムが必要になることは間違いありません。バージョン管理には Subversion または Git をチェックすることをお勧めします。変更は、最初にリポジトリにコミットしてから、ダウンタイムなしでライブ サイトに更新できます。開発環境としてはこれで十分です。

Magento のバージョン アップグレードなどの大きな変更の場合、これははるかに大きなプロセスであるため、夜中に数時間サイトを停止する必要がある場合があります。

複数のサーバーについては、例として、プライマリ サーバーとセカンダリ サーバーの間でバランスを取るロード バランサーを実行します。別個のデータベース サーバーが 1 つあります。変更は開発サーバーに加えられ、Subversion を使用してプライマリ サーバーにコミットされます。その後、プライマリ サーバーとセカンダリ サーバーの間の変更は、60 秒ごとにセカンダリ サーバーに再同期されます。

このソリューションでは、セッション データとキャッシュ データがデータベースに格納されます。

于 2012-06-07T01:17:49.997 に答える
1

私見、優れたホスティング環境があれば、文字通り何千もの同時訪問者でない限り、複数のサーバーは必要ありません. プラグインは、管理関連の問題の通常の原因です。

私たちは「クラウド」環境で大きな成功を収めてきました。新しいクラウド インスタンスをインスタンス化し、その IP を取得してから、「hosts」ファイルで dev.yourdomain.com などをテスト用に指定します。唯一の実際のダウンタイムは、データベースが新しいバージョンに変換される間、運用サイトをフリーズする必要があることです。これには数時間かかる場合があります。mySql DB のバックアップは 3 GB 程度ですが、ありがたいことに tgz は 280 MB まで減少しています。

nginx と php-fpm を使用していますが、非常に高速です。

私の典型的な移行パス:

  1. バックアップ本番サイト
  2. 新しいクラウド インスタンスを開始し、運用サイトを開発サイトにコピーする (運用データベースを復元する)
  3. 一度に 1 ステップずつ開発サイトをアップグレードして、何が壊れているかを確認してください
  4. 新しいクラウド インスタンスを開始し、最新の magento バージョンを完全に新規インストールします
  5. 動作したら、本番データベースを復元し、変換を行うのを見て、何が壊れているかを確認します
  6. アップグレードと新規インストールのどちらかを選択
  7. 実稼働の mySql をバックアップし、開発サイトがデータベースを変換している間、実稼働サイトをメンテナンス モードにします。
  8. ドメインを新しい IP アドレスに向ける
于 2012-06-07T18:12:26.893 に答える