インフラストラクチャ・アズ・コードから環境・アズ・コードへの進化

インフラストラクチャ・アズ・コードから環境・アズ・コードへの進化

GitOps を使用して環境を起動すると、一貫性、バージョン管理、速度など、開発チームに多くのメリットがもたらされます。

『How We Evolved from IaC to Environments as Code』からの翻訳。著者の Edan Evantal は Quali の CTO です。 Edan Evantal は、Quali のインフラストラクチャ自動化および環境配信プラットフォームのすべての製品エンジニアリングを担当しています。 Quali に入社する前、Edan は Matrix IT および Sibam Ltd でエンジニアリング管理職を務めていました。ハイテク業界で 18 年以上の経験があります...

長年にわたり、当社のプラットフォームを構築し、当社の製品がサポートする他の DevOps およびプラットフォーム エンジニアと協力する中で、アプリケーション インフラストラクチャの進化によって、本来提供されるはずだった自動化が破壊されている様子を目の当たりにしてきました。

Infrastructure as Code (IaC) ツールは、クラウド サービスの提供を定義および自動化する上で非常に重要です。開発チームのニーズがこの範囲を超えて拡大すると、自動化が機能しなくなることがよくあります。

理由は2つあります。

  • IaC ツールは、環境の真実のソースとしてではなく、速度と自動化を目的として設計されています。大規模なチームでは、インフラストラクチャを大規模に活用したり、コードの変更によってアプリケーションのパフォーマンスにどのような影響が出るかを把握したりすることが難しい場合があります。
  • IaC ツール間の非互換性。アプリケーションは、さまざまなテクノロジーを使用して定義された複雑なインフラストラクチャにますます依存するようになり、ツールのニュアンスを調整するために手動のオーケストレーションが必要になります。

開発者は、インフラストラクチャ自動化機能とアプリケーションのニーズの現実とのギャップに直面しています。その結果、速度が低下し、インフラストラクチャが管理されていない、または誤って構成されているリスクが増大します。

私たちは、このギャップを埋めるために何ができるかを自問し、次のような単純な疑問にたどり着きました。

インフラストラクチャの範囲や、インフラストラクチャを定義するために使用される IaC ツールに関係なく、任意の環境をコードとして起動できるとしたらどうでしょうか?

Git で環境をコードとして定義する

環境をコードとして定義するには、まず、DevOps が理解しやすく、自動化されたマシンが読み取りやすい形式で定義する必要があります。

Torque プラットフォームを使用して、Git リポジトリに接続し、そこに定義されている IaC モジュールを検出し、リソース構成をプラットフォームによって自動的に生成された新しい YAML にパッケージ化します。

そこから、環境の起動時に生成されるインフラストラクチャ コンポーネント、パラメーター、依存関係、メタデータ、認証、および出力を含めるように、任意の YAML コードを変更することができます。

以下は YAML スニペットの例です。

 kind: environment environment_name: "Workstation Staging A" description: "EC2 workstation for staging workloads" state: inactive owner_email: "[email protected]" blueprint: name: "test-workstation" repository_name: "cloud-native-application" branch: "main" commit: "536955389cd4ecbd1b8895c4a1093fe14a809b65" inputs: service-account: "sa" agent: "review3" grains: create-ec2: source: commit: "697d1" specs: instance_type: "t2.large" ami: "ami-0c55b159ertafe1f0" security_groups: ["sg-0246e9ddc2b2f23f4"] post-deployment: scripts: ["./configure-environment.sh", "./deploy-application.sh"]

これには、環境に必要なすべてのメタデータの単一の定義が構造化された形式で含まれています。

簡単に言えば、既存のインフラストラクチャをコードとして活用して、環境をコードとして定義します。

GitOpsを使用してアプリケーション環境を起動する

お客様のニーズを満たすには、この定義を運用可能にする必要があります。

私たちの最初の答えは、セルフサービス ポータルに頼ることでした。当社のプラットフォームの管理者がこれらの YAML ファイル (環境の「ブループリント」と呼びます) を作成する場合、それを「公開」するオプションがあります。これにより、プラットフォーム内のセルフサービス カタログに環境が追加され、エンド ユーザー権限を持つユーザーがオンデマンドで環境を起動できるようになります。環境を開発者ツール、CI/CD、または社内開発者ポータルに統合している場合は、新しいブループリントの公開もそれらのツールを通じてアクセスできるようになります。

GitOps を採用するチームをサポートするには、公開されたブループリントを日常のワークフローに統合する必要があります。

この新しい YAML ファイルを、IaC モジュールが見つかった元のリポジトリに保存することで、GitOps で環境定義にアクセスできるようになります。実際には、リポジトリにアクセスできるユーザーに環境定義を「公開」します。

開発者は 1 つのコマンドで完全な環境を起動できるようになりました。

このアプローチには、いくつかの追加の利点があります。

  • バージョン管理: アプリケーション コードと同様に、環境もバージョン管理して、すべての変更を追跡し、必要に応じてロールバックできるようにすることができます。
  • 一貫性: この定義を使用して環境を毎回一貫してプロビジョニングすると、「自分のマシンでは動作する」という問題が解消されます。
  • スピード: 開発者はコードをコミットするだけで環境をプロビジョニングできます。これは開発者にとって慣れ親しんだ操作であるため、他のチームの支援なしに開発、テスト、または本番環境のニーズに迅速に対応できます。
  • コラボレーションとガバナンス: 環境の共通定義を作成することで、IaC だけでは簡単に実現できないコラボレーションの基盤が築かれます。
  • 運用効率: プロビジョニング プロセスを自動化すると、冗長な手作業 (および疲労) が減り、DevOps エンジニアはより価値のあるタスクを引き受けることができます。

プラットフォーム エンジニアリングでは、1 秒 1 秒が貴重であり、すべてのリソースが重要です。インフラストラクチャが複雑になるにつれて、環境をコードとして管理することが、現代の DevOps 組織の成熟における次のステップになります。

<<:  クラウド ネイティブ テクノロジーとは何でしょうか?

>>:  クラウドコンピューティングにおけるアプリケーションマッピングの重要性

推薦する

mountvps-2g メモリ/90g ハードディスク/8 コア/1500g トラフィック/月額 4.49 ドル

mountvps は新しい VPS プロバイダーです。サーバーには、Intel Xeon E3-12...

Google PR 値が Baidu の最適化に与える影響

ウェブサイトの最適化効果分析、友好的なリンク交換要件、ウェブサイトの品質判断など、Google PR...

体重を6から0に減らし、その後体重を元に戻した経験と欠点を共有する

みなさんこんにちは、@张钾杰です。 6月28日の悲惨な出来事は今でも覚えています。今思い返しても、ま...

SEO最適化ソフト記事の正しい書き方について簡単に解説

豊富なウェブサイト コンテンツは、間違いなくウェブサイトのユーザー エクスペリエンスを向上させること...

ユーザーがウェブサイトを離れる主な理由は、ウェブサイトのエクスペリエンスが十分ではないということでしょうか?

ウェブマスターにとって、ウェブサイトにユーザーを引き付けるのは簡単ではありません。もっと野心的な人は...

並列および分散コンピューティングの原理

クラウド コンピューティングは、IT インフラストラクチャ、サービス、およびアプリケーションのより有...

totyun: 香港データセンターGIA国際回線VPS評価、実際のテストデータ共有

totyunの香港データセンターのVPSはCN2(正式名称は「Premium China」)とGIA...

ウェブサイトの統計に関すること: 51.com などのドメイン名の売買の話

eName.cnは5月28日、4399ミニゲームのチーフアーキテクトである曹正氏がインターネット業界...

マーケティング戦略の分析: Three Squirrels が 1 年足らずで急成長できたのはなぜでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています著者: D...

アップル、中国へのソースコード提出に反応

海外メディアの報道によると、アップルは製品のソースコードとキーを中国市場に提出し、監視用の「バックド...

スマートホストはどうですか?ダラス(テキサス州、米国)データセンター VPS のレビュー

スマートホストはどうですか?ダラスデータセンターのスマートホストの VPS はいかがでしょうか? S...

イベントマーケティングの視点からインターネットプロモーションを考える(原著)

現在、オンライン情報の発達により、各ウェブサイトでは毎日数十から数百の情報が更新されています。いくつ...

dotvps - 3g メモリ/50g ハードディスク/1000g トラフィック/4 データセンター/月額 7 ドル

dotvps は、3G メモリ、月額 7 ドル、オプションのデータ センター 4 つ、openvz ...

巨人の肩に乗ってウェブサイトの方向性を洗練させる

著者は、草の根のウェブマスターや起業家がインターネットの発展の波の中で弱い立場にあるグループであるた...