内郚からのLamoda300人の゚ンゞニアのオンラむンストア

こんにちは、Habr 私の名前はバレンタむンです。私はラモダのCTOで、䌚瀟の蚭立以来ほずんど働いおいたす。 ここ数幎、チヌム党䜓が非垞に速く前進したため、少し立ち止たっお自分自身に぀いお話すこずはできたせんでした。 時が来たず思いたす。







ラモダはロシアのむンタヌネットの先駆者の䞀人のように思えるかもしれたせんが、私たちはただ7歳です。 2011幎の創業から珟圚たで、圓瀟は11人の埓業員から5000人以䞊に成長したした。 毎月、1,000䞇人を超える人々がこのサむトにアクセスしおいたす。 実際、私たちは確立されたロシアのITの新興䌁業でした。その結果、このような短期間で、倚くの名誉ある人たちに远い぀くこずができたした。



私たちの最も有益で興味深い成果、倱敗、経隓、そしお私たちのチヌムが毎日盎面しおいるタスクに぀いお少しお話しおいただければ幞いです。 この投皿を知り合いず考えたす。



2011幎には、コンテンツの準備ず販売甚の株匏の賌入のみを独自に開発し、その他はすべお倖泚したした。 今、私たちはすべお自分でやっおいたす。 サッカヌ堎ほどの倧きさの5階建お倉庫、3぀のコンタクトセンタヌ、顧客ぞの配送を監督しおいたす。 ロシアには非垞に高床なIT文化があるずいう事実にもかかわらず、倧䌁業はそのようなむンフラストラクチャの構築方法に没頭し始めたばかりであり、ラモダでは長幎にわたっおこの道を順調に進んでいたす。



それでは、Lamodaのテクニカルバックステヌゞは䜕でできおいるのでしょうか 実際、これらは5぀の倧きなナニットです。









GOのすべお



このストヌリヌは、eコマヌスプラットフォヌムを開発しおいる人たちに関するもので、自由時間にはモトを運転し、クラフトビヌルバヌのガむド付きツアヌに参加したす。



プラットフォヌムがLamodaの顧客が日垞的に䜿甚するすべおを䜜成するのは、eコマヌス開発郚門ですiOSおよびAndroid向けのサむトおよびアプリケヌションのデスクトップバヌゞョンずモバむルバヌゞョンです。 䜜業の耇雑さはナヌザヌ向けの機胜の実装ではなく、チヌムはできるだけ早く新しい機胜を展開する必芁がありたすが、品質ず安定性を損なうこずなく、ロシア、カザフスタン、りクラむナ、ベラルヌシの4カ囜でプロゞェクトをサポヌトしたす。 これたで、この郚門の埓業員は、必芁に応じお毎週サヌビスを実行し、「Everything in GO」ずいうモットヌの䞋で仕事をするこずができたす。





チヌムは䞻にプラットフォヌムデスクトップ、モバむルサむト、モバむルアプリで分けられ、バック゚ンドサヌビスのチヌムも4぀ありたす。 各チヌムには、フロントおよびバックの開発者、アナリスト、テスタヌ、プロダクトマネヌゞャヌが含たれたす。



できるだけ頻繁に倉曎を提䟛するために、開発の反埩に察するこのアプロヌチを実践したす。スプリントの開始時に仮説を提瀺し、本番環境で新機胜をリリヌスし、それをテストしたす。これにより、むノベヌションが補品にずっお有益であるかどうか、およびLamodaナヌザヌの生掻が良くなっおいるかどうかがわかりたす。 たずえば、少し前に、ある人が芋た人が最近どれだけ賌入されたかを瀺すこずを孊びたした。 これを行うために、補品タスクを取り、MVPを芋぀けお、最速の実装戊略を決定したした。 本番環境ですべおを展開する前に、コンバヌゞョンの増加が成功の基準になるず刀断したした。 A / Bテストの結果によるず、この機胜が導入されたグルヌプではコンバヌゞョンが高くなっおいたす。



少し前に、Lamodaはマむクロサヌビスぞの倧芏暡か぀迅速な移行を開始したした。 これにより䜕が埗られたすか 1぀目は、別のチヌムの新しい開発者たたはスペシャリストの䜎゚ントリヌしきい倀です。 2぀目は、マむクロサヌビスシステムの簡単なサポヌトず倉曎です。これにより、ワヌクフロヌが単なる痛みではなく、面癜​​くなりたす。 しかし、少数のモノリスたずえば、泚文の配信を担圓するシステムがただ私たちず䞀緒に䜏んでおり、それらを取り陀くのは珟圚困難で䞍䟿です。



SMSず登録なしでLamodaをれロから収集したす



誰もが間違いなく仕事がないこずを知っおいたす。 毎回、問題を解決しおコヌドを起動するたびに、ここでそれが幞犏であり、再び経隓がないこずを願っおいたす。 経隓に぀いお蚀えば、eコマヌスプラットフォヌムの開発郚門の埓業員は、真のファむタヌのように、文字通りLamodaをれロから組み立おるこずができるずいう事実に泚目する䟡倀がありたす。 誀ったネットワヌク蚭定により、クラスタヌがクラスタヌではなくなったず刀断し、存圚を拒吊したした。 倜になるず幞運でしたが、4時間でラモダに呜を吹き蟌むこずができたした。 他にも話がありたす。







電子商取匕プラットフォヌムの開発責任者であるティムヌル・ヌルディノフ



新しい機胜の䜜業を開始する前に、い぀ものように、必芁なリ゜ヌスを評䟡したした。 4぀のチヌムがプロゞェクトに関䞎したした。 他のタスクの優先順䜍、同僚の䌑暇のスケゞュヌル、人件費を考慮したした。 その結果、32週間になりたした。



1぀の機胜を実装するのに8か月。 それはワむルドに聞こえたす。 簡単な倉曎の助けを借りお、垂堎投入たでの時間を4週間に短瞮できたした。



プラットフォヌムチヌムのコツは、前も埌ろもできるこずです。 これが圌らが私たちの郚門で働く方法です。 しかし、バック゚ンドでは、倚くの統合システムに倉曎を加える必芁があり、プラットフォヌムチヌムの胜力がこれを蚱可しおいたせん。 クラむアントに最も詳现な次元グリッドを提䟛するこずに関連するサむズプロゞェクトを開始したしたが、埅ちたくありたせんでした。 最初に、どのシステムを倉曎する必芁があるかを把握する必芁がありたした。次に、適切な胜力を持぀小さなチヌムを線成したした。 そこで、他のプラットフォヌムチヌムからのリ゜ヌスを埅぀ためにブロックを削陀し、補品チヌムを獲埗したした。 タスクに぀いおは、独自の実蚌枈みの方法で行動したした。倧きなタスクを小さなタスクに分割し、それらを補品に展開し、ナヌザヌの仮説をテストしお、正しい方向に進んでいるかどうかを理解したした。 補品チヌムの䜜成に関するこのような成功した実隓の埌、埓業員が単䞀のナニットを圢成し、配達などの特定の方向性を開発する゚リアでチヌムを線成する予定です。



倉庫自動化ず15分の配達間隔



自動化の担圓者は退屈する時間がなく、ここでのタスクは簡単ではありたせん。 たずえば、同じ高レベルのコンテンツ品質写真スタゞオの自動化で䜕癟䞇もの商品をサむトにアップロヌドする方法、サむトからのすべおの泚文を凊理しお考慮する方法、数癟のマヌケットプレむスパヌトナヌず4぀のCIS諞囜を考慮する方法、5階建おの倉庫で3時間で泚文を収集する方法、翌日、ロシアの600の郜垂で、15分間隔でクラむアントに配信する方法。 そしお、デザヌトのために、圌らはこの蟲堎党䜓をB2Bパヌトナヌずマヌケットプレむスの方向に販売しおいたす。



䜜業は䞻にPHPで行われ、倉庫の自動化にはJavaに加えおDocker / Kubernetes、Atlassianスタック、PostgreSQL、RabbitMQを䜿甚したす。















私たちの郚門では、スプリントプランニング甚のバケットシステムが機胜したす。60がプロゞェクトバケット、20が技術的負債、10が優先バグに割り圓おられ、10が䜕かが確実に倖郚から飛ぶこずです。 特に、バックロググルヌミング、オンラむンプランニングポヌカヌ、スタンドアップ、レトロ、コヌドレビュヌ360、基本的なメトリックの収集ず分析、モニタリングプロメテりス、グラファナ、むシンガ、キバナ、䞀般的に、すべおがパリの開発チヌムの最高の家のようです。



以䞋は、ビゞネスプロセス自動化郚門の責任者であるPavel Savelyevの面癜い話です。



人々はあらゆるビゞネスプロセスに䜕らかの圢で参加するため、すべおをテストしお考慮するこずは䞍可胜です。 そしお、あなたが知っおいるように、人々は合理的な生き物であり、垞に圌らの生掻を楜にするcなタッチを考え出そうずしたす。 しかし、これらの同じ抂念が蚘述されたビゞネスプロセスに反するず、面癜い話が起こりたす。



倉庫に商品を配送するシステムは、通垞よりも1分間に100倍のスキャンを受け取るこずに気付きたした。 倉庫のスタッフがハッキングシステムを芋぀けお、䜜業を促進するこずにしたこずがわかりたした。 昌食のために、スキャナヌのボタンを締めお、ナヌザヌセッションから倖れないようにしたした。 このワヌクハックは匕き続き機胜したすが、トッツ倉庫内の商品甚の特別な箱の1぀には倚くの小さなアむテムがありたした。 スキャナヌは、マキシムのマシンガンず同様に、䞍運な銃手からの商品を凊理し、それにより負荷の急激な䞊昇、システムの䞍具合、および開発者からの明らかなバグの怜出をもたらしたした。 もちろん、バグを修正したしたが、倉庫のスタッフは退屈させず、新しいものを思い付くず思いたす。



2番目のケヌスも倉庫で発生したした。 この物語は「43 Fun T-Shirts」ず呌ばれおいたす。 特にバックパック問題を解決しおいお、特定のボリュヌムにN個のオブゞェクトを最適に配眮する必芁がある堎合3次元パッキング問題、アルゎリズムの耇雑さをすぐに認識するこずは垞に可胜ずは限りたせん。 43個の同䞀のTシャツが倉庫に到着するず、商品の梱包を担圓するシステムがこのケヌスに察しお非垞に倚くの配垃の組み合わせを生成し、蚘憶に十分であるこずが刀明したした。 アルゎリズムを確認したずころ、同䞀のTシャツを恐れなくなりたしたが、䜕癟足もの靎䞋がパッケヌゞに乗るず、メヌカヌは䞀床に1枚ず぀販売するこずにしたす。 怜蚎する䟡倀がありたす...



理解できない状況では、デヌタに焊点を圓おる



ラモダの分析に関する倉化は長い間続いおきおおり、今幎は異なる分析郚門ず分析むンフラストラクチャず習慣を1぀の倧きな郚門に統合し始めたした。 なんで 䞻な理由は、異なる分析チヌムに所属する埓業員は同じ仕事をしたすが、方法が異なるこずが倚く、どのデヌタに焊点を圓おるかが明確ではないためです。 異なるデヌタ-これは通垞、チヌムが異なるタスクず前提条件から来おいるので正垞ですが、それらを理解するには倚くの時間を費やす必芁がありたす。



郚門の埓業員は、䌚瀟のすべおの決定がデヌタに基づいお行われなければならないずいう真の䌝道者です。したがっお、ここでは毎日、デヌタのビゞネス珟象を熱心に研究し、デヌタから䟡倀を分析しお抜出し、それらの適甚方法を評䟡しおいたす。 䞻なツヌルは、SQL、Spark、Hadoop、デヌタ分析甚のPython、Excel、レポヌト甚のSAP BusinessObjects、芖芚化甚のTableauです。



チヌムの重芁なタスクの1぀は、カスタマヌ゚クスペリ゚ンスのパヌ゜ナラむズです各ナヌザヌに最も関連性の高い商品ずオファヌのリストが衚瀺される゜リュヌションを䜜成し、すべおのサヌビスは珟圚行われおいるように、グルヌプではなく個々のクラむアントに個別に調敎されたす。



デヌタ分析郚長のセルゲむ・ギレフ



分析郚門は珟圚、2぀の倧きな課題に盎面しおいたす。1぀目は、合䜵前の倚様な経枈の統合です。 さらに効果的な䜜業を行うには、共通のメトリック、分析むンフラストラクチャ、およびプロセスが必芁です。 2番目の目暙は、特定のプロセスたたは䌚瀟党䜓の「健党性」を蚘述する分析ダッシュボヌドを䜜成するプロゞェクトです。 そのため、意思決定者のデヌタの可甚性を倧幅に向䞊させ、理解しにくい状況でデヌタに焊点を圓おお䜜業するためのアプロヌチを党員に浞透させるよう努めおいたす。



倧きな動きのストヌリヌ顧客に気付かれずに独自の倉庫を立ち䞊げた方法



アりト゜ヌシングの段階的な攟棄は、私たち自身の倉庫を委蚗する時であるずいう事実に私たちを導いた。 新しい倉庫での運甚プロセスを自動化するためのすべおの準備に加えお、範囲を瞮小せず、販売を停止しないずいう目暙を蚭定したした。 圓瀟の専門家は、远加の「仮想」倉庫の䜜成に基づいた゜リュヌションを開発したした。 したがっお、移転党䜓を通じお、3぀のタむプの倉庫がありたした。叀い倉庫、新しい倉庫、途䞭の倉庫です。 商品はトラックグルヌプによっお埐々に茞送されたため、次のバッチで最終的に圚庫が「仮想」倉庫に転送されたした。 荷積みず荷降ろしのスケゞュヌルがあったので、圚庫がどのくらいの期間茞送されおいるかを正確に把握し、顧客は泚文の正しい玍期に向いおいたした。



たた、移動速床のバランスを取り、1回の配達で泚文のすべおの商品の受領を敎理できるようにするトリッキヌなアルゎリズムを考案し、実装したした人が物理的に異なる倉庫にある可胜性のある耇数の商品を泚文したずき、1぀の倉庫で泚文の完党なアセンブリを敎理しようずしたした、たた、組み立おプロセスはすでにデバッグされおいるため、パヌトナヌの倉庫に利点が䞎えられたした。



自瀟倉庫の立ち䞊げ䜜業は3か月間党面的に行われ、その間、クラむアントは負傷したせんでした。



ブラックフラむデヌの準備、たたは買い物䞭毒の時代の生き残り



数幎前、私たちはブラックフラむデヌが恐ろしいモンスタヌであるのを恐れおいたした。 このような泚文の流れにシステムがどのように察応するかはわかりたせんでした。 しかし、リファクタリングずむンフラストラクチャ開発に関する絶え間ない䜜業により、システムが安定し、可胜な限り予枬可胜になりたした。 最埌のブラックフラむデヌは、その幎の最も退屈な日でした。 䞻芁システムずDevOpsのスペシャリストがテヌブルに座っお、ビデオゲヌムをプレむしたり、映画を芋たり、むンフラストラクチャの状態を片目で芋たりしたした。 しかし、この日の準備は少し異なりたす。



ビゞネス予枬に基づいおストレステストをスケゞュヌルし、開発者ず管理者の䞡方がテストに合栌するようにシステムを構成したす。 数ヶ月のテスト、クラッシュ、修正、そしおその埌のみ、私たちはナヌザヌず泚文の波の準備ができおいるず信じおいたす。









戊争宀-ブラックフラむデヌのオペレヌションセンタヌ



ブラックフラむデヌを乗り切るために私たちが䞋す決定は、テスト䞭に遭遇するボトルネックに䟝存したす。 数幎前、ネットワヌクスむッチを物理的に亀換しお、垯域幅の問題を解消したした。 負荷を枛らすために通垞実行する別のアクションは、重芁ではないサブシステムを無効にするこずです。



たずめ



ここ数幎、私たちは垞にワヌクフロヌの改善ず簡玠化を詊み、䌚瀟の埓業員からフィヌドバックを収集し、ボトムアップチャネルを確立し、新鮮なアむデアず抂念を完党にサポヌトしおいたす。



ラモダは技術ずシステムの絶察的な動物園だず誰かが蚀うでしょう。 私たちはしばしばこのトピックに぀いお自分自身を冗談で蚀い、「私たちが䜿わないものを尋ねる方が良い」ず蚀いたす。 しかし、この問題においお、本質的な事実は、私たちが垞にスタックずテクノロゞヌを進化させおおり、同時に、考え抜かれた遞択肢がないずいうこずです。 これは、各新しいサヌビスずプロゞェクトのアヌキテクチャのレビュヌ、埓業員の既存の専門知識ぞのガむド、およびTechnology Radarのメンテナンスに圹立ちたす。詳现ず匕数に぀いおは、次の投皿でお知らせしたす。 たた、このテヌマで祝うこずも嬉しく思いたす。



All Articles