オープンソースのマルチクラウド継続的デリバリープラットフォームであるSpinnakerは、ソフトウェア更新を高速かつ確実にリリースするために、「アプリケーション管理機能」と「アプリケーション展開機能」の2つのコアセット機能を提供します。
Spinnakerのアプリケーション管理機能は、クラウドリソースを管理する機能を提供します。
Spinnakerにおける「アプリケーション」は、一般的に「アプリケーション」または「マイクロサービス」と呼ばれるサービスコレクションの概念をモデル化しています。
Spinnakerにおける「アプリケーション」とは、Spinnakerを使用してデプロイする「サービス」「サービスのすべての構成」「実行されるすべてのインフラストラクチャ」を表します。
「アプリケーション」=「クラスタのコレクション」であり、「クラスタ」=「サーバグループのコレクション」です。アプリケーションには、ファイアウォールとロードバランサーも含まれています。
一般的に、Spinnakerを使用する場合、サービスごとに異なるアプリケーションを作成します。
Spinnakerにおける「クラスタ」とは、サーバグループの論理グループとして定義できます。
クラスタセクションは、アプリケーションのデプロイに関連する情報を階層化できるコマンドアンドコントロールベースとして機能します。
基本リソースであるサーバグループでは、基本的な構成設定を定義します。
・デプロイ可能なアーティファクト---VMイメージ、Dockerイメージ、ソースの場所
・インスタンス数
・自動スケーリングポリシー
・メタデータ
・(オプション)ロードバランサー
・(オプション)ファイアウォール など
サーバグループはデプロイされると、実行中のソフトウェアのインスタンス(VMインスタンス、Kubernetesポッド)のコレクションになります。
ロードバランサーは「プロトコル」および「ポート範囲」に関連付けられ、サーバグループ内のインスタンス間でトラフィックのバランスを調整します。
ロードバランサーのヘルスチェックオプションを有効にすると、ヘルス基準を定義し、ヘルスチェックエンドポイントを柔軟に指定できます。
ファイアウォールは、ネットワークトラフィックのアクセスを定義します。
これは事実上、ファイアウォールルールのセットであり、「通信プロトコル(TCPなど)」「ポート範囲」「IP範囲(CIDR)」などによって定義されます。
Spinnakerのアプリケーション展開機能を使用することで、継続的デリバリーワークフローについて構築および管理を実施できます。
Spinnakerにおける「パイプライン」とは、展開の管理構造であり、「一貫性」「再現性」「安全性」を実現するためにデプロイメントを管理します。
パイプラインはステージと呼ばれる一連のアクションで構成され、ステージ間でパラメータを渡すことで機能します。
以下のものを開始トリガーとして構成できます。
・手動開始
・Jenkinsジョブ完了
・レジストリに表示される新しいDockerイメージ
・CRONスケジュール
・別のパイプラインのステージイベント など
パイプラインの「開始時」「完了時」「失敗時」などのタイミングで、「電子メール」「Slack」「SMS」などを介して関係者に通知を送信するように構成できます。
パイプラインの実行履歴を保存し表示できます。
これは、各デプロイメント操作の詳細を確認する手段として機能するだけでなく、プロセスやポリシーに関する監査ログとしても利用できます。
マネージドパイプラインテンプレートは、さまざまなチーム間でパイプラインを共有管理できる機能です。
【テンプレート】
パイプラインテンプレートは、ユーザーが値を提供する変数のセットを使用して、パラメータ化されたパイプラインを定義します。
このテンプレートは、「パラメータ化されたパイプラインから、パイプラインインスタンスで発見されたパイプライン構成を差し引いたもの」であり、確立したパターンに従うパイプライン作成に役立ちます。
【構成】
テンプレートから作成されていないパイプライン構成と同じですが、「変数バインディング」と「テンプレート参照」があります。
「トリガー」「通知」「パラメータ」などについて、「継承」や「オーバーライド」が可能となっています。
Spinnakerにおける「ステージ」とは、パイプラインが線形または並列で実行するアクションのための「一連のタスク」および「構成されたステージ」のコレクションです。
Spinnakerはさまざまなステージを提供しています。
・インフラストラクチャ操作関数---デプロイ、サイズ変更、無効化
・Runbook定義用ユーティリティスキャフォールディング関数---手動判断、待機、Jenkinsジョブ実行 など
Spinnakerは、クラウドネイティブの展開戦略をファーストクラスの構成として扱い、基盤となるオーケストレーションを処理します。
・ヘルスチェック検証
・古いサーバグループの無効化
・新しいサーバグループの有効化 など
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
OSS×Cloud ACCESS RANKING