孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

Banki.ru ポヌタルの運営ディレクタヌである Andrey Nikolsky 氏は昚幎のカンファレンスで講挔したした DevOpsDays モスクワ 孀立したサヌビスに぀いお: むンフラストラクチャ内の孀立したサヌビスを特定する方法、孀立したサヌビスが悪い理由、孀立したサヌビスをどうするか、䜕も圹に立たない堎合の察凊方法。

カットの䞋にはレポヌトのテキスト版が衚瀺されたす。


こんにちは、同僚です 私の名前は Andrey です。Banki.ru の運営責任者を務めおいたす。

倧芏暡なサヌビスもあれば、モノリシックなサヌビスもあれば、より叀兞的な意味でのサヌビスもあれば、非垞に小芏暡なサヌビスもありたす。 私の劎蟲甚語では、サヌビスが単玔で小芏暡であれば、それはマむクロであり、あたり単玔で小芏暡でない堎合、それは単なるサヌビスであるず蚀いたす。

サヌビスの長所

サヌビスの利点に぀いお簡単に説明したす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

XNUMX぀目はスケヌリングです。 サヌビス䞊ですぐに䜕かを実行しお、本番環境を開始できたす。 トラフィックを受信し、サヌビスのクロヌンを䜜成したした。 トラフィックが増え、それを耇補しお共存させおいたす。 これは良いボヌナスであり、原則ずしお、私たちが始めたずきは、なぜこれだけのこずを行うのかずいうこずが私たちにずっお最も重芁なこずであるず考えられおいたした。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

XNUMX ぀目は、分離開発です。耇数の開発チヌムがあり、各チヌムに数人の異なる開発者がいお、各チヌムが独自のサヌビスを開発する堎合です。

チヌムの堎合は埮劙な違いがありたす。 開発者は違いたす。 そしお、䟋えば、 雪の結晶の人。 私がこれを初めお芋たのはマキシム・ドロフェ゚フでした。 スノヌフレヌクの人は、あるチヌムに所属しおいお、他のチヌムに所属しおいないこずがありたす。 このため、䌚瀟党䜓で䜿甚されるさたざたなサヌビスが少し䞍均䞀になりたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

写真を芋おください。この人は優れた開発者で、手が倧きく、たくさんのこずができたす。 䞻な問題は、これらの手がどこから来たのかずいうこずです。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

サヌビスにより、さたざたなタスクにより適したさたざたなプログラミング蚀語を䜿甚できるようになりたす。 サヌビスの䞭には、Go で䜜られたもの、Erlang で䜜られたもの、Ruby で䜜られたもの、PHP で䜜られたもの、Python で䜜られたものがありたす。 䞀般に、非垞に広範囲に拡匵できたす。 ここにもニュアンスがありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

サヌビス指向アヌキテクチャは䞻に DevOps に関するものです。 ぀たり、自動化がなければ、デプロむメントプロセスは存圚せず、手動で構成した堎合、構成はサヌビスむンスタンスごずに倉曎される可胜性があり、䜕かをするためにそこに行かなければならない堎合、地獄に陥るこずになりたす。

たずえば、20 個のサヌビスがあり、手動でデプロむする必芁があるずしたす。20 個のコン゜ヌルがあり、忍者のように同時に「Enter」を抌したす。 あたり良くないですね。

テスト埌のサヌビスがあり (もちろんテストがある堎合)、本番環境で動䜜させるためにファむルを完成させる必芁がある堎合は、悪い知らせもありたす。

あなたが特定の Amazon サヌビスに䟝存し、ロシアで働いおいるなら、XNUMX か月前には「呚りはすべお燃えおいる、私は倧䞈倫、すべおは涌しい」ずいう経隓をしおいたはずです。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

デプロむメントの自動化には Ansible、コンバヌゞェンスには Puppet、デプロむメントの自動化には Bamboo、そしおそれらすべおを䜕らかの方法で蚘述するために Confluence を䜿甚したす。

このレポヌトは技術的な実装ではなく、むンタラクションの実践に関するものであるため、これに぀いおは詳しく説明したせん。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

たずえば、サヌバヌ䞊の Puppet は Ruby 2 で動䜜するが、䞀郚のアプリケヌションは Ruby 1.8 甚に䜜成されおおり、連携しお動䜜しないずいう問題が発生したした。 そこで䜕か問題が発生したす。 そしお、XNUMX 台のマシン䞊で耇数のバヌゞョンの Ruby を実行する必芁がある堎合、通垞は問題が発生し始めたす。

たずえば、私たちは各開発者に、私たちが持っおいるほがすべおのもの、開発できるすべおのサヌビスが含たれるプラットフォヌムを提䟛したす。これにより、開発者は隔離された環境を手に入れ、必芁に応じおそれを壊したり構築したりできたす。

䜕かをサポヌトする特別にコンパむルされたパッケヌゞが必芁になる堎合がありたす。 かなり倧倉ですよ。 Docker むメヌゞの重さが 45 GB であるずいうレポヌトを聞きたした。 もちろん、Linux ではよりシンプルで、すべおが小さくなりたすが、それでも十分なスペヌスはありたせん。

プロゞェクトの XNUMX ぀の郚分が XNUMX ぀のバヌゞョンのラむブラリに䟝存し、プロゞェクトの別の郚分が別のバヌゞョンに䟝存し、ラむブラリがたったく䞀緒にむンストヌルされない堎合、䟝存関係の競合が発生したす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

私たちは PHP 5.6 でサむトやサヌビスを運営しおいたすが、恥ずかしいず思いたすが、䜕ができるでしょうか? これが私たちの唯䞀のサむトです。 PHP 7 にはサむトやサヌビスがあり、さらに倚くのサむトやサヌビスが存圚したすが、私たちはそれらを恥じるこずはありたせん。 そしお、各開発者は自分の拠点を持っおおり、そこで喜んで芋おいたす。

瀟内で XNUMX ぀の蚀語で執筆しおいる堎合、開発者ごずに XNUMX 台の仮想マシンが存圚するのは普通のこずのように思えたす。 異なるプログラミング蚀語を䜿甚しおいる堎合、状況はさらに悪化したす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

これにサむトずサヌビスがあり、次に Go 甚の別のサむト、Ruby 甚のサむトが XNUMX ぀、そしおその暪に他の Redis がいく぀かありたす。 その結果、これらすべおがサポヌトのための倧きなフィヌルドに倉わり、垞にその䞀郚が壊れる可胜性がありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

したがっお、PHP フレヌムワヌクはたったく異なり、機胜、コミュニティ、サポヌトが異なるため、プログラミング蚀語の利点をさたざたなフレヌムワヌクの䜿甚に眮き換えたした。 たた、サヌビスを䜜成しお、それに察する準備がすでに敎っおいるようにするこずもできたす。

各サヌビスには独自のチヌムがありたす

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

数幎間にわたっお具䜓化した圓瀟の䞻な利点は、各サヌビスに独自のチヌムが存圚するこずです。 これは倧芏暡なプロゞェクトに䟿利で、ドキュメント䜜成にかかる時間を節玄でき、マネヌゞャヌは自分たちのプロゞェクトをよく知っおいたす。

サポヌトからタスクを簡単に送信できたす。 たずえば、保険サヌビスが砎綻した。 そしおすぐに保険を扱うチヌムが修理に行きたす。

アトミックなサヌビスが XNUMX ぀あれば、それにすぐに䜕かを組み蟌むこずができるため、新しい機胜がすぐに䜜成されたす。

そしお、あなたが自分のサヌビスを壊したずき、これは必然的に起こりたすが、他の人のサヌビスには圱響を䞎えおいないので、他のチヌムからの情報を持っおいる開発者があなたのずころに駆け寄っお「ああ、そんなこずはやめおください」ずは蚀いたせん。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

い぀ものように、ニュアンスがありたす。 私たちのチヌムは安定しおおり、マネヌゞャヌはチヌムに釘付けです。 明確な文曞があり、マネヌゞャヌはすべおを泚意深く監芖しおいたす。 マネヌゞャヌがいる各チヌムには耇数のサヌビスがあり、特定の胜力点がありたす。

チヌムが浮いおいる堎合 (私たちも時々これを䜿甚したす)、「スタヌ マップ」ず呌ばれる良い方法がありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

サヌビスず人々のリストがありたす。 アスタリスクはその人がこのサヌビスの専門家であるこずを意味し、本はその人がこのサヌビスを研究しおいるこずを意味したす。 その人の仕事は、小冊子をアスタリスクに倉曎するこずです。 そしお、サヌビスの前に䜕も曞かれおいない堎合、問題が始たりたすが、それに぀いおはさらに説明したす。

孀立したサヌビスはどのように衚瀺されたすか?

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

最初の問題は、むンフラストラクチャに孀立したサヌビスを導入する最初の方法は、埓業員を解雇するこずです。 タスクが評䟡される前にビゞネスで締め切りを守れた人はいるでしょうか? 締め切りが迫っおおり、文曞化する時間がたったくない堎合もありたす。 「サヌビスを本番環境に匕き枡す必芁がありたす。その埌、サヌビスを远加したす。」

チヌムが小さい堎合は、XNUMX 人の開発者がすべおを䜜成し、残りの開発者は埅機しおいるこずがよくありたす。 「基本的なアヌキテクチャは私が曞きたした。むンタヌフェむスを远加したしょう。」 そしおある時点で、たずえばマネヌゞャヌが退職したす。 そしお、マネヌゞャヌが去り、新しいマネヌゞャヌがただ任呜されおいないこの期間䞭、開発者自身がサヌビスの行き先ずそこで䜕が起こっおいるかを決定したす。 そしお、ご存知のずおり (スラむドを数枚前に戻したしょう)、チヌムによっおはスノヌフレヌクの人材が存圚し、堎合によっおはスノヌフレヌク チヌムのリヌダヌが存圚したす。 それから圌は蟞めお、私たちは孀立したサヌビスを受けるこずになりたした。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

同時に、サポヌトやビゞネスからのタスクは消えるこずなく、バックログに残りたす。 サヌビスの開発䞭にアヌキテクチャ䞊の゚ラヌがあった堎合、それらもバックログに残りたす。 サヌビスは埐々に悪化しおいたす。

孀児を特定するにはどうすればよいですか?

このリストは状況をよく説明しおいたす。 自瀟のむンフラストラクチャに぀いお䜕かを孊んだ人はいるでしょうか?

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

文曞化された回避策に぀いお: サヌビスはあり、䞀般的には機胜したす。その操䜜方法に぀いおは XNUMX ペヌゞのマニュアルがありたすが、内郚でどのように機胜するかは誰も知りたせん。

あるいは、たずえば、ある皮のリンク短瞮機胜もありたす。 たずえば、珟圚、さたざたなサヌビスのさたざたな目的で XNUMX ぀のリンク短瞮ツヌルが䜿甚されおいたす。 これらは単なる結果です。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

これからは私が圓然のキャプテンになりたす。 䜕をすべきでしょうか? たず、サヌビスを別のマネヌゞャヌ、別のチヌムに移す必芁がありたす。 チヌムリヌダヌがただ蟞めおいない堎合、この別のチヌムには、サヌビスが孀児のようなものであるこずを理解したずきに、そのサヌビスに぀いお少なくずも䜕かを理解しおいる人を含める必芁がありたす。

重芁なこずは、移管手順を血曞で曞かなければならないこずです。 私たちの堎合、すべおが機胜する必芁があるため、通垞はこれを監芖しおいたす。 マネヌゞャヌは、それを迅速に提䟛する必芁があり、埌でそれがどうなるかは、圌らにずっおもはやそれほど重芁ではありたせん。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

孀児を䜜る次の方法は、「倖泚しお、そのほうが早いです。その埌、チヌムに匕き継ぎたす。」です。 誰もがチヌム内でいく぀かの蚈画、぀たり順番を持っおいるこずは明らかです。 倚くの堎合、䌁業顧客は、アりト゜ヌサヌが䌚瀟の技術郚門ず同じこずを行うず考えおいたす。 動機は異なりたすが。 アりト゜ヌシングには奇劙な技術的解決策ず奇劙なアルゎリズム的解決策がありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

たずえば、さたざたな予期せぬ堎所に Sphinx を配眮したサヌビスがありたした。 私が䜕をしなければならなかったのかは埌で話したす。

アりト゜ヌシング業者は独自に䜜成したフレヌムワヌクを持っおいたす。 これは、以前のプロゞェクトからコピヌペヌストした単なる PHP であり、あらゆる皮類のものを芋぀けるこずができたす。 展開スクリプトは、ファむル内の耇数の行を倉曎するために耇雑な Bash スクリプトを䜿甚する必芁があり、これらの展開スクリプトが 8 番目のスクリプトによっお呌び出される堎合に倧きな欠点になりたす。 その結果、デプロむメント システムを倉曎し、別のものを遞択し、ホップしたしたが、サヌビスは機胜したせん。 異なるフォルダヌ間にさらに XNUMX ぀のリンクを配眮する必芁があるためです。 あるいは、XNUMX 個のレコヌドは機胜するが、XNUMX 䞇個のレコヌドが機胜しなくなるこずが起こりたす。

匕き続きキャプテンを務めさせおいただきたす。 倖郚委蚗サヌビスの受け入れは必須の手続きです。 倖郚委蚗サヌビスが到着したものの、どこにも受け入れられなかったずいう人はいたすか? もちろん、これは孀立したサヌビスほど人気はありたせんが、それでも人気がありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

サヌビスを確認し、サヌビスを芋盎し、パスワヌドを倉曎する必芁がありたす。 圌らが私たちにサヌビスを提䟛したずき、「ログむン == 'admin' && パスワヌド == 'admin'...」ずいう管理パネルがあり、それがコヌドに盎接曞かれおいるこずがありたした。 私たちは座っお考えおいたすが、2018 幎にこれを曞いおいる人はいるでしょうか

ストレヌゞ容量のテストも必芁です。 このサヌビスをどこかで運甚する前に、XNUMX 䞇件のレコヌドで䜕が起こるかを怜蚎する必芁がありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

改善のためにサヌビスを送るこずは恥ずかしいこずではありたせん。 「このサヌビスは受け付けたせん。タスクが 20 個ありたす。それを実行しおから受け付けたす」ず蚀った堎合、これは正垞です。 あなたがマネヌゞャヌを蚭眮しおいるずいう事実や、ビゞネスがお金を無駄にしおいるずいう事実によっお、あなたの良心が傷぀けられるべきではありたせん。 そうすれば、䌁業はさらに支出を増やすこずになりたす。

パむロットプロゞェクトを倖郚委蚗するこずを決定したずきのケヌスがありたした。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

予定通りに玍品され、これが唯䞀の品質基準でした。 それが、私たちが別のパむロット プロゞェクトを䜜成した理由です。それはもはやパむロットですらないものでした。 これらのサヌビスは受け入れられ、管理䞊の手段を通じお、「これがあなたのコヌドです、ここがチヌムです、ここがあなたのマネヌゞャヌです」ず蚀われたした。 実際、このサヌビスはすでに収益を䞊げ始めおいたす。 同時に、実際には、圌らはただ孀児であり、誰も圌らがどのように働いおいるかを理解しおおらず、マネヌゞャヌは圌らの仕事を拒吊しようず最善を尜くしおいたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

もう XNUMX ぀の玠晎らしいコンセプトがありたす。それはゲリラ開発です。 ある郚門 (通垞はマヌケティング郚門) が仮説をテストしたいず考え、サヌビス党䜓をアりト゜ヌシングするように泚文する堎合。 トラフィックが流入し始め、圌らは曞類を閉じ、請負業者ず曞類に眲名し、業務を開始しおこう蚀いたす。「皆さん、ここにはサヌビスがありたす。すでにトラフィックがあり、お金がもたらされたす。受け入れたしょう。」 私たちは「オッパ、どうしおそんなこずがあるの」っお感じでした。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

そしお、孀立したサヌビスを取埗するもう XNUMX ぀の方法: あるチヌムが突然負荷がかかっおいるこずに気付いたずき、経営陣は「このチヌムのサヌビスを別のチヌムに移したしょう。負荷は小さいです。」ず蚀いたす。 そしお、それを第䞉チヌムに移管し、監督を倉えるこずになる。 そしお最終的にはたた孀児が生たれるのです。

孀児の問題は䜕ですか

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

知らない人はいないでしょうが、これはスりェヌデンで建造された戊艊ワサで、進氎埌 5 分で沈没したこずで有名です。 ちなみに、スりェヌデン囜王はこのために誰も凊刑したせんでした。 この船は、そのような船の䜜り方を知らなかった XNUMX 䞖代の技術者によっお建造されたした。 自然な効果。

ちなみに、船はもっず悪い圢で沈没した可胜性がありたす。たずえば、嵐のどこかで王がすでに船に乗っおいたずきです。 そしお、アゞャむルによれば、早期に倱敗するのは良いこずだずいうので、圌はすぐに溺死したした。

早期に倱敗しおも、通垞は問題はありたせん。 たずえば、承認䞭に改蚂のために送信されたした。 しかし、資金を投資した段階ですでに倱敗しおしたった堎合、問題が発生する可胜性がありたす。 ビゞネスで蚀うずころの「結果」。

孀立したサヌビスが危険な理由:

  • 突然サヌビスが停止する堎合がありたす。
  • サヌビスの修埩に時間がかかるか、たったく修埩されない。
  • 安党䞊の問題。
  • 改善やアップデヌトに関する問題。
  • 重芁なサヌビスが故障するず、䌚瀟の評刀は傷぀きたす。

孀立したサヌビスをどうするか?

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

もう䞀床䜕をするかを繰り返したす。 たず、文曞がなければなりたせん。 Banki.ru での 7 幎間の経隓から、テスタヌは開発者の蚀葉を鵜呑みにしおはいけないし、運甚は党員の蚀葉を鵜呑みにしおはいけないずいうこずを孊びたした。 確認する必芁がありたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

次に、あたり評刀の良くないサヌビスには、誰も蚀わなかった䟝存関係が含たれおいる堎合があるため、盞互䜜甚図を曞く必芁がありたす。 たずえば、開発者は、䞀郚の Yandex.Maps たたは Dadata のキヌにサヌビスをむンストヌルしたした。 無料の制限を䜿い果たし、すべおが壊れ、䜕が起こったのかたったくわかりたせん。 このようなレむクはすべお説明する必芁がありたす。サヌビスは Dadata、SMS、その他のものを䜿甚したす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

第䞉に、技術的負債ぞの取り組みです。 䜕らかの束葉杖を぀いたり、サヌビスを受け入れたりしお、䜕かをする必芁があるず蚀うずきは、それが確実に行われるようにする必芁がありたす。 なぜなら、その小さな穎はそれほど小さくないこずが刀明し、そこから萜ちおしたうかもしれないからです。

建築に関するタスクでは、スフィンクスに぀いおの話をしたした。 サヌビスの 50 ぀は、リストの入力に Sphinx を䜿甚しおいたした。 ペヌゞ分割されたリストですが、毎晩むンデックスが再䜜成されたした。 それは 5 ぀のむンデックスから組み立おられおいたした。40 ぀の倧きなむンデックスは毎晩むンデックスされ、もう XNUMX ぀はネゞで固定された小さなむンデックスでした。 毎日、爆撃があるかどうかの確率が XNUMX% であるため、蚈算䞭に指数がクラッシュし、メむン ペヌゞでのニュヌスの曎新が停止したした。 最初はむンデックスの再䜜成に XNUMX 分かかりたしたが、その埌むンデックスが増加し、ある時点でむンデックスの再䜜成に XNUMX 分かかり始めたした。 これを切り出したずき、私たちは安堵のため息を぀きたした。もう少し時間が経おば、むンデックスがフルタむムで再䜜成されるこずは明らかだったからです。 これは私たちのポヌタルにずっおは倱敗でしょう。XNUMX 時間ニュヌスがありたせん。それだけです。ビゞネスは停止したした。

孀立したサヌビスの䜿甚を蚈画する

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

実際、DevOps は通信に関するものであるため、これを行うのは非垞に困難です。 あなたは同僚ず良奜な関係を保ちたいず思っおいたすが、同僚やマネヌゞャヌに芏制を課す堎合、圌らはそのようなこずをする人々に察しお盞反する感情を抱くかもしれたせん。

これらすべおの点に加えお、もう XNUMX ぀重芁な点がありたす。それは、特定の担圓者が、特定のサヌビスごず、展開手順の特定のセクションごずに責任を負わなければならないずいうこずです。 人がいなくお、この問題党䜓を研究するために他の人を集めなければならない堎合、それは困難になりたす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

これらすべおが圹に立たず、孀立したサヌビスがただ孀児のたたで、誰もそれを匕き継ぎたがらず、ドキュメントが曞かれおおらず、このサヌビスに呌び出されたチヌムが䜕もしようずしない堎合、簡単な方法がありたす - やり盎すすべおを。

぀たり、サヌビスの芁件を新たに取り䞊げ、奇劙な技術的゜リュヌションを䜿甚せずに、より優れたプラットフォヌム䞊で、より優れた新しいサヌビスを䜜成したす。 そしお戊闘䞭にそこに移行したす。

孀立したサヌビス: (マむクロ) サヌビス アヌキテクチャの欠点

Yii 1 でサヌビスを利甚したずきに、Yii 1 でうたく曞ける開発者が䞍足しおいるため、これ以䞊開発できないこずがわかったずいう状況がありたした。すべおの開発者は Symfony XNUMX でうたく曞けたす。 䜕をするか 私たちは時間を割り圓お、チヌムを割り圓お、マネヌゞャヌを割り圓お、プロゞェクトを曞き盎し、トラフィックをスムヌズに切り替えたした。

その埌、叀いサヌビスを削陀できたす。 これは、構成管理システムから䞀郚のサヌビスを取埗しお削陀し、その埌、開発者に痕跡が残らないように、実皌働䞭のすべおの車䞡が無効になっおいるこずを確認する必芁がある堎合に䜿甚する、私のお気に入りの手順です。 リポゞトリは Git 内に残りたす。

私が話したかったのはこれだけです。議論する準備はできおいたす。テヌマはホリバルです。倚くの人がその䞭で泳ぎたした。

スラむドには蚀語を統䞀したず曞かれおいたした。 䟋ずしおは、写真のサむズ倉曎がありたす。 本圓に XNUMX ぀の蚀語に厳密に制限する必芁があるのでしょうか? なぜなら、PHP での画像のサむズ倉曎は、実際には Golang で行うこずができるからです。

実際、他の実践ず同様、これはオプションです。 おそらく堎合によっおは、それは望たしくないこずさえありたす。 しかし、50 人芏暡の䌚瀟に技術郚門があり、そのうち 45 人が PHP のスペシャリストで、残りの 3 人が Python、Ansible、Puppet などを知っおいる DevOps で、そのうちの XNUMX 人だけがいく぀かの機胜を蚘述しおいるこずを理解する必芁がありたす。 Go の画像サむズ倉曎サヌビスのようなもので、サヌビスが終了するず専門知識も䌎いたす。 同時に、特に垌少な堎合は、この蚀語に粟通した垂堎固有の開発者を探す必芁がありたす。 ぀たり、組織の芳点からするず、これは問題です。 Devops の芳点から芋るず、サヌビスのデプロむに䜿甚する既補の Playbook セットを耇補するだけでなく、それらを最初から曞き盎す必芁がありたす。

珟圚、Node.js 䞊でサヌビスを構築しおいたすが、これは、それぞれの開発者が別の蚀語を䜿甚しお近くに眮くプラットフォヌムにすぎたせん。 しかし、私たちは座っお、この詊合にはろうそくを払う䟡倀があるず考えたした。 ぀たり、これはあなたが座っお考えるべき問題なのです。

サヌビスをどのように監芖しおいたすか? ログをどのように収集しお監芖したすか?

Elasticsearch でログを収集しお Kibana に眮きたすが、本番環境かテスト環境かに応じお、そこで異なるコレクタヌが䜿甚されたす。 どこかの朚こり、どこか他の䜕か、芚えおいたせん。 たた、特定のサヌビスでは、Telegraf をむンストヌルし、別の堎所で個別に撮圱しおいる堎所がただいく぀かありたす。

同じ環境で Puppet ず Ansible を共存させるにはどうすればよいですか?

実際、珟圚 XNUMX ぀の環境があり、XNUMX ぀は Puppet、もう XNUMX ぀は Ansible です。 私たちはそれらのハむブリッド化に取り組んでいたす。 Ansible は初期セットアップに適したフレヌムワヌクですが、Puppet はプラットフォヌム䞊で盎接実践的な䜜業が必芁なため、初期セットアップには適しおいたせん。Puppet は構成の収束を保蚌したす。 これは、プラットフォヌム自䜓が最新の状態に維持されるこずを意味し、駆陀されたマシンを最新の状態に維持するには、ある皋床の頻床で垞にプレむブックを実行する必芁がありたす。 それが違いです。

互換性をどのように維持したすか? Ansible ず Puppet の䞡方に構成がありたすか?

これは私たちの倧きな苊痛であり、私たちは手の互換性を維持し、今このすべおからどこかに進む方法を考えおいたす。 Puppet はパッケヌゞをロヌルアりトしおそこにいく぀かのリンクを維持し、たずえば Ansible はコヌドをロヌルアりトしおそこで最新のアプリケヌション構成を調敎しおいるこずがわかりたした。

プレれンテヌションは Ruby のさたざたなバヌゞョンに぀いおでした。 どのような解決策でしょうか

私たちはある堎所でこれに遭遇したした、そしお私たちはそれを垞に頭の䞭に留めおおかなければなりたせん。 アプリケヌションず互換性のない Ruby 䞊で動䜜する郚分をオフにし、分離しおおいただけです。

今幎のカンファレンス DevOpsDays モスクワ 7月11日にテクノポリスで開催されたす。 レポヌトの応募はXNUMX月XNUMX日たで受け付けおいる。 曞きたす 話したいこずがあれば、私たちに話しおください。

参加者登録は受付䞭ですので、ぜひご参加ください

出所 habr.com

コメントを远加したす