CI/CD代表持续集成和持续交付/持续部署。也就是说,CI部分处理如何在不同阶段将代码与不同的分支合并,CD部分处理如何将构建的应用程序部署到部署服务器中。
在为软件开发工作流程选择CI/CD 服务器时需要注意以下几点:
易于安装和配置
与其他问题跟踪工具和版本控制工具集成
安全性和合规性
价格
接下来介绍几款常见的CI/CD工具,以及每种工具的使用场景。
Jenkins
Jenkins是领先的开源自动化服务器,可以协助软件自动化开发中与构建、测试和部署相关的工作(反过来,促进CI/CD)。是由Kohsuke_Kawaguchi创建的。
Jenkins是基于Java的,可以在任何服务器上自行托管它。可以在Windows、Mac、Linux或类unix操作系统中使用。它作为一个独立的应用程序运行在名为Jetty的内置servlet容器中的进程中。也可以使用其他servlet容器(如Apache
Tomcat或Glassfish)运行Jenkins。
安装后,可以使用其带有内置帮助和实时错误检查的Web界面轻松配置。Jenkins插件生态系统使其更容易与CI/CD工具链中的任何其他工具集成。还可以通过创建一个插件来扩展Jenkins的功能。如WuKong静态软件安全测试工具可以集成到
Jenkins平台,以满足Devops/DevSecOps平台建设需求。
需要注意的一点是,Jenkins作为一个自托管程序,需要一些时间来维护安全协议和更新问题。
GitHub
微软的源代码管理工具GitHub提供了无限的免费私人和公共存储库。还提供Github Actions 来自动化您的软件开发工作流程。
Github Actions也是GitHub完全托管的服务。因此,无需维护更新,并且当一次出现多个同时构建时,也不需要手动扩展服务器。
GitHub Actions可以触发GitHub存储库中的不同事件,例如代码推送、新发布和新问题创建。
Gitlab
Gitlab是一个集开发、安全、构建和部署于一体的DevOps平台。
它是一个开放源代码的端到端软件开发平台,带有内置的CI/CD工具,因此在使用Gitlab进行源代码管理时,不需要单独安装它。用户可以在自己的服务器上托管Gitlab,也可以在AWS、Azure或谷歌cloud等任何云提供商上托管。
Bitbucket管道
Bitbucket pipeline是一个集成的CI/CD服务,内置在Atlassian的源代码管理工具Bitbucket中。
JIRA是Atlassian旗下的一个缺陷跟踪工具。当你在JIRA中跟踪问题并在Bitbucket中维护源代码时,Bitbucket管道是CI/CD的最佳选择。
BitBucket 管道与JIRA和Bitbucket存储库 具有出色的集成。可以基于项目存储库中的配置文件构建、测试和部署应用程序。
Travis CI
Travis CI 是一种托管 CI 服务,用于构建和测试托管在GitHub和Bitbucket上的软件项目。
Travis CI可以在不同的环境和运行在不同操作系统上的各种机器上构建和测试代码。虽然Travis
CI构建工件并检查代码质量,但并不能很好地识别代码中的安全漏洞,因此可以通过集成安全检测工具来执行安全策略,并在发生损失之前检测代码中的安全漏洞。
在CI/CD的世界中,不同的工具适合不同的用例,企业需要根据自己的实际需求来选择。
例如,基于云的CI/CD工具越来越受欢迎,因为避免了安装、操作和维护CI/CD基础设施所需的人力和资源。对于预算有限的小团队来说可能是个不错的选择。
无论目前哪种工具适合企业,都是为了DevOps团队从开发阶段开始及时关注和解决安全问题,从一开始保护企业代码、软件资产和其他基础设施不受安全风险的影响。
本文作者:中科天齐软件安全
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/180516.html