gitlab英雄边框图案左svg Gitlab英雄边框图案右SVG

GitLab
vs.
旋转运动员

决策套件

决策套件

Spinnaker摘要

大三角帆是什么?Spinnaker是一个开源的、多云的连续交付平台,可以帮助您发布软件变更。它是由Netflix制作的,在制作过程中经过了数百个团队的数百万次实战测试。新利18骗它结合了强大而灵活的管道管理系统和与主要云提供商的集成。(来源:

像Spinnaker一样,Gitlab也是开源的,还提供了一个灵活的CD管道管理系统,能够部署到主要云提供商,也提供了先进的部署模式,如金丝雀和增量(滚动)部署。除此之外,Gitlab还不仅提供了SDLC的CD部分,还提供了其他所有其他东西,还可以在单​​一应用中进行测试,打包,监控和安全扫描。

Spinnaker提供两组核心特性:

  1. 应用程序管理:这主要是要查看和控制您的云资源。在Spinnaker中,应用程序沿着微野跑线模型。应用程序包含包含服务器组的群集。该应用程序还模拟了负载均衡器和防火墙。

  2. 应用程序部署:此构造用于模拟和管理连续交付工作流程。应用程序部署的一个关键元素是管道。管道由一系列动作或阶段组成,可以手动或自动触发。参数也可以从一个阶段传递给另一个阶段并用于进一步的动作。

在宏观级别的旋转器中,提供了可以在云提供商应用的伪影和操作的规范化分类。使用该规范化的分类系统可以为云提供商或云提供商构建复杂的管道。

Spinnaker是在kubernetes时代创建的,代码基础没有拍摄kubernetes新星。这可能导致更高的Spinnaker部署和维护成本。为了管理更复杂的企业环境,Armory.io为Spinnaker提供了企业分发。

Armory.io.

Armory.io.提供Spinnaker的企业分发。第三方公司必须提供企业分销,提供了对Spinnaker平台的限制/挑战的充分指示。

此外,Armory.io的商业模式严重依赖于他们的服务团队参与客户账户。所以它更少的产品。新利18骗清楚地表明服务需求是Armory.io定价页面列出了三个企业产品,但在任何中都没有定价。这可能是由于服务组件在每个客户参与范围内的不可预测性。

优势

  • 跨云提供商轻松部署应用程序。
  • 可以轻松应用的预打包行动,无需降低对不同云提供商的概念的较低级别了解。
  • Spinnaker是开源的,并且有一个开发商社区贡献了该项目。
  • 复杂,同时部署为一流的公民。

空白

  • 仅支持Devops循环的连续传递(CD)阶段。
  • 标准化分类不适用于云提供商。例如,Amazon ECS群集不会映射到任何核心旋转器概念。因此,这些需要单独设置,从而减少Spinnaker可以提供的值。
  • 云提供商在它们的部署和管理应用程序中的不同之处在于,最终用户需要缩小每个提供商的单独理解。
  • Spinnaker不支持OpenStack。
  • 仅适用于自托管和托管选项。没有云版Spinnaker。
  • 陡峭的学习曲线——管道表达式语言使用自定义语法,这需要用户的学习曲线。此外,一些字符串操作和其他表达式计算需要在表达式语言中使用java代码。在管道表达式逻辑中不支持嵌套表达式,这在某些场景中可能是一个限制。

资源

特征比较
特征

内置CI / CD

Gitlab免费持续集成/连续交付,无需单独安装它。使用它来构建,测试和部署您的网站(Gitlab页面)或WebApp。Job结果显示在合并请求中,以便于访问。

了解有关CI / CD的更多信息

为使用容器和Docker而构建

Gitlab船用自己的容器注册表,Docker CI Runner,并已准备好完成CI / CD容器工作流程。无需安装,配置或维护其他插件。

阅读文档

使用集成的Web终端调试容器

使用内置Gitlab Web终端轻松调试您的任何环境中的容器。如果您的应用程序部署在Kubernetes上,Gitlab可以直接从环境中打开终端会话。这是一个非常强大的功能,您可以在不留下您的Web浏览器的舒适性的情况下快速调试问题。

了解有关Web终端的更多信息

综合管线图

管道可以是复杂的结构,具有许多顺序和平行的作业。要使它更容易看到正在发生的事情,您可以查看单个管道的图形及其状态。

了解更多关于流水线图的信息

可浏览工件

使用Gitlab CI,您可以在Gitlab本身上传您的作业工件,而无需外部服务。因此,伪像也通过Gitlab的Web界面进行浏览。

了解更多有关在项目中使用作业工件的更多信息

最新的工件锁定以防止删除

在任何活动分支,MR或标记上的成功作业和管道的最新工件将自动锁定以防止被删除。这使得可以设置攻击性的到期策略来清理较旧的伪像,降低磁盘空间消耗,并确保始终可用的最新工件。此默认行为可在项目级别配置,可以在项目设置中禁用。

了解有关工作伪影的到期

预定触发管道

您可以在Cron的环境中制作管道运行。

了解如何在Gitlab的时间表中触发管道

多项目管道图

使用多项目管道图形,您可以看到上行和下游管道如何将与通过触发器相关联的项目链接在一起,作为更复杂的设计的一部分,因为它适用于微服务架构。

了解有关多项目管道图的更多信息

环境和部署

Gitlab CI不仅能够测试或构建您的项目,还可以在您的基础架构中部署它们,为您提供一种跟踪部署的方法。环境类似于您的CI作业的标签,描述代码部署的位置。

了解有关环境的更多信息

自动Devops.

Auto Devops通过默认自动配置软件开发生命周期将Devops最佳实践为您的项目带来了Devops。它会自动检测,构建,测试,部署和监视应用程序。

阅读更多关于文档中的Auto Devops的更多信息

金丝雀部署

使用Kubernetes部署应用程序时,Gitlab Premium会监控您的金丝雀部署。可以直接配置金丝雀部署.gitlab-ci.yml.,API,或来自部署板的UI。

了解有关配置金丝雀部署的更多信息

复杂,同时部署每个环境

金丝雀,蓝色/绿色部署以及其他同时部署概念,如生产,如生产,将同时运行多个部署。新利18骗Gitlab具有此信息,甚至可以在部署板上显示金丝雀部署,但在某些其他地方仅显示最近的部署。

强大的部署和回滚捆绑包

封装了将部署和滚动的知识封装为多个脚本,也许类似于K8S运算符。知道如何处理失败的东西。例如如果您正在部署7个服务和一个失败,您不能停止,您可能必须回滚6个成功的6,以及第7个失败。(现在,根据实现,它仍然可能是一种触发某种运算符的脚本)。Gitlab可以部署和回滚,但仅通过具有有限错误处理的脚本。

失败时自动回滚

如果在生产上触发了一个关键警报,则自动回滚将部署返回到最后的成功部署。新利18骗

预先编写的部署目标机制

GitLab Auto DevOps知道如何部署到Kubernetes。其他供应商有内置的机制部署到AWS vm、Fargate等。

负载Blue / Green Deployment的均衡器管理

Blue / Green Deployment需要将流量从一组服务器切换到另一组。与Gitlab今天一起,您可以通过脚本管理您的负载均衡器,但它不是作为一流的公民内置的。

积极确认在生产中运行的内容新利18骗

Gitlab知道如何部署到生产(和其他环境),但然后相信结果新利18骗。其他供应商积极查询目标环境以了解正在运行的内容。