问:什么是 Jenkins?

Jenkins 是一种用 Java 编写的开源持续集成工具。它可以为软件开发提供自定义的集成服务。Jenkins 是一个基于服务器的系统,可以供很多开发团队使用。

问:为什么应该使用 Jenkins?

如果您想加快软件开发生命周期 (SDLC),则应使用 Jenkins。借助 Jenkins,您可以将构建、部署和测试集成到各种环境中,并减少开发团队的等待时间。最后,由于 Jenkins 让您能够持续集成,因此它非常适合采用快速迭代周期的开发运营和敏捷开发方法。

问:为什么应该在 AWS 上运行 Jenkins?

AWS 可以提供可靠、可扩展且安全的基础设施资源,这些是运行 Jenkins 等应用程序的理想资源。通过在 AWS 计算上运行 Jenkins,您只需为您使用的资源付费,并且可以根据您的特定需求扩展或者缩减容量。

问:我的 Jenkins 环境是否归我所有?

是。执行本入门指南时创建的所有资源都归您所有,并保存在您的账户中。在您决定终止 Amazon EC2 实例之前,这些资源将一直存在。

问:Jenkins 的费用是多少?

Jenkins 是一种免费的开源软件。您只需为 Jenkins 运行时所在的底层基础设施付费。有关费用的更多信息,请参阅使用的服务与费用

问:如何在 AWS 上保护 Jenkins?

您应该使用安全组和强密码。您还应该确保您的 EC2 实例和 Jenkins 安装处于最新状态并安装了最新的安全补丁。安全组充当有状态的虚拟防火墙,可以控制一个或多个实例的流量。如果可能,请将 IP 范围缩小到只有相关的源 IP 地址。请不要打开任何无关的 TCP 或 UDP 端口(TCP 80 和 8080 就足够了)。设置 Jenkins 的密码时,请遵循常规的最佳密码设置实践,并结合使用小写和大写的字母数字字符以及符号(如 /、.、!、* 等)。您可以通过运行 yum update 命令来确保您的 Amazon Linux 实例安装了最新的软件包。如果您根据本指南中的说明使用 yum 安装了 Jenkins,则运行 yum update 命令也可以更新 Jenkins。

问:能否在私有子网中运行 Jenkins?

您可以将 Jenkins 安装在公有子网或私有子网中包含的 EC2 实例上。如果您要将实例放置在私有子网中,则需要确保您可以访问 Jenkins 的前端。如果您要通过 Internet 连接到 Jenkins,则可以选择创建一个 Jenkins 目标组并使用 Application Load Balancer 为以私有方式托管的实例创建公有终端节点。如果您要从自己的数据中心连接 Jenkins,则需要建立一个 VPN 或通过 Direct Connect 连接到 Jenkins。

问:如何扩展 Jenkins?

您可以通过以下几种方法来确保 Jenkins 能够满足您的 CI/CD 需求。一种比较直接的方法是,通过更改实例大小来垂直扩展 EC2 实例。另一种方法是配置 Jenkins Amazon EC2 Container Service 插件,以便将构建任务分发给 ECS 集群上的 Jenkins 从任务。