SiamCafe.net Blog
Technology

SASE Framework Capacity Planning

sase framework capacity planning
SASE Framework Capacity Planning | SiamCafe Blog
2025-10-30· อ. บอม — SiamCafe.net· 9,744 คำ

SASE Capacity Planning

SASE Framework Capacity Planning SD-WAN SWG CASB ZTNA FWaaS PoP Bandwidth Sizing License Monitoring Production

ComponentSizing MetricPer 1000 UsersGrowth Factor
SD-WANBandwidth (Mbps)1.8-3 Gbps+20-30%/year
SWGThroughput (Mbps)2.2-3.6 Gbps (SSL)+25%/year
ZTNAConcurrent Connections1,800 connections+30%/year
CASBAPI Calls/day500K calls/day+20%/year
FWaaSRules Processing2-3.3 Gbps+20%/year
PoPLatency (ms)< 20ms to nearest PoPAdd PoP per Region

Capacity Calculation

# === SASE Capacity Calculator ===

from dataclasses import dataclass

@dataclass
class SASESizing:
    component: str
    formula: str
    example_1000_users: str
    growth_rate: float
    year3_estimate: str

sizing = [
    SASESizing("SD-WAN Bandwidth",
        "Users x Concurrent% x AvgMbps x 1.3(overhead) x 1.5(peak)",
        "1000 x 0.6 x 3 x 1.3 x 1.5 = 3.51 Gbps",
        0.25,
        "3.51 x 1.25^3 = 6.85 Gbps"),
    SASESizing("SWG Throughput",
        "SD-WAN Bandwidth x 1.2 (SSL Inspection)",
        "3.51 x 1.2 = 4.21 Gbps",
        0.25,
        "4.21 x 1.25^3 = 8.22 Gbps"),
    SASESizing("ZTNA Connections",
        "Concurrent Users x 3 (Multi-app)",
        "600 x 3 = 1,800 connections",
        0.30,
        "1800 x 1.30^3 = 3,952 connections"),
    SASESizing("CASB API Calls",
        "Users x SaaS Apps x 100 calls/day",
        "1000 x 5 x 100 = 500K calls/day",
        0.20,
        "500K x 1.20^3 = 864K calls/day"),
    SASESizing("FWaaS Processing",
        "SD-WAN Bandwidth x 1.1 (Rule Processing)",
        "3.51 x 1.1 = 3.86 Gbps",
        0.25,
        "3.86 x 1.25^3 = 7.54 Gbps"),
    SASESizing("License Count",
        "Current Users x 1.2 (Buffer)",
        "1000 x 1.2 = 1,200 licenses",
        0.15,
        "1200 x 1.15^3 = 1,825 licenses"),
]

print("=== SASE Sizing (1000 Users) ===")
for s in sizing:
    print(f"\n  [{s.component}]")
    print(f"    Formula: {s.formula}")
    print(f"    Now: {s.example_1000_users}")
    print(f"    Growth: {s.growth_rate*100:.0f}%/year")
    print(f"    Year 3: {s.year3_estimate}")

PoP Selection & Architecture

# === PoP Selection Strategy ===

# Architecture
# User (Bangkok) → PoP (Singapore) → SASE Cloud → App (AWS ap-southeast-1)
# User (London)  → PoP (London)    → SASE Cloud → App (AWS eu-west-1)
# User (NYC)     → PoP (New York)  → SASE Cloud → App (AWS us-east-1)

@dataclass
class PoPRegion:
    region: str
    users: int
    pop_location: str
    latency_target: str
    redundancy: str
    bandwidth: str

pops = [
    PoPRegion("Southeast Asia",
        500, "Singapore + Bangkok",
        "< 15ms",
        "2 PoPs (SG primary, BKK secondary)",
        "2 Gbps"),
    PoPRegion("Europe",
        200, "London + Frankfurt",
        "< 20ms",
        "2 PoPs (LON primary, FRA secondary)",
        "800 Mbps"),
    PoPRegion("North America",
        200, "New York + San Jose",
        "< 20ms",
        "2 PoPs (NYC primary, SJC secondary)",
        "800 Mbps"),
    PoPRegion("Japan/Korea",
        100, "Tokyo",
        "< 15ms",
        "1 PoP (TKY) + Failover to SG",
        "400 Mbps"),
]

print("=== PoP Selection ===")
for p in pops:
    print(f"  [{p.region}] Users: {p.users}")
    print(f"    PoP: {p.pop_location}")
    print(f"    Latency: {p.latency_target} | Redundancy: {p.redundancy}")
    print(f"    Bandwidth: {p.bandwidth}")

Monitoring & Forecasting

# === SASE Monitoring Dashboard ===

@dataclass
class SASEMetric:
    metric: str
    source: str
    threshold: str
    action: str

metrics = [
    SASEMetric("Bandwidth Utilization per PoP",
        "SASE Dashboard / SNMP",
        "> 80% sustained 15 min",
        "Upgrade PoP Bandwidth หรือ Add PoP"),
    SASEMetric("User-to-PoP Latency",
        "DEM / Synthetic Monitoring",
        "> 50ms P95",
        "เพิ่ม PoP ใกล้ User หรือ ตรวจ ISP Issue"),
    SASEMetric("SSL Inspection Throughput",
        "SWG Metrics",
        "> 70% capacity",
        "Upgrade SWG License/Capacity"),
    SASEMetric("ZTNA Connection Failures",
        "ZTNA Logs",
        "> 5% failure rate",
        "ตรวจ Policy Config / Scale ZTNA Capacity"),
    SASEMetric("License Usage",
        "SASE Admin Console",
        "> 90% of licensed users",
        "ซื้อ License เพิ่มก่อนหมด"),
    SASEMetric("DEM Score",
        "Digital Experience Monitoring",
        "Score < 70/100",
        "ตรวจ Network Path / PoP Performance"),
    SASEMetric("Capacity Forecast",
        "Historical Data + ML Prediction",
        "Projected > 80% ใน 3 เดือน",
        "วางแผน Upgrade ล่วงหน้า"),
]

print("=== Monitoring Metrics ===")
for m in metrics:
    print(f"  [{m.metric}]")
    print(f"    Source: {m.source}")
    print(f"    Threshold: {m.threshold}")
    print(f"    Action: {m.action}")

เคล็ดลับ

การนำไปใช้งานจริงในองค์กร

สำหรับองค์กรขนาดกลางถึงใหญ่ แนะนำให้ใช้หลัก Three-Tier Architecture คือ Core Layer ที่เป็นแกนกลางของระบบ Distribution Layer ที่ทำหน้าที่กระจาย Traffic และ Access Layer ที่เชื่อมต่อกับผู้ใช้โดยตรง การแบ่ง Layer ชัดเจนช่วยให้การ Troubleshoot ง่ายขึ้นและสามารถ Scale ระบบได้ตามความต้องการ

เรื่อง Network Security ก็สำคัญไม่แพ้กัน ควรติดตั้ง Next-Generation Firewall ที่สามารถ Deep Packet Inspection ได้ ใช้ Network Segmentation แยก VLAN สำหรับแต่ละแผนก ติดตั้ง IDS/IPS เพื่อตรวจจับการโจมตี และทำ Regular Security Audit อย่างน้อยปีละ 2 ครั้ง

เปรียบเทียบข้อดีและข้อเสีย

ข้อดีข้อเสีย
ประสิทธิภาพสูง ทำงานได้เร็วและแม่นยำ ลดเวลาทำงานซ้ำซ้อนต้องใช้เวลาเรียนรู้เบื้องต้นพอสมควร มี Learning Curve สูง
มี Community ขนาดใหญ่ มีคนช่วยเหลือและแหล่งเรียนรู้มากมายบางฟีเจอร์อาจยังไม่เสถียร หรือมีการเปลี่ยนแปลงบ่อยในเวอร์ชันใหม่
รองรับ Integration กับเครื่องมือและบริการอื่นได้หลากหลายต้นทุนอาจสูงสำหรับ Enterprise License หรือ Cloud Service
เป็น Open Source หรือมีเวอร์ชันฟรีให้เริ่มต้นใช้งานต้องการ Hardware หรือ Infrastructure ที่เพียงพอ

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

SASE คืออะไร

Secure Access Service Edge SD-WAN SWG CASB ZTNA FWaaS DLP Cloud-delivered PoP Remote Work Zscaler Prisma Netskope Cloudflare

Capacity Planning ทำอย่างไร

Baseline Traffic Users Concurrent Peak Growth Rate 80% Target Sizing Components License PoP Selection Latency Redundancy Buffer

Sizing ทำอย่างไร

1-5 Mbps/User Concurrent 60% Peak 1.5x SSL 1.2x ZTNA x3 CASB 100 calls/user/day License +20% Buffer Growth 3 ปี

Monitor อย่างไร

Bandwidth Utilization Latency SSL Throughput ZTNA Failures License Usage DEM Score Forecast 3 เดือน Alert Threshold Action

สรุป

SASE Framework Capacity Planning SD-WAN SWG CASB ZTNA FWaaS PoP Sizing License Monitoring Forecast Production

📖 บทความที่เกี่ยวข้อง

Nuclei Scanner Capacity Planningอ่านบทความ → SASE Security Capacity Planningอ่านบทความ → Java Virtual Threads Capacity Planningอ่านบทความ → Saleor GraphQL Capacity Planningอ่านบทความ → PostgreSQL JSONB Capacity Planningอ่านบทความ →

📚 ดูบทความทั้งหมด →