CDN پیشرفته چیست؟ معماری Edge، Cache و امنیت

یک قانون اشتباه در CDN می‌تواند صفحه حساب یک کاربر را به کاربر دیگر نشان دهد؛ همان زیرساختی که برای سرعت خریده‌اید، به نشت داده تبدیل می‌شود. از طرف دیگر، Cache Key بسیار ریز، نرخ Hit را می‌کشد و Origin را زیر موج درخواست تنها می‌گذارد. تفاوت CDN پیشرفته با یک Proxy ساده در تعداد قابلیت‌ها نیست؛ در قرارداد دقیق میان Edge، Cache، امنیت، Origin و عملیات است.

این راهنما به‌جای پیش‌بینی سال‌محور و فهرست بازاری ابزارها، معماری و روش تصمیم می‌دهد: Cache contract، Edge Computing، Tiered Cache، WAF و Bot، محافظت Origin، Failover، Observability، TCO، محدودیت‌های ایران، Pilot و Rollback. قابلیت و محدودیت هر ارائه‌دهنده با Plan، Region و تاریخ تغییر می‌کند؛ برای خرید باید مستند رسمی روز و تست واقعی خودتان را ملاک قرار دهید.

پاسخ کوتاه: CDN پیشرفته چیست؟

CDN پیشرفته علاوه بر تحویل و Cache محتوای HTTP، معمولاً بخشی از این قابلیت‌ها را دارد: Cache Key و Purge قابل برنامه‌ریزی، لایه میانی یا Origin Shield، Edge Function، WAF و Rate limit، مدیریت Bot، مسیریابی چند Origin، پردازش تصویر/ویدیو، HTTP/۳، لاگ نزدیک real-time و کنترل Configuration as Code. اما داشتن checkbox به معنی مناسب‌بودن برای Workload شما نیست.

قبل از خرید، برای هر قابلیت چهار شاهد بخواهید: Eligibility در حساب و کشور شما، Limit دقیق، Failure behavior و Telemetry. اگر نمی‌توانید بگویید هنگام timeout، purge ناقص، function error یا Origin outage چه می‌شود، معماری هنوز آماده تولید نیست.

سؤالCDN پایهنیاز پیشرفته
محتوا چیست؟فایل ثابت عمومیHTML/API/Video و variantهای کنترل‌شده
منطق کجاست؟Originبخشی در Edge با boundary روشن
ریسک چیست؟کندی و بار OriginData leak، bypass، consistency و vendor failure
عملیات چگونه است؟TTL و Purge دستیVersion، canary، telemetry، rollback و evidence
تصمیم چگونه گرفته می‌شود؟قیمت/PoPJourney SLO، Iran probe، TCO و exit

اگر دنبال تعریف عمومی، تفاوت CDN داخلی و خارجی و راه‌اندازی DNS هستید، راهنمای CDN برای سایت ایرانی نقطه شروع است. این مقاله روی لایه پیشرفته معماری و عملیات تمرکز دارد.

مسیر واقعی درخواست را روی یک صفحه بکشید

برچسب «Edge» می‌تواند چند جزء متفاوت را پنهان کند. مسیر را از نگاه هر Journey رسم کنید:

User → DNS → Edge TLS → DDoS/WAF/Bot → Cache/Edge Function → Regional Cache/Shield → Origin Gateway/App → Database/Dependency

مرزتصمیمخرابی نمونهشاهد
DNS/Routeکدام Edge پاسخ می‌دهد؟Route بد یک ISP یا TTL نامناسبProbe مستقل چند شبکه
TLS EdgeCertificate و Protocolزنجیره ناقص، SNI یا تمدیدHandshake test و expiry alert
SecurityAllow/Challenge/Block/RateFalse positive یا bypass OriginRule ID، sample و replay
CacheIdentity/Freshness/ServeCross-user leak یا stale priceHeader و synthetic matrix
FunctionRewrite/Auth/RouteCPU limit، exception یا rollout بدVersion، error rate و rollback
ShieldCollapse/Origin offloadلایه اضافی برای Dynamic requestHit/offload و cost
Originچه کسی مجاز است؟IP مستقیم یا spoofed client IPACL/mTLS و bypass scan
DependencyEdge چه چیزی را پنهان نمی‌کند؟DB/API پایین‌دست از کار افتادهTrace و failure drill

CDN نمی‌تواند یک Database ناسازگار، API بدون idempotency یا Session اشتباه را جادویی حل کند. هر لایه باید owner، SLO، timeout و failure policy داشته باشد.

قرارداد Cache: مهم‌ترین بخش معماری CDN

RFC ۹۱۱۱ درباره HTTP Caching semantics اصلی Cache را تعریف می‌کند. Rule پنل ارائه‌دهنده می‌تواند رفتار را override کند، اما نباید بدون فهم پاسخ Origin ساخته شود. برای هر نوع response این شش بخش را ثبت کنید:

جزء قراردادپرسششاهد
Identityچه Requestهایی یک response مشترک دارند؟Cache Key و variant matrix
Freshnessتا چه زمانی پاسخ قابل استفاده است؟Cache-Control/Age/TTL policy
Consistencyپس از تغییر چه زمانی همه Edgeها تازه‌اند؟Purge/Version propagation test
Privacyچه چیزی هرگز Shared cache نمی‌شود؟Auth/cookie/account negative tests
Failureدر timeout/error پاسخ stale مجاز است؟stale-if-error و outage drill
EvidenceHit/Miss/Bypass/Revalidate چرا رخ داد؟Cache-Status/vendor header و log

معماری Cache مستقل از CDN را در راهنمای جامع Cache وب با مرز Browser، Edge، Application و Database کامل کنید.

Cache Key: میان نشت داده و انفجار Cardinality

Cache Key هویت شیء است. اگر دو پاسخ متفاوت یک Key بگیرند، داده یا زبان اشتباه تحویل می‌شود. اگر هر Header، Cookie و Query وارد Key شود، variantها منفجر می‌شوند و Hit ratio افت می‌کند. مستند CloudFront درباره Cache Key نیز توصیه می‌کند فقط مقدارهایی وارد Key شوند که واقعاً پاسخ Origin را تغییر می‌دهند.

ورودیپیش‌فرض تصمیمخطر
Pathمعمولاً هویت پایهNormalization و slash متفاوت
QueryAllowlist پارامتر اثرگذارutm و ترتیب پارامتر duplicate می‌سازند
Hostدر چند دامنه/tenant صریحHost confusion و اشتراک ناخواسته
Accept-Encodingطبق رفتار پلتفرمvariant فشرده ناسازگار
Accept-Languageفقط اگر پاسخ واقعاً زبان‌محور استcardinality بالا و fallback نامعلوم
Deviceترجیحاً responsive مشترکUser-Agent entropy و duplicate
CookieBypass/allowlist محدودSession leak یا Hit ratio صفر
AuthorizationShared cache فقط با طراحی صریحCross-user data exposure
Geoبرای الزام روشن، نه شخصی‌سازی بی‌دلیلPrivacy، تعداد variant و VPN

برای هر Key، جفت Requestهایی بسازید که باید Hit مشترک و جفت‌هایی که باید پاسخ جدا داشته باشند. تست منفی با دو حساب کاربری و cookie متفاوت حیاتی است. Cache HTML حساب، سبد، قیمت شخصی یا API خصوصی را پیش از threat model مشترک نکنید.

Freshness، Revalidation و Stale

max-age، s-maxage، no-cache، no-store و must-revalidate یک معنا ندارند. no-cache لزوماً «ذخیره نکن» نیست؛ یعنی پیش از استفاده مجدد باید validation انجام شود. برای داده حساس یا نگهداری ممنوع، no-store و policy پلتفرم را با تست بررسی کنید.

RFC 5861 دو extension مهم را توضیح می‌دهد:

  • stale-while-revalidate اجازه می‌دهد در بازه محدود، پاسخ stale هم‌زمان با بازاعتبارسنجی غیرهم‌زمان سرو شود.
  • stale-if-error اجازه می‌دهد در خطا، پاسخ stale در محدوده تعریف‌شده استفاده شود.

این گزینه‌ها Availability را بهتر می‌کنند، اما برای موجودی، قیمت، خبر فوری یا داده حقوقی می‌توانند پاسخ نادرست بدهند. برای هر endpoint، حداکثر staleness قابل تحمل و خطاهای مجاز را بنویسید. «Always online» بدون قید freshness یک SLO ناقص است.

Invalidation و Purge را بخشی از Deployment بدانید

روشمناسبریسک
Versioned URLCSS/JS/Image immutableReference قدیمی و cleanup
Purge by URLصفحه یا شیء معلومVariantهای Key جا می‌مانند
Purge by tag/keyمجموعه محصول/مقالهTagging ناقص یا plan-dependent
Purge by prefix/hostدامنه مشخص تغییرBlast radius بزرگ
Purge everythingحادثه کنترل‌شدهOrigin stampede و افت شدید Hit
TTL-onlyداده با stale tolerance روشناصلاح فوری ممکن نیست

مستند Cloudflare برای Purge با Cache Key نشان می‌دهد در Custom Key ممکن است Header، Query یا نوع دستگاه برای purge همان variant لازم باشد و برخی مسیرهای Cache API محدودیت متفاوت دارند. این جزئیات مثال خوبی است که checkbox «Purge by URL» بدون Key contract کافی نیست.

Purge را با version deployment، idempotency، retry، rate limit، نتیجه per-item و propagation probe بسازید. پس از انتشار، URLهای representative را از چند Edge بخوانید و نسخه/ETag مورد انتظار را تأیید کنید. Rollback باید نسخه قبلی asset و rule را برگرداند، نه اینکه صرفاً همه Cache را خالی کند.

Tiered Cache، Origin Shield و Request Collapsing

در CDN چندلایه، Edgeهای نزدیک کاربر می‌توانند Miss را به Regional cache یا Shield بفرستند؛ این لایه قبل از Origin شانس Hit مشترک و collapse درخواست‌های هم‌زمان را بالا می‌برد. نتیجه ممکن است کاهش Origin egress و جلوگیری از stampede باشد.

مستند CloudFront Origin Shield توضیح می‌دهد این لایه برای محتوای cacheable و Origin محدود می‌تواند مفید باشد، اما برای requestهای dynamic/کم‌تکرار یا کم‌قابلیت Cache لزوماً مناسب نیست و هزینه افزوده دارد. پس Shield را به‌صورت «همیشه بهتر» فعال نکنید.

شاخصقبلبعدهشدار
Edge hit ratioپایهممکن است ثابت بماندفقط Edge را نبینید
Origin request rateپایهباید کم شودDynamic را جدا کنید
Origin egressپایهباید کم شودByte hit ratio مهم است
Miss TTFBپایهممکن است بهتر یا بدتر شودمکان Shield مهم است
Cost/requestپایهلایه جدید هزینه داردصرفه‌جویی Origin را کم کنید

Edge Computing: چه منطق‌هایی واقعاً در لبه مناسب‌اند؟

Edge function بخشی از برنامه است، با quota، runtime، deployment، observability و failure domain خودش. «نزدیک کاربر» لزوماً به معنی سریع‌تر نیست؛ اگر function برای هر درخواست به Database دور تماس بگیرد، مسیر پیچیده‌تر و کندتر می‌شود.

Use caseتناسب اولیهشرط
Header/security policyزیادمنطق کوچک، deterministic و تست‌شده
URL rewrite/redirectزیادLoop و canonical کنترل شوند
A/B assignmentمتوسطStable allocation، cache key و analytics
Auth precheckمتوسطIssuer/audience/key rotation و revocation روشن
Personalizationمتوسط تا کمPrivacy، state و variant cardinality محدود
Image transformمتوسطCache، format، quality و cost guard
Database transactionکمConsistency/latency و authority معمولاً Origin می‌ماند
پرداخت/سفارش writeکمIdempotency، reconciliation و region authority لازم

مستند AWS برای CloudFront Functions و Lambda@Edge نشان می‌دهد حتی در یک پلتفرم، runtime سبک و تابع پیچیده‌تر trigger، زبان و محدودیت متفاوت دارند. صفحه Limits مربوط به Cloudflare Workers نیز quotaهای CPU، Subrequest، Cache API، Log و asset را plan-dependent فهرست می‌کند. برای هر گزینه یک snapshot تاریخ‌دار بسازید.

قرارداد Edge Function

  • Trigger و فاز Viewer/Origin Request/Response؛
  • ورودی‌های قابل اعتماد و normalization؛
  • CPU، memory، wall time، subrequest و body limit؛
  • State model، consistency و data residency؛
  • Secret، key rotation و least privilege؛
  • Timeout، exception و fail-open/fail-closed per action؛
  • Version، canary، propagation و rollback؛
  • Log sampling، redaction، request ID و cost؛
  • Portability و exit test.

برای مقایسه workload و TCO اجرای Serverless با سرور، راهنمای Serverless و هاست سنتی مکمل این بخش است.

امنیت Edge: CDN مرز اعتماد جدید است، نه سپر جادویی

تهدیدکنترل Edgeچیزی که باقی می‌ماند
DDoS حجمی/پروتکلAnycast/scrubbing/rateظرفیت و Terms واقعی plan
HTTP floodWAF/Bot/challengeFalse positive و حمله شبیه کاربر
InjectionWAF ruleValidation و query امن در App
BOLA/API abuseToken/rate/schema اولیهAuthorization شیء در سرویس
Credential stuffingBot/rate/risk signalMFA، recovery و account telemetry
Origin bypassACL/mTLS/secret headerIP leak و سرویس‌های موازی
Cache poisoningNormalization/key policyOrigin behavior و unkeyed input
Supply-chain/configVersion/RBAC/auditAccount takeover و rule drift

«WAF مبتنی بر AI» بدون Detection scope، false-positive rate، rule ID، sample، mode و rollback یک ادعای بازاری است. ابتدا در Log/Count mode، سپس روی مسیر محدود و با Exclusion تاریخ‌دار اجرا کنید. راهنمای تفصیلی Policy در فایروال و WAF سایت و تهدیدهای BOLA/OAuth/JWT در امنیت API آمده است.

Origin را واقعاً قفل کنید

اگر IP Origin از DNS قدیمی، certificate transparency، ایمیل، asset یا سرویس موازی پیدا شود و مستقیم پاسخ دهد، مهاجم می‌تواند WAF/CDN را دور بزند. راهنمای رسمی Cloudflare برای حفاظت Origin نمونه‌هایی مانند Proxy record، محدودکردن IP و Authenticated Origin Pulls را مطرح می‌کند.

  • فقط Range یا اتصال احرازشده CDN به Origin اجازه دهید؛
  • TLS را در مسیر Edge→Origin هم validate کنید؛
  • Header محرمانه را با mTLS اشتباه نگیرید و rotation داشته باشید؛
  • Real client IP را فقط از Proxyهای trusted بپذیرید؛
  • Host مستقیم، IP، دامنه قدیمی و IPv6 را جدا تست کنید؛
  • پنل، SSH، API داخلی و Storage را پشت همان مرز فرض نکنید.

حریم خصوصی و شخصی‌سازی در Edge

Edge محل مناسبی برای جمع‌آوری بی‌حد داده نیست. Geo، fingerprint، Bot signal، Cookie و log می‌توانند داده شخصی یا حساس عملیاتی باشند. Purpose، retention، دسترسی، انتقال و redaction را پیش از فعال‌کردن محصول امنیتی/تحلیلی تعیین کنید.

برای Personalization سه مرز را روشن کنید:

  1. کدام attribute واقعاً پاسخ را عوض می‌کند؟
  2. آیا این attribute وارد Cache Key می‌شود، response private است یا bypass می‌شود؟
  3. کاربر، تیم پشتیبانی و سیستم Purge چگونه variant را تشخیص می‌دهند؟

Geo-IP قطعی نیست؛ VPN، اپراتور موبایل و route مرزی می‌تواند مکان را اشتباه نشان دهد. Redirect اجباری زبان/کشور را بر IP بنا نکنید؛ انتخاب کاربر و URL قابل crawl/اشتراک باید authority روشن داشته باشند.

Failover و Availability: Read با Write یکی نیست

Failover CDN معمولاً برای GET/HEAD cacheable ساده‌تر از POST پرداخت یا سفارش است. مستند CloudFront Origin Failover نمونه‌ای است که Failover را برای methodها و statusهای مشخص محدود می‌کند؛ این رفتار را نمی‌توان به همه ارائه‌دهندگان تعمیم داد.

JourneyFallback امنخطر
Asset immutableOrigin دوم یا staleنسخه ناسازگار App/Asset
مقاله/کاتالوگstale محدودقیمت/موجودی منقضی
API خواندنیReplica با consistency معلومread-after-write قدیمی
Loginمسیر IdP/Session طراحی‌شدهKey/session mismatch
Cart/OrderApplication-level idempotencyduplicate یا split brain
Payment callbackQueue/retry/reconciliationتأیید یا رد دوگانه

RTO/RPO، timeout، retry budget، idempotency key، consistency و rollback را برای هر Journey بنویسید. CDN نمی‌تواند state write را بدون قرارداد Application به Origin دوم منتقل کند.

HTTP/۳، TLS، Compression و Media Optimization

HTTP/۳ یک قابلیت Edge-to-user است و فعال‌بودنش الزاماً مسیر Edge-to-Origin یا تجربه همه کاربران را عوض نمی‌کند. Protocol adoption، fallback، handshake failure و p75/p95 را به تفکیک ISP و device بسنجید. برای QUIC، migration و روش اندازه‌گیری، راهنمای HTTP/۳ را ببینید.

  • TLS: Edge certificate، Origin certificate، version/cipher و renewal را جدا کنید.
  • Compression: Brotli/Gzip باید با Content-Type، ETag و Vary سازگار باشد.
  • Image: Format/quality/width DPR می‌تواند variant و هزینه را زیاد کند.
  • Video: Packaging، range request، origin egress و cache key اهمیت دارند.
  • WebSocket/gRPC: Proxy support، timeout، Shield و WAF behavior را plan-specific بررسی کنید.
  • Early Hints/Preload: فقط با dependency graph و measurement؛ header زیاد تضمین سرعت نیست.

Observability: Hit Ratio تنها KPI نیست

RFC 9211 Header استاندارد Cache-Status را برای توضیح رفتار Cache تعریف می‌کند. بسیاری از CDNها Header اختصاصی هم دارند. این Header را با Request ID و trace داخلی پیوند دهید، اما اطلاعات حساس یا جزئیات قابل سوءاستفاده را بی‌دلیل عمومی نکنید.

SLIتقسیم لازمتفسیر
Eligible hit ratioContent class/PoPفقط درخواست قابل Cache در مخرج
Byte hit ratioAsset/Videoاثر واقعی بر Origin egress
Origin offloadMethod/endpointتعداد و پهنای‌باند کم‌شده
TTFB p75/p95ISP/City/Protocol/Hit-Missمیانه به‌تنهایی tail را پنهان می‌کند
Edge 4xx/5xxRule/function/originمنبع خطا جدا شود
WAF/Bot actionRule/path/outcomeBlock زیاد موفقیت نیست
Purge propagationRegion/key/versionزمان تا نسخه مطلوب
Function SLIVersion/triggerError، CPU، timeout و subrequest
Cost per successJourney/featureRequest، log، compute و egress

Log ممکن است sampled، delayed یا best-effort باشد. مستند AWS برای Edge function logs صریحاً هشدار می‌دهد برخی logها accounting کامل درخواست‌ها نیستند. Billing، security investigation و SLO را به منبعی تکی وابسته نکنید.

برای طراحی Metric/Log/Trace/SLO به راهنمای Observability و برای Probe بیرونی مستقل از Vendor به راهنمای مانیتورینگ Uptime مراجعه کنید.

TCO واقعی CDN پیشرفته

قیمت هر گیگابایت فقط یک ردیف است. هزینه ماهانه را برای سناریوی کم/پایه/پیک بسازید:

TCO = Data delivery + Requests + Origin egress + Edge compute + WAF/Bot/DDoS + Log/Analytics + Image/Video + Shield/Load balance + DNS/Certificate + Support + Engineering/Ops + FX/Payment + Exit

محرکواحددام هزینه پنهان
Requestمیلیون درخواست/Regionفایل ریز و API chatty
TransferGB/TB destinationRegion/commit/overage
ComputeInvocation/CPU/durationهمه requestها trigger می‌شوند
SecurityRule/request/domainBot/API feature در plan بالاتر
LoggingGB ingest/store/queryCardinality و retention
MediaTransform/minute/outputVariant abuse و cache miss
OriginEgress/request/computeKey بد و Purge storm
Peopleنفر-روزRule، incident، migration و audit
Exitپروژه/dual runsyntax، function، log و DNS lock-in

Cost per successful Journey و Cost per protected request را کنار هزینه خام گزارش کنید. CDN ارزان با Hit پایین، Origin egress زیاد، log ناکافی یا Support غیرقابل دسترس ممکن است TCO بالاتری داشته باشد.

CDN پیشرفته برای ایران: نام PoP کافی نیست

فهرست شهرها یا نقشه Anycast نمی‌گوید کاربر هر ISP در ساعت اوج از کدام Route می‌رود. از شبکه‌های موبایل و ثابت، چند شهر، VPN/no-VPN و DNS resolverهای متفاوت اندازه‌گیری کنید. داده باید timestamp، ISP، IP family، Protocol و Hit/Miss را نگه دارد.

محور ایرانآزمونتصمیم
Route/PeeringTTFB/loss/jitter چند ISPVendor/route واقعی، نه نزدیک‌ترین شهر
EligibilityTerms/Account/Region featureKnockout پیش از معماری
Payment/FXتمدید، سقف و جهش ارزReserve و fallback
SupportIncident drill و channelSLA قابل استفاده در timezone شما
Data/Logمحل، retention و exportحقوق/حریم خصوصی/IR
ProtocolHTTP/۲/۳، IPv4/۶، TLSFallback per network
Origin routeEdge→Origin p95 و timeoutShield/Origin location
ContinuityAccount/DNS/vendor outageRunbook و exit

Hybrid CDN داخلی/خارجی یا Multi-CDN فقط وقتی ارزش دارد که یک failure mode یا audience واقعی را پوشش دهد. دو CDN بدون common key، log normalization، certificate/DNS ownership و config parity می‌توانند پیچیدگی را دو برابر کنند و Origin را با Missهای تکراری تحت فشار بگذارند.

Multi-CDN چه زمانی منطقی است؟

  • رویداد یا ویدیوی بزرگ با capacity/contract چندشبکه؛
  • Audience چندمنطقه‌ای با اختلاف اثبات‌شده Route؛
  • نیاز Availability که یک Vendor failure را پوشش می‌دهد؛
  • محدودیت Eligibility/Business continuity با مسیر خروج تمرین‌شده.

هزینه‌های پنهان شامل Steering DNS/Client، warm cache، دو Rule language، WAF parity، Log merge، certificate، purge هماهنگ، incident ownership و double billing است. Active-active، weighted و failover را با failure injection مقایسه کنید. Health check «صفحه ۲۰۰» برای Journey دیتابیس/پرداخت کافی نیست.

Scorecard انتخاب CDN پیشرفته

ابتدا Knockoutها را بررسی کنید؛ سپس وزن بدهید. قابلیت فاقد Eligibility یا telemetry با امتیاز بازاری جبران نمی‌شود.

معیاروزن نمونهشاهد
Iran journey performance۲۰p75/p95 چند ISP و Hit/Miss
Cache correctness۱۵Key/TTL/Purge negative test
Origin/security۱۵Bypass/WAF/Bot false-positive drill
Reliability۱۲Stale/failover/function failure
Edge fit۱۰Quota/runtime/dependency pilot
Observability۱۰Log completeness/correlation/export
TCO۱۰Low/base/peak + FX/Ops/Exit
Portability/support۸Config export/rollback/incident test

وزن‌ها نمونه‌اند. فروشگاه ایرانی ممکن است پرداخت/false positive را Knockout بداند؛ سایت رسانه‌ای Byte hit ratio و video را سنگین‌تر وزن دهد. Confidence هر امتیاز را High/Medium/Low ثبت کنید؛ Demo فروشنده با Pilot تولید برابر نیست.

Pilot مرحله‌ای بدون قمار روی کل دامنه

مرحله ۱: Baseline و Shadow

  • Journey، audience، traffic shape و SLO را ثبت کنید.
  • Header/Cache behavior فعلی و Origin capacity را baseline بگیرید.
  • Log/Count mode امنیتی و mirror/replay امن را فعال کنید.
  • Knockoutهای Terms، پرداخت، TLS، DNS و data را ببندید.

مرحله ۲: Static Canary

  • دامنه یا path محدود با asset immutable را مسیر دهید.
  • Hit/Miss/Key/Purge/Protocol/PoP و Origin offload را بسنجید.
  • Probe چند ISP ایران و مرورگر واقعی اجرا کنید.
  • Rollback DNS/config و cache warm-up را تمرین کنید.

مرحله ۳: HTML/API محدود

  • Cache matrix و دو-account negative test اجرا کنید.
  • WAF/Bot را از Count به Canary rule ببرید.
  • Edge function را Version/Canary و failure inject کنید.
  • Stale، Origin timeout، purge storm و dependency outage را تست کنید.

مرحله ۴: Ramp یا Stop

  • ۵→۲۵→۵۰→۱۰۰ درصد را با Hold point تعریف‌شده طی کنید.
  • Guardrailهای p95، error، false positive، cost و support را بررسی کنید.
  • اگر Kill criterion شکست، Rollback کنید؛ rollout موفقیت اجباری نیست.
  • پس از ثبات، Origin bypass و configuration drift را دوباره ممیزی کنید.

Runbook مهاجرت و Rollback

  1. Inventory رکورد DNS، certificate، Origin، path، method و integration؛
  2. کاهش TTL با فاصله کافی و ثبت resolver behavior؛
  3. صدور/آزمون Certificate و TLS دو مسیر؛
  4. تنظیم Cache/Security در staging و version control؛
  5. اعتماد Real IP فقط از Proxyهای مجاز و جلوگیری از spoof؛
  6. فعال‌کردن telemetry قبل از traffic؛
  7. Canary، observation window و owner شیفت؛
  8. قفل Origin پس از تأیید مسیر CDN و نگه‌داشت break-glass؛
  9. Rollback برای DNS، Config، Function، WAF و Cache جدا؛
  10. Post-check برای SEO headers، canonical، redirect، robots و uptime.

Rollback DNS آنی نیست؛ resolverها و connectionهای باز می‌توانند مسیر قبلی را نگه دارند. پنجره dual-run و observability هر دو مسیر را در برنامه بیاورید. Secret و allowlist موقت باید تاریخ انقضا داشته باشند.

برنامه ۳۰روزه ارزیابی CDN پیشرفته

روزهای ۱ تا ۷: قرارداد Workload

  • Journey، SLO، audience، traffic، data و Origin dependency را ثبت کنید.
  • Cache contract برای پنج response مهم بسازید.
  • Security trust boundary و bypass inventory را رسم کنید.
  • Knockoutهای ایران، Terms، payment و data را بررسی کنید.

روزهای ۸ تا ۱۴: Baseline و Config

  • p75/p95 چند ISP، Hit/Miss، Origin egress و error را baseline بگیرید.
  • Rule/Function/WAF را در version control و staging بسازید.
  • Log schema، request ID، redaction و retention را تعیین کنید.
  • TCO کم/پایه/پیک و هزینه Exit را محاسبه کنید.

روزهای ۱۵ تا ۲۱: Pilot و Failure test

  • Static Canary سپس HTML/API کم‌ریسک را اجرا کنید.
  • Cache leak، poisoning، purge، timeout و stale را آزمایش کنید.
  • Edge quota/error، WAF false positive و Origin bypass را تست کنید.
  • Rollback و تماس Support را در ساعت واقعی تمرین کنید.

روزهای ۲۲ تا ۳۰: تصمیم

  • Scorecard با Confidence و Evidence تکمیل کنید.
  • مقایسه before/after و Cost per success را ارائه دهید.
  • Gap، risk acceptance و owner را ثبت کنید.
  • Scale، Hybrid، Multi-CDN، Defer یا Stop را صریح انتخاب کنید.

اشتباه‌های رایج در CDN پیشرفته

  • سال و Trend به‌جای نیاز: قابلیت جدید بدون Workload fit خریداری می‌شود.
  • تعداد PoP: Route واقعی ISP و کیفیت اتصال به Origin سنجیده نمی‌شود.
  • Cache همه HTML: Session و داده شخصی به خطر می‌افتد.
  • Key بزرگ: Header/Cookie بی‌اثر variant و هزینه می‌سازد.
  • Purge everything: Origin stampede پس از انتشار ایجاد می‌شود.
  • Edge برای Database: latency dependency مزیت جغرافیایی را از بین می‌برد.
  • WAF=امنیت کامل: Authorization و validation برنامه فراموش می‌شود.
  • Origin باز: همه کنترل‌های Edge قابل دورزدن می‌شوند.
  • Failover برای POST: duplicate و split-brain نادیده گرفته می‌شود.
  • Hit ratio خام: requestهای غیرقابل Cache و byte offload پنهان می‌مانند.
  • Log=حقیقت کامل: sampling/delay/best-effort در نظر گرفته نمی‌شود.
  • AI label: Detection scope، FP، explainability و rollback شاهد ندارند.
  • رایگان برای همیشه: Quota، overage، FX، Support و exit در TCO نیست.
  • Multi-CDN نمایشی: Config، key، purge و incident دوگانه می‌شوند.

چک‌لیست تصمیم نهایی

  • مسیر DNS→Edge→Shield→Origin→Dependency با owner رسم شده است.
  • Cache identity/freshness/consistency/privacy/failure/evidence تعریف شده است.
  • دو-account negative test و purge propagation موفق‌اند.
  • Edge function quota، state، failure و rollback دارد.
  • Origin برای IPv4/IPv6/domain/IP و سرویس موازی قفل و تست شده است.
  • WAF/Bot از Count/Canary با false-positive guardrail عبور کرده‌اند.
  • Read failover و Write semantics جدا طراحی شده‌اند.
  • Telemetry hit/offload/tail/error/security/purge/function/cost را پوشش می‌دهد.
  • Probe چند ISP و device ایران، نه فقط Vendor dashboard، موجود است.
  • TCO شامل FX، log، compute، security، people، support و exit است.
  • Pilot، Hold point، Kill criterion و Rollback تمرین شده‌اند.
  • قابلیت‌ها با Plan/Region/Date snapshot و مستند رسمی تأیید شده‌اند.

سوالات متداول درباره CDN پیشرفته

تفاوت CDN معمولی و CDN پیشرفته چیست؟

CDN پایه عمدتاً فایل cacheable را نزدیک کاربر تحویل می‌دهد. CDN پیشرفته می‌تواند Cache قابل برنامه‌ریزی، Edge Function، Shield، WAF/Bot، چند Origin و telemetry عمیق‌تر بدهد. تفاوت واقعی وقتی معنا دارد که این قابلیت‌ها برای Workload شما Eligible، قابل اندازه‌گیری و قابل rollback باشند.

آیا Edge Computing همیشه سرعت را بیشتر می‌کند؟

خیر. منطق کوچک و بدون dependency دور می‌تواند latency را کم کند؛ اما function سنگین یا تماس با Database دور، quota و لایه جدید اضافه می‌کند. Hit/Miss، CPU، subrequest، p95 و failure را روی مسیر واقعی بسنجید.

آیا می‌توان HTML و API را در CDN Cache کرد؟

بله، اگر هویت پاسخ، Cache Key، TTL، privacy، invalidation و failure دقیق باشند. صفحه حساب، سبد یا API خصوصی را بدون دو-account negative test و طراحی صریح Shared cache نکنید. برای داده پویا گاهی revalidation یا bypass درست‌تر است.

آیا CDN جایگزین WAF، هاست و امنیت API می‌شود؟

خیر. بعضی CDNها WAF و Edge compute ارائه می‌کنند، اما validation، object authorization، state، Database و منطق اصلی همچنان مسئولیت برنامه و Origin است. Origin باز نیز کنترل Edge را قابل دورزدن می‌کند.

بهترین CDN پیشرفته برای کاربران ایرانی کدام است؟

پاسخ عمومی و پایدار ندارد. Eligibility، پرداخت، Route چند ISP، Edge→Origin، feature plan، Support، log، امنیت، TCO و exit را با Pilot مقایسه کنید. فهرست PoP یا benchmark یک شبکه برای نتیجه‌گیری کافی نیست.

جمع‌بندی: Edge را با قرارداد و Evidence بخرید

CDN پیشرفته زمانی مزیت می‌سازد که Cache درست، Origin محدود، Edge function کوچک و قابل بازیابی، security قابل توضیح و telemetry مستقل داشته باشد. از قابلیت‌های مد روز شروع نکنید؛ Journey و SLO را مشخص کنید، Cache و failure contract بنویسید و با Probe ایران، failure drill و TCO تصمیم بگیرید.

بهترین نتیجه ممکن است فعال‌کردن فقط Tiered Cache و محافظت Origin باشد، نه انتقال کل برنامه به Edge. Pilot باید اجازه بدهد با شواهد Scale، Hybrid، Defer یا Stop را انتخاب کنید.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *