「Amazon対抗馬」とも呼ばれているShopifyの効率的なシステム移行する方法は? – GIGAZINE

1 min read



手軽に来たランショップを開設することができる “Shopify“は、Amazonに勝つことができる”真のプラットフォーム」と指摘されるほど多様性に満ちたエコシステムを持っています。 そんなShopifyが新しいシステムに移行して、各オンラインショップのホームページである「ドア」の応答速度を4〜6倍スピードアップすることに成功したと報告し、その移行過程をShopifyのエンジニアであるマキシムベールラングクールさんが公開しています。

Shopifyが再作成に店の応答時間を短縮した方法 – Shopify Engineering
https://engineering.shopify.com/blogs/engineering/how-shopify-reduced-storefront-response-times-rewrite

Shopifyためドアの応答時間をミリ秒単位で短縮することは重要な課題であるとのこと。 応答が遅れるSEOなど悪影響を及ぼすだけでなく、売上高の減少につながる可能性もあります。 15年前に開発されたドアの実装は、ドア以外のサービスを実行するRuby on Railsシステムに同居していたが、Shopifyのドアは、他のサービスに比べて性能要件がはるかに厳しく、他のサービスと同じシステムを使用するには、特性上の差が大きいことを示してナトスプニダグァVaillancourt氏は述べています。


だからShopifyは、既存のシステムでは、チェックアウト、管理、APIトラフィックの処理に集中させてドアのトラフィックは、最初から設計した新たな実装で処理さ。 新しい実装では、読み取り専用の複製サーバを含む書くプライマリサーバの負荷を軽減。 また、開発者が使用できるデバッグツールは、簡単なオンボードの設定、文書などの整備や、セール時急激なアクセス増加に耐えることができ、高負荷時にシステムを復旧する能力と容量の向上に努力しておりこと。


新しい実装を導入する前に、新しい実装が既存の実装のように動作することを確認する必要があります。 だから、すべての実装の出力を比較することができるメカニズムを構築したもの。 検証は、運用環境のトラフィックを使用して実行され、クライアントの要求を取るによると、NGINXカスタムルーティングモジュールを中継し、新しい実装と既存の実装にそれぞれの要求を送信しました。


要求の前の環境での応答は、ユーザー定義のルーティングモジュールに中継され、新しい環境に転送されます。 新しい環境での検証メカニズムは、受信した旧環境の応答と新しい環境の応答を比較して、検証結果に応じて正または負の値を応答すること。


新しい環境の検証が十分に行われると、新しい実装を使用してドアをレンダリングテストを実施したVaillancourtた。 クライアントからの要求だけ確認時のように、すべての実装に送信されますレンダリングテストでは、ルーティングモジュールは、その要求のようリクエストの最後の検証結果に基づいて、要求先を決定すること。


つまり、検証アルゴリズムの結果が良い種類の要求は、新しい実装に送信されます……


そうでない要求は、従来の実装に送信されます。 検証結果をもとに、新しい実装の改善を重ねていくことで、検証を行いながら、既存の実装では、新しい実装で徐々に切り替えることができるということです。


新しい実装では、SQLクエリとメモリの割り当てを最適化してパフォーマンスの向上が行われており、新しい実装によって提供される要求の平均サーバー応答時間は、従来の実装よりも4倍で6倍速くなっにもの。 また、新しい実装がレンダリングに失敗した場合は、既存の実装に置き換えされるので、安全性も考慮されています。

Shopifyはドアの実装を置き換える過程で多くのことを学んだということ。 「私たちは、将来のために可能な優れた開発者の経験を提供しながら、ますますシステムを高速化する方法を模索しています」とVaillancourt氏はコメントしています。

この記事のタイトルとURLをコピー

Nakama Shizuka

"フリーランスの学生。微妙に魅力的な料理の達人。トータルベーコンの先駆者。旅行の第一人者。自慢のオーガナイザー。"

You May Also Like

More From Author

+ There are no comments

Add yours