このページのコンテンツ
要約
Spinnaker is an open-source, multi-cloud continuous delivery platform that helps you release software changes. Created at Netflix, it has been battle-tested in production by hundreds of teams over millions of deployments. It combines a powerful and flexible pipeline management system with integrations to the major cloud providers. (source:)
Like Spinnaker, GitLab is also open source and also provides a flexible CD pipeline management system, is able to deploy to major cloud providers, and also offers advanced deployment patterns such as canary and incremental (rolling) deployments. In addition to this, GitLab provides not just the CD portion of the SDLC, but also everything else from planning, to CI, to testing, packaging, monitoring, and security scanning, all in a single application.
Spinnaker provides two core sets of features:
-
Application management: This is primarily to view and control your cloud resources. In Spinnaker an Application is modeled along the lines of Microservices. An application contains clusters, which consists of Server Groups. The Application also models Load Balancers and Firewalls.
-
Application deployment: This construct is used to model and manage continuous delivery workflows. A key element of Application Deployment is the Pipeline. A pipeline consists of a series of actions or stages which can be executed manually or automatically triggered. Parameters can also be passed from one stage to another and used for further actions.
At a macro level Spinnaker provides a normalized taxonomy of artifacts and actions that can apply across cloud providers. Using this normalized taxonomy one can build complex pipelines for a cloud provider or across cloud providers.
Spinnaker was created in the pre-kubernetes era and the code base did not take Kubernetes effet. This could lead to higher deployment and maintenance costs. To manage more complex enterprise environments, Armory.io provides an enterprise distribution for Spinnaker.
Armory.io
Armory.io provides an enterprise distribution of Spinnaker. That a third party company has to provide an enterprise distribution provides sufficient indication on the limitations/challenges of the Spinnaker platform.
Furthermore, Armory.io's business model is heavily dependent on their services team's involvement in customer accounts. So it is more services less product. A clear indication of the need for services is the Armory.io pricing page that lists the three enterprise offerings but no pricing on any of them. This is likely due to the unpredictability of the services component within each customer engagement.
Strengths
- Easy application deployment across cloud providers.
- Pre-packaged actions that can be easily applied, without need for lower level understanding of different cloud provider's concepts.
- Spinnaker is Open Source and has a community of developers contributing to the project.
- Complex, simultaneous deployments as first-class citizens.
不足部分
- Only supports the Continuous Delivery (CD) phase of a DevOps cycle.
- Normalized taxonomy does not apply across cloud providers. For example, an Amazon ECS cluster does not map to any core Spinnaker concept. So these need to be set up separately, thus diminishing the value that Spinnaker can provide.
- Cloud providers differ in how they deploy and manage applications, thus eventually users need to get down to individually understanding each provider.
- Spinnaker does not support OpenStack.
- Only available in Self-hosted and managed option. No Cloud version of Spinnaker.
- Steeper learning curve - Pipeline expression language uses a custom syntax, which entails a learning curve for users. Moreover, some string manipulation and other expression evaluation requires use of java code within the expression language. Nested expressions are not supported in Pipeline expression logic, this can be a limitation in some scenarios.
リソース
比較
機能 | | |
---|---|---|
統合されたCI/CD CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLabにはCI/CD機能が統合されているので、CI/CDのために他のツールをインストールする必要はありません。GitLabのCI/CDを使用して、ウェブサイト(GitLab Pages)やウェブアプリケーションをビルド・テスト・デプロイできます。ジョブの結果はマージリクエストに表示され、簡単にアクセスできます。 | | |
包括的なAPI CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLabは、インテグレーションの開発を可能にするために、多くの機能をAPIとして提供しています。 | | |
コンテナや Docker を用いたビルド CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLabは、GitLab独自のコンテナレジストリとDocker CI Runnerを搭載しているため、それだけでCI/CDでのコンテナワークフローを完結できます。つまり追加のプラグインをインストール、設定、管理する必要はありません。 | | |
統合されたウェブターミナルでコンテナをデバッグ CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLabにビルトインされたウェブターミナルを使用すると、あらゆる環境のコンテナを簡単にデバッグできます。アプリケーションをKubernetesにデプロイしている場合は、GitLabの環境メニューから直接ターミナルのセッションを開始することができます。この強力な機能により、ブラウザから離れることなく、問題の調査を素早く行うことができます。 | | |
柔軟なパイプライングラフ CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
複数のジョブを直列、または並列に実行するパイプラインの構造は非常に複雑です。 GitLabでは単一のパイプライングラフですべてのジョブのステータスを表示できるので、 何が起こっているのかを簡単に確認できます。 | | |
成果物をブラウズ可能 CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLab CIを使用すると、外部サービスを必要としないで、GitLab内にジョブの成果物をアップロードできます。 これによって、アップロードした成果物をGitLabのウェブインターフェースで表示できます。 | | |
パイプラインをスケジュール実行 CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
cronのように、パイプラインをスケジュール実行できます。 | | |
複数プロジェクトのパイプライングラフ CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
マイクロサービスアーキテクチャでは、パイプラインの設計はより複雑なものになります。 複数プロジェクトのパイプライングラフを使用すると、アップストリームとダウンストリームのパイプラインが、プロジェクトのトリガーを通して、どのように協調しているのかを表示することができます。 | | |
環境とデプロイメント CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLab CIを使用すると、ビルドやテストだけではなく、インフラへのデプロイもできます。 また、CIのジョブのタグに似ている、環境を利用するとデプロイ履歴をトラッキングできます。 | | |
Auto DevOps CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
Auto DevOps機能を使用すると、ソフトウェア開発ライフサイクルの自動設定が適用されます。 これにより、DevOpsのベストプラクティスに従って、プロジェクトを推進することができます。 | | |
カナリアデプロイメント CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLab Premiumでは、Kubernetesにアプリケーションをデプロイしている場合は、 カナリアデプロイメントを監視できます。 | | |
Complex, simultaneous deployments per environment CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
Canaries, blue/green deploys, and other simultaneous deployment concepts where an environment, like production, would have multiple deployments running at the same time. GitLab has this information, and can even show canary deployments in the deploy board, but in some other places only shows the most recent deployment. | | |
Robust deploy and rollback bundle CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
Encapsulate knowledge of deploying and rolling back into something more than a script, perhaps similar to a k8s operator. Something that knows how to handle failure. e.g. if you’re deploying 7 services and one fails, you can’t just stop, you probably have to rollback the 6 that succeeded, as well as the 7th that failed. (Now, depending on implementation, it still might be a script that triggers some kind of operator). GitLab can deploy and rollback, but only via scripts with limited error handling. | | |
Pre-written deploy target mechanisms CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLab Auto DevOps knows how to deploy to Kubernetes. Other vendors have built-in mechanisms to deploy to AWS VMs, Fargate, etc. | | |
Managed load balancer CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
To do proper blue/green, you need to understand and expose the load balancer. With GitLab, you can script management of your load balancer, but it’s not built in as a first-class citizen. | | |
Active confirmation of what is running in production CORE STARTER PREMIUM ULTIMATE FREE BRONZE SILVER GOLD
GitLab knows how to deploy to production (and other environments), but then trusts the result. Other vendors actively query the target environment to know what is running. | | |
* このページの情報は最新ではありません。最新の情報は 公式サイト をご確認ください。