メインコンテンツまでスキップ

Azure App Service: Hướng dẫn Toàn diện

1. Giới thiệu

App Service là gì?

Là dịch vụ PaaS (Platform as a Service) để host các ứng dụng Web, REST API, và Mobile Backends.

  • Bạn lo: Code và Dữ liệu.
  • Microsoft lo: Server, OS, Patching, Load Balancing, Scaling.

Hỗ trợ: .NET, Java, Node.js, Python, PHP, Ruby, hoặc Docker Container.


2. App Service Plan (Khái niệm cốt lõi)

Bạn không tạo "Web App" trực tiếp trên phần cứng. Bạn tạo nó trong một App Service Plan (ASP).

  • Tương tự:
    • ASP = Cái máy chủ (Server Farm).
    • Web App = Các website chạy trên máy chủ đó (IIS Sites).
  • Ý nghĩa:
    • Bạn trả tiền cho ASP (thuê máy), không trả tiền cho từng Web App.
    • Bạn có thể chạy 10 Web App trên cùng 1 ASP để tiết kiệm tiền (chúng chia sẻ CPU/RAM của ASP).

Các hạng (Tiers)

  • Free (F1) / Shared (D1): Dùng chung hạ tầng với người khác. Chỉ để Dev/Test vui vẻ. Không hỗ trợ tên miền riêng (Free).
  • Basic (B1, B2...): Máy riêng. Hỗ trợ SSL, Custom Domain. Tốt cho dự án nhỏ.
  • Standard (S1, S2...): Chuẩn cho Production. Hỗ trợ Auto-scale, Staging Slots, Backup.
  • Premium (P1v2, P1v3...): Hiệu năng cao, SSD nhanh, hỗ trợ VNet Integration.

3. Deployment Slots (Tính năng "Killer")

Làm sao để deploy code mới mà không làm gián đoạn người dùng (Zero Downtime)?

  • Cơ chế:
    1. Bạn có slot Production (đang chạy code cũ, user đang dùng).
    2. Bạn tạo thêm slot Staging (bản sao của Prod).
    3. Bạn deploy code mới vào Staging.
    4. Bạn test kỹ trên Staging.
    5. Swap: Bạn bấm nút "Swap". Azure sẽ hoán đổi địa chỉ IP của 2 slot.
      • Staging -> Production (User dùng code mới ngay lập tức).
      • Production -> Staging (Code cũ vẫn còn đó, nếu lỗi thì Swap lại để rollback).
Warm-up

Quá trình Swap đảm bảo Web App mới đã khởi động xong (Warm-up) trước khi nhận traffic. User sẽ không bao giờ gặp lỗi "App is starting...".


4. Scaling (Mở rộng)

Scale Up (Dọc)

  • Tăng sức mạnh của ASP (VD: Từ 1 Core lên 4 Core).
  • Giới hạn bởi phần cứng tối đa.

Scale Out (Ngang) - Khuyên dùng

  • Tăng số lượng máy (Instances) trong ASP (VD: Từ 1 máy lên 5 máy).
  • Autoscale: Cấu hình để Azure tự động thêm máy khi CPU > 70% và giảm máy khi CPU < 30%.

5. Bảo mật & Mạng

  • Authentication: Bật tính năng "Authentication" để bắt buộc đăng nhập (Google, Facebook, Azure AD) mà không cần sửa code.
  • VNet Integration: Cho phép Web App truy cập vào Database nằm trong mạng nội bộ (Private VNet).
  • Private Endpoint: Cho phép Web App chỉ truy cập được từ nội bộ, chặn hoàn toàn Internet (Dùng cho Internal App).