致:正在选择CI平台的你(10大要素需把控)

Markdown

对于程序员来说,最纠结的恐怕是如何在众多工具和应用中选取合适的那个,小数之前给大家分享了8种CI/CD工具,用以提高交付效率和质量,今天再和谈谈选择CI平台要考虑的10大要素,前人栽树后人乘凉~

持续集成(CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

CI是采用DevOps的关键性一步,所以选择正确的平台无比重要。

以下是选择平台需要评估的10大要素:

NO.1 快速构建

CI平台的主要目标是为开发者提供代码检测的快速反馈,如:有一个存储库,每天进行2次更新,每年大约有500次更新,如果此存储库的构建速度快5分钟,将节省(5 * 500)/(60 * 8) = 5.2 个工作日,因此若有多个存储库就会发现,即使在构建时加快几分钟,也能大大提高生产率。

NO.2 集成

应该与构建所需的语言和第三方工具相结合,支持源代码管理系统以及编程语言、测试工具、打包工具和推送应用程序包的存储库及部署端点。CI平台应轻松地将这些集成起来并开始工作,一般情况下,建议使用具有规模大的平台,以便后续不受限制地采用不同工具。

NO.3 免费方案

免费方案或试用期是选择CI平台的关键因素,若没有免费方案,无法确切了解原理,也很难与有竞争力的产品进行比较做出决策。智能CI平台应说服潜在客户试用免费方案或无限制免费试用,用户一旦了解了高级功能的价值,即会做出明智选择。

NO.4 快速简便设置

CI服务需要快速方便地安装使用,若发现自己问了太多关于如何使用平台来实现简单场景的问题,这意味着服务太复杂,操作不便。如果优秀的使用文档和案例最好,且可以通过在线聊天系统即时询问。

NO.5 容器的支撑

Docker逐渐成为主流,应该选择具有支持Docker的平台,即便尚未使用容器,也应未雨绸缪。提前进行部署,如此CI平台才不会成为迁移到Docker的瓶颈。

NO.6 多点运行、版本、环境

支持多点运行,这样可以确保应用在不同场景中正常使用,同时也帮助测试语言的环境,并在采用新语言版本之前发现潜在问题。

NO.7 代码覆盖率、测试结果可视化

能在不使用任何其他工具的情况下,显示代码覆盖率和测试结果的信息,充分实现可视化。

NO.8 Build-as-Code

可以通过命令行的通用语法(如YAML文件)进行简单的配置,该文件可以与命令行一起使用并进行版本控制。UI配置相对比较笨重,使用命令行可以改善。

NO.9 灵活的基础设施选择

支持基础设施处理和满足安全要求。如果是资源密集型构建,要可以购买更大的节点。如果是严谨的金融技术型公司,建议应用开发放在内网,则CI平台要有企业版。

NO.10 客户支持团队

最后,询问CI平台是否有客户支持团队,并允许开发人员不需要太繁琐的手续或操作即可对其进行询问,因为传统的客服对产品或客户场景无法很好理解,只是提供了表面的支持。如果CI平台组建了客户支持团队,表明愿意采取主动的方式来帮助客户解决问题。

原文作者: Pavan Belagatti 原文链接:https://dzone.com/articles/10-things-to-consider-while-choosing-a-ci-platform