Wildberriesオンラインストア:モニターの反対側で何が起こっているのか

今日、私たちは人間の活動のまったく異なる方向の舞台裏を紹介し、そのようなサーバーが毎秒数千のトランザクションでテストされ、ソフトウェアまたはハードウェアの障害のコストが高すぎる可能性があるような複雑なシステムの詳細を検討することにしました。 ですから、今日はロシア最大のオンライン衣料品店Wildberries



オンラインストアはどのように機能しますか? それを明確にするために、プロセスを主要な段階に分け、それらを考慮し、何が起こっているのかについての全体像を描くことを提案します。





写真上:Wildberriesオンラインストアウェアハウス



そのため、最初に、どの製品が店舗の品揃えを補充するかを決定する必要があります。次に、選択された製品に関する必要な情報(組成、機器、価格など)をサプライヤーに求めます。 次に、一次価格の監視が実行され、製品に関するすべての必要な情報がシステムに入力されます。 サプライヤとの注文を調整し、必要なすべての文書をサプライヤから受け取った後、マネージャは商品の出荷に同意します。



サプライヤーが商品を倉庫に配送した後、第2段階が開始されます。 現在、倉庫作業員は、システムで設定されたポジションで新しいバッチのコンプライアンスをチェックし、工場の欠陥について商品をチェックし、商品を再梱包し、内部バーコードを貼り付けています。 欠陥検出、受け取った商品とシステム内の情報の不一致、または配送の要件の場合、商品は倉庫に受け入れられません。 このようにして、店は低品質の商品の購入から顧客を保護し、いわゆる「間違った投資」の数を減らします。 その後、新しく作られた倉庫ユニットが測定され(衣料品店について話していることを忘れないでください)、写真家がモデルで写真を撮り、勤勉なコピーライターがサイトに付随するテキストを書き込みます。



クライアントが製品ページにアクセスするメカニズムについては掘り下げません。 ある程度まで、彼は準備されたオンラインストアに来ることは明らかです。おそらく、彼は特定のものを探しているか、広告リンクに興味を持ち始めたのでしょう。 システムが顧客の行動にどのように反応するか、つまり、ユーザーがすでにサイトに到着したときに何が起こるかを見るのは、はるかに興味深いです。 クライアントがサイトに留まる度合いを決定する最も重要な要因の1つは、検索アンケートの処理速度であることがわかっています。 指定されたフィルター(青いドレス、サイズS、膝丈)に従って結果が10〜15秒である場合、退屈したクライアントはタブを閉じ、クライアントは自動的にクライアントではなくなります。 ところで、ロシアでは平均して、ユーザーアクションに対するサイトの応答時間は4秒以上ですが、Wildberriesはこの時間を2秒に短縮することができました。 これを実現するために、システムはnginxを使用したプロキシを使用します。1つの外部IPアドレスの後ろに、Dell PowerEdge R620サーバーにインストールされたVMWareプラットフォームに基づいた複数のnginxサーバーがあります。 その背後には、Webサーバーが直接配置されています。 さらに、最も頻繁に要求されるデータはサーバーのキャッシュに保存され、ほぼ瞬時に発行されます。 クラスタリングにより、Webサーバーのフォールトトレランスが確保されます。少なくとも2台のサーバーが相互に完全に複製され、マスターモードで動作します。 これらは、SSDおよびSASドライブとのハイブリッドモードで動作するDell EqualLogic PS共有ストレージに接続されています。 このアプローチにより、サーバーの負荷が非常に高いにもかかわらず、高い応答結果を得ることができました。1日以内に「外部境界」を通過した処理済みリクエストの数-現金-は75万から150万まで変化します。 はい、これは非常に複雑なハードウェア基板であり、シンプルで直感的なインターフェイスを使用して、数秒でこの製品またはその製品を見つけることができます。



顧客が選択を決定し、注文を確認すると、次の段階が始まります。 特定のケースでは、確認はSMSを介して行われますが、ほとんどの場合、オペレーターはクライアントにコールバックします。 ところで、重要なポイント:システムは、クライアントが注文をしたが、まだ確認を受け取っていないときでも、商品の自動予約を提供します。 それは、大量の販売では、オペレーターが顧客に電話をかけている間に、その瞬間であっても商品を鼻の下から取り出すことができるからです。



店の従業員にとって、この段階はそれほど速くて簡単ではありません。なぜなら、処理と注文の作業は外部から見たほど単純ではないからです。 最初に、顧客のアプリケーションは倉庫に移動します。これに基づいて、いわゆるアセンブリシートが形成され、それに応じて倉庫作業員が必要な商品を収集します。 Wildberriesの商品が保管される倉庫はゾーンに分割されます。たとえば、ある場所には靴があり、別の場所にはハンガーに掛かっているもの、3番目にはリネンなどがあります。 アセンブリシートは特定の注文に関連付けられていませんが、従業員のかなり大きな倉庫敷地内での移動を最小限に抑え、時間を節約できるように構成されています。 このアルゴリズムは、システムによって自動的に生成されます。 ちなみに、最適なルートだけでなく、倉庫作業員が一度に持ち帰ることができるものの数も考慮します(靴下20足と靴20足は同じではありません)。



集められたものは注文の形成場所に運ばれ、そこには数十個のセルが付いた数十の棚があります(冗談で防波堤とも呼ばれます)。 従業員は商品のバーコードをスキャンし、システムは彼またはこの注文が収集されるラックとセルの番号を提供します。 ラック全体が完全に満たされた後、それらは取り除かれます。商品は、異なる都市に輸送される機械に分類されます。 その後、宅配便業者が注文を受け取り、合意した時間に買い手に渡します。



したがって、単一のオンラインストアITシステムは、Linuxに実装されたフロントエンドとWindowsのバックエンドを組み合わせます。 開発者とシステム管理者の大規模なスタッフがシステムをサポートおよび開発するためにここで働いており、プロジェクトのコンピューターパークは非常に多様です。 重い作業負荷を必要としない場所(たとえば、いくつかのロジスティクスタスクを実行するため、またはコールセンター)に、Wyseターミナルがインストールされます。 品物を受け取って注文を収集する場所(これらはインターフェースの速度と応答性を必要とするアクションです)に、パーソナルコンピューターがインストールされます。 サイトの製品の写真を処理する従業員は、個別のグラフィックスと大量のRAMを搭載したPCを持っています。



プロジェクトの情報ベース全体-倉庫、コールセンター、店舗、ERPシステム(これは約20 TBの絶えず変化するデータです)は、M620ブレードサーバーを使用して管理されます。 これらはM1000eシャーシに取り付けられており、現在までに4つがすでに関与しています。







仮想化を使用すると、1つまたは複数のブレードサーバーに障害または障害が発生した場合のデータ損失のリスクが回避されます。現在の負荷は、障害のある要素が交換されるまで他のサーバーに均等に分散されます。 すべての重要なノードが複製され、設計時に最初に特定の電力マージンが設定されます。 ところで、Wildberriesは2つのデータセンターで一度にラックをレンタルします。これにより、データセンターの1つでの事故、変電所での事故、またはその他の技術的災害が発生した場合でもサイトにアクセスできます。 最大のインターネットプロバイダーおよびトラフィック交換ポイント(MSK-IXなど)との直接ネットワーク接続により、ユーザー要求の大部分は、会社のサーバーに到達する前に最小数のネットワークノードを通過します。



デルを支持する選択は偶然ではありませんでした。 多くのベンダーの機器は、Wildberriesの従業員が総合テストと非クリティカルサービスを使用してテストされました。ファイナリストの決定は店舗フロアで「戦闘」モードで行われ、技術的特徴と技術サポートとサポートのレベルの組み合わせに応じて選択されました。 。 Zabbixの高度な機能を使用して、機器のパフォーマンスがリアルタイムで監視されることを追加する価値があります。 重要なノードのすべてのパラメーターはモニターに表示されます(ちなみに、6つあります!) 現在の動作パラメータは、サーバー、ディスクラック、無停電電源装置、ネットワークデバイス、通信チャネルなど、企業のすべてのデバイスから、セントラルオフィスだけでなく地域でも絶対に記録されます。 さらに、会社のすべての専門家は、独自の固定責任範囲を持ち、標準から外れた指標がある場合は、電子メール、SMS、およびSkypeによる通知が自動的に送信されます。







しかし、Wildberriesの従業員は、最も重要な主要リソースはサーバーではなく、ビジネスに根ざした専門家の緊密なチームであることを密かに認めました。 それを聞いてうれしい!



PS電子商取引の分野で活動する組織向けのデル製機器の機能について詳しく知りたい場合は、お気軽にMarat Rakayevにお問い合わせください 。 当社の専門家が、ほぼすべての問題の解決を支援します。



All Articles