在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