0Pricing
Cloud & IT Cert Prep · บทเรียน

ช่องการปรับใช้และการสลับ

สร้างช่องเตรียมระบบสำหรับการปรับใช้แบบบลู-กรีน อุ่นเครื่องรุ่นใหม่ในช่องเตรียมระบบ และสลับไปยังระบบจริงโดยไม่มีเวลาหยุดให้บริการ

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

ช่องการปรับใช้คืออะไร

ช่องการปรับใช้ คือสภาพแวดล้อมแบบแยกจากกันที่ทำงานอยู่จริงสำหรับเว็บแอป App Service โดยแต่ละช่องมีชื่อโฮสต์ของตนเอง (เช่น myapp-staging.azurewebsites.net) ช่องต่าง ๆ ใช้แผน App Service และทรัพยากรร่วมกับช่อง Production แต่ทำงานแยกจากกัน ช่องเหล่านี้รองรับ การปรับใช้แบบ blue-green — คุณตรวจสอบรุ่นใหม่ในช่อง Staging แล้วสลับรุ่นนั้นเข้าสู่ Production ได้โดยไม่มีช่วงหยุดทำงาน ช่องการปรับใช้ใช้งานได้ตั้งแต่ ระดับ Standard ขึ้นไป

การสร้างช่องการปรับใช้

เพิ่มช่องการปรับใช้ใหม่ให้กับเว็บแอปของคุณโดยใช้พอร์ทัล Azure หรือ CLI แต่ละช่องจะมี URL การตั้งค่าแอปพลิเคชัน และสตริงการเชื่อมต่อเป็นของตนเอง คุณสามารถสร้างได้สูงสุด 5 ช่อง ในระดับ Standard และสูงสุด 20 ช่อง ในระดับ Premium ชื่อช่องที่ใช้กันทั่วไป ได้แก่ staging, canary, hotfix และ integration ซึ่งสื่อถึงขั้นตอนต่าง ๆ ของไปป์ไลน์การเผยแพร่

# Create a staging deployment slot
az webapp deployment slot create \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging

# Deploy code to the staging slot
az webapp deploy \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --src-path app.zip

# The staging slot is live at:
# https://MyUniqueWebApp-staging.azurewebsites.net

การเตรียมช่อง Staging ให้พร้อม

ก่อนสลับช่อง สิ่งสำคัญคือต้อง เตรียมช่อง Staging ให้พร้อม เพื่อให้รุ่นใหม่เริ่มต้นทำงานอย่างสมบูรณ์ อินสแตนซ์ App Service ที่ยังไม่พร้อมจะให้บริการคำขอแรก ๆ ได้ช้า เนื่องจากรันไทม์กำลังเริ่มต้นทำงาน ซึ่งเป็นสิ่งที่ยอมรับไม่ได้ใน Production เปิดใช้ Auto Swap หรือส่งคำขอ HTTP เพื่อเตรียมความพร้อมไปยังช่อง Staging ด้วยตนเอง นอกจากนี้ App Service ยังรองรับการกำหนดค่า applicationInitialization เพื่อกำหนดเส้นทางเตรียมความพร้อมที่ต้องส่งคืนค่า 200 ก่อนที่จะถือว่าช่องพร้อมใช้งาน

# web.config snippet for warm-up (IIS/Windows)
# <system.webServer>
#   <applicationInitialization>
#     <add initializationPage='/health' hostName='MyUniqueWebApp-staging.azurewebsites.net'/>
#   </applicationInitialization>
# </system.webServer>

# Or use a startup probe via the App Service health check
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --generic-configurations '{"healthCheckPath": "/health"}'

การสลับช่อง

การสลับ จะแลกเปลี่ยนช่อง Staging และ Production พร้อมกันในเชิงอะตอมิก ระหว่างการสลับ App Service จะกำหนดเส้นทางการรับส่งข้อมูลไปยังอินสแตนซ์ Staging ที่กำลังเรียกใช้โค้ดใหม่ก่อน รอให้อินสแตนซ์เหล่านั้นเริ่มต้นทำงาน จากนั้นจึงกำหนดเส้นทางการรับส่งข้อมูล Production ทั้งหมดไปยังอินสแตนซ์ใหม่ และอินสแตนซ์ Production เดิมจะกลายเป็นช่อง Staging ใหม่ วิธีนี้ทำให้การย้อนกลับทำได้ง่ายมาก — เพียงสลับอีกครั้งเพื่อย้อนคืน

# Swap staging into production
az webapp deployment slot swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --target-slot production

# Rollback: swap production back to staging
az webapp deployment slot swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot production \
  --target-slot staging

การตั้งค่าเฉพาะช่องและไม่เฉพาะช่อง

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

# Mark a setting as sticky (slot-specific) -- it won't swap
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --slot-settings DATABASE_URL='postgresql://staging-db/...'

# Set a non-sticky setting (it WILL travel with a swap)
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --settings FEATURE_FLAG_NEW_UI=true

การแบ่งการรับส่งข้อมูลสำหรับการเผยแพร่แบบ Canary

App Service รองรับ การแบ่งการรับส่งข้อมูล — การกำหนดเปอร์เซ็นต์หนึ่งของการรับส่งข้อมูล Production ไปยังช่องที่ไม่ใช่ Production โดยไม่ต้องสลับช่องทั้งหมด วิธีนี้รองรับ การเผยแพร่แบบ canary ซึ่งคุณจะค่อย ๆ เปลี่ยนการรับส่งข้อมูลจาก 5% เป็น 10% แล้วเป็น 50% เมื่อมั่นใจในรุ่นใหม่มากขึ้น พร้อมตรวจสอบอัตราข้อผิดพลาดในแต่ละขั้น ผู้ใช้ที่เข้าสู่ช่อง canary จะได้รับคุกกี้ sticky ซึ่งทำให้ผู้ใช้เหล่านั้นอยู่บนรุ่นเดิมเพื่อให้เซสชันมีความสอดคล้องกัน

# Route 10% of traffic to the staging slot (canary)
az webapp traffic-routing set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --distribution staging=10

# View current traffic distribution
az webapp traffic-routing show \
  --name MyUniqueWebApp \
  --resource-group MyRG

# Reset all traffic to production
az webapp traffic-routing clear \
  --name MyUniqueWebApp \
  --resource-group MyRG

การสลับอัตโนมัติ

Auto Swap จะสลับช่อง Staging เข้าสู่ Production โดยอัตโนมัติทุกครั้งที่มีการปรับใช้โค้ดใหม่ในช่องนั้น เหมาะอย่างยิ่งสำหรับไปป์ไลน์ CI/CD ที่ต้องการให้การปรับใช้ที่สำเร็จทุกรายการพร้อมใช้งานจริงทันที Auto Swap จะรอให้คำขอ HTTP ของช่อง Staging ส่งคืนค่า 200 ก่อนดำเนินการสลับให้เสร็จสิ้น เปิดใช้ฟีเจอร์นี้แยกตามช่องในพอร์ทัลหรือ CLI — แต่ควรใช้อย่างระมัดระวัง เนื่องจากไม่มีขั้นตอนอนุมัติด้วยตนเองระหว่างการปรับใช้กับ Production

# Enable Auto Swap for the staging slot
az webapp deployment slot auto-swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --auto-swap-slot production

# Disable Auto Swap
az webapp deployment slot auto-swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --disable

แนวทางปฏิบัติที่ดีสำหรับช่องการปรับใช้

ปฏิบัติตามแนวทางที่ดีต่อไปนี้สำหรับช่องการปรับใช้: ตรวจสอบใน Staging ก่อนสลับไปยัง Production เสมอ ใช้ การตั้งค่า sticky เพื่อแยกการเชื่อมต่อฐานข้อมูล Production ออกจาก Staging เรียกใช้ การทดสอบเบื้องต้น กับ URL ของช่อง Staging หลังการปรับใช้ กำหนดค่า เส้นทางตรวจสอบสถานะ เพื่อให้แน่ใจว่า App Service จะไม่ดำเนินการสลับให้เสร็จสิ้นหากรุ่นใหม่ไม่ทำงานตามปกติ และ ติดแท็กการปรับใช้ เพื่อให้คุณติดตามได้ว่าการส่งการเปลี่ยนแปลงใดกำลังทำงานอยู่ในแต่ละช่อง

ช่องในไปป์ไลน์ CI/CD

ในไปป์ไลน์ CI/CD ทั่วไป ขั้นตอนการสร้าง จะคอมไพล์และทดสอบโค้ด ขั้นตอนการปรับใช้ จะส่งอาร์ติแฟกต์ไปยังช่อง Staging ขั้นตอนการทดสอบการผสานรวม จะเรียกใช้การทดสอบอัตโนมัติกับ URL ของ Staging และ ขั้นตอนการสลับ จะสลับ Staging เข้าสู่ Production โดยอาจมีการควบคุมด้วยการอนุมัติด้วยตนเอง รูปแบบนี้รองรับโดยตรงทั้งใน Azure Pipelines และ GitHub Actions ผ่านการดำเนินการปรับใช้ App Service

# GitHub Actions step: deploy to staging slot
# - name: Deploy to Staging Slot
#   uses: azure/webapps-deploy@v2
#   with:
#     app-name: MyUniqueWebApp
#     slot-name: staging
#     publish-profile: ${{ secrets.AZURE_STAGING_PUBLISH_PROFILE }}
#
# - name: Swap to Production
#   uses: azure/CLI@v1
#   with:
#     inlineScript: |
#       az webapp deployment slot swap \
#         --name MyUniqueWebApp \
#         --resource-group MyRG \
#         --slot staging

การตรวจสอบสถานะการสลับ

ระหว่างและหลังการสลับช่อง ให้ตรวจสอบเมตริกสำคัญใน Azure Monitor เพื่อยืนยันว่ารุ่นใหม่ทำงานเป็นปกติ เฝ้าดูการเพิ่มขึ้นอย่างฉับพลันของ ข้อผิดพลาด HTTP 5xx เวลาในการตอบสนองเฉลี่ย และ การใช้ CPU/หน่วยความจำ ตั้งค่า การแจ้งเตือนเมตริก ให้ทำงานเมื่ออัตราข้อผิดพลาดเกินเกณฑ์ — วิธีนี้จะส่งสัญญาณให้คุณสลับกลับได้อย่างรวดเร็ว การตรวจจับอัจฉริยะของข้อมูลเชิงลึกของแอปพลิเคชันสามารถแจ้งเตือนความผิดปกติหลังการปรับใช้ให้คุณโดยอัตโนมัติ

# Create an alert rule for HTTP 5xx errors post-swap
az monitor metrics alert create \
  --name 'HighErrorRate' \
  --resource-group MyRG \
  --scopes '/subscriptions/.../providers/Microsoft.Web/sites/MyUniqueWebApp' \
  --condition 'avg Http5xx > 10' \
  --window-size 5m \
  --evaluation-frequency 1m \
  --action-group MyActionGroup

ช่องเทียบกับหลายแอป

ช่องการปรับใช้เหมาะกว่าการดูแลแอป App Service แยกกันโดยสิ้นเชิงสำหรับ Staging และ Production เนื่องจากช่องใช้แผนเดียวกัน (ไม่มีค่าใช้จ่ายเพิ่มเติม) สลับได้ในคลิกเดียวพร้อมการย้อนกลับ รองรับการแบ่งการรับส่งข้อมูล และจัดการอยู่ภายใต้ทรัพยากร App Service เดียวกัน ควรใช้แอปแยกกันเฉพาะเมื่อ Staging ต้องใช้ SKU ของแผนที่แตกต่างกันโดยพื้นฐาน มีข้อกำหนดด้านการแยกทรัพยากร หรือมีการเรียกเก็บเงินที่แยกจากกันโดยสิ้นเชิง

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจแนวคิด Microsoft Azure Fundamentals (AZ-900) จากบทเรียนนี้

ทบทวนบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า ช่องการปรับใช้ เป็นสภาพแวดล้อมแบบแยกส่วนที่รองรับการปรับใช้แบบ blue-green การตั้งค่าเฉพาะช่อง จะเก็บการกำหนดค่าเฉพาะสภาพแวดล้อม (เช่น URL ฐานข้อมูล) ไว้กับช่องแทนที่จะผูกไว้กับโค้ด และ การแบ่งการรับส่งข้อมูล รองรับการเผยแพร่แบบ canary ด้วยการกำหนดเปอร์เซ็นต์หนึ่งของการรับส่งข้อมูล Production ไปยังรุ่นใหม่ บทถัดไปเราจะสำรวจการปรับขนาดอัตโนมัติและโดเมนแบบกำหนดเอง

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

บทเรียน “ช่องการปรับใช้และการสลับ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ช่องการปรับใช้และการสลับ”

สร้างช่องเตรียมระบบสำหรับการปรับใช้แบบบลู-กรีน อุ่นเครื่องรุ่นใหม่ในช่องเตรียมระบบ และสลับไปยังระบบจริงโดยไม่มีเวลาหยุดให้บริการ คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่

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

บทเรียน “ช่องการปรับใช้และการสลับ” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม

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

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

  1. การสร้างแผน App Service และเว็บแอป
  2. ช่องการปรับใช้และการสลับ
  3. การปรับขนาดอัตโนมัติและโดเมนแบบกำหนดเอง
  4. การตรวจสอบสิทธิ์และเครือข่ายของ App Service
← กลับไปที่ Cloud & IT Cert Prep