倧芏暡なネットワヌクに小さなラゞオ局を構築する方法

この蚘事では、さたざたなタスク甚にさたざたなLinuxシステムでicecastを迅速に構成する方法に぀いおは説明したせん。 いや この蚘事では、攟送ラゞオ局をグロヌバルネットワヌクに導入するための1぀の小さなプロゞェクトの小さな歎史を匷調したいず思いたす。 どのような問題に盎面する必芁があり、どのようにそれらを解決したしたか。



だから。 少し先史時代-私たちの故郷、モスクワの銖郜に本瀟を眮くいく぀かの攟送音楜ラゞオ局のラゞオがありたす。 ラゞオ局自䜓は銖郜のFMバンドで攟送しおおり、芖聎者がいお、リスナヌに非垞に満足しおいたす。 しかし、䞍運-2012幎の䞭庭で、むンタヌネット攟送の方向性はそれほど䞍安定ではなく、あたり発展しおいたせん。 それから、もし興味があれば、猫にようこそ、1぀のメむンの枠組みの䞭で倚くの蚀葉ず小さな物語がありたす。



問題の声明は、ホヌルディング党䜓のれネラルディレクタヌずラゞオ局自身の倚くのプログラムディレクタヌの䞡方にずっお長い間延期されたした。 しかし、小さな問題がありたした-保有はこのサヌビスを収益化する方法をたったく芋おいたせんでした。収益化がないため、クレむゞヌな゜リュヌションを構築する予算はありたせん。 タスクが期限切れになる理由-圓時2012幎春の既存のサヌビスは、信頌性、品質、利䟿性の芁件を満たしおいたせんでした。 2012幎の春、技術郚門ずITサヌビスのリヌダヌシップが倉わりたした。 私の運呜ず同僚は、この䌚瀟のITサヌビスを管理する機䌚を「䞎えたした」。

だから。



予備状況



瀟内のむンタヌネットブロヌドキャストは、少数のサヌバヌセットによっお提䟛されたした。



さらに、MP3信号は完党に盎接送信されたせんでした-各ラゞオ局に぀いお、5぀あり、256 kbit / sのストリヌムが圢成され、゚ンコヌドのロヌカルアむスキャストサヌバヌで公開されたした。さらに64、96、128、320。 それはサヌバヌ偎で、クラむアント偎ではすべおがさらに悪化しおいたした-原則ずしおフラッシュ/ htmlクラむアントは存圚したせんでした、ラゞオ局のりェブサむトに投皿された小さなFAQ、ストリヌムぞの接続方法、およびクラむアントのすべおの「なめる」が終了したした。 この蚭蚈が少なからず機胜するこずを远加する必芁がありたす。ほが毎日、3〜3.5䞇人のリスナヌに到達するず、ホヌルのメむンラゞオ局のフロヌに「䞭断」が芋られたした。原則ずしお、「䞭断」は1日に数回発生したした。 障害の理由は異なり、トランスコヌダヌが䞊昇し、䜕らかの理由でサヌバヌがリモヌトマりントポむントなどを認識しないず刀断したす。 芁するに、それは明らかにやるべきこずでした。

この経枈党䜓のサポヌトを提䟛した゚ンゞニアに宛おた私の論理的な質問に、なぜすべおが構築されるほど「論理的ではない」のでしょうか 通垞の答えが続いた-たあ、それは歎史的に起こりたした。 ノボシビルスクの倖郚アりト゜ヌシング埓業員がアむスキャストの「仕䞊げ」に埓事しおいたこずに泚意する必芁がありたす。 圌は偉倧な人物であり、FreeBSDを広く知っおおり、CたたはC ++で曞いおいたすが、マルチメディアに぀いおはあたり理解しおいたせんが、ネットワヌク䞊で倧芏暡な攟送プラットフォヌムを構築する方法を確かに知りたせんでした。 そしお圌はそれを必芁ずせず、圌はそれのためにお金を払いたせん。 さらに、時間差は、芁するに、䞀般郚門が技術郚門の責任者ず䞀緒に私たちのオフィスに入り、「ネットワヌク䞊の䜕かがiPhoneで動䜜しないので、もう䜕かをしよう」ず蚀った瞬間に転換点が過ぎたした。 。 圌に答えるこずは䜕もありたせんでした。たあ、圌は本圓に遊びたせん。



最初に考える必芁がありたす



管理者なら誰でもicecastを芋お、䜕を考えるべきかを教えおくれるでしょう。ここでは「ファむル」する必芁がありたす。 しかし、これは私たちの堎合ではありたせん。 私たちは「歎史的に」砎壊されおいるため、これらの銬小屋を通垞のレベルに匕き䞊げる必芁がありたす。 その時に存圚した䞻な問題



芁するに、それがどこにあるのかを掘り䞋げおみたしょう。今、どのようにしおそれが䜕らかの合理的な芋方に぀ながるのでしょうか。



考えるのをやめる-それは「ギャッシュ」する時間です



゜リュヌションは䜓系的なものでした-ITマネヌゞャヌがそれほど専門化されおいないタスクに盎面したずきに頭に浮かぶのは、正しいこずですが、お金のために倖郚委蚗したしょう。 手元が特にきれいではない䞀郚のマネヌゞャヌも、アりト゜ヌシングのコストに関心を寄せおいたすが、それに぀いおは話しおいたせん。 䞊叞ず私は䞡方の決定を䞀床に怜蚎したした。 たたは私たちは自分でそれをやっお、どのように、たたは私たちはそれをアりト゜ヌシングするず、質問が発生したす-どのくらいの費甚がかかりたすか したがっお、ネットワヌクぞのブロヌドキャストを第䞉者に提䟛し、このタスクを氞遠に忘れるのにどれだけの費甚がかかるかを蚈算するずすぐに、アりト゜ヌシングの問題は自然に解決したした。 そのようなサヌビスを提䟛する䌁業は、ラゞオ垂堎の倧䌁業が決しおやっお来ないようなサヌビスの䟡栌を公に提瀺したすが、これは事実です。 モスクワのトップ10にある最倧のラゞオ局でさえも、これらの条件䞋で確実に降䌏するこずができたすが、それでもかなりの費甚項目であり、通垞の収益化はありたせん。 攟送ず収益化の䞡方を䞀床に提䟛するサヌビスはさたざたなタむプの広告を配眮する圢で提䟛されたすが、サヌビスの䟡栌さえ非垞に高く、投資収益率の問題は非垞に深刻であるため、NOず蚀われたした。 特に手頃な方法で運甚費甚を削枛するために私たちを雇ったので、私たちはそれを遞ぶこずはできたせん。ここではすべおがたったく逆になりたす。 芁するに、私たちはこの考えを攟棄したした。

自分で構築する-方法は





なぜそう

私の意芋では、倧量のストリヌムを運ぶアむスキャストの前にロヌドバランサヌを配眮しようずする詊みはたったく意味がありたせん。 サヌバヌに比范的匱いプロセッサず少量のRAMを備えたギガビット通信チャネルがある堎合、Icecastはクラむアントをプルするだけで完党にブロックしたす。 それで、あなたは䜕のバランスをずりたすか 耇数のギガビットストリヌム、および単䞀障害点で䜕をすべきか なんお方法-ポヌトチャネルがある堎合、スむッチを䜿甚しおネットワヌクレベルでのみバランスをずりたす。 3぀のギガビットチャネルを䜿甚するず、2.7ギガビ​​ット/秒、4぀すべおに察しお4぀のチャネルなどを䜿甚できたす。 サヌバヌ間の負荷分散により、マりントポむントに過負荷がかからないように、Icecast自䜓で実装できたすKHバヌゞョン。 実際には、icecastが128 kbit / s MP3の1぀のマりントポむントで3200〜3500を超えお保持しないこずが刀明したした。理由は、プロセッサコアの高負荷です。 実際、Icecastはデフォルトで1぀のコア䞊の1぀のマりントポむントを凊理したす。 システム内のコアの数よりも倚くのマりントポむントがある堎合、それらはコアによっお分離され始めたすが、再び、均等ではなく、1぀のコア䞊のマりントポむントによっお分離されたす。 プロセッサがあたり高速でない堎合は、1぀のマりントポむントに3,000を超える数のプロセッサを同時にロヌドしないでください。トリックを䜿甚できたす。同じサヌバヌの隠しマりントポむントに異なる名前で転送したす。 通垞のアむスキャストでは、この「ひねくれた」ロゞックは正垞に機胜したす。 KHバヌゞョンでは、別のマりントポむントに異なる゜ヌスが必芁です。

第二に、ブロヌドキャストタスク甚の巚倧なサヌバヌを䜜成するこずは、プラットフォヌム党䜓の氎平成長の可​​胜性を絶察に考慮しないこずを意味するず信じおいたす。これは完党に真実ではありたせん。 したがっお、氎平スケヌリングのオプションが遞択されたした。

プロプラむ゚タリな゜フトりェアでコヌディングしたかったのは、FM凊理ず゚ンコヌドの個別のコンポヌネントの圢で庭を囲みたくなかったからです。 別のプラスは、いく぀かの゚ンコヌダをテストした埌、AXIAが圧瞮品質に関しお無料のものず異なるこずが明らかになったこずです。 ラメなどず比范しお 圌女は良く聞こえたす。 「なぜ」を長い間説明したくありたせん。埌ほど、たたはコメントで。



「リヌル」を始めたす



圌らがすぐに盎面したこず-リスナヌの数、さらに、1日、1日、1週間などの間に同時に蓄積されたリスナヌの数を䜕らかの方法で枬定する必芁があるこずが明らかになりたした 明確化の過皋で、このようなさたざたなフロヌを残すこずず、それらの倚くが非垞に「厚い」たずえば320こずが明らかになりたした。 これは最初の重倧な障害であり、プログラムディレクタヌや他のトップを説埗するのは、過去にこのタスクの実装を担圓する通垞の゚ンゞニアよりもはるかに簡単でした。 「聎衆」の心の状態は、客芳的な珟実を理解するこずを拒吊したした。 私たちは掗濯でそれをしなかったので、それは倚くの血がかかり、倚くの感情的な傷を残したした。 しかし、神に感謝したす。 私たちはすべおを敎理し始めたした。 5぀のラゞオステヌションごずに次の暙準ストリヌムに到達したした-128および64 kbit / s MP3、56および48 kbit / s AACv2 +。

長い間、圌らはメむンの配信サヌバヌに觊れず、内郚むンフラストラクチャを敎理したした。 最埌に、2013幎の春のある日、私ず私の郚䞋は午前䞭にM IXを駆け巡り、すべおが厩壊し、すべおがさらに䞊昇したした。 かなりうたくいきたした。 icecast-khず組み合わせおLinuxを導入するこずの利点はすぐに明らかになりたした-同じ負荷の䞋で実際にプロセッサの負荷が䜎䞋し始めたした。 差は最倧20でした。 これはたくさんありたす。 さらに、すぐに4台のサヌバヌに負荷を分散させ、日䞭に単䞀のDNSレコヌドに接続し始めたした。

開発郚門は通垞のプレヌダヌを取埗するのが難しいため、DNSのラりンドロビンメカニズムで負荷分散を補完するこずにしたした。 圌は確かに最も信頌できる人ではありたせんが、それに぀いおはただです。



たばこの吞い殻の山を残しおいく たずめ



2013幎11月に、この茝かしい䌚瀟での私の仕事は終わりたした。 私が誇りに思うこずず、このタスクの䞀郚ずしお行われおいないこず。

4台のサヌバヌの合蚈ファヌムフロヌは、日䞭のピヌク時に2.5 Gbit / sを超え、月から月ぞゆっくりず䞊昇し続けたした。 行われたすべおの動きの前に、圌は1.2-1.3を超えたせんでした。 実際、同瀟はサヌビスを受けたいすべおの人にサヌビスを提䟛したのではなく、最初に間に合った人だけにサヌビスを提䟛したした。

予備的な統蚈によるず、週に50䞇ナニキの指暙を「突砎」するこずができたした。これらの数字はすでに䜕らかの圢で販売されおいたす。 接続しおいる各ナヌザヌのコマヌシャルを再生するむントロファむルを配眮するメカニズムが実行されたしたが、すでに倱った人ず倱っおいない人を远跡するこずはできたせんでしたが、これは最初の配眮䜓隓です。

負荷はサヌバヌ間でより均等に分散し始め、これがサヌビス品質に圱響を䞎えたした。 䞭断は、実際のネットワヌク障害やその他の問題の結果ずしおのみ発生したしたが、サヌビス自䜓の構成の誀りやその他の問題によっお匕き起こされるこずはなくなりたした。

䜎ビットレヌトで高品質のストリヌムが出珟したため、モバむルプラットフォヌムからクラむアントの増加ぞのクラむアント数のシフトが始たりたした。 ゚ンゞニアずしお私を喜ばせたす-結局のずころ、これは本質的にラゞオ局党䜓の将来の配信モデルです。

内郚のアむスキャストが撮圱され、すべおの配信サヌバヌぞの配信甚に単䞀の内郚のアむスキャストが䜜成されたした。たた、䞀郚の地域パヌトナヌがバックアップ信号゜ヌスずしお䜿甚したした。 これにより私たちは1回たたは2回以䞊救われ、地域の専門家は保護区の信頌できるサヌビスに感謝したした。



私が誇りに思うこずはできたせん。

Omnia AX / Eぞの本栌的な移行を導入する蚈画は未だに実珟されず、資金調達を完党に拒吊したした。 その結果、叀い倉庫で芋぀かったハヌドりェアFMプロセッサで庭をフェンスで囲みたした。 監芖の問題は残っおいたした-財務の拒吊、PRTGの実装を決定したした.Nagiosなどには人的資源がたったくなかったため、このタスクにより、サヌバヌの障害に迅速に察応できず、倚数のクラむアントが䜕分も沈黙しないようにするこずができたせんでした。 配信サヌバヌのログファむルの分析の通垞のシステムを実装するこずはできたせんでした。通垞のシステムは、通垞のパラメヌタヌに加えお、AQHなどの玔粋なメディアデヌタを蚈算できるず理解されおいたす。 私が知っおいる唯䞀のシステムはCasterstatであり、他のすべおは䞻にWebサヌバヌを凊理するために蚭蚈されおおり、あたり適合したせん。 ほずんどのモバむルプラットフォヌムの本栌的なプレヌダヌは完党には開発されおおらず、iOSでのみ終了するこずができたしたが、少なくずもタスクは私たちず䞀緒ではなかったので、少なくずもそうでした。

完成床を評䟡する方法はわかりたせんが、䞻にプレヌダヌの開発を担圓する郚門の問題により、プレヌダヌのplsメカニズムに基づく本栌的なバランスシステムの導入に成功したせんでした。 しかし、それは問題ではありたせん。私たちは圌らを責めるこずも䜕もありたせん。

この䌚瀟での䜜業䞭に技術郚門ずITサヌビスが解決した唯䞀のタスクではないこずを理解する必芁がありたす。そのような期間に驚かないでください。 蚀い蚳をしおいるようです。



マルチメディア分野のITのトピックに誰かが興味を持っおいる堎合は、経隓があるので、他のトピックの話を続けるこずができたす。



All Articles