在AWS中设置DevOps管道

在本文中,我们将指导您完成如何在AWS中设置DevOps管道的操作。 但是,让我们从定义实际的DevOps开始。

过去,应用程序开发通常分为两个团队-开发和运营。 开发团队将编写代码,对其进行测试,然后将其交付给运营团队,后者将其部署到服务器上并确保其运行和扩展而不会中断。

随着最近向云计算的转变,现在期望开发人员对运行其应用程序的基础架构有更多的了解。 这意味着开发团队和运营团队合并为一个团队,并以DevOps的方式一起工作。 这使开发人员能够编写可扩展的代码,并且可以在生产环境中更轻松地对其进行管理。

DevOps工作方式的另一个好处是,如果负责运营的团队与最初开发应用程序的团队相同,则可以更快地确定生产中的问题。

那么,如何将管道与DevOps联系起来? 如果我们看看过去的团队合作方式,即在开发和运营之间进行划分,则通常会按照下面描述的流程进行发布。

  • 开发团队将应包含在发行版中的代码更改合并到代码存储库中。
  • 开发团队(或专门的测试人员)对发布进行测试。
  • 开发团队将创建一个准备发布的生产版本。
  • 运营团队将接收生产版本并将其手动部署到生产中。 通常,通过将发行包放在服务器环境中并运行脚本。

借助DevOps,以及合并的开发和运营团队,我们可以更快地发布小功能。 与操作相关的任务可以与常规开发活动并行执行。 为了更快地完成此任务,我们可以使用DevOps管道自动执行发布和测试任务。 然后,只需按一下按钮或简单地通过将代码更改推送到特定分支,就可以自动运行将发行包放置在服务器环境和运行脚本中。

可以使用许多不同的工具来设置这样的管道。 但是,如果您已经在AWS上运行工作负载,则它附带了许多不同的服务,这些服务可以帮助您非常高效地完成此任务而无需离开AWS生态系统。

让我们开始创建自己的管道以自动化一些部署任务。

入门 #

我们将使用以下AWS服务来自动化简单静态站点的部署:

  • CodePipeline-一个编排工具,可帮助我们通过推送到源代码存储库或手动按下按钮来触发部署
  • CodeBuild-一个构建容器,可以运行部署任务所需的脚本
  • S3-静态文件托管服务,将托管我们的静态网站

我们将部署的静态站点包括一个从S3 URL访问的简单HTML文件。 要进行部署,我们需要从AWS控制台手动将HTML文件上传到存储桶中。 尽管这可能并非是很难做到的,但通过自动执行此任务,我们总是可以节省几分钟。

管道的目标是结合上述AWS服务以实现以下目标:

AWS部署管道

S3上的静态站点托管

1.创建一个存储桶#

为了使我们的静态站点运行,我们首先创建一个S3存储桶。 转到AWS控制台→服务→S3→创建存储桶。 确保启用对此存储桶的公共访问,以便可以通过Internet访问我们的网站。 将其他选项保留为默认值。

2.启用静态站点托管

现在该使存储桶中的HTML文件可作为静态站点使用了。 为此,请转到您的S3存储桶→属性→静态网站托管→使用此存储桶托管静态网站。 请确保输入 index.html 作为索引文档,然后按保存。 现在,如果您转到“静态网站托管”对话框中显示的终结点URL,则您的网站应该已启动并正在运行。

大! 现在我们有一个静态站点。 要对其进行更新,您需要上传新版本的 index.html 文件存储桶中。 让我们自动化!

创建管道

1.创建一个CodeCommit存储库#

要托管代码,我们需要一个文件存储库。 它可以是GitHub或您喜欢的任何其他存储库服务。 为简单起见,我们将使用AWS存储库服务CodeCommit。

通过转到AWS Console→CodeCommit→创建存储库来创建存储库。 输入名称,然后点击保存。 最后,通过SSH或HTTPS连接到存储库来推送HTML。 如果您对文件没有任何启发,可以使用以下文件:

<p>Hello from Linuxize.com!</p>

2.创建一个CodePipeline管道

现在是时候创建可以协调静态站点部署过程的管道了。 要开始创建管道,请转到AWS Console→CodePipeline→创建新管道。

步骤1 #

  • 输入管道的名称。
  • 选择“新服务角色”。
  • 将其余的保留为默认值。

第2步 #

  • 选择AWS CodeCommit作为源提供者。
  • 选择新创建的存储库作为源。
  • 选择要从其构建的分支作为分支名称。
  • 将其余的保留为默认值。

步骤3#

  • 按跳过构建阶段-我们不需要在此管道中构建文件,因为它只是静态HTML。

第四步 #

  • 选择Amazon S3作为您的部署阶段。
  • 选择您之前创建的存储桶作为存储桶。
  • 将S3对象密钥保留为空。
  • 勾选部署前的解压缩文件。
  • 展开其他配置窗格,然后选择public-read作为Canned ACL。
  • 点击保存。

步骤5#

多田现在,您的管道应该运行,并将CodeCommit存储库中的HTML文件部署到S3。 将更改推送到文件,管道将再次自动触发。

结论#

尽管这是您可以进行的最简单的设置之一,但即使对于非常复杂的后端应用程序,其基本原理也相同。 他们可能需要在管道中执行更多步骤,但基本流程应相同。 从长远来看,一次设置部署管道并实现工作流程自动化可以为您节省大量时间,而避免手动任务总意味着更安全,减少了人为错误。

使用新的DevOps技能祝您好运!

如果您有任何疑问或反馈,请在下面发表评论。

devops aws

关于作者

卡尔·埃里克森

模拟API工具Mocki的创始人。

Sidebar