Spinnaker - AWS 規範ガイダンス

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

Spinnaker

GitOps ツールとしてのみ設計されているわけではありませんが、特にクラウドネイティブおよび Kubernetes デプロイに使用する場合は、GitOps の原則を実装するように設定できます。

GitOps のサポート

[面積] ツール機能

宣言型設定

" は宣言型パイプライン定義を使用します。これは通常、JSON ファイルまたは YAML ファイルとして保存されます。これらのパイプライン定義は、GitOps プラクティスに従って Git リポジトリでバージョン管理できます。

IaC

" は、インフラストラクチャとデプロイ設定の定義をコードとしてサポートしています。これらの定義は Git リポジトリに保存でき、単一の信頼できるソースとして機能します。

マルチクラウドデプロイ

" は、複数のクラウドプロバイダーと Kubernetes クラスターで動作するように設計されています。これにより、さまざまな環境で一貫した GitOps プラクティスが可能になります。

コードとしてのパイプライン

パイプラインはコードとして定義し、Git リポジトリに保存できます。これにより、バージョン管理とデプロイプロセスのレビューが可能になります。

自動デプロイ

Git リポジトリの変更に基づいてデプロイを自動的に開始するように " を設定できます。このツールは、GitOps の中心となる継続的なデプロイプラクティスをサポートしています。

イミュータブルなインフラストラクチャ

" は、GitOps の主要な概念であるイミュータブルインフラストラクチャの使用を促進します。既存のインスタンスを変更するのではなく、新しいインスタンスのデプロイを推奨します。

ロールバックとバージョニング

" は、堅牢なロールバック機能と、以前の既知の正常な状態への迅速な復帰を提供します。GitOps のトレーサビリティの原則に従って、デプロイのバージョニングをサポートします。

承認ワークフロー

「」には、環境間の制御されたプロモーションをサポートするために、パイプラインに手動による判断ステージが含まれています。これにより、デプロイとリリースを分離する GitOps プラクティスがサポートされます。

Canary と Blue/Green のデプロイ

" は、安全で制御されたリリースのための GitOps プラクティスに沿った高度なデプロイ戦略をサポートしています。

バージョン管理システムとの統合

" は、さまざまな Git プロバイダーと統合して、リポジトリイベントに基づいてパイプラインを開始できます。

Kubernetes 統合

" は Kubernetes のネイティブサポートを提供し、Kubernetes リソースの GitOps スタイルの管理をサポートします。

アーティファクト管理

" は、GitOps ワークフローを維持するために不可欠なアーティファクト管理とバージョニングをサポートしています。

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

" は、GitOps のオブザーバビリティの側面をサポートするモニタリングツールとの統合を提供します。

監査証跡

" は、GitOps の監査可能性の原則をサポートする詳細なデプロイログと履歴を提供します。

ロールベースのアクセスコントロール (RBAC)

このツールは、GitOps セキュリティプラクティスに従って、どのアクションを実行できるかをきめ細かく制御するための RBAC を実装します。

テンプレート化とパラメータ化

" は、再利用可能なパラメータ化されたデプロイを可能にするパイプライン定義のテンプレートをサポートしています。

環境の昇格

" は、制御された方法で環境間のアプリケーションのプロモーション (ステージングから本番稼働など) を容易にします。

CI ツールとの統合

" は、さまざまな継続的インテグレーション (CI) ツールと統合して、GitOps の原則に準拠した完全な CI/CD パイプラインを提供できます。

カスタムステージと拡張機能

このツールはカスタムステージと拡張機能をサポートしているため、チームはニーズに合わせた GitOps ワークフローを実装できます。

一元管理

" は、複数の環境とクラウドプロバイダーにまたがるデプロイを管理するための一元化されたプラットフォームを提供します。

" は主に GitOps ツールとして販売されていませんが、その柔軟性と堅牢な機能セットにより、特に複雑なマルチクラウド環境で GitOps ワークフローを実装できます。Argo CD や Flux などの " と専用の GitOps ツールの主な違いは、" が高度なデプロイ戦略とマルチクラウドサポートを備えた、より包括的な継続的デリバリープラットフォームを提供することです。

「」の強みは、さまざまなクラウドプロバイダーにわたる複雑なデプロイシナリオを処理する能力と、高度なデプロイ戦略のサポートにあります。" が適切に設定されている場合、GitOps の原則を効果的に実装できます。これにより、多様で複雑な環境で GitOps プラクティスを採用したい組織にとって強力なツールになります。

詳細については、「」のドキュメントを参照してください。

アーキテクチャ

次の図は、" と Jenkins X を使用する GitOps 駆動型 CD ワークフローを示しています。詳細については、" ドキュメントを参照してください。

「」のアーキテクチャとワークフロー AWS。

各パラメータの意味は次のとおりです。

  • ステップ 1: コードコミット。開発者は、アプリケーションコードの変更を Git リポジトリにコミットします。これらの変更には、アプリケーション自体、Dockerfiles、または Kubernetes マニフェストの更新が含まれる場合があります。

  • ステップ 2: Jenkins のビルドとイメージの作成。Jenkins は、ウェブフックまたはポーリングを介して Git リポジトリによって自動的にトリガーされます。Jenkins はアプリケーションを構築し、Docker イメージを作成し、ビルドされたイメージを設定済みの Docker レジストリ (Amazon ECR や Docker Hub など) にプッシュします。

  • ステップ 3: イメージのモニタリングとパイプラインのトリガーを行います。" は、新しいイメージについて Docker レジストリを継続的にモニタリングします。新しいイメージバージョンが検出されると、" はパイプラインを自動的にトリガーしてデプロイプロセスを開始します。

  • ステップ 4: ターゲット名前空間へのデプロイ。" は、新しい Docker イメージを Amazon EKS にデプロイします。パイプライン設定に基づいて、イメージはクラスター内のターゲット名前空間にデプロイされます。" は、ブルー/グリーンデプロイや Canary デプロイなどの定義されたデプロイ戦略に従って、最新のアプリケーションバージョンをデプロイします。