M. Videoからの莈り物内郚には䜕がありたすか







導入する代わりに



この話は2007幎12月に始たりたした。 私はモスクワ州立工科倧孊の倧孊院生でした。 N.E. バりマンは、小さな䌚瀟に就職したした。そこで、圌らは私が圓時理解しおいなかった名前でプロゞェクトを立ち䞊げたした-「M.Videoギフトカヌドの凊理」。 最初の営業日の簡単なトレヌニングで説明したように、凊理ずはギフトカヌドのデヌタを保存し、それらを䜿っおさたざたな操䜜を実行できるシステムです。 圌らはたた、開発はほずんどなかったず蚀ったが、そのようなシステムを䜜成するこずは完党に簡単だ。 この点で、補品の出力は数ヶ月で以前に蚈画されたした。 「なるほど」ず答え、私はただ出おいない創造プロセスに真っ向から飛び蟌みたした。



この蚘事では、将来の補品のテクノロゞヌずアヌキテクチャに関しお適切な決定を䞋すこずがいかに重芁であるかに぀いお説明したす。 それらを取る方法に぀いお。 そしお、決定が間違っおいるずきに䜕が起こるかに぀いお。 2007幎12月に珟圚の経隓があれば、M。Videoのギフトカヌドの凊理はスムヌズに、そしお十分に発展しおいたでしょう。 朝食、昌食、倕食をモニタヌの前で䌑むこずなく、倚くの眠れない倜や時間の問題はありたせん。 しかし、同時に、補品に取り組んでいるずき、それほど激しいドラむブはありたせん。



凊理ずは



では、凊理システムずは䜕ですか このシステムを䜜成するための厄介で長い道のりの話を始める前に、甚語を決めおおくずいいでしょう。

凊理システム凊理-支払い取匕の䜜成に䜿甚される情報を凊理するように蚭蚈されおいたす。



2぀のタむプの凊理を区別するのが䞀般的です銀行銀行カヌドでの䜜業Visa、MasterCardなどず非銀行銀行以倖のカヌドでの䜜業ギフトカヌド、割匕カヌド、プロモヌションコヌドなど。



おそらく既にご想像のずおり、この蚘事では非銀行取匕凊理に焊点を圓おたす。



すべおがどのように始たったか、たたは将来の補品にどのようにテクノロゞヌが遞ばれたか。 私の意芋では、最初からすべおの補品を䜜成する䞊で最も興味深い時期が私の意芋だからです。 たあ、たたはほがれロから。 補品䜜成の初期段階では、補品の将来が盎接䟝存する正確性に基づいお、重芁な運呜的ずも蚀える決定が行われたす。 プラットフォヌムの遞択に誀りがありたすか この補品はトラフィックの増加にdrれるか、維持するのに費甚がかかるため、䌚瀟に損倱をもたらすこずはありたせん。 テクノロゞヌの遞択に誀りがありたすか 数幎埌、遞択したテクノロゞヌを䜿甚しお䜜業できる専門家を芋぀けるこずができたせんたたは、お金が足りないために芋぀けるこずができたせん。 䜜成ず保守のコストこの問題に䜕床も戻りたすは、倚くのIT゜リュヌションの基瀎であり、最初に適切な決定を䞋せば数桁安くなりたす。



そこで、タスクが蚭定されたした。M。Video瀟の凊理システムを開発するために、最初から2か月で2人で構成されるチヌムです。 圓然、システムはその時点で存圚しおいたレガシヌ制限の手荷物を考慮しなければなりたせんでしたカヌドの磁気トラックのデヌタ圢匏、レゞシステムの機胜など。 䜿甚される技術の芳点から-創造性の完党な自由。 「すべおが急流にありたす」-このようなスロヌガンの䞋、私たちは補品を䜕に重ねるべきかを考え始めたした。 凊理システムを䜿甚するずきに、䞻な問題がどのように発生するかは知りたせんでした。 たた、むンタヌネット䞊でこれに関する有甚な情報を芋぀けるこずはできたせんでした-方向はかなり狭く専門化されおおり、私たちがよく知っおいるように、原則ずしお、圌らはむンタヌネット䞊のトレンドのこずに぀いお曞きたす再び、垂堎の法則。 そのため、テクノロゞヌを遞択する際、特定のテクノロゞヌを習埗する際に、他のシステム、技術ロゞック、およびありふれたスキルを開発する以前の経隓に頌らなければなりたせんでした新しいテクノロゞヌを真剣に研究する時間はたったくなかったず思いたす。 今埌の展望ずしお、テクノロゞヌの遞択を間違えなかったず蚀いたす圓然、倩才だずは思いたせんが、倚くの点で幞運でした。 私は他の䜕か-゜フトりェア゜リュヌションのアヌキテクチャに間違えられたした。 しかし、たず最初に。



鉄ずハヌドりェアのアヌキテクチャ



鉄から始めたしょう。 システムを蚭蚈するずき、機噚は倚くの堎合、遞択した゜フトりェアプラットフォヌムたずえば、OracleたたはIBM、プラットフォヌムの仕様は最小ハヌドりェア芁件を瀺したす、たたはタスクの耇雑さたずえば、指定されたパフォヌマンス特性を䜿甚した4Kビデオストリヌミングの凊理に基づいお遞択されたす 私たちの堎合、どちらもどちらでもありたせん。 遞択基準は、システムの信頌性ず、いくら些现なこずでも予算です。 「䞀般的に」ずいう蚀葉から、「ホット」モゞュヌルや同様のチップを亀換する機胜を備えたIBMのクラスタヌシステムは、私たちに䜙裕がないこずがすぐに明らかになりたした。 そのため、システムの予玄は個別に実装する必芁があるずいう譊告ずずもに、䜎䟡栌セグメントに泚意が移りたした。 その結果、安䟡なHPサヌバヌを遞択したした。 しかし、最初に構築されたバックアップメカニズムは、顧客から倚くの質問を匕き起こしたした。 しかし、システムの運甚の最初の幎に、それらは完党に削陀されたした。 そのメカニズムは次のずおりでした図1。









図 1。



はい、それは非垞に原始的です。 2぀のミラヌ化されたフロント゚ンドサヌバヌず1぀のデヌタベヌスサヌバヌ。 しかし、なぜそうなのか、このスキヌムの䜿甚法は䜕ですか だから誰も長い間やっおいない、システムを構築するための珟代のテクノロゞヌを24時間365日理解しおいる読者は蚀うだろう、そしお圌は正しいだろう...しかし、䞀郚だけ。 正しくしたしょう。 前述のように、非垞にクヌルなクラスタヌシステムを提䟛するオプションは、コストが高いため考慮されたせんでした。



ストヌリヌのこの堎所では、このトピックに小さなオフトピックを挿入せざるを埗たせん。 私は、倧芏暡な銀行でのそのようなシステムの少なくずも2぀の倱敗を知っおいたす名前、明らかな理由で、私は䞎えたせん。 そしお、それは限られた予算の問題ではありたせんでした銀行がシステムの耐障害性を確保するために数癟䞇ドルを費やしたしたが、その珟実は冷酷なものでした。



最初のケヌスでは、酔った掘削機がメむンずバックアップの䞡方の通信チャネルの光ファむバヌを匕き裂きたした。 これは、銀行のデヌタセンタヌのアヌキテクトが建物からの通信回線の撀収を完党に正しく線成し、異なる方向に分岐するずいう事実にもかかわらず発生したした。 バケツを1ストロヌクで䞡方のラむンを切断する方法を教えおください。 はい、非垞に簡単です。 通りの反察偎で、これらの線は1぀の井戞に収束したした。 デヌタセンタヌの蚭蚈者はこれに圱響を䞎えるこずはできたせんでした。 圌らもそれを知りたせんでした。



2番目のケヌスはそれほど壮倧ではありたせんが、興味深いものです。 銀行には、埓来のアクティブ/スタンバむクラスタがありたした。 機噚の些现な障害最も安䟡なクラスタヌであっおも、絶察に重倧ではない状況によるメむンノヌドの障害の埌、バックアップノヌドは単玔に䞊昇したせんでした。 状況を調査した結果、その理由が明らかになりたした。バックアップノヌドがマりントされたラックには、物理​​的に十分な機噚がなく、ディスクドラむブのセットが䞍完党でした。 次に、䞍足しおいるディスクドラむブが、他の銀行システムの操䜜性をサポヌトする運甚䞊の亀換基金ずしお䜿甚されおいるこずがわかりたした。 そしお再び疑問が生じたす-さお、どのように 銀行の最も重芁なITシステムの1぀が動䜜するクラスタヌのバックアップノヌドがこのラックにマりントされおいるこずを人々は知りたせんでしたか 圌らは知っおいたした。 しかし、幞犏なたたはどちら偎を芋るかによっおは䞍幞な状況の組み合わせのため、事件の前にクラスタヌのバックアップノヌドを起動する必芁があるずは考えおいたせんでした。 長幎の埓業員は、これがスタンドオフを芋おいた。 おそらく、ラック内の機噚の目的を知っおいた人でさえも蟞めたのでしょう。 そしお、これは説明された状況では非垞に自然ですむンフラの専門家は理解したす、生産蚭備の「燃焌」問題を解決するためにラックは「ナむフの䞋」に行きたした。



これをそれほど小さくはないが、さらなるストヌリヌのために非垞に必芁な䜙談を芁玄するず、2぀の基本的な結論を導きたいず思いたす。私の意芋では、あらゆるレベルのITシステムを構築する際に考慮する必芁がありたす



  1. 絶察に信頌できるシステムは存圚したせん角質ですが、䜕らかの理由で、これはしばしば忘れられたす。
  2. 実際の玙ではないシステムの信頌性は、そのコストにわずかに䟝存したすこれはより頻繁に忘れられたす。


ギフトカヌドM.Videoの凊理に戻りたしょう。 M.Videoデヌタセンタヌには、異なるプロバむダヌからの2぀のむンタヌネットチャネルがありたす。 もちろん、建物からワむダがどのように出おきたかは知りたせんでしたが、2぀のチャネルは最初は悪くありたせん。 圌らは、2぀のミラヌセグメントのシステムを構築しようずしたした。これらのセグメントは、異なる通信チャネルに「座っお」、どういうわけか互いに予玄するこずになっおいたす。 しかし、凊理デヌタベヌスを2぀のミラヌセグメントに分割し、それらの間で高性胜さらには非垞にのオンラむンレプリケヌションを確保する必芁があるため、このアむデアを完党に実珟するこずはできたせんでした。 今埌、DBMSずしおMicrosoft SQL Server 2000を遞択したず蚀いたす。このDBMSのレプリケヌションメカニズムを怜蚎した結果、必芁なパフォヌマンスを提䟛できないずいう結論に達したした。 さらに、レプリケヌションの線成には非垞に高いオヌバヌヘッドが必芁になりたす。 そのため、圌らはデヌタベヌスを䞀元化するこずに決めたした。 しかし、フロント゚ンドサヌバヌには、すぐに耇補する必芁のあるデヌタが含たれおいなかったため、簡単に「バラバラ」になりたした。 システムのクラむアントモゞュヌルにフロント゚ンド凊理サヌバヌ間でクラむアントを切り替えるロゞックを実装したしたが、これに぀いおは埌で詳しく説明したす。



それでは、信頌性に぀いお話したしょう。 異なるプロバむダヌからの2぀の通信チャネルがあるため、フロント゚ンドの信頌性は非垞に高いこずが刀明したした。 酔っ払った掘削機䞊蚘参照たたはデヌタセンタヌでのラックの爆発だけが、それを敷蚭できたした。 懞念は、集䞭型デヌタベヌスサヌバヌによっお匕き起こされたした。 この点で、私たちが芋぀けた実際のシステムの動䜜の結果によっお収集されたすべおの統蚈デヌタを調査したした。 補品で発生する3぀の最も䞀般的な問題を曞き留めたした。



  1. 通信チャネルの障害/過負荷。
  2. ピヌク時䌑日、金曜日の倜などのシステムパフォヌマンスが䞍十分です。
  3. ゚ラヌ/゜フトりェアがクラッシュしたす。


機噚の故障も䞀般リストにありたしたが、TOP-3には入りたせんでした。 3぀の問題はすべお、ミラヌ化されたフロント゚ンドサヌバヌを䜿甚するスキヌムを䜿甚するこずでほが完党に解決されるので、チャンスをずるこずに決めたした-デヌタベヌスサヌバヌを集䞭化したたたにしたす負荷のバヌスト時に十分なパフォヌマンスが埗られるように、予算の範囲内で匷力でなければならないずいう泚意を払っおください。 ベットは正しかった。 凊理は、2008幎3月から2014幎5月たで、このハヌドりェアプラットフォヌムで機胜したした。 この間、䞊蚘のすべおのポむントに関連するむンシデントが発生したした。 しかし、機噚の故障は決しお起こりたせんでした。 誰かがそれはただ幞運だず蚀うでしょう。 私は議論したせんが、それでもです。



最埌に、説明したスキヌムの䞭で私が最も奜きではなかったこずをお䌝えしたいず思いたす。 Prosharennyeシステム管理者は、スキヌムの各ブランチで個別のIPアドレスを持぀個別のルヌタヌを䜿甚しおいるず繰り返し非難しおいたす。 同様に、これはクラむアントにずっお友奜的ではありたせん-圌が2぀の異なるアドレス間で切り替えられるようにするためにその時点で、クラむアントモゞュヌルは凊理を行うクラむアント゜フトりェアではなく切り替えを担圓しおいたした。 フロント゚ンドサヌバヌ間でトラフィックを自動的に分配するバランサヌをむンストヌルするか、クラむアントが単䞀のIPアドレスを持぀ようにHSRPプロトコルを介しお通信する2぀のルヌタヌのスキヌムを組み立おるこずが提案されたした。 これは私の意芋です。 バランサヌは通垞、炉内にありたす。 分散システムで集䞭リンクを䜜成するこずは最倧の悪です。これは明らかです。 HSRPは分散リンク2぀のルヌタヌを䜜成したすが、コンポヌネントは盞互に倧きく䟝存しおいたすルヌタヌは垞に盞互に通信し、プロトコルで定矩されたコラボレヌションのプロトコルを実装したす。 このようなリンクは、実際に独立した芁玠盞互䜜甚しない2぀のルヌタヌで構成されるリンクよりも信頌性が高くなりたせん少なくずも悪化したせん。 数孊的に蚌明するこずもできたす。 ここで説明する方匏は、運甚䞭にその信頌性を䜕床も蚌明しおおり、この点でギフトカヌドの凊理よりも数桁高い倚くのシステムを䞊回っおいたす。



Webサヌビスプラットフォヌム



先ほど述べたように、DBMSずしお、耇数のデヌタベヌス間のデヌタ耇補など、ロヌションのないMicrosoft SQL Server 2000を遞択したした。 私はこのDBMSに粟通しおおり、銀行システムなど、負荷の高い䌁業システムでSQL Serverを䜿甚する実際の䟋を数倚く知っおいたした。 良い議論だず思う。 同じ理由で、同じMicrosoftのIISサヌバヌに基づいおWebサヌビスを線成するこずにしたした。 ただ珍しいこずはありたせんか さらに興味深いのは別です。 凊理サヌビスのロゞックを実装するスクリプトを蚘述するためのテクノロゞずしお、ASP.NETを採甚したせんでした。ASP.NETはすでに人気を博し始めたため、ASPクラシックは誰もが忘れおいたした。 圓時の別の議論の䜙地のある決定は、システムの将来の成功を倧きく事前に決定したした。 むンタヌネット䞊のASP.NETずASPクラシックのあらゆる皮類の比范レビュヌを読んだ堎合、ASP.NETを支持する䞻な議論は次のようになりたす。



  1. より高床な技術。
  2. より倚くの機胜を提䟛したす。
  3. より合理化されたWebアプリケヌション構造。
  4. 玠晎らしいパフォヌマンス。


かっこいいですね。 真実は。 誰もが奜きで、誰もが買う。 マむクロ゜フトの販売者ずマヌケティング担圓者はボヌナスを受け取りたす。 すべおが順調です。 それでは、ポむントに行きたしょう。



パラグラフ1では、すべおが明確であり、新しいものは垞に良いです。 新しいゞャケット、車、女の子、...、Javaのバヌゞョン。 それは垞にポゞティブな感情を匕き起こしたす。これが私たちの粟神の働きです。 あなたがそれに぀いおできるこずは䜕もありたせん...そしおあなたはしたせん。 将来の補品にテクノロゞヌを遞択する際に、これを「利点」ず考える必芁はありたせん。 これは、技術的な特性ではなく、ファッションのトレンドに基づいお車を遞択する方法です。 倚くの人がそうしおいるこずは理解しおいたすが、開発者は垞に冷静な心を保ち、あらゆる問題に合理的に取り組むべきだず思いたす。 残念ながら私の堎合は、誰かがこれを気に入っおいるかもしれたせんが、今では、テクノロゞヌを遞択するためのこのような「ファッショナブルな」アプロヌチをよく芋かけたす。 そしお、結果は䜕ですか しかし、最終的には、最新の技術は通垞より高䟡であり、特定のプロゞェクトで䜿甚した堎合の利点が顧客や請負業者によっお垞に明確に理解されるわけではないため、高䟡で愚かなこずがわかりたす。 そしお、ご存知のように、新しいものは忘れられた叀いものです。 しかし、これは別の倧きな話です。悲しいこずに぀いおは話したしょう。



ポむント2-機䌚。 機䌚は垞に良いものです。 しかし、たずえば、米囜メリヌランド州ボルチモアでオンラむンで倩気を远跡する必芁がありたすか あなただけが近い将来にそこに行くか、あなたの芪relativeがそこに䜏んでいるずは考えにくい。 しかし、この機䌚を必芁ずしおいる友人は䜕人いたすか この最も簡単な䟋では、明らかなこずを瀺したいず思いたす。誰かがあなたに新しい機䌚を䞎えたずき、あなたはあなたの問題を解決するこずの利点を明確に理解する必芁がありたす。 ASP ClassicにはないASP.NETの機胜を怜蚎した結果、ASP.NETにはタスクにASP Classicを超える利点はないず刀断したした。



ポむント2-Webアプリケヌションの構造。 むかしむかし、PHPの出珟の倜明けに、この蚀語に関する非垞に良い本が友人の誕生日に玹介され、すべおのWebアプリケヌションがサヌバヌサむドスクリプトず組み蟌みを䜿甚しお開発されたずいう声明を読みたした静的HTMLに盎接、深刻な欠陥が内圚したす。たずえば、C ++で蚘述されたデスクトップアプリケヌションず比范しお、コヌドの構造的構造が悪化したす。 そしお、私はそれに完党に同意したす。 C ++が開発者に特定の構造ヘッダヌファむル、プリプロセッサディレクティブ、最終的にMain関数に埓うように促す堎合、PHP、ASPクラシック、および同様の蚀語はいかなる皮類のコヌド蚭蚈も促したせん。 必芁に応じお、奜きなだけランダムたたは構造的に蚘述できたすただし、構造は独立しお制埡する必芁がありたす。 このトピックは完党にプログラマヌに委ねられおいたす。 その玠晎らしい本のリリヌス以来、たくさんの氎が流れたした。 技術は進歩しおおり、ASP.NETは、開発者が構造化コヌドを䜿甚しおアプリケヌションを構築するのを支揎する点で、ASP Classicよりも優れおいたす。



しかし、ラムに戻りたしょう。 システムの開発者は2人しかいたせんでしたさらに、コヌドの90はそのうちの1人、぀たり私が䜜成したした。 必芁に応じお、アプリケヌションの゜ヌスコヌドの構造を確保できるこずは明らかでした。 たた、特定のタスクでは、これによりASP.NETがASP Classicよりも有利になりたす。 さお、ケヌキの䞊のチェリヌ-パフォヌマンス。 ツリヌに考えを広めるこずはせずそしお時間がかかりたす、すぐに蚀いたす-はい、䞀般的な堎合のASP.NETアプリケヌションのパフォヌマンスこのようなステヌトメントでこれらの蚀葉が倧奜きですは、基本的な理由でASPクラシックアプリケヌションよりも高い-コンパむル枈みプリコンパむル枈み正確に蚀うず、コヌドは解釈されたコヌドよりも高速です。



しかし、い぀ものように、埮劙な違いがありたす。



フレヌムワヌクずバむトコヌドのメモリぞの読み蟌みが倱われたために.NETアプリケヌションが最初に起動されたずきサヌバヌの再起動埌など、システムは「巡航」速床よりも䜎い速床でしばらく動䜜したす。 ASP Classicアプリケヌションは、バむトコヌドが䞍足しおいるため、この欠点から解攟され、むンタヌプリタヌが実行されるたびに、むンタヌプリタヌは同じ方法でスクリプトを凊理したすもちろん、スクリプトキャッシュが構成されおいない限り。 もちろん、問題は小さいですが、それにもかかわらず、それは存圚し、特にリク゚ストの匷力な連続ストリヌムを凊理するシステムで認識できたすそしお、私たちの凊理はたさにそれを行いたす。 これは、Classicアプリケヌションの目暙パフォヌマンス倀を数桁䞊回っただけでなく、ASP Classicを支持する遞択を容易にし、ゆったりずしたものにしたした。 察立のトピックの最埌で、ASP.NETずASP Classicは、.NETの察応物に察するASP Classicのいく぀かの利点に぀いお説明したすはい、この方向にも利点があり、私の意芋では非垞に重芁です。



  1. Webサヌバヌを再起動せずに、したがっおサヌビスを䞭断するこずなく、Webアプリケヌションを曎新できたす。 この機胜は、倚くの堎合、これに問題がある他の䌁業システムず比范しお、システムをクヌルにしおいたす。
  2. システムを改良するために、暙準のメモ垳以倖のものは必芁ありたせん青いアむコンなど、誰もが知っおいたすが、誰も䜿いたせん。 オブゞェクトの名前ずポむントをキヌボヌドで入力した埌、ツヌルチップなしでコヌドを曞くこずができる有胜な開発者は、携垯電話からでもアプリケヌションを改良できたす。 携垯電話で.NETコヌドを蚘述できたすか 同じ電話でプリコンパむルできたすか
  3. アプリケヌションの党䜓的な「明るさ」。 ゜ヌスは䜕の重さもありたせん。 それらは、ほずんどすべおの、最も遅い通信チャネルを介しおサヌバヌにアップロヌドできたす。 2008幎以降、M.Video凊理システムの曎新をダりンロヌドしなかったため、モバむル通信2G / 3G以前、Yota-Internet、急流オフィスチャネル、さらにはダむダルアップ接続幞運にもそのようなものでした 、䞀床だけ。


Webサヌビスアヌキテクチャ



ここでの「アヌキテクチャ」は、その時点のシステムには原則ずしおアヌキテクチャがなかったため、セクションのタむトルにのみ存圚したす。 はい、はい、私たちのシステムは「Webアプリケヌションのアヌキテクチャを開発するずきに行う必芁のないこず」ずいうトピックに関する「機胜」の完党なリストを実装しおいたす。 ASPスクリプトはHTMLコヌド党䜓に完党に制埡䞍胜に広がり、ファむルの名前が付けられたため、名前でスクリプトの意味を理解するこずは非垞に困難な䜜業でした。 その理由は、Webアプリケヌションの開発における私の経隓䞍足です。 それにもかかわらず、この圢匏では、システムがアヌキテクチャの「コヌミング」を手に入れるたで、最初の1幎間は正垞に機胜したした。



クラむアントモゞュヌル



今日、Webアプリケヌションに基づいたシステム内のクラむアントモゞュヌルの存圚は、戞惑うだけです。 そしお、これは理解できるこずです。なぜなら、珟圚では、原則ずしお、Webサヌビスにアクセスできない゜フトりェアはほずんど残っおいないからです。 しかし、2007幎にはそのようなシステムが増え、その数にはM. Videoの興行収入が含たれおいたした。 レゞ係が凊理システムずやり取りする唯䞀の方法は、ファむル共有でした。 そしお、システムだけでなく、銀行カヌドの凊理に぀いおも話し合っおいたす 暗号化されおいないファむルを介しお銀行情報を転送するこずを誰かに䌝えた堎合、これはニダニダするだけです。 しかし、これはそれに぀いおではありたせん。 キャッシュデスクM.ビデオは、䜜成䞭のWebサヌビスに個別にアクセスできたせんでした。 圌女は芁求ファむルを䜜成し、デヌタ亀換フォルダヌ内の応答ファむルを埅぀こずしかできたせんでした。 本質的に、[ファむル] <---> [サヌビス]の圢匏のデヌタキャリアになるはずのクラむアントモゞュヌルの開発に぀いお疑問が生じたした。 繰り返しになりたすが、叀兞的なタスクは、このかなり䞍噚甚なタスクを実行する軜量で非垞に信頌性の高い結局、小売店のチェックアりトクラむアントモゞュヌルを開発するこずです。



そしお、ここでは、VBScriptでクラむアントを䜜成するために、補品党䜓で最も興味深い゜リュヌションを適甚したした。 暙準のWindowsむンタヌプリタヌで実行できるもの。 きっず驚かれるこずでしょう。 さらに蚀いたす。顧客偎のプロゞェクトチヌムでは、異なる反応をする人は䞀人もいたせんでした。 プロゞェクトに取り組んでいるずきにこのアむデアを聞いおいないのはなぜですか「これは深刻ではありたせん」、「冗談でしょうか」、「聞いたこずがありたすか、VBScriptで䌁業システムモゞュヌルを曞く぀もりですか」、「この゜リュヌションは䞍可胜です」ず同様のステヌトメントをサポヌトしたす。 その時、最も攻撃的で面癜いフレヌズを録音したしたが、残念ながら、このファむルを倱いたした。 だからここに。 最終的にこのアむデアは、補品党䜓で最も珍しいだけでなく、最も効果的なものでもあるこずが刀明したした。 そしお、ここに理由がありたす。



このようなクラむアントの最倧の問題は、リモヌトの集䞭曎新です。 たずえば、䞀般的な状況であるキャッシュデスクから、デヌタ亀換ファむル圢匏が倉曎されたした。 したがっお、すべおのキャッシュデスクですべおの顧客を曎新する必芁があり、M.Videoは2008幎に玄1,000を持ちたした。 もちろん、すべおの店舗に゚ンゞニアを掟遣するこずは、手䜜業による日没です。 クラむアントモゞュヌルがWebサヌビスず通信し、それが叀くなっおいるこずを理解し、新しいバヌゞョンをダりンロヌドしお、それを自分自身で眮き換えるこずができるメカニズムが必芁です。 最埌のアクションは最も困難です。Windowsでは、実行䞭のプロセスはそのファむルを眮き換えるこずができたせん。 これは、アプリケヌションの終了埌にのみ実行できたす。 したがっお、「曎新プログラムをむンストヌルし、コンピュヌタヌを再起動する必芁がありたす」ずいうメッセヌゞの出力など、あらゆる皮類の束葉杖を実装しおから、次の起動前にクラむアントファむルを曎新するメカニズムを開始する必芁がありたす。 そしお、これはすべお開発者にずっお問題ではありたせん。 これはナヌザヌにずっお問題です。 新幎の前の土曜日の倕方、店が満員になり次の顧客にサヌビスを提䟛するずきに、レゞ画面で䞊蚘のメッセヌゞを芋た「幞せな」レゞ係はいたせん。 それを提䟛するずき、「幞せな」クラむアントはありたせん。 これは本圓の問題です。 そしお、これたでのずころそしおすでに2017幎に庭で、玳士、ほずんどのシステムはこのように蚭蚈されおいたす。



しかし、私は高品質の゜フトりェアを支持し、支持しおいるため、このシステムのこの問題は解決されたした。 非垞に「気分を害する」VBScriptがこれを助けおくれたした。 ぀たり、その泚目すべき特性の1぀は、実行を停止せずにVBSファむルを䞊曞きできるこずです。 Webサヌビスからの応答スクリプトが、曎新が必芁であるこずを理解し、それ自䜓の新しいバヌゞョンをダりンロヌドしVBSファむルは䜕の重さもありたせん、ディスク䞊の独自のファむルを曞き換え、自分自身の新しいバヌゞョンを起動し、最埌のコヌドを実行するメカニズムを実装したした、圌自身の叀いバヌゞョンを完成させたした。 ナヌザヌの芳点からは、䜕も芋えたせんでした。 そしお、これが私たちのアむデアの最倧の䟡倀です。 ナヌザヌは、曎新が行われたこずをたったく理解できたせんでした。 キュヌを提䟛するレゞ係は、前バヌゞョンのクラむアントモゞュヌルでトランザクションNを実行し、新しいバヌゞョンでトランザクションN + 1-を実行したした。 そしお、遅延やその他の目に芋える兆候のないこれらすべおが起こりたした。 曎新は、新しいVBSスクリプトをサヌバヌにアップロヌドし、察応するデヌタベヌステヌブルの珟圚のバヌゞョンを増やすこずで集䞭管理されたした。



生産性の最初のステップず最初の改善



正盎に蚀うず、システムが2008幎3月に実皌働で皌働した埌、私には思えたように、私たちの小さなチヌムがdr死しおしたったはずの倧量のむンシデントが発生するこずを予想しおいたした2人しかいなかったこずを思い出しおください。 しかし、それは起こりたせんでした。 いいえ、もちろん、事件はありたしたが、壮倧なものはありたせんでした。 すぐに、少なくずもスクリプトの構造を合理化する必芁があるこずが明らかになりたした。 システムのWebむンタヌフェヌスを完成させる最初の芁求が到着したした。 䌝統的に、顧客は補品の最初のバヌゞョンを受け取っお初めお、本圓に必芁なものを理解するこずができたした。 ここでは異垞なものは䜕も䜜成されなかったため、詳现に進む理由はありたせん。 私が泚意したい䞻なこず補品のシステムは、いく぀かの決定の「革呜」に関連するすべおの恐怖にもかかわらず、すぐに非垞にうたく機胜したした。



システムの進化ず䌑日の危険性



この章では、システムが2008幎から珟圚たでに移動したパスに぀いお説明し、1぀1぀のみ、そうでなければ、本をリリヌスする必芁がありたすに぀いお説明したすが、2013幎に発生した技術的な芳点から非垞に深刻で非垞に興味深いです。

そのため、2008幎3月には、玄1,600䞇のM.Videoギフトカヌドが凊理システムのデヌタベヌスに保存されたした。 システムパフォヌマンスは、1秒あたり16トランザクションを目暙ずしお、1秒あたり30トランザクションに達したした。 珟圚、デヌタベヌスには玄1億2,000䞇の゚ンティティカヌドだけでなくがあり、生産性は毎秒700トランザクションに達したす。 あなたが芋るように、パスは長く、垞に䞊り坂です。 この経路の䞻な転換点は、タむムラむンに反映しようずしたした図2。









図 2。



開発はクヌルですが、原則ずしお、意図したずおりに䜕かがうたくいかないずき、私たちが埗る最も䟡倀のある経隓の倧郚分がありたす。 そしお、倧芏暡な連邊䌁業の凊理が機胜しないほどすべおがうたくいかない堎合、単䜍時間あたりに埗られる経隓の量に少なくずも10を掛けたす。



2013幎3月8日金曜日でした。 週末のリラックスした朝はうたくいきたせんでした。 正午頃、私の携垯電話が鳎り、ITディレクタヌの緊匵した声が「凊理が機胜しない」ず蚀いたした。 もちろん、私はITディレクタヌが個人的に電話するのを少し心配しおいたした通垞、圌らはそのような事件のテクニカルサポヌトから電話をかけおきたしたが、それでも、最初はこの情報を真剣に受け止めたせんでした。 これは、システム運甚の最初の数幎間に、たったく同じ文蚀で技術サポヌトからうらやたしいほどの芏則性で私を呌び出したずいう事実によるものです。 そしお、99.9のケヌスで刀明したした掃陀婊がモップで珟金デスクからむヌサネットケヌブルを匕き出した、店内の通信チャネルが萜ちた、凊理゚ンドポむントのアドレスが最近開いた店で誀っお登録されたなど。 サヌバヌにリモヌト接続されたラップトップをゆっくりず匕き出し、珟圚のトランザクションフロヌを監芖し始め、凊理が機胜しおいるのを芋たした 非垞に匷力なストリヌムで、トランザクションが進行䞭です。 テクニカルサポヌトずの電話での䌚話にしばらく時間を費やした埌、凊理が単に負荷に察凊できないこずに気付きたした。 ( ), ( , 2/3 ).



«» . — / . - , - — . , -, - , 1/3 — , , 80 . . «» , , , ( ), 15 . , , 14 , , . - . , .



, , . — 500 . . 2011-2013 . , , , , 1000 . , , . . . .



, , 24/7/365, , — , 25 31 . — . , — . . — . . , : , -. . , , 1,5 , ! , . , . ( 12 14 8 )? ? 23 ? ? ?



, ( ). , ( ) -, , . - . 8 2013 , . , , . . , . , . , 2013 . . , . , , , .



結論の代わりに



, . , , . , . , , , . , , . . , . , ( ) / . , . , - . , .



最埌に、非垞に有名な人物を1぀匕甚したいず思いたすが、IT界にはいたせん。同じ䌝説のリボルバヌの発明者であるサミュ゚ル・コルトは、「殺すのは歊噚ではなく、殺すのは男だ」ずいう蚀葉に属したす。ITに関する蚘事のこのような匕甚は誰かにずっお奇劙に思えるかもしれたせんが、ここでは非垞に圹立぀ず思いたす。IT業界の意思決定者が、歊噚を殺しおいるず単玔に信じおいるこずがよくありたす...



All Articles