マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Spinnaker

【OSS情報アーカイブ】Spinnaker

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Spinnaker」とは

概要

Spinnaker(スピネーカー)とは、マルチクラウド継続的デリバリープラットフォームです。複数クラウドに対するデプロイやクラスタ管理を実施し、アプリケーションリリースについて高速かつ確実にリリースするためのインテリジェントな継続的デリバリープロセスを自動化できます。

基本説明

Spinnakerは、「柔軟なパイプライン管理システム」と「主要クラウドプロバイダー統合」を組み合わせており、強力な抽象化レイヤーを通じて、開発者がコミットから配信までアプリケーションコードを所有できるツール類を提供します。

Spinnakerは、成熟し広く利用されている継続的デリバリープラットフォームとして、「SDLC(Software Development Life Cycle:ソフトウェア開発ライフサイクル)」をサポートします。

経緯

Spinnakerは、2015年11月、Netflixによってオープンソース化されました。

オフィシャルサイト情報

■オフィシャルサイト

→spinnaker.io

■GitHub

→github.com →spinnaker/spinnaker

■ライセンス情報

Spinnakerのライセンスは「Apache License 2.0」です。

詳細について、こちらを参照ください。
→github.com →spinnaker/spinnaker →LICENSE.txt

■インストール方法

→spinnaker.io →setup →install

■導入事例

Spinnakerのユーザー企業には「Salesforce」「Airbnb」「Adobe」「JPMorganChase」などがあります。

数百万を超える展開で数百のチームによって本番環境での導入が進んでいます。

→spinnaker.io →success-stories

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Jenkins」など。

ソフトウェア開発ライフサイクル管理

■アプリケーションワークフローの構築

Spinnakerでは、「GUI:グラフィカルユーザーインターフェイス」または「config-as-code」を使用して、1つ以上のリソースを含むアプリケーションワークフローを構築し、ソフトウェア開発ライフサイクルを管理します。

・クラウドプロバイダーへの仮想マシンの展開
・不変インフラストラクチャとして焼き付け
・クラウドへのコンテナのデプロイ
・Kubernetesへのコンテナのデプロイ
・ロードバランサー設定
・セキュリティグループ設定
・サーバグループ設定
・クラスタ設定
・ファイアウォール設定
・関数設定 など

■開発者にアプリのプロビジョニング制御を許可

Spinnakerでは、GitOpsを促進し、開発者にアプリのプロビジョニングインフラストラクチャ制御を許可できます。

SpinnakerのClouddriverを使用して、すべての主要なパブリッククラウドプロバイダーとKubernetesにデプロイします。

Spinnaker配信パイプラインの一部として、構成とファームウェアの変更を調整することもできます。

マネージドデリバリー

■宣言型定義を提供

Spinnakerの機能セットであるマネージドデリバリーは、「一般的インフラストラクチャ」および「その他要件」について宣言型定義を提供します。

ユーザーは、これらの事前構築された定義を使用して要件を宣言し、ビジュアルインターフェースを介して、環境間で要件を移動できます。

■アプリケーション配信用の「舗装道路」を作成

Spinnakerを使用すると、有効な「インフラストラクチャ」+「構成」のみが本番環境に到達することを保証するガードレールを使用して、アプリケーション配信用の「舗装道路」を作成できます。

ビジネス要件と規制要件の強化を自動化しながら、開発チームを煩わしい運用プロビジョニングから解放します。

■展開パイプライン作成

統合テストとシステムテストを実行し、サーバグループをスピンアップおよびスピンダウンし、ロールアウトを監視する展開パイプラインを作成します。

以下のパイプライントリガーに対応しています。
・gitイベント
・Jenkins
・Travis CI
・Docker
・CRON など

■構成ドリフト問題を排除

「不変イメージデプロイ」「ロールアウト高速化」「ロールバック容易化」などにより、デバッグが難しい構成のドリフト問題を排除します。

■カナリアリリースなどの配信自動化対応

「カナリアリリース」とは、新バージョンアプリのリリース時に、従来バージョンのアプリを並行稼働させ、一部ユーザーのみを新バージョンにアクセスさせるデプロイ手法を指します。

このようなカナリアリリースなどの配信自動化戦略は、ビジネスやエンドユーザーの利便性を保護しながら、迅速なイノベーションから価値を獲得するために必要な安全性を提供します。

マルチクラウド

Spinnakerは各種クラウドプロバイダーをサポートしています。

・Amazon Web Services—Amazon EC2
・Microsoft Azure
・Google Compute Engine—Google App Engine、Google Kubernetes Engine
・Openstack
・Kubernetes
・Cloud Foundry
・Oracle Cloud Infrastructure
・DC/OS など

統合とカスタマイズ

■SDLC(ソフトウェア開発ライフサイクル管理)用ツール統合

Spinnakerは、多数の独立したマイクロサービスで構成されており、「HalyardCLIツール」または「KubernetesOperator」が他サービスのライフサイクルを管理します。

Spinnakerのプラグインフレームワークにより、SDLC(ソフトウェア開発ライフサイクル管理)用のさまざまなツールをSpinnakerと統合することで、ニーズに合わせて簡単にカスタマイズできます。

■プラグイン

プラグインを使用する場合は、Spinnakerを更新せずに追加できるため、ソフトウェア配信ツールチェーン全体を簡単に活用できる可能性は高まります。

この仕組みにより、Spinnakerはパフォーマンスと運用上の利点を実現しています。

「Spinnaker」のコア機能

オープンソースのマルチクラウド継続的デリバリープラットフォームである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は、クラウドネイティブの展開戦略をファーストクラスの構成として扱い、基盤となるオーケストレーションを処理します。

・ヘルスチェック検証
・古いサーバグループの無効化
・新しいサーバグループの有効化 など

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。