0Pricing
DevOps Bootcamp · บทเรียน

การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ

สร้างเวิร์กโฟลว์สำหรับวางแผน นำไปใช้ และลบการเปลี่ยนแปลงโครงสร้างพื้นฐานอย่างปลอดภัย พร้อมขั้นตอนตรวจสอบและอนุมัติ

การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องทำให้การอัปเดต IaC เป็นอัตโนมัติ

การจัดการโครงสร้างพื้นฐานด้วยตนเองอาจล่าช้าและเกิดข้อผิดพลาดได้ง่าย Infrastructure as Code (IaC) ช่วยแก้ปัญหานี้ด้วยการกำหนดโครงสร้างพื้นฐานของคุณไว้ในโค้ด

การทำให้การอัปเดต IaC เป็นอัตโนมัติด้วยเครื่องมืออย่าง GitHub Actions ช่วยให้เกิดความสม่ำเสมอและความรวดเร็ว อีกทั้งลดข้อผิดพลาดจากมนุษย์ ทำให้มั่นใจได้ว่าโครงสร้างพื้นฐานของคุณตรงกับคำจำกัดความที่กำหนดไว้เสมอ

วงจรชีวิตของเวิร์กโฟลว์ IaC

การทำให้ IaC เป็นอัตโนมัติมีวงจรชีวิตที่ชัดเจน ได้แก่ plan, apply และบางครั้งคือ destroy แต่ละขั้นตอนสามารถผสานรวมเข้ากับไปป์ไลน์ CI/CD ได้

  • Plan: ตรวจสอบการเปลี่ยนแปลงที่เสนอโดยยังไม่ดำเนินการเปลี่ยนแปลง
  • Apply: นำการเปลี่ยนแปลงที่วางแผนไว้ไปใช้กับโครงสร้างพื้นฐาน
  • Destroy: ลบทรัพยากรโครงสร้างพื้นฐาน (โปรดใช้ด้วยความระมัดระวังอย่างยิ่ง)

GitHub Actions ช่วยจัดการขั้นตอนเหล่านี้ได้อย่างปลอดภัย

การวางแผนการเปลี่ยนแปลงด้วย Terraform

ก่อนดำเนินการเปลี่ยนแปลงใด ๆ สิ่งสำคัญคือต้องทราบว่าจะเกิดอะไรขึ้น คำสั่ง plan ของ Terraform ช่วยให้คุณดูตัวอย่างการปรับเปลี่ยนโครงสร้างพื้นฐานได้

คำสั่งนี้จะเปรียบเทียบสถานะที่คุณต้องการ (จากโค้ด) กับสถานะปัจจุบันของโครงสร้างพื้นฐาน แล้วแสดงให้เห็นว่าจะมีการเพิ่ม เปลี่ยนแปลง หรือลบทรัพยากรใดบ้าง

ลองเรียกใช้คำสั่งเหล่านี้ในโครงการ Terraform อย่างง่าย:

echo "Initializing Terraform..."
terraform init

echo "Running terraform plan..."
terraform plan

เวิร์กโฟลว์สำหรับ `terraform plan`

มาสร้างเวิร์กโฟลว์ GitHub Actions ที่เรียกใช้ terraform plan โดยอัตโนมัติทุกครั้งที่มีการส่งโค้ดไปยังสาขาหลักของคุณ วิธีนี้ช่วยให้คุณได้รับข้อมูลป้อนกลับเกี่ยวกับการเปลี่ยนแปลงที่เสนอได้ทันที

จากนั้นคุณสามารถตรวจสอบผลลัพธ์ของ plan ได้โดยตรงในคำขอดึงข้อมูลหรือบันทึกของเวิร์กโฟลว์

name: 'Terraform Plan'

on:
  pull_request:
    branches:
      - main

jobs:
  terraform:
    name: 'Terraform Plan'
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Plan
      id: plan
      run: terraform plan -no-color

การอนุมัติด้วยตนเองด้วยสภาพแวดล้อม

การนำการเปลี่ยนแปลงโครงสร้างพื้นฐานไปใช้โดยอัตโนมัติอาจมีความเสี่ยง GitHub Environments ช่วยเพิ่มขั้นตอน การอนุมัติด้วยตนเอง ให้กับเวิร์กโฟลว์ของคุณได้

คุณสามารถกำหนดสภาพแวดล้อม (เช่น "staging", "production") และตั้งกฎต่าง ๆ เช่น กำหนดให้ผู้ตรวจสอบเฉพาะรายอนุมัติ หรือต้องรอเป็นระยะเวลาหนึ่งก่อนที่งานปรับใช้จะดำเนินการต่อ

วิธีนี้จะเพิ่มจุดตรวจสอบโดยบุคคลที่สำคัญก่อนดำเนินการที่ละเอียดอ่อน

เวิร์กโฟลว์สำหรับการนำการเปลี่ยนแปลงไปใช้

เพื่อให้การนำการเปลี่ยนแปลงไปใช้อย่างปลอดภัย เราจะกำหนดค่าเวิร์กโฟลว์ให้ทำงานกับ GitHub Environment ที่มีการป้องกัน งานจะหยุดชั่วคราวและรอการอนุมัติจากสมาชิกทีมที่ได้รับมอบหมาย

คำสั่ง terraform apply จะทำงานหลังจากได้รับการอนุมัติเท่านั้น และจะอัปเดตโครงสร้างพื้นฐานของคุณ

name: 'Terraform Apply'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy to'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Apply'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Apply
      id: apply
      run: terraform apply -auto-approve

การลบโครงสร้างพื้นฐานอย่างปลอดภัย

คำสั่ง terraform destroy จะลบทรัพยากรทั้งหมดที่กำหนดไว้ในการกำหนดค่า Terraform ของคุณอย่างถาวร การดำเนินการนี้มีอำนาจสูงมากและอาจเป็นอันตรายได้

ควรใช้คำสั่งนี้เฉพาะในสถานการณ์ที่กำหนดและควบคุมไว้แล้ว เช่น การรื้อสภาพแวดล้อมทดสอบชั่วคราว โปรดตรวจสอบซ้ำให้แน่ใจก่อนดำเนินการ

อย่าทำให้ `destroy` เป็นอัตโนมัติโดยไม่มีจุดควบคุมด้วยตนเองที่รัดกุมและการยืนยันหลายขั้นตอน

echo "Preparing to destroy infrastructure..."
terraform init
terraform plan -destroy
read -p "Are you absolutely sure you want to destroy ALL resources? (yes/no): " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
  echo "Destroying infrastructure..."
  terraform destroy -auto-approve
else
  echo "Destroy operation cancelled."
fi

การควบคุมการลบโครงสร้างพื้นฐาน

แม้แต่สำหรับ `destroy` เราก็สามารถใช้ GitHub Environments เพื่อเพิ่มชั้นการป้องกันได้ วิธีนี้ช่วยให้มั่นใจว่าจะไม่มีใครลบทรัพยากรในระบบจริงโดยไม่ได้ตั้งใจหรือโดยมุ่งร้าย หากไม่ได้รับอนุญาตอย่างเหมาะสม

เวิร์กโฟลว์ควรกำหนดให้ต้องได้รับการอนุมัติ และควรเริ่มทำงานได้ด้วยตนเองเท่านั้น โดยผู้มีบทบาทที่กำหนดไว้โดยเฉพาะจะเป็นผู้ดำเนินการ

name: 'Terraform Destroy'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to destroy'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Destroy'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Destroy
      id: destroy
      run: terraform destroy -auto-approve

แนวทางปฏิบัติที่ดีที่สุดสำหรับการทำให้ IaC เป็นอัตโนมัติ

เพื่อรักษาไปป์ไลน์ IaC ให้มีประสิทธิภาพและปลอดภัย:

  • การตรวจสอบโค้ด: กำหนดให้มีการตรวจสอบโค้ดสำหรับการเปลี่ยนแปลง IaC ทุกครั้ง
  • สิทธิ์เท่าที่จำเป็น: มอบสิทธิ์ให้โทเค็นของเวิร์กโฟลว์และบัญชีบริการเท่าที่จำเป็นขั้นต่ำเท่านั้น
  • การล็อกสถานะ: ตรวจสอบให้แน่ใจว่าเครื่องมือ IaC ของคุณ (เช่น Terraform) ใช้การล็อกสถานะเพื่อป้องกันการปรับเปลี่ยนพร้อมกัน
  • การเปลี่ยนแปลงทีละเล็กทีละน้อย: หลีกเลี่ยงการอัปเดตโครงสร้างพื้นฐานครั้งใหญ่แบบรวมทุกอย่างไว้ในชุดเดียว
  • การแยกสภาพแวดล้อม: ใช้สภาพแวดล้อมที่แยกจากกัน (dev, staging, prod) พร้อมกฎการอนุมัติที่แตกต่างกัน

ตรวจสอบเวิร์กโฟลว์ IaC

คุณได้เรียนรู้เกี่ยวกับการทำให้การอัปเดต IaC เป็นอัตโนมัติด้วยการวางแผน การนำไปใช้ และการลบทรัพยากร ตอนนี้มาทดสอบความเข้าใจของคุณเกี่ยวกับการรักษาความปลอดภัยให้กระบวนการเหล่านี้กัน

สรุป: การอัปเดต IaC แบบอัตโนมัติ

ในบทเรียนนี้ คุณได้เรียนรู้วิธีทำให้เวิร์กโฟลว์ Infrastructure as Code เป็นอัตโนมัติด้วย GitHub Actions โดยครอบคลุมหัวข้อต่อไปนี้:

  • การเรียกใช้ terraform plan เพื่อดูตัวอย่างการเปลี่ยนแปลงอย่างปลอดภัย
  • การใช้ GitHub Environments เป็นจุดอนุมัติด้วยตนเองก่อนนำโครงสร้างพื้นฐานไปใช้หรือลบ
  • การสร้างเวิร์กโฟลว์สำหรับการดำเนินการ terraform apply และ terraform destroy ที่มีการควบคุม
  • แนวทางปฏิบัติที่ดีที่สุดที่สำคัญสำหรับการทำให้ IaC เป็นอัตโนมัติอย่างปลอดภัยและเชื่อถือได้

การทำให้ IaC เป็นอัตโนมัติช่วยให้คุณจัดการทรัพยากรคลาวด์ได้อย่างมีประสิทธิภาพและมั่นใจ

คำถามที่พบบ่อย

บทเรียน “การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ”

สร้างเวิร์กโฟลว์สำหรับวางแผน นำไปใช้ และลบการเปลี่ยนแปลงโครงสร้างพื้นฐานอย่างปลอดภัย พร้อมขั้นตอนตรวจสอบและอนุมัติ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. IaC ด้วย Terraform และ GitHub Actions
  2. การจัดการทรัพยากรคลาวด์
  3. การทำให้การอัปเดตโครงสร้างพื้นฐานเป็นอัตโนมัติ
  4. การจัดการสถานะ Terraform และแบ็กเอนด์ระยะไกล
← กลับไปที่ DevOps Bootcamp