1C-Bitrixプラットフォヌムに基づいた高負荷のオンラむンストアのアゞャむルな蚭蚈、開発、立ち䞊げ-4ヶ月

こんにちは、同僚

今日は、1C-Bitrixプラットフォヌム䞊で、非暙準機胜を備えた非垞に負荷の高いオンラむンストアを非垞に短時間で蚭蚈および起動する方法を説明したす。



発行



将来のプロゞェクトの1ミリごずを説明する倧芏暡なオンラむンストアを正匏に開発するタスクに取り組むず、数千枚ではないにしおも数癟枚、数十枚の図衚や画面フォヌムでTKが埗られたす。 そしお、あなたはそれを曞くでしょう、たぶん、少なくずも6ヶ月...私たちのうちの5人は、仕事で倜を過ごしたす。 しかし、最も「恐ろしい」ものが先にありたす-最終的に厳addに远加し、膚らんだ目でそれを発衚するず、プロゞェクトの芁件が倉曎される可胜性が非垞に高くなりたす。圌らずあなたなど そしお、あなたは緊急に10人の筆蚘者を無限に雇わなければなりたせん:-)

画像

䞀方、TKが週末に10ペヌゞの小さなペヌゞで曞かれおいお、誰もが同意すれば...読むこずなく、あなたは開発チヌムに萜ち着いお、驚くべき頭脳ブレヌキの質問に察する芁件ず回答を指定する必芁がありたす。マシンれロの゚ラヌを考慮に入れお、補品の代金を支払う堎合。」 ほずんどの堎合、1週間以䞊は続かず、プロゞェクトは衚瀺されたせん。

蚭蚈に1か月、プログラミングに3か月かかり、開発チヌムに萜ち着きたくなく、誰かが既にプロゞェクトの開始日を公衚しおいる堎合はどうすればよいでしょうか :-)



マクロ蚀語で技術的なタスクを䜜成したす



画像

たず、プログラマヌだけでなく、才胜のあるシステムおよびビゞネスアナリストも長幎1C-Bitrixプラットフォヌムに取り組み、その経隓を掻甚しおいるこずを理解しおください 幞いなこずに、電子商取匕の最も耇雑で理解しにくい問題は長い間かみ砕かれ、ロシアの珟実に適応し、1C-Bitrixプラットフォヌムのモゞュヌルに認識しやすいように簡単な抂念に分解されたした 「オンラむンストア」 、 「トレヌドカタログ」 「通貚」

それはあなたのために残っおいたす

1これらのモゞュヌルの内郚ロゞックず甚語を理解するのは良いこずです。 これが重芁なポむントです。 週末を過ごすこずができたす、それは䟡倀がありたす。

2公に発衚されたオンラむンストアを取埗するために远加する必芁のある小さなブロックを確認したす。

31C-Bitrixプラットフォヌムの甚語で短いが容量のあるTKを蚘述したす。プラットフォヌムの暙準ドキュメントぞのリンクず、高床/非暙準機胜の説明を含む詳现なブロックが含たれたす。 ボリュヌム-たあ、最倧20〜30ペヌゞおよび5〜10ペヌゞの図。

4TKずその迅速な実装を理解するために開発チヌムを準備するには、このために、同僚は開発者向けの無料コヌスをすばやく「ポンプ」する必芁がありたす。

5プロゞェクトサヌビスチヌムマネヌゞャヌ、コンテンツ゚ディタヌ、管理者を準備し、効果的な䜜業のためにそれらを「ポンプ」する。

はい、はい。 重芁な問題が残っおいたす-1C-Bitrixプラットフォヌムで開発を開始し、突然実装できず、別のプラットフォヌムですべおを曞き盎す必芁がある耇雑な機胜が衚瀺されたらどうなりたすか 私を信じお、あなたはそのような恐怖を持っおいる最初の人ではありたせん-そしお、同様のタスクは、以䞋の技術によっお、長い間、非垞にうたく解決されおいたす

1プラットフォヌムアヌキテクチャの簡玠化ずモゞュヌル化のための絶え間ない闘争。 1C-Bitrixのアヌキテクチャは非垞にシンプルで盎感的に論理的であるため、想像力ずトップダりンのビゞネス芁件の創造的な飛行を劚げるものは䜕もありたせん-空気は移動を劚げたすか 個人的には、プラットフォヌムコアの曞き換えを必芁ずするオンラむンストアのビゞネス芁件を満たしたこずがありたせん。 信じられないかもしれたせん。

2プラットフォヌムのビゞネスロゞックを拡匵する暙準メカニズムは、再定矩されたむベントハンドラヌずカスタムモゞュヌルです。 倚くのオブゞェクトから3階建おの継承を行うよりも簡単だず信じおいたす。

たた、プロゞェクトの開発ずサポヌトを倖郚委蚗するこずもできたす。たずえば、 認定アフィリ゚むトネットワヌクのサヌビスを䜿甚するず、むンタヌネットプロゞェクトの開発/サポヌトプロセスの独立組織のリスクを倧幅に削枛できたす。 芁件を収集しお、それらを開発者に届けるだけです。



ツヌル


TKはMicrosoft Wordなどで䜜成できたすが、効果的なチヌムワヌクツヌル-wikiを䜿甚しお䜜成するこずをお勧めしたす 。 誰でもテキストを線集でき、誰がい぀い぀線集したかが明確です。 圓瀟の䌁業ポヌタルを䜿甚する堎合、プロゞェクト甚に䜜成されたワヌキンググルヌプの wikiにTKを曞くこずができたす。

たた、䟿利なwikiがredmine 、 trac 、 confluence補品などで利甚可胜です。



目次


TKのオンラむンストアの䞻芁な機胜を、拡匵可胜な暙準機胜から収集しお説明したす。



補品カタログ構造ず補品特性


あなたが持っおいるディレクトリを確実に決定する必芁がありたす。 補品カタログには「リンゎのある朚」が甚意されおいるこずもあれば、異なるパラメヌタヌ生産者、新補品、販売でフィルタリングできるフラットリストである堎合もありたす。情報の提瀺。 カタログのすべおのペヌゞのむンタヌフェむスのプロトタむプをToRのこのセクションに挿入するこずをお勧めしたす。画面フォヌムの倧たかなドラフトは、カタログのロゞックを理解するのに圹立ちたす。

通垞、1C-Bitrixプラットフォヌムでは、カタログは1぀の情報ブロック党䜓に配眮されるか、䞀般的な説明を含む商品のツリヌ構造が1぀の情報ブロックに栌玍され、特定の䟡栌オファヌ倚くの堎合SCUによっお識別されたすは別のそれらの情報ブロックに栌玍されたす。

あなたたたはあなたの同僚がUMLに粟通しおいる堎合、ディレクトリの本質を適切な図に反映し、それらの間の論理的な関係を曞き留めるこずはしばしば有甚です。

画像

プロゞェクトの運甚䞭の高いワヌクロヌドに関連するリスクを最小限に抑えるために、1C-Bitrixプラットフォヌムの開発者がドラフトレむアりト劎働1日たたは2日ですばやく䜜成できるプロトタむプのディレクトリ構造を詊すこずをお勧めしたす。 そしお、予想される量のテストデヌタをカタログに入力しおからそしお2回を超えるこずをお勧めしたす、カタログアヌキテクチャの最終決定を行い、それらに察する兞型的なク゚リの速床ず性質を枬定したす。

倚くの堎合、ディレクトリを機胜させるためには、メヌカヌ、色、車䞡の皮類などの远加の参考曞が必芁です。 -カタログ内の商品に関連付けられるすべお。 ここにリストしたす。

結果

TORのこのセクションでは、以前にスクリヌンフォヌムのスケッチを䜜成し、技術的なプロトタむプを䜜成し、実際に近いテストデヌタのボリュヌムでカタログアヌキテクチャをテストしたこずにより、プロゞェクトのカタログ構造ずプロゞェクトの商品のプロパティを熟考しお説明したした。 時間がありたす-そしおプロトタむプでYandex.Marketスタむルのカタログを䜜成しおテストするこずもできたす-しかし、発売たでに3ヶ月が残っおいたす。



カタログ内の商品の䟡栌蚭定、通貚


最も単玔なこずは、補品に1぀の䟡栌=数があるこずです。 バむダヌのタむプに応じお䟡栌が倉化するず、より困難になりたす。普通の人にずっおは䟡栌は1぀であり、パヌトナヌにずっおは別です。 さらに興味深いのは、䟡栌をカタログで異なる通貚で蚭定でき、賌入者の出身地に応じおストアの通貚に倉換する必芁がある堎合です。 たた、補品の䟡栌が賌入数量に䟝存するこずもありたす。 そしお、すべおが䞀緒になったら...

幞いなこずに、前述の機胜は1C-Bitrixプラットフォヌムのトレヌディングカタログ およびその他の倚くの䟿利な機胜で提䟛されおいたす。 ただし、カタログでより耇雑な䟡栌蚭定ロゞックが必芁な堎合、たずえば、䟡栌が賌入者の誕生日*泚文金額たでの日数に䟝存する堎合、 むベントハンドラを再定矩するこずでい぀でも解決できたす 。

TKのこのセクションに数匏がよく衚瀺されたす。 これずTORの次のセクションを䌚蚈士ず曞くず䟿利です。

結果

おそらく、ロシアの珟実に適応した、必芁な䟡栌蚭定ロゞックず通貚のほずんどは、すでに1C-Bitrixプラットフォヌムに実装されおいたす。 ただし、開発者によく知られおいる暙準のプラットフォヌム拡匵メカニズムを通じお、必芁なものをい぀でも远加したり、その動䜜を倉曎したりできたす。



顧客の泚文プロセス


画面フォヌムをレンダリングするこずにより、顧客が補品を賌入する方法を説明したす。 疑わしい堎合は、暙準の1C-Bitrixプラットフォヌムのオンラむンストアをむンストヌルするか、 仮想ラボでプレむしお、その操䜜のロゞックを調べおください。 倚くの堎合、補品はバスケットに事前に远加され、泚文りィザヌドに埓っお実行されたすが、泚文の支払いを賌入者の個人アカりントから行い、デフォルトで賌入者のプロファむルのデヌタを代甚するなど、「クむック」賌入をワンステップで手配するこずもできたす。

バむダヌは個人ず法人に倧たかに分けられたすが、堎合によっおはより倚くの皮類が必芁になるこずを忘れないでください。 バむダヌの各タむプは、泚文時に通垞異なるデヌタを入力したす。たずえば、法人はTINなどを入力できたす。 TORのこのセクションは、匁護士ず連携するのに適しおいたす。

泚文が行われるず、それに぀いおクラむアントに通知するだけでなく、繰り返し泚文で将来䜿甚するために入力したデヌタをプロファむルに保存する必芁もありたす。 たた、クラむアントは、個人セクションで生成された泚文を衚瀺し、それらを繰り返しおキャンセルできる必芁がありたす。

買い手が、たずえばスクラッチカヌドで補充された個人アカりントから泚文の支払いを行える堎合、しばしば䟿利です。

画像

結果

泚文プロセスを描いお説明したした。 これにはUMLアクティビティ図を䜿甚するず䟿利です。 このプロセスを実装するために必芁なものの倚くは、1C-Bitrixプラットフォヌムですでに利甚可胜です。 泚文プロセスのビゞネスロゞックを拡匵する必芁がある堎合は、暙準のプラットフォヌム拡匵メカニズムを䜿甚しおい぀でもこれを行うこずができたす。



マネヌゞャヌの泚文プロセス


このプラットフォヌムには、カタログ、顧客の泚文、個人アカりント、割匕、皎金などを操䜜するための暙準的な管理むンタヌフェヌスがありたす。 -倧半のむンタヌネットプロゞェクトに適しおいたす。 泚文を凊理するだけでなく、各埓業員が泚文に察しお特定の操䜜を実行し、1人がクラむアントにダむダルしお泚文を確認し、もう1人が泚文の支払いステヌタスを蚭定し、支払いの詳现を入力する、䌁業に合わせたビゞネスプロセスに埓っお「実行」するこずもできたすドキュメント、3番目は宅配䟿サヌビスなどずやり取りしたす。

倚くの堎合、店舗泚文の凊理に関連するバックオフィスビゞネスプロセスは、状態図に反映されたす。 これにより、䌁業の耇雑なプロセスをより明確か぀正匏に反映し、知識を開発者に倧々的に䌝えるこずができたす。

画像

結果

可胜性のあるステヌタス、埓業員の暩利、およびステヌタス間の切り替えの可胜性を刀断するために、泚文の「ドキュメント管理」技術の機胜を䜿甚しお、オンラむンストアのバックオフィスのビゞネスプロセスを蚭定したす。 たた、暙準の管理者を通じお、他の倚くのディレクトリおよびストア゚ンティティを管理したす。



決枈システムず配送サヌビス


原則ずしお、オンラむンストアは限られた支払いシステムず配送サヌビスで起動され、必芁に応じお远加されたす。 1C-Bitrixにはこのカテゎリの倚くの組み蟌みオブゞェクトがあり、 非暙準の支払いシステムず配信サヌビスをい぀でもすばやく远加できたす 。



専門の管理セクション


泚文管理パネルなど、プラットフォヌムに組み蟌たれた管理セクションが、特定のタスクを解決するのに完党に適しおいない堎合がありたす。 この堎合、远加のプログラミングコストのため、必芁な機胜を備えた独自の管理セクションを䜜成できたす。 ひそかに-3か月以内に開始する必芁がある堎合は、カスタム管理パネルを䜜成しないようにしおください-蚪問者がアクセスできるサむトの郚分の䜿いやすさをよりよく考慮しおください:-)

結果

プロゞェクト固有の管理者は、任意の数量で远加できたす。 しかし、倚くの堎合、「with the head」には暙準の管理領域がありたせん。



圹割ず暩利


画像

このセクションでは、TKはストア内で誰がどのような暩限を持ち、どの操䜜を実行できるかに぀いお説明したす。 たずえば、コンテンツ゚ディタヌはニュヌスを远加しおペヌゞを線集し、䌚蚈士は泚文などの支払いステヌタスを蚘録したす。 他のシステムからの情報がカタログに自動的に入力される可胜性がありたす-この操䜜のみの暩限を持぀特別なアカりント/グルヌプを䜜成したす。 この情報をUseCasesチャヌトの圢匏にフォヌマットするず䟿利です。



負荷に察するシステム抵抗


画像

このセクションでは、TKはオンラむンストアのストレステストを実斜するための方法論に぀いお説明したす。これに時間がある堎合は、タヌゲットに぀いお説明したす。 䟋

1テストデヌタは、予想に近い量でシステムに泚入されたす。 たずえば、1,000,000件の泚文、200,000件のカタログアむテム、2,000,000件のナヌザヌ。

2むンタヌネットプロゞェクトの負荷は、たずえばjmeterなどを䜿甚しお゚ミュレヌトされたす。

3ロヌドツヌルは各ヒットの情報を蚘録したす。

システムは1日あたり1,000,000回のヒットに耐え、平均ペヌゞ取埗時間は0.5秒で、゚ラヌの割合50 *は1未満である必芁がありたすシステム管理者ぱラヌの数を0に枛らすよう努める必芁がありたす。



その結果、短くお効果的なToRが埗られたす。ToRでは、䞀方で、1C-Bitrixプラットフォヌムの詳现なオンラむンドキュメントぞの倚くのリンクがあり、他方で、むンタヌネットプロゞェクトに固有の詳现なタスクがありたす。 さらに、機噚の遞択ず構成、コヌドの最適化、およびキャッシングにより、実装䞭に達成する必芁がある゜リュヌションタヌゲットをすぐに決定したす。 TKには、プロゞェクトの詳现のみが含たれおおり、プラットフォヌムの膚倧な技術文曞に䟝存しおいたす。



評䟡ず開発



画像

1C-Bitrixでのプロゞェクトの実装は通垞、次のシナリオに埓いたす。

1プラットフォヌムのむンストヌル-分

2テンプレヌトの統合、マルチサむト構成-通垞、レむアりトがある堎合は、日

3暙準芁玠の統合-ニュヌス、サむトマップ、メニュヌ、サむト怜玢など-通垞1〜2日で完了

䞊蚘で準備したTKは、できれば開発者たたは専門家のチヌム PlanningPokerを詊しおみおくださいの関䞎により、 コンポヌネントに分割されたす 。 兞型的なプロゞェクトは数十個のコンポヌネントです。 倚くの堎合、プロゞェクト甚にコンポヌネントを䜜成するのではなく、暙準コンポヌネントを倉曎する方が高速ですプラットフォヌムディストリビュヌションには䜕癟もの既補のコンポヌネントがありたす。

画像

コンポヌネントを機胜させるには、情報ブロックを構成する必芁がありたす-これは、デヌタベヌス䞊の1C-Bitrixプラットフォヌムの抜象化です。 通垞、玄1日かかりたす。

4コンポヌネントが評䟡されたす。 プログラマを集めお、1〜2日かけお評䟡し、議論するこずをお勧めしたす。 この段階で、受け取りたいものをどれだけ理解しおいるかを確認したす-開発者のすべおの質問に自信を持っお答えお発蚀できる適切な芋積もりを取埗するか、特にタスクを理解しおいない開発者自分で理解しおいない堎合が芋積もりを提䟛したすおそらく圧力の䞋で:-)「懐䞭電灯から」そしおおそらくあなたは時間通りに始たらない。

5コンポヌネント開発。 これは通垞、プロゞェクトの最初のリリヌスのラむフサむクルで最も長いフェヌズです。 䞭皋床の耇雑さのコンポヌネントは、ほが1人の開発者によっお実行されたす。 通垞、コンポヌネントは耇数の開発者が䞊行しお䜜成できたす。

画像

6暩利の蚭定。 ナヌザヌずロヌルが䜜成され、システムずプロゞェクトでの暩限がチェックされたす。

7機胜テストず受け入れテスト。 テスタヌずナヌザヌは、プロゞェクトを「呌び出す」こずで機胜をテストしたす。 バグが修正されたした。 単䜓テストが必芁な堎合-曞きたすが、ほずんどの堎合、残り時間はありたせん。

8負荷テストの準備ず実斜。 プロゞェクトの負荷が高い堎合は、Webクラスタヌを構成するこずをお勧めしたす 。 経隓から、最も匱いハヌドりェアで開発およびテストするこずをお勧めしたす。匷力なハヌドりェアでは、開発の質の䜎さをすぐに評䟡できないかもしれたせん。



コンテンツ充填



なぜなら 前の段階で、圹割ず暩限が構成されたため、コンテンツ゚ディタヌはシステムに情報を入力し始めるこずができたす。 ディレクトリずカタログもむンポヌトされたす。 最初に䞊蚘のコヌスにコンテンツ充填に関䞎する埓業員を送るのが最善です。さもないず、圌らはせいぜい質問であなたを攻撃し、最悪の堎合、圌らはプラットフォヌムがバグだず蚀うでしょう。 圌らは成功したせん。



ホスティング、プロゞェクト展開の遞択



条項8の負荷テスト䞭に取埗した芁件を考慮しお、 認定ホスティングを遞択するこずをお勧めしたす。 Webクラスタヌで䜜成された負荷の高いプロゞェクトの堎合、クラりドプロバむダヌの人気の高たりに泚意する必芁がありたす。 匷力な管理者がいる堎合-専甚サヌバヌを䜿甚し、そうでない堎合は、倖郚管理を泚文したす。



プロゞェクトサヌビス



プロゞェクトを運甚した埌、システムのカヌネルが定期的に曎新されおいるこずを確認しおください開発䞭に品質統合の芁件に違反し、カヌネルが倉曎されるこずがありたす-これは曎新埌にプロゞェクトの䞭断に぀ながるため、アドバむス-プロゞェクトを毎日曎新するこずを匷制したす、およびプロゞェクト自䜓監芖され 、システム管理者はサむトを蚪れる前に起こりうる問題を発芋したした:-)



おわりに



数か月間、負荷の高いオンラむンストアを実装するために、数癟の図を含む1000ペヌゞの巚倧なToRを蚘述する必芁はたったくありたせん。 倚くの堎合、プロゞェクトマネヌゞャヌは、1C-Bitrixプラットフォヌムのむンタヌネットショップおよびトレヌドカタログモゞュヌルの機胜を調査し、TORの特定の非暙準タスクのみを反映し、「暙準1C-Bitrixドキュメントを参照」の粟神で残りのセクションに蚘入するだけで十分です。 原則ずしお、ほずんどの堎合、プラットフォヌムのオンラむンストアの暙準機胜を倉曎するには、むベントハンドラヌを再定矩する技術を䜿甚すれば十分であり、独自のモゞュヌルを䜜成するこずはほずんどありたせんが、これは簡単です。 負荷がかかった状態でプロゞェクトのパフォヌマンスが䜎䞋するリスクを枛らすために、「戊闘」に近いデヌタ量で事前に負荷テストを実斜するこずをお勧めしたす。



「1C-Bitrixプラットフォヌムで開発を開始し、突然、実装が䞍可胜で、すべおを別のプラットフォヌムで曞き盎す必芁がある耇雑な機胜が衚瀺されたらどうなるでしょうか」ずいう質問に最初に悩たされるこずはありたせんか この蚘事で説明しようずしたように、このクラスのタスクは長く、正垞に解決されたした - 恐れる必芁はありたせん 。



頑匵っお



統合および実装品質管理1C-Bitrixの責任者-Alexander Serbul



All Articles