目錄

  1. 介紹

  2. 什麼是 DevOps?

  1. 為什麼選擇 AWS 進行開發營運?

  2. AWS 開發營運入門

  1. AWS 開發營運工具及其用例
  1. 在 AWS 上實施 CI/CD

  2. AWS 上的基礎架構即程式碼 (IaC)

  3. AWS 上的監控和日誌記錄

  4. AWS 開發營運中的安全最佳實踐

  5. 實踐學習專案

  6. 保持更新並與社區互動

  7. 結論


一、簡介

AWS DevOps 將 Amazon Web Services (AWS) 的強大功能與 DevOps 實務結合,以加速軟體開發和部署。透過利用強大的 AWS 工具套件,您可以自動化基礎設施管理、簡化 CI/CD 管道並提高營運效率。

2.什麼是DevOps?

2.1 定義與原則

DevOps 是一種鼓勵開發 (Dev) 和營運 (Ops) 團隊之間協作的方法。此方法依賴以下原則:

  • 協作:打破孤島以加強溝通和團隊合作。

  • 自動化:用自動化腳本和服務取代手動任務,以提高速度和可靠性。

  • 持續整合和持續部署 (CI/CD) :自動化程式碼測試、建置和部署,以更快地交付優質軟體。

  • 回饋和監控:收集回饋並追蹤效能指標以改進應用程式。

  1. 為什麼選擇 AWS 進行開發營運?

AWS 因其可擴展性、託管服務多樣性、即用即付定價和高安全標準而在 DevOps 領域中脫穎而出。 AWS DevOps 服務提供即用型集成,可簡化基礎架構管理和應用程式部署,更輕鬆地實現快速發布和穩定執行。

  1. AWS 開發營運入門

4.1 第 1 步:了解雲端運算基礎知識

在深入研究 AWS DevOps 之前,有必要了解雲端運算的基礎知識。這是一個快速概述:

  • 雲端運算:透過網際網路存取按需運算服務。

  • IaaS、PaaS、SaaS :AWS主要提供IaaS,提供虛擬機器(EC2)、資料庫(RDS)等基礎架構。

4.2 第 2 步:設定您的 AWS 帳戶

  1. 建立 AWS 帳戶:存取AWS 管理主控台並依照註冊步驟操作。

  2. 設定 IAM 使用者:透過建立 IAM(身分和存取管理)使用者並指派權限,安全地存取 AWS 資源。

4.3 第 3 步:了解關鍵的 AWS 開發營運工具

要在 AWS 上實施 DevOps,熟悉版本控制、建置自動化、部署和管道管理的基本工具非常重要。這些將在下一節中探討。

5.AWS DevOps 工具及其用例

每個 AWS DevOps 工具都有特定的用途,無論是版本控制、建置、部署或持續整合和交付。

5.1 AWS 程式碼提交

AWS CodeCommit 是一項安全、完全託管的原始程式碼控制服務,用於在 AWS 上託管 Git 儲存庫。它與其他用於 CI/CD 的 AWS 服務無縫集成,從而實現自動建置和部署流程。

  • 使用案例:儲存原始碼、管理程式碼變更、與團隊協作。

  • 例子

  # Clone a CodeCommit repository
  git clone https://git-codecommit.<region>.amazonaws.com/v1/repos/<repository-name>

5.2 AWS 程式碼建置

AWS CodeBuild 是一項託管建置服務,用於編譯原始程式碼、執行測試和打包軟體。它消除了管理建置伺服器的需要,並自動擴展以同時處理多個建置。

  • 使用案例:自動化建置流程、執行測試、建立軟體包。

  • 範例buildspec.yml

  version: 0.2
  phases:
    install:
      commands:
        - echo Installing dependencies
        - npm install
    build:
      commands:
        - echo Build started on `date`
        - npm run build
    post_build:
      commands:
        - echo Build completed on `date`

5.3 AWS 程式碼部署

AWS CodeDeploy 可自動將應用程式部署到各種運算服務(例如 EC2 和 Lambda),並支援對部署流程的控制。它支援就地和藍/綠部署,以實現零停機更新。

  • 使用案例:可靠地部署應用程式並減少停機時間。

  • 範例:使用appspec.yml進行 EC2 部署:

  version: 0.0
  os: linux
  files:
    - source: /
      destination: /app
  hooks:
    BeforeInstall:
      - location: scripts/install_dependencies.sh
    ApplicationStart:
      - location: scripts/start_server.sh

5.4 AWS 程式碼管道

AWS CodePipeline 是一項 CI/CD 服務,用於自動化軟體發布流程,定義發布程式碼的步驟管道(來源、建置、部署)。

  • 使用案例:自動化軟體發布並提高部署頻率。

  • 例子

  • 來源:GitHub 或 CodeCommit

  • 建構:程式碼建構

  • 部署:CodeDeploy

  1. 在 AWS 上實施 CI/CD

在 AWS 上實作 CI/CD 需要整合 CodeCommit、CodeBuild、CodeDeploy 和 CodePipeline 等服務。設定方法如下:

  1. 來源階段:使用 CodeCommit 或 GitHub 作為管道的來源。

  2. 建置階段:設定 CodeBuild 來編譯、測試和打包您的應用程式。

  3. 部署階段:使用 CodeDeploy 自動部署到 EC2 執行個體、Lambda 函數或本機伺服器。

  4. 自動化管道:在 CodePipeline 中設定觸發器,以便在程式碼變更時自動啟動管道。

  5. AWS 上的基礎設施即程式碼 (IaC)

AWS 提供CloudFormationAWS CDK(雲端開發套件)來定義和設定基礎架構即程式碼。

  • CloudFormation :以 JSON 或 YAML 編寫範本來指定基礎架構(例如 EC2 執行個體、資料庫)。執行aws cloudformation deploy以建立或更新堆疊。

  • AWS CDK :使用 TypeScript 或 Python 等語言編寫程式碼來定義 AWS 資源。

用於建立 EC2 執行個體的範例 CloudFormation 片段:

Resources:
  MyEC2Instance:
    Type: "AWS::EC2::Instance"
    Properties:
      InstanceType: "t2.micro"
      ImageId: "ami-0c55b159cbfafe1f0"
  1. AWS 上的監控和日誌記錄

監控和日誌記錄對於維護應用程式執行狀況和解決問題至關重要:

  • Amazon CloudWatch :追蹤指標、設定警報並監控日誌。

  • AWS X-Ray :分析請求通過您的應用程式的流程,有助於辨識瓶頸。

CloudWatch 警報範例:

AlarmName: "High CPU Usage Alarm"
MetricName: "CPUUtilization"
Namespace: "AWS/EC2"
Threshold: 80
  1. AWS DevOps 中的安全最佳實踐

安全性是 DevOps 的基礎。 AWS 提供多種服務來協助您維護安全的開發營運實務:

  • IAM(身分和存取管理) :控制誰可以存取資源。

  • KMS(金鑰管理服務) :使用 AWS 託管的金鑰加密資料。

  • Secrets Manager :安全地管理資料庫憑證等敏感資訊。

  1. 實踐學習專案

以下是一些應用 AWS 開發營運知識的實際專案:

  1. 部署靜態網站:使用 CodeCommit 作為原始程式碼,使用 CodeBuild 進行打包,使用 S3 進行託管。

  2. Node.js 應用程式的 CI/CD :使用 CodeCommit、CodeBuild 和 CodeDeploy 為 EC2 上託管的 Web 應用程式設定 CodePipeline。

  3. 基礎架構自動化:使用 CloudFormation 或 CDK 定義和啟動多層應用程式

資料庫和應用程式伺服器。

  1. 保持最新動態並與社區互動

透過閱讀 AWS 文件、加入 Stack Overflow 等論壇、參加 AWS 網路研討會和參加活動來參與 AWS 開發營運。這些資源將幫助您隨時了解新的 AWS 功能和最佳實踐。

  1. 結論

掌握 AWS DevOps 可以顯著提升您部署、管理和擴展應用程式的能力。透過學習本指南中概述的基本概念和 AWS 工具,您可以自信地在雲端建置、部署和監控應用程式。繼續實踐並與社區互動,以加深您的專業知識。


👤 作者

橫幅

加入我們的Telegram 社群||在 GitHub 上關注我以獲取更多 DevOps 內容!


原文出處:https://dev.to/prodevopsguytech/learn-aws-devops-from-zero-a-complete-beginners-guide-1gl2


共有 0 則留言