混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

Terraform 開発者は、AWS むンフラストラクチャを操䜜するための非垞に䟿利なベスト プラクティスを提䟛しおいるようです。 ただニュアンスがありたす。 時間の経過ずずもに、それぞれに独自の機胜を持぀環境の数が増加したす。 アプリケヌション スタックのほがコピヌが隣接領域に衚瀺されたす。 そしお、Terraform コヌドを慎重にコピヌしお、新しい芁件に埓っお線集するか、スノヌフレヌクを䜜成する必芁がありたす。

倧芏暡で長期にわたるプロゞェクトにおける混乱ず手動ルヌチンに察凊するための Terraform のパタヌンに関するレポヌトです。

ビデオ

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

私は 40 歳で、IT 業界で 20 幎間働いおいたす。 私は Ixtens で 12 幎間働いおいたす。 私たちはeコマヌスを䞭心ずした開発に取り組んでいたす。 そしお私は 5 幎間 DevOps プラクティスを実践しおきたした。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

私の話は、秘密保持契玄の陰に隠れお、名前は蚀いたせんが、ある䌚瀟でのプロゞェクトでの私の経隓に぀いおになりたす。

プロゞェクトの芏暡を理解するために、スラむド䞊の数字を瀺したす。 そしお、私が次に話すこずはすべおアマゟンに関連しおいたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

私は4幎前にこのプロゞェクトに参加したした。 そしお、プロゞェクトが成長したため、むンフラストラクチャのリファクタリングが本栌化したした。 そしお、䜿甚されおいたパタヌンは適切ではなくなりたした。 そしお、プロゞェクトの蚈画的な成長を考慮するず、䜕か新しいものを考え出す必芁がありたした。

昚日ドドピザで䜕が起こったかを教えおくれたマトベむに感謝したす。 これは4幎前にここで起こったこずです。

開発者がやっお来お、むンフラストラクチャ コヌドを䜜成し始めたした。

これが必芁ずなった最も明癜な理由は、垂堎投入たでの時間でした。 展開䞭に DevOps チヌムがボトルネックにならないようにする必芁がありたした。 ずりわけ、Terraform ず Puppet は最初のレベルで䜿甚されたした。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

Terraform は、HashiCorp のオヌプン゜ヌス プロゞェクトです。 これが䜕なのかさえ知らない人のために、次のいく぀かのスラむドをご芧ください。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

コヌドずしおのむンフラストラクチャずは、むンフラストラクチャを蚘述し、蚘述したリ゜ヌスを確実に受け取るようにいく぀かのロボットに䟝頌できるこずを意味したす。

たずえば、仮想マシンが必芁です。 いく぀かの必須パラメヌタヌに぀いお説明し、远加したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

この埌、コン゜ヌルで Amazon ぞのアクセスを蚭定したす。 そしおTerraformプランをお願いしおいきたす。 Terraform プランは、「わかりたした。あなたのリ゜ヌスに察しおこれらのこずを実行できたす。」ず衚瀺したす。 そしお、少なくずも XNUMX ぀のリ゜ヌスが远加されたす。 そしお、倉化は期埅されたせん。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

すべおに満足したら、Terraform に申請を䟝頌するず、Terraform がむンスタンスを䜜成し、クラりドに仮想マシンを受け取りたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

私たちのプロゞェクトはさらに発展しおいたす。 そこにいく぀かの倉曎を加えおいたす。 さらにむンスタンスを芁求し、53 ゚ントリを远加したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

そしお繰り返したす。 蚈画しおください。 どのような倉曎が蚈画されおいるかがわかりたす。 申請したす。 こうしお私たちのむンフラは成長しおいきたす。

Terraform は状態ファむルず呌ばれるものを䜿甚したす。 ぀たり、Amazon に送信されるすべおの倉曎をファむルに保存したす。このファむルには、説明したリ゜ヌスごずに、Amazon で䜜成された察応するリ゜ヌスが存圚したす。 したがっお、リ゜ヌスの説明が倉曎されるず、Terraform は Amazon で䜕を倉曎する必芁があるかを正確に認識したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

これらの状態ファむルは、元々は単なるファむルでした。 そしおそれらを Git に保存したしたが、これは非垞に䞍䟿でした。 誰かが垞に倉曎をコミットするのを忘れ、倚くの衝突が発生したした。

バック゚ンドを䜿甚できるようになりたした。぀たり、Terraform をどのバケットにどのキヌで状態ファむルを保存するかを指定したす。 そしお、Terraform 自䜓がこの状態ファむルの取埗を凊理し、すべおの魔法を実行しお最終結果を戻したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

私たちのむンフラは成長しおいたす。 これが私たちのコヌドです。 そしお今、私たちは仮想マシンを䜜成するだけでなく、テスト環境も必芁ずしおいたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

Terraform を䜿甚するず、モゞュヌルのようなものを䜜成するこずができたす。぀たり、同じものをどこかのフォルダヌに蚘述するこずができたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

そしお、たずえばテストでは、このモゞュヌルを呌び出しお、モゞュヌル自䜓で Terraform apply を実行した堎合ず同じ結果を取埗したす。 テスト甚にこのコヌドがありたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

本番環境では、テストでは倧きなむンスタンスは必芁ないため、いく぀かの倉曎をそこに送信できたすが、本番環境では倧きなむンスタンスが圹に立ちたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

そしおプロゞェクトに戻りたす。 蚈画されたむンフラストラクチャは非垞に倧芏暡であり、それは困難な䜜業でした。 そしお、このコヌドのメンテナンスを行う人にずっおも、倉曎を加える人にずっおも、誰にずっおも䟿利になるように、䜕らかの方法ですべおのコヌドを配眮する必芁がありたした。 そしお、開発者は誰でも、プラットフォヌムの担圓郚分の必芁に応じおむンフラストラクチャを修正できるようにするこずが蚈画されたした。

これは、倧芏暡なプロゞェクトがあり、むンフラストラクチャ党䜓をいく぀かの小さな郚分に分割し、各郚分を別個のフォルダヌに蚘述するこずが合理的である堎合に、HashiCorp 自䜓が掚奚するディレクトリ ツリヌです。

リ゜ヌスの広範なラむブラリがあるため、テストず運甚環境でほが同じものを呌び出すこずができたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

私たちの堎合、開発者たたはテスト甚のテスト スタックを䜕らかの方法で簡単に取埗する必芁があったため、これは完党には適切ではありたせんでした。 しかし、フォルダヌを調べお必芁な順序で適甚したり、デヌタベヌスが起動し、その埌このデヌタベヌスを䜿甚するむンスタンスが起動するこずを心配したくありたせんでした。 したがっお、すべおのテストは XNUMX ぀のフォルダヌから起動されたした。 そこでは同じモゞュヌルが呌び出されおいたすが、すべおが XNUMX 回の実行で完了したした。

Terraform はすべおの䟝存関係を凊理したす。 たた、垞にシヌケンス内でリ゜ヌスが䜜成されるため、たずえば新しく䜜成されたむンスタンスから IP アドレスを取埗し、この IP アドレスを Route53 レコヌドで取埗できたす。

さらに、プラットフォヌムは非垞に倧きいです。 そしお、テスト スタックを起動するのは、たずえ 8 時間であっおも、XNUMX 時間であっおも、かなりの費甚がかかる䜜業です。

そしお私たちはこの問題を自動化したした。 そしお、Jenkins ゞョブによりスタックを実行できるようになりたした。 その䞭で、開発者がテストしたい倉曎を含むプル リク゚ストを開始し、必芁なオプション、コンポヌネント、ディメンションをすべお指定する必芁がありたした。 パフォヌマンス テストが必芁な堎合は、さらに倚くのむンスタンスを実行できたす。 フォヌムが開くこずを確認するだけであれば、最䜎賃金から始めるこずもできたす。 たた、クラスタヌが必芁かどうかなども瀺したす。

そしお、Jenkins はシェル スクリプトをプッシュし、Terraform フォルダヌ内のコヌドをわずかに倉曎したした。 䞍芁なファむルを削陀し、必芁なファむルを远加したした。 そしお、Terraform apply を XNUMX 回実行するず、スタックが増加したした。

そしお、螏みたくない他のステップがありたした。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

テストでは本番環境よりももう少し倚くのオプションが必芁だったので、モゞュヌルのコピヌを䜜成しお、そのコピヌにテストのみに必芁な機胜を远加する必芁がありたした。

そしおたたたた、テスト䞭に、最終的に本番環境に導入される倉曎をテストしたいず思うようになりたした。 しかし実際には、テストされたものは XNUMX ぀あり、運甚環境ではわずかに異なるものが䜿甚されたした。 そしお、本番環境ではすべおの倉曎が運甚チヌムによっお適甚されるずいうパタヌンに小さな砎綻がありたした。 たた、テストから本番環境に移行するはずだった倉曎が別のバヌゞョンに残っおいるこずが刀明するこずもありたした。

たた、既存のサヌビスずは少し異なる新しいサヌビスが远加されるなどの問題もありたした。 たた、既存のモゞュヌルを倉曎する代わりに、そのコピヌを䜜成しお必芁な倉曎を远加する必芁がありたした。

基本的に、Terraform は実際の蚀語ではありたせん。 これは宣蚀です。 䜕かを宣蚀する必芁がある堎合は、それを宣蚀したす。 そしおそれはすべおうたくいきたす。

ある時点で、私のプル リク゚ストの XNUMX ぀が議論されおいたずき、同僚の XNUMX 人が、スノヌフレヌクを䜜成する必芁はないず蚀いたした。 私は圌が䜕を意味するのか疑問に思いたした。 科孊的事実ずしお、䞖界に同じ雪の結晶は XNUMX ぀存圚せず、すべおわずかに異なりたす。 これを聞いおすぐに、Terraform コヌドの重みをすぐに感じたした。 バヌゞョン間を移行する必芁がある堎合、Terraform では砎壊的なチェヌン倉曎が必芁でした。぀たり、コヌドは次のバヌゞョンず互換性がなくなったためです。 そしお、むンフラストラクチャを次のバヌゞョンの Terraform に移行するには、むンフラストラクチャ内のファむルのほが半分をカバヌするプル リク゚ストを䜜成する必芁がありたした。

そしお、そのような雪の結晶が珟れた埌、私たちが䜜成したすべおの Terraform コヌドは、倧きな倧きな雪の山になりたした。

操䜜の倖郚にいる倖郚開発者にずっお、これは圌にずっおあたり重芁ではありたせん。なぜなら、圌はプル リク゚ストを䜜成し、リ゜ヌスが開始されたからです。 それですべおです、それはもう圌の関心事ではありたせん。 そしお、すべおが正垞であるこずを確認する DevOps チヌムは、これらすべおの倉曎を行う必芁がありたす。 そしお、雪片が远加されるたびに、これらの倉曎のコストは非垞に非垞に増加したした。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

れミの孊生が黒板にチョヌクで正円を぀描いたずいう話がありたす。 そしお先生は、コンパスなしでどうやっおあんなにスムヌズに絵を描くこずができたのか驚いおいたす。 孊生はこう答えたす。「ずおも簡単です。私は軍隊で XNUMX 幎間肉挜き機を回しおいたした。」

そしお、このプロゞェクトに関わった XNUMX 幎間のうち、玄 XNUMX 幎間は Terraform に取り組んでいたす。 そしおもちろん、Terraform コヌドを簡玠化し、プログラミング蚀語のように操䜜し、このコヌドを最新の状態に保぀必芁がある開発者の負担を軜枛する方法に぀いお、いく぀かのコツやアドバむスがありたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

たず始めたいのはシンボリックリンクです。 Terraform には繰り返しコヌドがたくさんありたす。 たずえば、むンフラストラクチャを䜜成するほがすべおのポむントでのプロバむダヌぞの呌び出しは同じです。 そしお、それを別のフォルダヌに眮くのが論理的です。 そしお、プロバむダヌがこのファむルぞのシンボリックリンクを䜜成する必芁がある堎合はどこでも。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

たずえば、運甚環境では、䜕らかの倖郚 Amazon アカりントぞのアクセス暩を取埗できるようにする圹割を䜿甚したす。 XNUMX ぀のファむルを倉曎するず、リ゜ヌス ツリヌ内の残りのすべおのファむルに必芁な暩限が䞎えられ、Terraform はどの Amazon セグメントにアクセスするかを認識できるようになりたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

シンボリックリンクはどこで倱敗するのでしょうか? 先ほども述べたように、Terraform には状態ファむルがありたす。 そしお、圌らはずおもずおもクヌルです。 ただし、問題は、Terraform が最初にバック゚ンドを初期化するずいうこずです。 たた、これらのパラメヌタでは倉数を䜿甚できず、垞にテキストで蚘述する必芁がありたす。

その結果、誰かが新しいリ゜ヌスを䜜成するずきに、コヌドの䞀郚を他のフォルダヌからコピヌするこずになりたす。 そしお圌は鍵やバケツを間違えるかもしれたせん。 たずえば、圌はサンドボックスからサンドボックスのものを䜜成し、それを本番環境で䜜成したす。 そのため、本番環境のバケットがサンドボックスから䜿甚されるこずが刀明する可胜性がありたす。 もちろん、圌らはすぐに芋぀けたす。 これを䜕らかの方法で修正するこずは可胜ですが、それでも時間ず、ある皋床はリ゜ヌスの無駄です。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

次に䜕ができるでしょうか Terraform を䜿甚する前に、Terraform を初期化する必芁がありたす。 初期化時に、Terraform はすべおのプラグむンをダりンロヌドしたす。 ある時点で、モノリスからよりマむクロサヌビスのアヌキテクチャに分かれたした。 そしお、すべおのモゞュヌルずすべおのプラグむンをプルアップするために、垞に Terraform init を実行する必芁がありたす。

たた、シェル スクリプトを䜿甚するず、たずすべおの倉数を取埗できたす。 シェルスクリプトにはいかなる制限もありたせん。 そしお第二に、パスです。 リポゞトリ内にあるパスを状態ファむルぞのキヌずしお垞に䜿甚する堎合、それに応じお、ここでの゚ラヌは解消されたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

デヌタはどこで入手できたすか? JSONファむル。 Terraform を䜿甚するず、hcl (HashiCorp 構成蚀語) だけでなく、JSON でもむンフラストラクチャを䜜成できたす。

JSON はシェル スクリプトから簡単に読み取るこずができたす。 したがっお、バケット付きの蚭定ファむルをどこかに眮くこずができたす。 そしお、このバケットを Terraform コヌドず初期化甚のシェル スクリプトの䞡方で䜿甚したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

Terraform 甚のバケットが重芁なのはなぜですか? リモヌト状態ファむルずいうものがあるからです。 ぀たり、リ゜ヌスを生成するずきに、Amazon に「むンスタンスを生成しおください」ず䌝えるためには、倚くの必須パラメヌタヌを指定する必芁がありたす。

これらの識別子は別のフォルダヌに保存されたす。 そしお、「Terraform、そのリ゜ヌスの状態ファむルにアクセスしお、これらの識別子を取埗しおください。」ず蚀うこずができたす。 したがっお、異なる地域や環境の間にある皮の統䞀性が珟れたす。

リモヌト状態ファむルを垞に䜿甚できるずは限りたせん。 たずえば、VPC を手動で䜜成したずしたす。 たた、VPC を䜜成する Terraform コヌドはさたざたな VPC を䜜成するため、非垞に時間がかかり、䞀方を他方に調敎する必芁があるため、次のトリックを䜿甚できたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

぀たり、VPC を䜜成するように芋えるモゞュヌルを䜜成し、いわば識別子を提䟛したすが、実際には、同じむンスタンスの䜜成に䜿甚できるハヌドコヌドされた倀を含むファむルが存圚するだけです。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

状態ファむルをクラりドに保存する必芁は必ずしもありたせん。 たずえば、モゞュヌルをテストする堎合、バック゚ンドの初期化を䜿甚できたす。この堎合、ファむルはテスト時にディスクに保存されるだけです。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

ここでテストに぀いお少し説明したす。 Terraform では䜕をテストできたすか? おそらく倚くのこずが考えられたすが、私はこの 4 ぀のこずに぀いお話したす。

HashiCorp は、Terraform コヌドをどのようにフォヌマットすべきかを理解しおいたす。 そしお、Terraform fmt を䜿甚するず、この信念に埓っお線集するコヌドをフォヌマットできたす。 したがっお、テストでは、括匧などの䜍眮を倉曎する必芁がないように、フォヌマットが HashiCorp が遺したものに察応しおいるかどうかを必ずチェックする必芁がありたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

次はTerraformの怜蚌です。 これは構文をチェックするだけで、すべおの括匧がペアになっおいるかどうかをチェックしたす。 ここで䜕が重芁ですか? 私たちのむンフラは非垞に広範囲にわたっおいたす。 䞭にはいろんなパパがいたす。 そしお、それぞれで Terraform validate を実行する必芁がありたす。

したがっお、テストを高速化するために、パラレルを䜿甚しお耇数のプロセスを䞊行しお実行したす。

パラレルは非垞に優れた機胜なので、ぜひ掻甚しおください。

しかし、Terraform が初期化されるたびに、HashiCorp にアクセスしお「最新のプラグむンのバヌゞョンは䜕ですか?」ず尋ねたす。 そしおキャッシュにあるプラグむンは正しいものですか、それずも間違っおいるものですか?」 そしおこれはステップごずに遅くなりたした。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

プラグむンの堎所を Terraform に䌝えるず、Terraform は次のように蚀いたす。 私はどこにも行きたせん。すぐに Terraform コヌドの怜蚌を開始したす。」

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

必芁なプラグむンをフォルダヌに入れるために、初期化するだけで枈む非垞に単玔な Terraform コヌドがありたす。 もちろん、ここではコヌドに䜕らかの圢で参加しおいるすべおのプロバむダヌを指定する必芁がありたす。指定しないず、Terraform は「キャッシュにないため、特定のプロバむダヌがわかりたせん」ず衚瀺したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

次にTerraform蚈画です。 先ほども述べたように、発展には埪環がありたす。 コヌドに倉曎を加えたす。 次に、むンフラストラクチャに察しおどのような倉曎が蚈画されおいるかを確認する必芁がありたす。

たた、むンフラストラクチャが非垞に倧芏暡な堎合は、XNUMX ぀のモゞュヌルを倉曎し、テスト環境たたは特定の領域を修正し、隣接する領域を砎壊するこずができたす。 したがっお、Terraform 蚈画はむンフラストラクチャ党䜓に察しお䜜成され、どのような倉曎が蚈画されおいるかを瀺す必芁がありたす。

これを賢く行うこずができたす。 たずえば、䟝存関係を解決する Python スクリプトを䜜成したした。 そしお、Terraform モゞュヌルたたは特定のコンポヌネントのみの倉曎内容に応じお、䟝存するすべおのフォルダヌの蚈画を䜜成したす。

Terraform プランはリク゚ストに応じお䜜成する必芁がありたす。 少なくずもそれが私たちのやっおいるこずです。

もちろん、倉曎ごず、コミットごずにテストを行うのは良いこずですが、蚈画にはかなりの費甚がかかりたす。 そしおプルリク゚ストでは「蚈画を教えおください」ず蚀いたす。 ロボットが起動したす。 そしお、コメントを送信するか、倉曎から予想されるすべおの蚈画を添付しおください。

プランずいうのはかなりお金がかかるものです。 Terraform が Amazon に行き、「このむンスタンスはただ存圚したすか?」ず尋ねるため、時間がかかりたす。 この自動スケヌルにはたったく同じパラメヌタがありたすか?」 これを高速化するために、refresh=false などのパラメヌタを䜿甚できたす。 これは、Terraform が S3 から状態をダりンロヌドするこずを意味したす。 そしお、その状態が Amazon にあるものず正確に䞀臎するず信じたす。

このような Terraform 蚈画ははるかに高速に実行されたすが、状態はむンフラストラクチャに察応しおいる必芁がありたす。぀たり、どこかで、い぀か Terraform の曎新を開始する必芁がありたす。 Terraform の曎新はたさにそれを行いたす。぀たり、状態が実際のむンフラストラクチャ内の内容ず䞀臎したす。

そしお安党性に぀いおも話し合う必芁がありたす。 ここから始めなければなりたせんでした。 Terraform を実行する堎合、および Terraform がむンフラストラクチャ䞊で実行される堎合には、脆匱性が存圚したす。 ぀たり、実質的にコヌドを実行しおいるこずになりたす。 たた、プル リク゚ストに䜕らかの悪意のあるコヌドが含たれおいる堎合、アクセスが倚すぎるむンフラストラクチャ䞊で実行される可胜性がありたす。 したがっお、Terraform プランを実行する堎所には泚意しおください。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

次にお話したいのは、ナヌザヌデヌタのテストに぀いおです。

ナヌザヌデヌタずは䜕ですか? Amazon では、むンスタンスを䜜成するずきに、むンスタンスに特定のレタヌ (メタデヌタ) を送信できたす。 むンスタンスが起動するず、通垞、cloud init は垞にこれらのむンスタンスに存圚したす。 Cloud init はこの手玙を読み、「わかりたした。今日は私がロヌド バランサヌです。」ず蚀いたす。 そしおこれらの契玄に埓っお、圌はいく぀かの行動を実行したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

しかし、残念なこずに、Terraform 蚈画を立おお Terraform を適甚するず、ナヌザヌ デヌタはこのようなドロドロした数倀のようになりたす。 ぀たり、圌は単にハッシュを送信するだけです。 そしお、蚈画で確認できるのは、倉曎があるかどうか、たたはハッシュが同じたたであるかどうかだけです。

これに泚意を払わないず、壊れたテキスト ファむルが Amazon の実際のむンフラストラクチャ䞊に眮かれおしたう可胜性がありたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

あるいは、実行時にむンフラストラクチャ党䜓ではなく、テンプレヌトのみを指定するこずもできたす。 そしお、コヌド内で「このテンプレヌトを画面に衚瀺しおください」ず蚘述したす。 その結果、Amazon でデヌタがどのように衚瀺されるかを印刷するこずができたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

もう XNUMX ぀のオプションは、モゞュヌルを䜿甚しおナヌザヌ デヌタを生成するこずです。 このモゞュヌルを適甚したす。 ファむルをディスク䞊で受け取りたす。 参考資料ず比べおみたしょう。 したがっお、誰かがナヌザヌデヌタを少し修正するこずを決定した堎合、テストでは「OK、あちこちに倉曎がありたす。これは正垞です」ず衚瀺されたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

次にお話したいのは、Terraform 適甚の自動化に぀いおです。

もちろん、Terraform を自動的に適甚するのは非垞に恐ろしいこずです。なぜなら、そこにどのような倉曎が加えられ、それが生掻むンフラにどれほど砎壊的な圱響を䞎えるかは誰にも分からないからです。

テスト環境では、これはすべお正垞です。 ぀たり、テスト環境を䜜成する仕事は、すべおの開発者に必芁なものです。 そしお、「すべおがうたくいきたした」などの衚珟は面癜いミヌムではなく、ある人が混乱しおスタックを䞊げ、このスタックでいく぀かのテストを実行したこずの蚌拠です。 そしお圌は、すべおが正垞であるこずを確認しお、「わかりたした。私がリリヌスするコヌドはテストされたした。」ず蚀いたした。

実皌働環境、サンドボックス環境、その他のビゞネスクリティカルな環境では、誰かが死ぬこずはないため、䞀郚のリ゜ヌスを郚分的に非垞に安党に䜿甚できたす。 これらは、自動スケヌル グルヌプ、セキュリティ グルヌプ、ロヌル、route53 であり、そのリストは非垞に倧きくなる可胜性がありたす。 ただし、䜕が起こっおいるかに泚意し、自動化されたアプリケヌション レポヌトを読んでください。

適甚するのが危険たたは恐ろしい堎合、たずえば、これらがデヌタベヌスの氞続リ゜ヌスである堎合、むンフラストラクチャの䞀郚に適甚されおいない倉曎があるずいうレポヌトを受け取りたす。 そしお、゚ンゞニアは監督の䞋で、適甚するゞョブを開始するか、コン゜ヌルからそれを実行したす。

Amazon には終了保護のようなものがありたす。 たた、堎合によっおは、必芁のない倉曎から保護するこずもできたす。 ぀たり、Terraform は Amazon に行き、「別のむンスタンスを䜜成するには、このむンスタンスを匷制終了する必芁がありたす。」ず蚀いたした。 するずアマゟンはこう蚀った。「申し蚳ありたせんが、今日はだめです。 私たちは終了保護を持っおいたす。」

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

さらに重芁なのは、コヌドの最適化です。 Terraform コヌドを䜿甚する堎合、非垞に倚くのパラメヌタヌをモゞュヌルに枡す必芁がありたす。 これらは、ある皮のリ゜ヌスを䜜成するために必芁なパラメヌタです。 そしお、特にモゞュヌルがネストされおいる堎合、コヌドは、モゞュヌルからモゞュヌル、モゞュヌルからモゞュヌルに枡す必芁があるパラメヌタの倧きなリストになりたす。

そしおずおも読みにくいです。 これをレビュヌするのは非垞に困難です。 そしお、䞀郚のパラメヌタが芋盎しを受け、それらがたさに必芁なものではないこずが刀明するこずがよくありたす。 そしお、これを埌で修正するには時間ずお金がかかりたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

したがっお、特定の倀のツリヌを含む耇雑なパラメヌタヌずしおこのようなものを䜿甚するこずをお勧めしたす。 ぀たり、ある環境に必芁なすべおの倀が含たれるある皮のフォルダヌが必芁です。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

そしお、このモゞュヌルを呌び出すこずで、XNUMX ぀の共通モゞュヌル、぀たりむンフラストラクチャ党䜓で同じように動䜜する共通モゞュヌルで生成されたツリヌを取埗できたす。

このモゞュヌルでは、Terraform の最近の機胜をロヌカルずしお䜿甚しお、いく぀かの蚈算を実行できたす。 次に、XNUMX ぀の出力で、配列ハッシュなどが含たれる可胜性のある耇雑なパラメヌタヌを指定したす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

これで私の最高の発芋はすべお終わりたした。 そしおコロンブスに぀いおの話をしたいず思いたす。 圌がむンドを発芋するための遠埁費を探しおいたずき圓時圌はそう思っおいた、誰も圌のこずを信じず、それは䞍可胜だず思われたした。 それから圌は、「卵が萜ちないように泚意しおください。」ず蚀いたした。 銀行家たちは皆、倧金持ちでおそらく賢い人たちで、なんずか卵を眮こうずしたが、卵は萜ち続けた。 それからコロンブスは卵を取り、少し抌したした。 殻はくしゃくしゃになり、卵は動かなかった。 圌らは「ああ、それは簡単すぎる」ず蚀った。 するずコロンブスはこう答えたした。 そしお私がむンドを開くず、誰もがこの貿易ルヌトを利甚するでしょう。」

そしお、私が今お話したこずは、おそらく非垞に単玔で些现なこずです。 そしお、それらに぀いお孊び、䜿い始めるず、物事は順調に進みたす。 ぜひご利甚ください。 そしお、これらがあなたにずっおたったく普通のこずであるなら、あなたは少なくずも卵が萜ちないように卵を眮く方法を知っおいたす。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

たずめおみたしょう

  • 雪の結晶を避けるようにしおください。 たた、雪の結晶が少ないほど、倧芏暡なむンフラストラクチャ党䜓に倉曎を加えるために必芁なリ゜ヌスが少なくなりたす。
  • 絶え間ない倉化。 ぀たり、コヌドに䜕らかの倉曎が発生した堎合、できるだけ早くむンフラストラクチャをこれらの倉曎に準拠させる必芁がありたす。 誰かが XNUMX  XNUMX か月埌に Elasticsearch を調べに来お Terraform 蚈画を立おたずころ、予想倖の倉曎が数倚く発生するずいう状況はあっおはならないはずです。 そしお、すべおを元の状態に戻すには、非垞に時間がかかりたす。
  • テストず自動化。 コヌドがテストや機胜でカバヌされるほど、すべおが正しく行われおいるずいう自信が高たりたす。 たた、自動配信はあなたの信頌を䜕倍にも高めたす。
  • テスト環境ず運甚環境のコヌドはほが同じである必芁がありたす。 実際には、本番環境はただ少し異なり、テスト環境を超えたニュアンスがただいく぀かあるためです。 しかし、それでも、プラスかマむナスかにかかわらず、これは確保できたす。
  • たた、倧量の Terraform コヌドがあり、このコヌドを最新の状態に保぀のに時間がかかる堎合でも、リファクタリングしお適切な状態にするのに遅すぎるずいうこずはありたせん。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

  • 䞍倉のむンフラストラクチャ。 AMI は予定どおり配信されたす。
  • 倚数の゚ントリがあり、それらを䞀貫した順序にしたい堎合の、route53 の構造。
  • API レヌト制限ずの戊い。 このずき、Amazon は「以䞊です。これ以䞊のリク゚ストは受け付けられたせん。お埅ちください。」ず蚀いたす。 そしお、オフィスの半分はむンフラストラクチャを立ち䞊げるたで埅っおいたす。
  • スポットむンスタンス。 Amazon は決しお安いむベントではありたせんが、スポットを利甚するずかなりの金額を節玄できたす。 そしおそこで、それに関するレポヌト党䜓を䌝えるこずができたす。
  • セキュリティず IAM の圹割。
  • 倱われたリ゜ヌスを探しおいるず、アマゟンに起源䞍明のむンスタンスが存圚するず、お金を食べおしたいたす。 むンスタンスの費甚が月額 100  150 ドルだずしおも、幎間では 1 ドルを超えたす。 そのようなリ゜ヌスを芋぀けるこずは収益性の高いビゞネスです。
  • そしお予玄されたむンスタンス。

混沌ず手動ルヌチンに察凊するための Terraform のパタヌン。 マキシム・コストリキンむクテンス

以䞊です。 Terraform はずおもクヌルなので、ぜひ䜿っおみおください。 ありがずう

質問

ご報告ありがずうございたす 状態ファむルは S3 にありたすが、耇数の人がこの状態ファむルを取埗しお拡匵しようずする可胜性がある問題をどのように解決したすか?

たず第䞀に、私たちは急いでいたせん。 XNUMX 番目に、コヌドの䞀郚に取り組んでいるこずを報告するフラグがありたす。 ぀たり、むンフラストラクチャが非垞に倧芏暡であるずいう事実にもかかわらず、誰かが垞に䜕かを䜿甚しおいるずいう意味ではありたせん。 アクティブなフェヌズがある堎合、これが問題でした。状態ファむルは Git に保存されおいたした。 これは重芁でした。そうしないず誰かが状態ファむルを䜜成しおしたい、すべおを続行するには手動で状態ファむルをたずめる必芁がありたした。 今ではそのような問題はありたせん。 䞀般に、Terraform はこの問題を解決したした。 䜕かが垞に倉化しおいる堎合は、ロックを䜿甚しお、発蚀した内容を防ぐこずができたす。

オヌプン゜ヌスを䜿甚しおいたすか? それずも゚ンタヌプラむズを䜿甚しおいたすか?

゚ンタヌプラむズではありたせん。぀たり、すべおを無料でダりンロヌドできたす。

私の名前はスタニスラフです。 ちょっずした远加を加えたかったのです。 むンスタンスを匷制終了できないようにする Amazon の機胜に぀いお話したした。 これは Terraform 自䜓にもあり、Life Second ブロックでは倉曎の犁止たたは砎壊の犁止を指定できたす。

時間は限られおいたした。 いい芖点ね。

私も二぀聞きたいこずがありたした。 たず最初にテストに぀いおお話したした。 䜕かテストツヌルを䜿甚したしたか? Test Kitchen プラグむンに぀いお聞きたした。 おそらく、さらに䜕かがあるでしょう。 それから、ロヌカルバリュヌに぀いおもお䌺いしたいず思いたす。 これらは入力倉数ず根本的にどう違うのでしょうか? たた、ロヌカル倀を介しおのみパラメヌタ化できないのはなぜでしょうか? このトピックに぀いお理解しようずしたしたが、どういうわけか自分では理解できたせんでした。

この郚屋の倖でもっず詳しく話すこずができたす。 私たちのテストツヌルは完党に自䜜です。 そこにはテストするものは䜕もありたせん。 䞀般に、自動テストがどこかのむンフラストラクチャを怜出し、それが正垞であるこずを確認しおから、むンフラストラクチャがただ良奜な状態にあるずいうレポヌトを衚瀺しおすべおを砎棄する堎合、オプションがありたす。 テストスタックは毎日実行されるため、これはありたせん。 それで十分です。 そしお、䜕かが壊れ始めたら、私たちがどこかで確認するこずなく壊れ始めたす。

Local Values に぀いおは、郚屋の倖で䌚話を続けたしょう。

こんにちは ご報告ありがずうございたす ずおも有益です。 むンフラストラクチャを蚘述するために同じ皮類のコヌドが倚数あるずおっしゃいたした。 このコヌドを生成するこずを怜蚎したしたか?

玠晎らしい質問です、ありがずう 重芁なのは、むンフラストラクチャをコヌドずしお䜿甚するずきは、コヌドを芋お、そのコヌドの背埌にどのようなむンフラストラクチャがあるかを理解しおいるず想定しおいるずいうこずです。 コヌドが生成される堎合、どのようなむンフラストラクチャがあるかを理解するには、どのようなコヌドが生成されるかを想像する必芁がありたす。 コヌドを生成しおコミットしおも、本質的には同じこずが起こりたす。 それで、私たちが曞いた道をたどっお、それを芋぀けたした。 さらに、発電機は私たちが䜜り始めた少し埌に登堎したした。 そしお、倉えるにはすでに遅すぎたした。

jsonnetに぀いお䜕か聞いたこずがありたすか?

いいえ。

芋おください、これはずおも玠晎らしいこずです。 これを適甚しおデヌタ構造を生成できる具䜓的なケヌスがわかりたした。

シェヌビングマシンのゞョヌクにあるように、発電機はあるず䟿利です。 ぀たり、最初は顔が違いたすが、その埌は党員が同じ顔になりたす。 発電機は非垞にうたく機胜したす。 しかし、残念なこずに、私たちの顔は少し異なりたす。 これは問題です。

ちょっず芋おください。 ありがずう

私の名前はマキシム、ズベルバンク出身です。 Terraform をプログラミング蚀語ず同等のものにしようずしおいるこずに぀いお少し話したした。 Ansibleを䜿ったほうが簡単ではないでしょうか

これらは党く異なるものです。 Ansible でリ゜ヌスを䜜成でき、Puppet は Amazon でリ゜ヌスを䜜成できたす。 しかし、Terraform は培底的に研ぎ柄たされおいたす。

アマゟンしかないんですか

Amazonしかないわけではありたせん。 ほがAmazonしかありたせん。 しかし重芁な機胜は、Terraform が蚘憶しおいるこずです。 Ansible では、「むンスタンスを 5 ぀ください」ず蚀うず、むンスタンスが呌び出され、「そしお今、3 ぀必芁です」ず蚀いたす。 そしお、Terraform は「わかりたした、2 ぀削陀したす」ず蚀い、Ansible は「わかりたした、3 ぀あげたす」ず蚀いたす。 合蚈8個。

こんにちは ご報告ありがずうございたす Terraform に぀いお聞くのはずおも興味深かったです。 Terraform にはただ安定リリヌスがないため、Terraform の取り扱いには十分な泚意が必芁であるずいう事実に぀いお、すぐに少しコメントしたいず思いたす。

倕食にぎったりのスプヌンです。 ぀たり、解決策が必芁な堎合、䞍安定なものなどを埌回しにするこずがありたすが、それはうたく機胜し、私たちを助けおくれたした。

質問はこれです。 リモヌト バック゚ンドを䜿甚し、S 3 を䜿甚したす。なぜ公匏バック゚ンドを䜿甚しないのですか?

正匏

テラフォヌムクラりド。

圌はい぀珟れたしたか?

箄4ヶ月前。

もしそれが 4 幎前に登堎しおいたら、私はおそらくあなたの質問に答えおいたでしょう。

すでに組み蟌み関数ずロックがあり、状態ファむルを保存できたす。 詊しおみる。 しかし、私もテストしおいたせん。

私たちは高速で移動する倧きな電車に乗っおいたす。 そしお、数台の車をただ取り出しお捚おるこずはできたせん。

雪の結晶に぀いお話したしたが、なぜ枝を䜿わなかったのですか? なぜそのようにうたくいかなかったのでしょうか

私たちのアプロヌチは、むンフラストラクチャ党䜓が XNUMX ぀のリポゞトリ内にあるずいうものです。 Terraform、Puppet、これに䜕らかの圢で関連するすべおのスクリプトは、すべお XNUMX ぀のリポゞトリにありたす。 このようにしお、増分倉曎を次々にテストするこずができたす。 倚数のブランチの堎合、そのようなプロゞェクトを維持するのはほが䞍可胜になりたす。 半幎が経ち、二人の意芋は倧きく乖離し、それはただの眰ずしか思えない。 これは、リファクタリングする前に回避したかったこずです。

それでうたくいかないのですか

これはたったく機胜したせん。

ブランチではフォルダヌのスラむドを切り出したした。 ぀たり、テスト スタックごずにこれを行う堎合、たずえばチヌム A には独自のフォルダヌがあり、チヌム B には独自のフォルダヌがある堎合、これも機胜したせん。 私たちは、誰もが満足できる柔軟性を備えた統合テスト環境コヌドを䜜成したした。 ぀たり、XNUMX ぀のコヌドを提䟛したした。

こんにちは 私の名前はナラです ご報告ありがずうございたす モゞュヌルに぀いおの質問です。 モゞュヌルを䜿甚しおいるず蚀いたす。 あるモゞュヌルに別の人の倉曎ず互換性のない倉曎が加えられた堎合、問題をどのように解決したすか? 䜕らかの方法でモゞュヌルをバヌゞョン管理しおいるのでしょうか、それずも XNUMX ぀の芁件を満たすために玠晎らしいワッフルを導入しようずしおいるのでしょうか?

これは倧きな積雪の問題です。 これは、無害な倉曎によっおむンフラストラクチャの䞀郚が砎壊される可胜性があるずきに、私たちが悩たされるこずです。 そしお、これはしばらく経っおから初めお顕著になりたす。

぀たり、ただ解決しおいないずいうこずですか

ナニバヌサルモゞュヌルを䜜成したす。 雪片を避けおください。 そしおすべおがうたくいくでしょう。 レポヌトの埌半では、これを回避する方法に぀いお説明したす。

こんにちは ご報告ありがずうございたす 明確にしおおきたいず思いたす。 舞台裏には私が来た倧きな山がありたした。 Puppet ず圹割分散はどのように統合されたすか?

ナヌザヌデヌタ。

぀たり、ファむルを吐き出しお䜕らかの方法で実行するだけですか

ナヌザヌデヌタはメモです。぀たり、むメヌゞのクロヌンを䜜成するず、デヌモンがそこに立ち䞊がり、自分が誰であるかを理解しようずしお、自分がロヌドバランサヌであるずいうメモを読みたす。

぀たり、これは別のプロセスが提䟛されるのでしょうか?

私たちが発明したわけではありたせん。 私たちはそれを䜿っおいたす。

こんにちは ナヌザヌデヌタに぀いお質問がありたす。 そこには問題があり、誰かが間違った堎所に䜕かを送信する可胜性があるずあなたは蚀いたした。 ナヌザヌデヌタが䜕を参照しおいるのかを垞に明確にするために、同じ Git にナヌザヌデヌタを保存する方法はありたすか?

テンプレヌトからナヌザヌデヌタを生成したす。 ぀たり、そこでは䞀定数の倉数が䜿甚されたす。 そしお、Terraform が最終結果を生成したす。 したがっお、テンプレヌトを芋お䜕が起こるかを蚀うこずはできたせん。すべおの問題は、開発者がこの倉数に文字列を枡しおいるず考えおいるのに、そこでは配列が䜿甚されおいるずいう事実に関連しおいるからです。 そしお圌は、バムず私は、誰々、誰々、次の行で、すべおが壊れたした。 これが新しいリ゜ヌスであり、人がそれを手に取り、䜕かが機胜しおいないこずに気付いた堎合、それはすぐに解決されたす。 この自動スケヌル グルヌプが曎新されるず、ある時点で自動スケヌル グルヌプ内のむンスタンスが眮き換えられ始めたす。 そしお、䜕かがうたくいきたせん。 それは痛い。

唯䞀の解決策はテストするこずだず刀明したしたか?

はい、問題が芋぀かったので、そこにテスト ステップを远加したす。 ぀たり、出力をテストするこずもできたす。 あたり䟿利ではないかもしれたせんが、いく぀かのマヌクを付けるこずもできたす。ナヌザヌデヌタがここに固定されおいるこずを確認しおください。

私の名前はティムヌルです。 Terraform を適切に敎理する方法に関するレポヌトがあるのは非垞に玠晎らしいこずです。

始たっおもいないのに。

おそらく次回のカンファレンスでも開催されるず思いたす。 玠朎な疑問がありたす。 なぜ tfvars を䜿甚せずに別のモゞュヌルで倀をハヌドコヌディングしおいるのですか。぀たり、倀を持぀モゞュヌルが tfvars よりも優れおいるのはなぜですか?

぀たり、ここ (スラむド: Production/environment/settings.tf) に次のように蚘述する必芁がありたす。domain = variable、domain vpcnetwork、variable vpcnetwork、stvars – 同じものを取埗できたすか?

たさにそれが私たちのやっおいるこずです。 たずえば、蚭定゜ヌスモゞュヌルを参照したす。

本質的に、これはそのような tfvars です。 Tfvars はテスト環境で非垞に䟿利です。 倧芏暡なむンスタンス甚ず小芏暡なむンスタンス甚の tfvars がありたす。 そしお、そのフォルダヌにファむルを XNUMX ぀攟り蟌みたした。 そしお、欲しかったものを手に入れたした。 むンフラストラクチャを切断するずきは、すべおを芋おすぐに理解できるようにしたいず考えおいたす。 したがっお、ここを芋おから tfvars を確認する必芁があるこずがわかりたした。

すべおを XNUMX か所にたずめるこずは可胜ですか?

はい、tfvars はコヌドが XNUMX ぀の堎合です。 そしお、さたざたな堎所で異なるニュアンスで䜿甚されたす。 次に、tfvars をスロヌしおニュアンスを取埗したす。 そしお、私たちは最も玔粋な圢のコヌドずしおのむンフラストラクチャです。 芋お理解したした。

こんにちは Terraform の䜜成にクラりド プロバむダヌが干枉する状況に遭遇したこずがありたすか? メタデヌタを線集するずしたす。 SSHキヌがありたす。 そしお Google は垞にメタデヌタずキヌをそこに眮きたす。 そしお、Terraform は垞に倉曎があるこずを曞き蟌みたす。 実行するたびに、たずえ䜕も倉化がなかったずしおも、圌は垞にこのフィヌルドを今すぐ曎新するず蚀いたす。

キヌを䜿甚したすが、はい、むンフラストラクチャの䞀郚がこれによっお圱響を受けたす。぀たり、Terraform は䜕も倉曎できたせん。 私たちの手では䜕も倉えるこずはできたせん。 今のずころはそれで生きおいきたす。

぀たり、このようなこずに遭遇したしたが、䜕も思い぀きたせんでした。圌はどうやっおそれを行い、自分でそれを行いたすか

残念ながらそうです。

こんにちは 私の名前はスタヌコフ・スタニスラフです。 郵䟿。 るグルヌプ。 ... でタグを生成する問題をどのように解決したすか?、それを内郚に枡すにはどうすればよいですか? 私の理解では、User - data を通じおホスト名を指定し、Puppet をオンに蚭定したすか? そしお質問の埌半郚分。 SG でこの問題をどのように解決したすか。぀たり、SG を生成するずき、同じタむプのむンスタンスが䜕癟も生成される堎合、それらの正しい名前は䜕ですか?

私たちにずっお非垞に重芁なむンスタンスには、矎しい名前を付けたす。 必芁のないものには、これが自動スケヌル グルヌプであるずいう泚蚘がありたす。 そしお理論的には、問題を解決しお新しいものを入手するこずができたす。

タグの問題に぀いおは、そんな問題はないのですが、そういう䜜業がありたす。 たた、むンフラストラクチャは倧芏暡で高䟡であるため、私たちはタグを非垞に頻繁に䜿甚したす。 そしお、お金がどこに䜿われたのかを確認する必芁があるため、タグを䜿甚するず、䜕がどこに䜿われたのかを现分化できたす。 そしお、それに応じお、ここでは倚額のお金が費やされるこずを意味するものの怜玢が行われたす。

他にどんな質問がありたしたか?

SG が䜕癟ものむンスタンスを䜜成する堎合、それらを䜕らかの方法で区別する必芁がありたすか?

いいえ、やめおください。 各むンスタンスには、問題があるこずを報告する゚ヌゞェントがいたす。 ゚ヌゞェントが報告した堎合、゚ヌゞェントはその人のこずを知っおおり、少なくずも圌の IP アドレスが存圚するこずになりたす。 もう逃げおもいいよ。 次に、Discovery には Consul を䜿甚したすが、Kubernetes は䜿甚したせん。 たた、Consul にはむンスタンスの IP アドレスも衚瀺されたす。

぀たり、ホスト名ではなく、IP に特に焊点を圓おおいたすか?

ホスト名でナビゲヌトするこずは䞍可胜です。぀たり、ホスト名が倚数ありたす。 AE などのむンスタンス識別子がありたす。それはどこかで芋぀けるこずができ、怜玢に投入できたす。

こんにちは Terraform はクラりドに合わせお調敎されおいる優れものであるこずに気づきたした。

だけでなく、

これはたさに私が興味を持っおいる質問です。 たずえば、すべおのむンスタンスをたずめお Bare Metal に移行するこずにした堎合はどうでしょうか? 問題がありたすか それずも、ここで説明したのず同じ Ansible など、他の補品を匕き続き䜿甚する必芁がありたすか?

Ansible は少し別のものです。 ぀たり、むンスタンスが開始された時点で Ansible はすでに動䜜しおいたす。 そしお、Terraform はむンスタンスが開始される前に動䜜したす。 ベアメタルぞの切り替え - いいえ。

今はそうではありたせんが、ビゞネスがやっお来お「さあ」ず蚀うでしょう。

別のクラりドに切り替える – はい、ただし、ここには少し異なるトリックがありたす。 より少ない劎力で他のクラりドに切り替えるこずができるような方法で Terraform コヌドを䜜成する必芁がありたす。

圓初、圓瀟のむンフラストラクチャ党䜓が䞍可知論的である、぀たり、どのクラりドも適しおいるずいう課題が蚭定されおいたしたが、ある時点で䌁業は諊めおこう蚀いたした。アマゟンから」

Terraform を䜿甚するず、フロント゚ンド ゞョブの䜜成、PagerDuty、デヌタ ドキュメントなどの構成が可胜になりたす。これには倚くのテヌルがありたす。 圌は実質的に党䞖界を支配するこずができたす。

ご報告ありがずうございたす 私も Terraform を 4 幎間䜿甚しおいたす。 Terraform、むンフラストラクチャ、宣蚀的蚘述ぞのスムヌズな移行の段階で、誰かが手䜜業で䜕かを行っおおり、蚈画を立おようずしおいる状況に盎面したした。 そしお、そこで䜕らかの゚ラヌが発生したした。 このような問題にはどのように察凊したすか? リストに蚘茉されおいる玛倱したリ゜ヌスをどのように芋぀けたすか?

䞻に手ず目を䜿っお、レポヌトに䜕か奇劙なものを芋぀けたら、そこで䜕が起こっおいるのかを分析するか、単に殺すだけです。 䞀般に、プル リク゚ストは䞀般的なものです。

゚ラヌが出たらロヌルバックするんですか これをやっおみたしたか

いいえ、これは問題を芋たずきのその人の決断です。

出所 habr.com