ご存じのように、Jenkins 2.0がリリースされ、継続的インテグレーション(CI)から継続的デリバリー(CD)に拡張されています。それでは、Jenkins 2.0と比較したSpinnakerの競争上の利点は何ですか?
私は、SpinnakerでのJenkins統合とNetflixのPipelines機能で広範囲に取り組んでいます。
Spinnakerは、エンドツーエンドのビルドツールになることを意図していませんでした。 Jenkinsは、SCMの管理、テストの実行、パッケージの構築、ガジリオンプラグインの作成などの点で優れていることがあります。
Spinnakerがうまくやろうとするのは、公開したソフトウェア(debianパッケージ、dockerイメージ、またはデプロイ可能なJAR)を取得し、高度にカスタマイズ可能な予測可能なソフトウェアデプロイメントサイクルを実行することです。つまり、Spinnakerのすべての機能は、高可用性、マルチアカウント、マルチクラウドのアーティファクトの展開を簡単に行えるように構築されています。
Spinnakerパイプラインはクラウド中心のビューを取ります。パイプラインステージとAPIコントロールのほとんどは、予測可能な使いやすい方法で新しいサーバーグループを作成し、既存のサーバーグループを変更することに関係しています。疑わしい場合は、最適化の対象となります。
クラウドデプロイの外観について強い意見があり、CDパイプラインでクラウドデプロイタスクを処理するときにポイントアンドクリックUIを使用することがよくあります---クラスターxでイメージを見つけ、このクラスターを無効にし、サーバーグループのサイズを変更します、このクラスターの縮小、このクラスターのトラフィックの取得、この古いクラスターの破壊など。
2年前にSpinnakerを書き始めたとき、Jenkinsのパイプライン機能は利用できなかったため、必要な機能を構築しました。 Netflixの他のチームが数千の展開パイプラインを内部で構築するのを支援するニーズから進化したJenkinsのサポート。 NetflixはビルドとテストをJenkinsに大きく依存しているため、JenkinsのジョブとSpinnakerステージ間の移行は非常にシームレスです。
Netflixには、Spinnakerパイプライン機能を使用せず、JenkinsジョブでSpinnaker APIをAWSにデプロイするためのショートカットとして使用するチームがあります。 Jenkinsパイプラインまたは同様のCDツールを使用している場合、Spinnakerは展開フェーズを非常に柔軟にします。
また、SpinnakerがJenkinsのジョブを1つのアプリケーションに関するアトミックで再利用可能なタスクに分割する方法を好むチームもあります。クラウドにデプロイしないチームはSpinnakerを使用します。これは、当社のパイプラインがJenkinsの世界で見つけることができるものよりもニーズに合っているためです。
Jenkinsのパイプラインはかなりきれいです。 SpinnakerがJenkinsとそれが行う100万のことを完全に置き換えるとは思わない。私たちの目標は、「クラウドへのデプロイ」ステップをよりシンプルで拡張性の高いものにすることです。どちらを使用するか、一緒に使用するか、まったく使用しないかは、ユーザー次第です。
CDツールとしてJenkins(2.0)PipelineよりSpinnakerを選択する理由はいくつかあります。
一方、SpinnakerよりもJenkins Pipelineを選択する理由はたくさんあります
最終的に、Jenkins 2.0 PipelineをSpinnakerなどのCDツールとして選択しました。
Mavenを使用して、コードベース全体とconfigsプロパティ(つまり、GitHubでバージョン管理されているすべてのもの)をパッケージ化し、そこからRPMを作成します。このフローが終了すると、AWSまたはその他のクラウドでSpinnakerパイプラインがトリガーされ、CDパーツが開始されます。
SpinnakerはこのCDスコープで非常にユニークです。
コードプロモーション:プロモーションと同じRPMにより、基になるコード/ envが不変になります。
Spinnakerコンソール自体からインスタンスのサイズ変更を制御できます
ロールバックはワンクリックです。
Blue-green/Red-Black、Canary、highlanderなどの最新のデプロイメントコンセプトはすべて、ここでOOBです。
パイプラインログは、高レベルと低レベルの両方の非常に洞察に富んだビューを提供します
マルチリージョン展開(DR戦略)
spinHELKをRHELにインストールする際にヘルプ(無料ヘルプ!)が必要な場合は、お知らせください。
ただし、Spinnakerはクラウド中心の展開にのみ使用する必要があります。