構成管理の進化: IaC vs. GitOps
公開: 2022-05-23目次
構成管理の進化
不適切な構造は、Kubernetes でオーケストレーションされた環境やその他のコンテナー環境での安全上の問題の背後にある主な理由です。 適切な構成がないと、アプリケーションは、非互換性や競合から、パフォーマンスの不具合、セキュリティの脆弱性、運用上の障害に至るまで、さまざまな問題に直面する可能性があります。 構成管理は、ソフトウェア開発のライフ サイクルにおいて、コンピューターの望ましい安定した状態を維持するための重要な部分です。
構成管理レガシー
当時、IT リソースの変更を管理する場合、IT チームは主にサーバー レベルに焦点を当て、ハードウェアの変更が残りのレイヤーで問題を引き起こすかどうかを確認していました。 各サーバーは、細心の注意と余暇をかけて手動で構成されました。 仮想マシンにより、このプロセスの柔軟性と効率が向上しました。
インフラストラクチャ コード (IaC) は、ハードウェア全体がコードとして定義される構成管理の大きなステップです。 クラウドベースのプラットフォーム、Chef、Puppet、Ansible などの IaC ツールは、インフラストラクチャ管理の簡素化とスケーリングにおいて重要な役割を果たしました。 リソースの使用率を改善することで、インフラストラクチャのプロビジョニングを高速化し、コストを削減しました。
何年にもわたって、特にクラウドベースのプラットフォームとコンテナは、インフラストラクチャのプロビジョニング方法に革命をもたらしてきました。 主要なクラウドの採用と Git の現在のバージョン管理システムへの変換により、GitOps はアーキテクチャ管理の進化における最新のひねりとして登場しました。 GitOps は、すべてのコーディングに関して、IaC をはるかに超えています。 ここでの「すべて」には、インフラストラクチャ、ネットワーク、データ、およびアプリケーションが含まれます。
Kubernetes とインフラストラクチャへの宣言型アプローチ
プログラミングと同様に、インフラストラクチャを提供するには、通知と強制という 2 つのアプローチがあります。
説得力のあるアプローチでは、インフラストラクチャを提供または変更するために実行する適切な手順を指定する必要があります。 インフラストラクチャを使用するためのエクスペリエンスを提供します。 インフラストラクチャを使用するためのエクスペリエンスを提供します。 一方、通知アプローチは、Kubernetes によって定義された最新のクラウドネイティブ アプローチにより適しています。 システムの望ましい状態を定義し、その機能を Kubernetes のようなサイトに任せるだけです。 Kubernetes インフラストラクチャは、自動化と通知構成の両方を容易にします。
DevOps から GitOps への移行
2017 年に考案された GitOps は、Kubernetes クラスターを管理し、Git に焦点を当てたアプリケーションを配信するための最新の機能的フレームワークです。 CI / CDツール、DevとOpsのコラボレーション、プロセスの自動化などのDevOpsの最高の部分を取得し、Gitを信頼性のソースとして使用してソフトウェア配信パイプラインでそれらを使用します.
DevOps は、開発チームと運用チームの間のコラボレーションを確実にし、情報技術の分野に文化的変化をもたらしました。 しかし、予想に反して、企業は継続的インテグレーションと継続的配布の機能を採用しましたが、継続的展開には移行しませんでした。
これが、GitOps が物事を次のレベルに引き上げる場所です。 GitOps アプローチでは、チームは Git リポジトリ内からインフラストラクチャの並べ替えと変更を定義するだけでなく、管理も行います。 インフラストラクチャに変更を加えるのは、今すぐドラッグ リクエストを作成するのと同じくらい簡単です。タイプミスを見つけたり、定期的なレビューを行ったり、必要に応じてプレッジを変更したりできます。 Git を使用すると、開発者はコードを生成できるようになり、オペレーティング システム エンジニアはこのコードを本番環境で自動的に使用できます。
GitOps 主導の構成管理に Flux と Helm を使用する
Kubernetes を使用すると、さまざまなツールを統合して、コンテナーの計画、並べ替え、監視を自動化できます。 そのようなツールの 1 つが、GitOps エコシステムで非常に人気のある Helm です。
Helm は、さまざまな状況で使用される最も反復的なアプリケーションとサービスの定義、インストール、および展開を容易にする Kubernetes 用の強力なパッケージ マネージャーです。 Helm チャートは、重複したハードコード値を持つ複数の YAML ファイルを管理するための整理されたパッケージ デザインを提供することで、継続的な配布環境に大きな価値をもたらします。
構成管理: IaC と GitOps の比較
つまり、Helm は、複雑な出力を測定および管理するときに物事をシンプルに保つのに役立ちます。 ただし、K8s クラスターとアプリケーションの仕様で定義されている重要な Git リポジトリにリンクする必要があります。 フラックスはそれを簡単にします。
Flux は、Git リポジトリと Kubernetes クラスター間のブリッジとして機能するオープンソースの GitOps エージェントのコレクションです。 Helm チャートは、コードの変更が導入されたときに出力を自動化することでコードの一貫性を維持する、通知の並べ替え自動化ツールです。 Flux は、これらの変更を Git から Kubernetes クラスターに同期します。
これは、Helm オペレーターをトリガーする HelmRelease と呼ばれるカスタム リソースを使用して実行され、変更がチャート コードに同期されます。 言うまでもなく、Flux には広範なドリフト検出機能やその他の興味深い機能が付属しています。
長い間、アーキテクチャ管理はハードウェアとインフラストラクチャに関するものでしたが、それ以来、私たちは長い道のりを歩んできました。 GitOps とそれを容易にするツールの導入により、開発者とプラットフォーム エンジニアは、必要なインフラストラクチャを設計するための多くの選択肢を、アナウンス形式で提供しています。
Weave GitOps は Flux と Helm を利用し、Kubernetes がクラスターを生成するあらゆる方法で、jit リポジトリーから効果的な構成管理ワークフローを強化します。 Weave GitOps の特徴の 1 つは、信頼性の高いアプリケーションを提供できることです。 信頼性の高いユーティリティ配信ポリシーをコードとして GitOps、セキュリティとコンプライアンス、アプリケーションの回帰、およびソースから実稼働までのコーディング標準の実装に追加します。 これは、安全な GitOps パイプラインと、コード化されたポリシーによる継続的なセキュリティ テストの組み合わせであり、ソフトウェア開発ライフ サイクル全体でセキュリティのベスト プラクティスと高度なセキュリティ基準を実現します。 GitOps は、最新のクラウドネイティブ システムの構成管理を行う方法でもあり、Weave GitOps はこのアプローチをシンプルにするだけでなく、安全にもします。
Gmail アカウントの作成手順ガイド
web-crawling-vs-web-scraping-whats-the-difference