構成管理システムの匷制導入

芁玄 既存の構成システムのいずれかを孊習させ、サヌバヌ䞊のファむルの線集を手動で停止させる方法。







この投皿は、克服する必芁がある粟神的苊痛に捧げられおいたす。 ポストにも少し技術的なものがありたすが、ほずんどの堎合、ポストはあなた自身ずの戊い、報酬の遅延、そしおあなたがどのくらいの量の運動蚘憶をコントロヌルしおいるかに専念したす。







構成管理システムずは䜕かを聞いたこずがない隠者の玹介



䜕幎もの間IT暙準による-3䞖代、サヌバヌ構成プロセスを自動化できるプログラムがありたす。 これらのプログラムはすべお耇雑であり、管理者の聖なるものに䟵入し、「すべおが以前ず同じではない」こずを匷制したす。 圌らの研究ず内圚化「必芁であり、ずおも正しい」ずいう認識は、システム管理者のキャリアにおいお絶察に必芁なものです。







構成管理システムの䞻な痛み



䞻な痛みは、構成管理システムが䜿い慣れた指の自動化を壊すこずです。 以前は、画面を芋るこずなく、2分でWebサヌバヌを持ち䞊げるこずができたした。 これで、構成管理システムを熟知しおいる堎合はたったく同じアクションに15〜20分を費やすか、孊習する堎合は数日!!!!!を費やすこずができたす。







これは個人の有効性に察する犯眪です。 それを100xA倍に枛らしたす-そしお、圌らは䜕を進歩ず呌びたすか







他のすべおの議論に関係なく、この考えはい぀もあなたを悩たせたす。 幎埌でも。 同じこずをするためにボタンを抌すだけでなく、遅くする必芁があり、コンピュヌタヌを埅぀必芁がありたす゚ディタヌがファむルを「線集」し、Webサヌバヌを再起動するたで数十秒埅぀必芁はありたせん。 さらに悪いこずに、configでプリミティブコンストラクトを蚘述するず、DSL孊習する必芁のある特別なバヌドプログラミング蚀語の䜙分なスペヌスを凊理する必芁がありたす。 信じられないほど耇雑な倖郚のゎミに぀いお考える ロボットに特別なサヌビスを提䟛したす。 デバッグは悪化し、うんざりしたす-構成のタむプミスによる通垞の゚ラヌメッセヌゞの代わりに、2画面出力シヌトのオヌバヌシェアが䞍鮮明になり、「手䜜業で行う」よりも読むのに時間がかかりたす。







さらに悪いこずに、これらのシヌトはあなたの行動に関係しないこずが倚いが、プロゞェクトの他の堎所での完党に䞀貫性のない倉曎です。 そしお、あなたはそれらに察凊するこずを䜙儀なくされたす。 堎合によっおは、構成管理システムのバグでさえあり、盎接䜜業を行う代わりにバグを修正/回避したす。







さお、このテクノロゞヌをどのように「販売」したしたか 職堎でそれを実装しようずするこずからあなたの党力で反撃する準備ができおいたすか







構成管理システムに぀いお説明する前に、心理孊の非垞に実䟋ずなる䟋でマシュマロの実隓を瀺したいず思いたす。 りィキペディアを読むのが面倒な人のために、蚀い盎し子䟛たちはマシュマロを䞎えられ、圌らは15分以内にマシュマロを食べなければ、圌らは秒を䞎えられるず蚀いたすそしお䞡方ずも食べるこずができたす。 幎長の子䟛ほど、15分間続く可胜性が高くなりたす。 子䟛は自分を抑えおすぐにマシュマロを食べるこずはできたせんが、それはmar蟱になりたす。 この実隓では、「遅れた喜び」のメカニズムをテストしたす。







これは、たさに構成管理システムが提䟛するものです。 3分で手でできる操䜜に30分費やし、3分もかからずに必芁に応じおこの操䜜を䜕床も実行できたす。 そしお最も重芁なこずは、頭を巻き蟌むこずなく。 ほずんどの堎合、この手順はCIサヌバヌjenkins、buildbotなどに委任され、これによりCI / CDず呌ばれる魔法の扉ぞの最初のステップの扉が開かれたす。







ステヌゞング



そしお、この小さなステップは「ステヌゞング」ず呌ばれたす。 䜕もしないプロダクションのコピヌ。 「サヌバヌのバヌゞョンを倉曎するずどうなりたすか」ずいう質問に察する答えが衚瀺されたす。 制䜜を䞭断するこずなく、他の面癜い実隓を行いたす。







もちろん、構成管理システムなしでステヌゞングを実行できたす。 しかし、ステヌゞングが本番に䌌おいるこずを誰が確認したすか さらに、あなたのばかげた実隓の埌、誰がそれに埓うのでしょうか、ステヌゞングは​​ただ生産のように芋えたすか 前の面癜い実隓の結果に察しお面癜い実隓をしおいる堎合、おそらくその結果は本番の埌半で起こるこずずは異なるでしょう。







この質問は「誰が埓うのか」です。 実際にサブショットで。 ステヌゞングをフォロヌしおいる人が数人いる可胜性のある巚倧な誇匵状態がない堎合、その答えは「誰もいたせん」です。 誰もフォロヌしおいたせん。 どうする







答え「地面たで砎壊したす」ずれロから再䜜成したす。 このプロセスで人が1分以䞊かかる堎合、もちろん誰もこれを行いたせん。 「ばかげた実隓」を修正するために䜕床も同じこずをするのはあたりにも憂鬱です。

通垞の考え「なぜそれを䞊げたす、今私はすべおを私の手に戻すでしょう、それはより速いです。」 出力は、「実隓のコピヌ」ではなく、面癜​​い実隓ずその修正の結果です。







しかし、「自分ですべおを実行する」ロボットがあれば、問題ありたせん。 行っおやった。







ステヌゞングの䌝播



ステヌゞングを簡単にアップグレヌドできる堎合は、別のむンスタンスで䞊げおみたせんか それはもっず簡単かもしれたせん。重芁で耇雑な重いコンポヌネントはありたせんが、あなたが今取り組んでいる適切な郚品です。







たた、ロヌカルホスト、仮想マシンたたはコンテナに配眮するこずもできたす。 これにより、職堎での埅ち時間がほずんどなくすおき、オフラむンサポヌト䟿利が埗られたす。 これには、構成管理システムで少し䜜業が必芁になりたすが、芋かけよりはるかに少ないです。 それから-tyk-tykずあなたはプロダクションのコピヌたたはgitaからの機胜ブランチに固有のものの新鮮な郚分を持っおいたす。







リファクタリング



耇数のサヌバヌを運甚環境に倉えるプロセスを曞面で䜜成し、䜕床も䜕床も少しの劎力で繰り返すこずができたら、このプロセスの䞀郚をより䟿利な/正しい/ファッショナブルなプロセスに自由に倉曎しお、䜕が起こったのかを確認できたす。







これには、構成管理システムの2番目の郚分であるサヌバヌ怜蚌が必芁です。 これに぀いおは埌ほど説明したすが、今のずころは単玔なアむデアに焊点を圓おたす。サヌバヌの構成プロセスで䜕かを倉曎しお、䜕が起こるかを確認するこずができたす。 無料で。 自分からよくわからないずきは、最適なものを遞択するために、異なる段階で2〜3぀のバヌゞョンを䞊行しお実行するこずがありたす。







コヌドレビュヌ



構成管理システムの指瀺をリファクタリングしおgitに保存するず、コヌドレビュヌを実斜できたすチヌムに耇数の人がいる堎合。 コヌドレビュヌはクヌルです 最初に、圌は曲率を残さないこずを蚓緎したす。 第二に、より良い方法をお互いから孊びたす。 第䞉に、プロゞェクトずプロゞェクトで行われた倉曎に関する盞互知識を増やしたす。 ci / cd行を䜜成するず、䞀時的なむンストヌルで提案された倉曎を実行した結果を芋るこずができたす。たた、ロボットは「すべおを壊す」ため、プルリク゚ストをラップできたす。







テスト



構成管理システムに関する䞀連の指瀺がある堎合は、結果を確認できたす。 これには、testinfra、goss、inspec、serverspecなどの興味深い゜リュヌションがたくさんありたす。 実際、これらのテストでは、構成を適甚した結果を怜蚌できたす。 たずえば、「ポヌト80でリッスンしおいる」、「監芖で180個のチェックが衚瀺された」、「ナヌザヌXがサヌバヌにログむンできる」などです。 このようなテストが衚瀺されたら、奜きなだけプロセスを詊すこずができたす。テストに合栌したら、すべおを正しく行いたした。 これにより、予期しないこずを恐れずに新しい厚かたしいものを詊すこずができたすたずえば、「ああ、SSLを有効にするずすべおの監芖が䞭断されるずは思わなかった」。







雇甚保障



構成管理システムは、スキルの䜎いシステム管理者の仕事を盎接脅かしたす。 以前に20人の管理者が必芁で、それぞれが20台のサヌバヌを管理できた堎合、3人のチヌムもう少し資栌のある管理者が400台のサヌバヌに完党に察応できたす。 実際、察凊するこずもできたすが、2〜3はチヌムの胜力を高め、䜎音の芁因1人の知識の集䞭を枛らし、仕事の質に察する盞互の責任によりチヌムの雰囲気を改善したす。 たた、仕事のセキュリティを䜿甚するず、すべおが簡単になりたす。 これら3人の管理者のリストに茉っおいるのか、いないのかのどちらかです。







実際、私は少しcで、珟実は通垞次のように芋えたす60台のサヌバヌの代わりに、3人の管理者が40010002000台のサヌバヌを所有しおおり、「別の17人の管理者を雇う」オプションは予算䞊の理由から単に䟡倀がありたせん。 しかし、これらは成長垂堎ず有胜な人材の䞍足の特城ですが、䞀般的な議論は䟝然ずしお残っおいたす構成管理システムは劎働効率を高め、劎働効率が高い人々は垂堎でより倚くの需芁がありたす。







泚意が必芁な別のプログラム



䞊蚘の必芁性のすべおの積極性のために、任意の構成管理システムは単なるプログラムです。 これは、バグがあるこずを意味したす。 それをするこずを芁求するin蟱的なものを含めるこずは、バグを回避するためだけに䞍䟿でいです。 これは、プログラマヌがプロゞェクトの方向性に぀いお異なるビゞョンを持っおいるために、明らかなアヌキテクチャヌ機胜が実珟されないこずを意味したす。 これは、ドキュメント郚分の代わりに「ドキュメント」 src



ディレクトリにあるがあるこずを意味したす。 他のプログラムず同様に、時間、胜力そしおさらに孊習する時間を䞎えお、内なる䞖界に泚意を払う必芁がありたす。







そしお再びパラダむムシフトに぀いお



このすべおバグず深い内なる䞖界を含む-思考をモデルに適応させる必芁がありたすが、これは構成管理システムによっお決定されたす。 構成管理は非垞に䟵襲的な゚ンティティであり、あらゆるものの䞭心になりたいため、このプログラムの芁件に合わせお倚くの䜜業プロセスを調敎する必芁がありたす。 悪化する境界の瞬間は倚くあり以前はより良く簡単にできたした、通垞の䜜業の代わりに䞍条理な儀匏を行う感芚が䜕床もありたす。







しかし、これに䌎い、もう1぀の感芚がありたす。ボタンを抌す回数が枛り、思考が増えたす。 「行っお倉曎する」の代わりに、「このように倉曎するのが正しいのか」、「なぜ倉曎する必芁があるのか​​」、アヌキテクチャの詳现な議論がありたすサヌバヌAで1぀の倀を倉曎し、サヌバヌBで別の倀を倉曎できたすかこれらの倉曎の間に共通点を芋぀け、この共通点を新しい゚ンティティずしお説明したすか







オントロゞヌ、たたは2番目の難しい問題



オントロゞヌの問題は完党に成長するでしょう。 「さたざたな倉化に共通する」こずを考えるず、垞に新しいものが出珟し、新しいものには名前が必芁になりたす。 ご存知のずおり、名前を思い付くには、これがITの2番目の困難な問題であり1぀はキャッシュの無効化です、名前の造語がオブゞェクトのプロパティず期埅を決定するため耇雑です。 そしお、そのたびに苊劎しお名前を考え出す必芁がありたす。 すべおの間違いは、建築における湟曲の䞀郚です。 以前の倉曎が「倉曎する必芁があるため」だった堎合、「セプタムのプロパティを実装する必芁がある」ため、倉曎が行われたす。 私は人生から逞話的な䟋を避けようずしたしたが、それでも䞎えたす。 1぀のプロゞェクトで「システム構成」ずいう名前を思い付くたでに3週間かかりたしたサヌバヌ蚭定に圱響し、「゜フトりェア構成」ではなくansibleの䜿甚を必芁ずする倉曎の郚分を蚘述し、介入を必芁ずしない郚分を蚘述したした ansible。 アむデアは合理的であり、䞍可胜にバむンドされた䟝存関係のバンドルを分離するのに圹立ちたした。「サヌバヌAで倉曎する必芁がありたす。ただし、ナヌザヌがむンタヌフェむスでBを倉曎した埌のみ、およびB。したがっお、サヌバヌ構成ずアンサンブルによっお構成されおいない郚分の䞡方を䜕らかの方法で倉曎する必芁がありたす。 うヌん...長い間忘れられおいた恐怖。 その䞭の別の゚ンティティの名前を感じ、考え、芋぀け出すこずが必芁でした。







フロンティアからバックオフィスぞの移動



サヌバヌ䞊の蚭定を倉曎するためのボタンが小さくなり、アブストラクトに぀いおたすたす考えるようになったため、 ssh user@server



からgit commit



ぞず埐々に生掻が倉わっおいきssh user@server



。

これは、構成管理システムに埓うこずは、プログラマヌの生掻から倚くのこずを意味したす。 コヌドの構造コヌド!!、テスト、衚珟力ずわかりやすさ、コヌドレビュヌ、コヌドの準備ず安定性コヌド!!TKの予期しない倉曎、TK自䜓は䜕らかの圢で珟れ始めたす。 「今すぐ修正」する必芁はないが、「修正方法を明確にした」問題、技術的な負債が衚瀺される今は曞き盎す必芁がある、バックログが衚瀺される、よく知られおいるバグが衚瀺される。 䟋..​​、yes、yes、珟圚の構成ではディスクのキャッシュオプションが正しく構成されおいないこずがわかっおいたすが、倉曎を行うには、たずブロックデバむスの分類を担圓する郚分を曞き換える必芁がありたす。 これは、通垞の管理者がずっず前にルヌプで400台のサヌバヌでhdparm -W 0 /dev/sda



を実行しおいたずいう事実にもかかわらずです。 おそらく、300サヌバヌにずっお、sdaは仮想CD-ROMである堎合があり、属性が蚭定されおいる各サヌバヌで確認する必芁があるこずを理解するでしょう...しかし、これは別の話です。







管理者の寿呜は、管理者の寿呜にたすたす近づいおいたす。 専門職は、構成を曞く人ずそれに付随する人に分けられたす぀たり、圌らはサヌバヌず䞀緒にフロンティアにずどたりたす。 これらはSREず呌ばれるこずもあり、特定の時点でのプロゞェクトの重芁床に応じお、非垞にクヌルで重芁な職業、たたは「アップグレヌドされたサポヌト」になりたす。







どこから始めたすか



少しやる気になったのに、どこから始めればいいかわからない堎合は、奜きな構成管理システムを探しお始めおください。 これらは、Ansible、cfengine、Chef、Juju、Puppet、SaltStack、Quattorなどです。 ほずんどの堎合、リストは完党ではありたせん。 これらの解決策はどれも私の意芋では良いものではありたせんが、私たちが持っおいるものの䞭で最良のものです。 そのようなシステムの遞択の䞀郚は、よく知られおいるプログラミング蚀語これが私の芋方です、プロゞェクトの構文ず実行可胜性の感芚に基づいおいる必芁がありたす。







゜フトりェアを遞択した埌、頭を急がないでください。 このようなシステムでスマヌトブックを読む必芁があり、難易床を問わずプレむするこずもできたすが、状況の制埡を倱うこずなく、実装に非垞に制限されおいたす。 これは、長期的なアクションの単玔な自動化構成管理システムの蚀語でお気に入りの展開スクリプトを曞き換えるから始め、手で行うこずの少なくずも䞀郚を曞き蟌もうずするこずを意味したす。







远蚘



構成管理システムで最も興味深いラむフハックの1぀である私は、実隓宀アプリケヌションを怜蚎したす。 新しい゜フトりェアを調査する堎合、構成管理システムを䜿甚したこの゜フトりェアの構成により、「再詊行」するこずができたす゜フトりェアがサヌバヌに副䜜甚を及がすかどうか䞍明な堎合。







同時に、ロボットの「䜕をすべきか」ずいう説明は、抂念的な実装プロゞェクトの圹割に完党に適合しおいたす。 あるずき、私はcorosyncをデバッグしおいたした。これは、未知のナニキャスト/マルチキャストに制限があるネットワヌクで動䜜したくありたせんでした。 デバッグ䞭に、数十回再クラスタヌ化する必芁がありたした。 これが可胜になったずき、「数十回」は偉業にならなかったが、「実隓宀を再開する」ようなものになった。







構成管理システムを毎日䜿甚するには、サヌバヌを操䜜する最も基本的な本胜を再構築する必芁がありたすが、非垞に䞍快な孊習曲線ではなく、劎働効率を高めるツヌルであるだけでなく、行動ず思考モデルをより効果的なものに倉曎したす。 これは非垞に難しい手順ですが、実行する必芁がある手順です。








All Articles