「51CTO」六大容器管道大比拼:配置、优势、局限性和价格( 二 )


配置
您可以使用基于Web的用户界面 , 来管理所有AzureDevOps 。 当然 , 您也可以通过已签入的应用源码和基于YAML的清单 , 来配置AzurePipelines 。 其WebUI使您可以管理和跟踪部署环境、发行版本、以及工件(artifact)等 。
优势和局限性
如果您的团队正在使用Azure , 那么AzureDevOps则是您现有工作流程的自然扩展 。 它既支持托管和本地安装 , 又支持包括AzureAppService、Kubernetes和AzureFunctions在内的多个Azure目标的部署 。
不过 , AzureDevOps与包括Azure在内的其他服务并不容易集成 。 在配置集成时 , 您甚至需要从Azure容器注册表等服务中 , 去复制与粘贴值 。 此类设置不但麻烦而且效率低下 。
价格
AzurePipelines提供了一个免费层 , 其中包含一个每月1800分钟的免费并发CI/CD作业 。 其他“作业”的费用为40美元 , 而托管工件(如镜像)的费用则为每月每GB2美元 。 当然 , 那些AzureBoards之类的增值服务也会按月收费 。 您若想了解更多AzureDevOpsServices的定价信息 , 请参见 。
我的观点
AzureDevOps非常适合需要一站式DevOps管理解决方案、或已经使用了Azure的团队 。 它通过集中到一处 , 极大地简化了开发的生命周期 。 不过 , 它对于那些只需要基本容器管道的团队来说 , 可能过于复杂了一些 。
3.GitLabCI/CD
GitLab源于一个开源的SCM , 不过它很快发展成为了一个完整的DevOps管理解决方案 。 与AzureDevOps类似 , 它提供的功能包括:项目管理、私有容器注册表、以及包括Kubernetes在内的一个精心构建的环境 。
配置
GitLabCI/CD由GitLabRunner所驱动 , 能够在自包含的环境中 , 执行CI/CD管道中的每个步骤 。 它通过gitlab-ci.yml清单来完成配置 。 该清单支持包括条件逻辑、以及导入其他清单在内的高级配置 。
另外 , 您也可以使用AutoDevOps , 在无需配置的情况下实现整个管道的自动化 。 通过Herokuish , GitLab使用Herokubuildpacks并基于源代码(如Dockerfile)来自动确定如何构建应用程序 。 AutoDevOps可以自动运行单元测试 , 执行代码质量分析 , 以及通过扫描图像来查看安全性问题 。
GitLab使用dpl工具进行部署 。 该工具支持包括云平台和Kubernetes集群在内的各种提供者 。
优势和局限性
通过GitLab提供的非常灵活的管道 , 您既可以自行配置 , 又可以使用内置工具实现完全自动化 。 其YAML配置允许更大范围的项目结构和步骤 , 例如:创建项目依赖项 , 以及组合来自不同项目的多个管道 。 由于GitLab使用的是诸如Herokuish和dpl之类的开源工具 , 因此它支持广泛的项目类型、语言和部署目标 。
尽管GitLab可以将Runners和工件部署到现有的环境中 , 但它本身无法配置或维护这些环境(当然 , GoogleKubernetesEngine和AmazonElasticKubernetesService除外) 。 而且 , 它还缺少图形化的管道配置工具 , 无法像使用AzurePipelines那样直观 。
价格
GitLab使用开放的内核模型:它提供了一个开源的基本版本和一个带有附加功能的付费企业版 。 付费版的定价从每位用户每月4到99美元不等 。 这种定价机制是基于用户数量的 。 它划归了每月可运行CI管道的分钟 , 以及对于某些功能的访问权 。 当然 , 所有版本都包括了无限的代码存储库 , 项目计划工具、以及每月2,000分钟的免费管道时间 。
我的观点
GitLab是一种功能强大的CI/CD工具 。 在功能的丰富程度上 , 其开源版本足以与许多商业工具相媲美 , 而且它还支持托管 。 不过 , 它需要您维护一个单独的部署环境 。
4.AWSElasticBeanstalk
ElasticBeanstalk不再是简单的管道 , 而是更多用于编排的AWS资源工具 。 它可以实现自动设置 , 负载均衡 , 扩展与监视包括ECS容器、S3存储桶和EC2实例在内的各种资源 。 您可以根据自己的特定需求 , 在AWS内创建一个完全自定义的管道 。


推荐阅读