GitLab CI/CD - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GitLab CI/CD

GitLab CI/CD は、GitLab プラットフォームの統合部分であり、継続的な統合、配信、デプロイ機能を提供します。GitLab CI/CD は GitOps ツールのみではありませんが、特に Kubernetes デプロイに使用する場合は、GitOps の原則を実装するように設定できます。

GitOps のサポート

[面積] ツール機能

単一の情報源としての Git

GitLab CI/CD は Git リポジトリを使用して、アプリケーションコードとインフラストラクチャ設定の両方を保存します。システムへのすべての変更は Git を通じて行われ、完全な履歴と監査証跡が保証されます。

宣言型設定

GitLab CI/CD パイプラインは、Git リポジトリに保存されている宣言型設定である .gitlab-ci.yml ファイルで定義されます。Kubernetes マニフェスト、Helm チャート、またはその他のInfrastructure as Code (IaC) ファイルを同じリポジトリに保存して、インフラストラクチャの目的の状態を定義できます。

自動パイプライン

GitLab CI/CD は、変更がリポジトリにプッシュされると、パイプラインを自動的にトリガーします。これらのパイプラインには、アプリケーションの構築、テスト、デプロイのステージを含めることができます。

Kubernetes 統合

GitLab CI/CD はネイティブ Kubernetes 統合を提供し、Kubernetes クラスターへの GitOps スタイルのデプロイをサポートします。Git の設定に基づいて Kubernetes リソースを自動的に作成および管理できます。

環境管理

GitLab CI/CD は、コードとしての複数の環境 (ステージングや本番稼働など) の定義をサポートしています。これらの環境へのデプロイは自動化することも、GitOps のプラクティスに従って手動で承認する必要が生じることもあります。

アプリケーションの確認

GitLab は、他の GitOps ツールのプレビュー環境と同様に、マージリクエストの一時環境を自動的に作成できます。これにより、マージ前の変更を簡単に確認およびテストできます。

継続的デプロイ

GitLab CI/CD は、変更が特定のブランチにマージされたときに、Kubernetes クラスターに変更を自動的にデプロイするように設定できます。

IaC

GitLab CI/CD は、Terraform や などのツールとの統合をサポートし、インフラストラクチャ CloudFormation をコードとして管理します。インフラストラクチャ定義は、アプリケーションコードとともにバージョン管理できます。

オブザーバビリティとモニタリング

GitLab CI/CD には、Prometheus および Grafana との統合など、モニタリングおよびオブザーバビリティ機能が組み込まれています。

セキュリティスキャン

GitLab CI/CD には、GitOps ワークフローの一部としてセキュリティを適用するために CI/CD パイプラインに統合できる組み込みのセキュリティスキャンツールが含まれています。

コンテナレジストリ

GitLab CI/CD には、GitOps ワークフローでコンテナイメージ管理をシームレスに統合するための組み込みコンテナレジストリが含まれています。

自動 DevOps

GitLab CI/CD の自動 DevOps 機能は、Kubernetes デプロイの GitOps 原則に従う CI/CD パイプラインを自動的に設定できます。

承認ワークフロー

GitLab CI/CD は、環境間で制御されたプロモーションを提供するデプロイの承認プロセスをサポートしています。

シークレットの管理

GitLab CI/CD には、CI/CD パイプライン内のシークレットを安全に管理および使用する機能が用意されています。

バージョニングとリリース

GitLab CI/CD は、CI/CD プロセスの一環として自動バージョニングとリリース管理をサポートしています。

ロールバック

GitLab CI/CD を使用すると、デプロイ後に問題が検出された場合、以前のバージョンに簡単にロールバックできます。

監査ログ

GitLab CI/CD は、GitOps のトレーサビリティの側面をサポートするために、すべてのアクションの包括的な監査ログを提供します。

マルチプロジェクトパイプライン

GitLab CI/CD は、複数のプロジェクトまたはリポジトリにまたがる複雑な GitOps ワークフローをサポートします。

ChatOps

GitLab CI/CD は ChatOps 統合をサポートしており、チャットインターフェイスを介してコラボレーションとオペレーションを提供します。

Kubernetes クラスター管理

GitLab CI/CD は、GitLab インターフェイスから直接 Kubernetes クラスターを管理する機能を提供します。

GitLab CI/CD は GitOps 専用に設計されているわけではありませんが、特に GitOps プラクティスを効果的に実装するために使用できます。 GitLab ソース管理、CI/CD、Kubernetes 管理を組み合わせた統合アプローチにより、GitOps ワークフローを実装するための強力なツールとなります。

GitLab CI/CD と Argo CD や Flux などの専用 GitOps ツールの主な違いは、GitLab が CI/CD 機能と共にソース管理、問題追跡、その他の開発ツールを含むより包括的なプラットフォームを提供することです。これにより、より広範な開発システム内で GitOps プラクティスを実装できるall-in-oneソリューションを必要とするチームに特に適しています。

GitLab CI/CD とそのアーキテクチャの詳細については、GitLab CI/CD ドキュメントを参照してください。