پنجاههزار بازدید ماهانه ممکن است روی یک سرویس کوچک آرام اجرا شود؛ پانصد Checkout همزمان میتواند معماری ظاهراً «ابری» را در چند ثانیه متوقف کند. بازدید ماهانه نمیگوید Traffic در چه زمانی میرسد، چند Request میسازد، چه مقدار Cache میشود یا Database و درگاه چند عملیات همزمان تحمل میکنند. به همین دلیل نسخه عمومی «۴ هسته و ۸ گیگ رم» برای سایت پرترافیک قابلدفاع نیست.
انتخاب هاست سایت پرترافیک از خرید سرور بزرگتر شروع نمیشود؛ از Workload contract، Critical journey، SLO، ظرفیت اندازهگیریشده و Failure budget شروع میشود. در این راهنما، مسیر Edge→Origin→App→Database→Dependency را مدل میکنیم، Bottleneck را با Load test پیدا میکنیم و سپس Managed WordPress، VPS، Cloud VM، PaaS/Container، Dedicated یا Cluster را با TCO و شواهد ایران مقایسه میکنیم.
مرزبندی؛ این راهنما درباره Capacity engineering است
برای تعریف Shared، Managed WordPress، VPS، Cloud و Dedicated و انتخاب عمومی آنها، راهنمای انتخاب هاست Pillar اصلی است. این مقاله مسئله بعدی را مالک میشود: وقتی Growth، کمپین، خبر فوری یا فروش ویژه بار بالا و Failure costly میسازد، چگونه ظرفیت و معماری را طراحی کنیم؟
| پرسش | مالک Intent |
|---|---|
| Shared، VPS، Managed یا Cloud چیست؟ | راهنمای عمومی انتخاب هاست |
| دامنه/هاست چقدر هزینه دارد؟ | TCO خرید، تمدید و Exit |
| Serverless یا Server-based؟ | Workload placement و Event architecture |
| Peak و Concurrent checkout را چگونه تحمل کنیم؟ | همین راهنمای سایت پرترافیک |
«پرترافیک» عدد ثابت نیست
High traffic یعنی Demand نسبت به Capacity و SLO شما ریسک معنادار ساخته است. یک سایت محتوایی با Cache hit بالا ممکن است میلیونها Pageview را در Edge پاسخ دهد؛ فروشگاه کمبازدید اما Dynamic با Search، Cart، Inventory، Payment و Cron میتواند زودتر Database را اشباع کند.
| Metric | چه میگوید؟ | چرا کافی نیست؟ |
|---|---|---|
| Pageview/month | حجم کلی مصرف محتوا | Peak، Request/page و Cache را پنهان میکند |
| Request per second | نرخ درخواست در یک بازه | Duration و Resource هر Request متفاوت است |
| Concurrent work | کار همزمان App/Worker | Dependency و Queue نیز سقف مستقل دارند |
| Cache hit ratio | سهم پاسخ از Cache | Hit کلی میتواند Journey حساس را پنهان کند |
| Throughput outcome | سفارش/جستجو/ثبت موفق در ثانیه | Quality و Error باید کنار آن باشد |
| Bandwidth/egress | حجم انتقال داده | CPU/DB/Latency را نشان نمیدهد |
Traffic shape مهمتر از میانگین است
میانگین روزانه برای Capacity تصمیم خوبی نیست. Peak یکدقیقهای، Burst دهثانیهای، Ramp کمپین، Cache purge، Bot crawl، Feed import و Retry storm را جدا ثبت کنید. Traffic ممکن است Predictable باشد—مثلاً شروع فروش ساعت ۱۰—یا ناگهانی مانند خبر و Mention شبکه اجتماعی.
Workload contract سایت پرترافیک
| بعد | پرسش قابلاندازهگیری | اثر معماری |
|---|---|---|
| Audience path | کدام ISP/شهر/کشور و Mobile/Desktop؟ | Region، CDN و Probe |
| Journey | Browse، Search، Login، Cart، Checkout یا Admin؟ | Cacheability و Criticality |
| Traffic | RPS متوسط/P95/Peak، Burst و growth؟ | Headroom و scaling policy |
| Request | p50/p95/p99 Duration و CPU/Memory؟ | Concurrency و worker count |
| State | Session، Cart، Media و Transaction کجاست؟ | Horizontal scale و consistency |
| Data | Read/write ratio، query، lock و connection؟ | Database capacity |
| Cache | چه چیزی، برای چه کسی و چه مدت؟ | Origin RPS و invalidation |
| Background | Cron، Queue، Import، Email و Report؟ | Resource isolation |
| Dependency | Payment/SMS/Search/API چه Limitی دارند؟ | Backpressure و failure |
| SLO | Latency/Availability/Error/Correctness؟ | Architecture و budget |
| Recovery | RPO/RTO و rollback چیست؟ | Backup/replica/failover |
فرمولهای ساده، نه ماشینحساب جادویی
Concurrency ≈ Requests per second × Average request duration
Origin RPS ≈ Total eligible RPS × (1 - Cache hit ratio)
Monthly transfer ≈ Responses × Average transferred bytes
Headroom = Tested sustainable capacity - Expected peak loadبرای Tail از Average استفاده نکنید؛ Duration در p95/p99، Retry و Cache-miss burst را جدا مدل کنید. Hit ratio نیز باید براساس Route و Cohort باشد. عدد ۹۵٪ در کل سایت ممکن است Checkout صفر درصد و Origin-critical باشد.
Critical journey و SLO را قبل از CPU تعریف کنید
«سایت بالا است» معیار عملیاتی کافی نیست. صفحه اصلی میتواند ۲۰۰ باشد اما Login یا Checkout شکست بخورد. برای هر Journey، SLI و Window تعریف کنید:
| Journey | SLI نمونه | Guardrail |
|---|---|---|
| Browse | نسبت پاسخ موفق و p75/p95 | Freshness و Cache correctness |
| Search | نتیجه معتبر در Latency هدف | Zero-result و dependency error |
| Add to cart | Cart state درست و durable | Duplicate/lost update |
| Checkout | سفارش معتبر به Attempt واجد شرایط | Inventory/payment correctness |
| Admin/publish | تغییر قابلذخیره و انتشار | Cache purge و rollback |
SLO با SLA فرق دارد. SLA قرارداد جبران و Exclusion دارد؛ SLO هدف مهندسی و Error budget تیم است. ۹۹٫۹٪ Availability در Window سیروزه حدود ۴۳ دقیقه Budget نظری میدهد، اما فقط اگر تعریف Event، Probe، Journey و Exclusion دقیق باشد.
قبل از مهاجرت، Bottleneck را اندازه بگیرید
خرید RAM مشکل Query بد، External API کند یا Cache stampede را حل نمیکند. مسیر درخواست را به لایهها بشکنید:
| لایه | Signal | Failure رایج |
|---|---|---|
| DNS/Edge/CDN | Resolution، hit/miss، edge error | TTL/route/purge/origin shield |
| Network/LB | connection، TLS، queue، health | timeout/imbalanced pool |
| Web/App | worker busy، CPU، memory، latency | queueing/OOM/lock/plugin |
| Cache | hit، eviction، memory، stampede | cold start/invalidation |
| Database | query p95، connection، lock، I/O | scan/hot row/connection storm |
| Queue/Cron | depth، age، retry، DLQ | backlog/starvation |
| Third-party | latency، ۴۲۹، error، timeout | cascade/retry amplification |
Metric بدون Trace/Correlation فقط نشان میدهد «چیزی کند است». راهنمای Observability وبسایت مسیر User journey تا Signal، SLO و Incident را کامل میکند.
اول Work per request را کم کنید
Capacity فقط افزودن Resource نیست. اگر هر Pageview دهها Query تکراری، تصویر بزرگ، API blocking یا Plugin سنگین میسازد، Scale هزینه همان اتلاف را بزرگ میکند. راهنمای رسمی WordPress برای Optimization Hosting، Theme/Plugin، Cache، Object cache، Content offloading، Database و افزودن Server را اجزای جدا میداند.
- Critical route و expensive query/plugin را Profile کنید؛
- Page/object/opcode/browser/edge cache را با Contract بسازید؛
- Image/asset و Delivery را بهینه و offload کنید؛
- Cron، Import، Email و Report را از Web request جدا کنید؛
- DB index/query/connection/lock را اصلاح کنید؛
- Timeout، retry و concurrency Dependency را محدود کنید؛
- سپس Baseline جدید را Load test و Capacity را انتخاب کنید.
Optimization بیپایان نیز خطاست. اگر تیم ساعتها برای صرفهجویی جزئی کار میکند اما Managed platform با SLO بهتر TCO پایینتری دارد، معماری را عوض کنید. تصمیم باید Cost of engineering را ببیند.
Cache؛ اهرم ظرفیت و منبع Failure
مستند Cache در WordPress Page، Browser، Object و Server caching را جدا میکند. Cache hit مناسب، Origin work را بهشدت کم میکند؛ اما Cache اشتباه میتواند Price، Cart، Account یا محتوای خصوصی را به کاربر نادرست نشان دهد.
| لایه | چه چیزی Cache میشود؟ | ریسک |
|---|---|---|
| Browser | Asset با version | Stale asset و invalidation |
| CDN/Edge | Static یا HTML واجد شرایط | Personalization/cookie/cache key |
| Reverse proxy/page | HTML رندرشده | Purge storm و authenticated bypass |
| Object | نتیجه query/object گران | Eviction/stale/serialization |
| Opcode | PHP compiled code | Memory/version/deploy |
| Application | Domain result | Consistency و invalidation |
Cache-miss storm را تست کنید
بعد از Deploy، Purge یا Expiry همزمان، هزار Edge/Client ممکن است یک Resource را از Origin بخواهند. Request coalescing، Tiered cache/origin shield، jittered TTL، stale-while-revalidate و warmup کنترلهای احتمالیاند. مستند Tiered Cache کلادفلر توضیح میدهد چگونه لایه بالاتر تعداد درخواست مستقیم به Origin را کم میکند؛ محصول و تناسب را با Provider خود بررسی کنید.
Database معمولاً دیر یا زود مرز را نشان میدهد
- Query: p95/p99، execution plan، index، scan و N+۱ را ببینید؛
- Connection: Worker بیشتر میتواند Connection storm بسازد؛ Pool و سقف لازم است؛
- Lock: Checkout/Inventory/Session ممکن است روی Rowهای داغ رقابت کنند؛
- I/O: NVMe label جای اندازهگیری Latency/IOPS/queue depth را نمیگیرد؛
- Replica: Read replica ظرفیت Read را زیاد میکند، اما Lag و read-after-write correctness دارد؛
- Backup: Replica Backup نیست و اشتباه منطقی را نیز تکثیر میکند؛
- Maintenance: Index/Schema change باید زیر Load و با rollback آزموده شود.
«Database را جدا کنیم» فقط وقتی مفید است که Network latency، failure domain، connection و عملیات آن طراحی شده باشد. برای سایت تراکنشی، Consistency و correctness از Throughput خام مهمتر است.
گزینههای میزبانی برای بار بالا
| مدل | مزیت محتمل | ریسک/شرط | تناسب |
|---|---|---|---|
| Managed WordPress | Stack، cache، backup و support تخصصی | Limit/Plugin/traffic policy و خروج | تیم کمعملیات، WordPress استاندارد |
| Managed VPS | منبع/کنترل روشن با عملیات واگذارشده | Single-node ceiling/failure domain | بار قابلپیشبینی و رشد مرحلهای |
| Unmanaged VPS/VM | کنترل OS/Runtime و هزینه پایه | Patch/security/on-call/backup با تیم | تیم عملیات توانمند |
| Cloud VM/Managed services | API، elasticity و service portfolio | HA/scale خودکار نیست؛ TCO/egress/complexity | بار متغیر و معماری چندلایه |
| PaaS/Container | Deploy و scale مدیریتشدهتر | Runtime/limit/state/cost/lock-in | App قابلحمل و stateless |
| Dedicated/Bare metal | Capacity و isolation سختافزاری | Provisioning/failure/idle/operation | بار پایدار خاص یا نیاز سختافزاری |
| Multi-node cluster | Horizontal capacity و redundancy | State/LB/DB/deploy/observability complexity | SLO یا Capacity فراتر از یک Node |
Dedicated ذاتاً سریعترین یا امنترین نیست؛ Architecture، Software، Patch، Segmentation و Operations نتیجه را میسازند. VPS نیز منابع «کاملاً بیاثر از همسایه» را فقط در محدوده Contract/Hypervisor/Storage/Network ارائه میکند. Cloud label بهتنهایی HA یا Autoscaling نمیدهد.
Serverless را برای Component بسنجید
Image job، Webhook، Queue consumer یا API متغیر ممکن است Serverless مناسب باشد، در حالی که Core WordPress روی Managed stack بماند. مقاله Serverless یا Server-based Quota، Cold start، Event semantics، TCO و Pilot این Placement را پوشش میدهد.
Vertical یا Horizontal scale؟
| روش | مزیت | مرز |
|---|---|---|
| Vertical | ساده، سریع و بدون Distributed complexity | Ceiling، restart/migration و failure domain |
| Horizontal | Capacity و redundancy چند Node | State، deployment، LB، DB و consistency |
| Functional split | Web/worker/search/media/DB جدا | Network و operational coupling |
| Edge offload | کاهش Origin work/egress | Cache correctness و purge |
Vertical scaling اغلب بهترین گام کوتاهمدت است؛ «ابتدایی» یا بد نیست. Horizontal زمانی ارزش دارد که Single-node capacity، Availability target، Deployment isolation یا رشد آن را توجیه کند. برای آن، Session و Upload باید Shared/external یا Sticky behavior عمداً طراحی شوند.
Load Balancer فقط برای «ترافیک عظیم» نیست
Load balancer میتواند برای Redundancy، Maintenance بدون قطعی، Canary و Health-based routing پیش از رسیدن به سقف بزرگترین سرور مفید باشد. اما وجود آن HA را تضمین نمیکند.
- Health check باید Readiness واقعی Journey را بسنجد، نه فقط Process alive؛
- Connection draining و graceful shutdown در Deploy/scale لازم است؛
- Timeout، retry و idle connection میان Client/LB/App همراستا باشند؛
- Session stickiness ممکن است توزیع را نامتوازن و Failover را دشوار کند؛
- TLS، client IP، header trust و WAF boundary باید روشن باشند؛
- خود LB/DNS/Control plane نیز Failure domain و quota دارد.
Autoscaling آنی نیست؛ Headroom لازم است
Autoscaler پس از مشاهده Metric تصمیم میگیرد، Instance/Container آماده میشود و Health check را میگذراند؛ در این فاصله Burst باید با Warm capacity، Queue، cache یا rate control تحمل شود. راهنمای Elasticity گوگل کلاد برای Peakهای شناختهشده Scale-up پیشدستانه و برای Demand غیرمنتظره Autoscaling متریکمحور را پیشنهاد میکند.
AWS Well-Architected نیز بر Headroom برای Burst تا آمادهشدن Resource و انتخاب Scaling metric از Load test تأکید دارد. CPU همیشه Metric درست نیست؛ Queue age، concurrency، request latency، worker saturation یا DB capacity ممکن است محدودکننده باشند.
Downstream را قربانی Scale نکنید
افزایش App replica بدون سقف میتواند Database، Redis، Payment یا SMS را از پا بیندازد. Max concurrency، queue، admission control، timeout، retry budget، circuit breaker و graceful degradation باید ظرفیت پاییندست را حفظ کنند. در Overload، حفظ Checkout و Login ممکن است مهمتر از Recommendation یا گزارش باشد.
CDN برای ایران؛ با Cache hit و مسیر واقعی تصمیم بگیرید
CDN میتواند Static asset و در برخی موارد HTML را نزدیکتر پاسخ، Origin load را کم، حمله را جذب و Egress را تغییر دهد؛ اما Dynamic checkout، Cache miss و Origin failure باقی میمانند. راهنمای انتخاب CDN برای ایران ISP probe، Cache، Purge، Security، Cost و Pilot را جدا بررسی میکند.
برای هر ISP/شهر/ساعت، DNS، connect، TLS، TTFB و Download را روی hit/miss و authenticated/anonymous بسنجید. «نزدیکترین دیتاسنتر» یا «سرور داخل همیشه سریعتر است» میانبر نیست؛ Peering، routing، congestion و Dependency path تعیینکنندهاند.
معماری WordPress پرترافیک
User → DNS/WAF/CDN → Load Balancer/Reverse Proxy
→ Web/PHP workers → Object Cache → Database
→ Queue/Cron workers → Payment/SMS/Search/Email
→ Object Storage/Media → Observabilityاین دیاگرام نسخه اجباری نیست. ابتدا سادهترین Stackی را انتخاب کنید که SLO را پاس میکند. نقاط مهم WordPress:
- Full-page cache برای Anonymous و Bypass دقیق برای Login/Cart/Checkout؛
- Persistent object cache با hit/eviction و Failure behavior؛
- PHP worker/concurrency و queueing، نه فقط CPU/RAM؛
- Plugin/theme profile، autoloaded options و expensive query؛
- WP-Cron به Scheduler/Worker کنترلشده برای بار سنگین؛
- Upload مشترک یا Object storage در چند Web node؛
- Session/cart state سازگار با horizontal scale؛
- Cache purge پس از Publish/Price/Stock با blast radius محدود؛
- Admin/API/Search/Checkout workload جدا در Dashboard؛
- Backup سازگار با Database+Media و Restore test.
Load test نماینده؛ نه رکورد RPS بیمعنا
راهنمای Load testing در AWS Well-Architected بر شرایط نماینده و محیط Production-scale تأکید دارد. Test باید Outcome و Bottleneck را نشان دهد، نه فقط تعداد Request موفق به یک صفحه Cacheشده.
| آزمون | پرسش | شاهد |
|---|---|---|
| Baseline | اکنون Capacity و Bottleneck چیست؟ | Saturation curve |
| Load | Expected peak پاس میشود؟ | SLO/Resource/Outcome |
| Spike | Burst و scaling lag چه میکند؟ | Queue/error/recovery |
| Soak | Leak، cache drift یا backlog میسازد؟ | چندساعت پایدار |
| Stress | مرز شکست و degradation کجاست؟ | Breaking point |
| Cache-cold | Purge/miss storm چه میکند؟ | Origin/DB surge |
| Failure | Node/DB/cache/dependency قطع شود؟ | Blast radius/MTTR |
| Recovery | بازگشت باعث stampede/retry میشود؟ | Stable recovery |
Traffic mix و داده آزمون
Anonymous hit، anonymous miss، logged-in، Search، Cart، Checkout، API، Admin، Bot و Background job را با نسبت واقعگرایانه ترکیب کنید. Product/catalog size، Query distribution و Session نیز نماینده باشند. Payment/SMS واقعی را بدون هماهنگی Flood نکنید؛ Sandbox یا Stub با Latency/Error contract بسازید. Test تولیدی محدود باید Guardrail، Owner و Stop condition داشته باشد.
High Availability و Disaster Recovery جدا هستند
دو Web node روی یک Database، یک Region و یک DNS هنوز چند Single point دارد. HA قطعیهای معمول را در RTO کوتاه هدف میگیرد؛ DR سناریوی بزرگتر و بازیابی داده/خدمت را. Multi-zone/region هزینه، Consistency، deployment و عملیات اضافه دارد و باید از BIA و SLO بیاید.
Backup بدون Restore evidence امنیت روانی است. راهنمای Backup، RPO/RTO و Runbook بازیابی سایت طراحی Data set، Restore drill، DNS و Failover را پوشش میدهد.
Security و Abuse capacity
- WAF و DDoS scope/limit/SLA را از Contract بگیرید؛
- Bot، Scraper، hotlink، Login brute force و expensive search را در Capacity ببینید؛
- Rate limit براساس Identity/route/risk باشد، نه IP کور؛ کاربران پشت NAT/VPN را حذف نکند؛
- Origin را در برابر دورزدن Edge محدود و Header trust را سختگیرانه کنید؛
- Admin، SSH، Control panel و Cloud IAM با MFA/least privilege/log محافظت شوند؛
- Autoscaling و Egress میتواند Cost-abuse بسازد؛ Budget alert و سقف لازم است؛
- Patch/dependency/secret و Incident ownership در Managed contract نیز باقی است.
ملاحظات سایت پرترافیک ایرانی
| موضوع | Evidence لازم | ریسک |
|---|---|---|
| Provider eligibility | Terms، account/payment/support | تعلیق یا نبود دسترسی |
| Payment/FX | low/base/high نرخ و renewal | جهش TCO |
| Network | چند ISP، شهر، ساعت و hit/miss | میانگین گمراهکننده |
| Inside/outside | User/crawler/API path | یک مسیر خوب، مسیر دیگر بد |
| Payment/SMS | limit، timeout، retry و support | فروش از دسترفته/duplicate |
| Data/backup | location، export، restore و retention | Lock-in یا عدم بازیابی |
| Support | Severity، زبان، escalation و زمان | MTTR بالا در کمپین |
| Exit | DNS، image/data/config/secret/runbook | مهاجرت اضطراری شکستخورده |
برای کمپین ملی، Warm capacity و ارتباط با Provider/CDN/درگاه را پیش از شروع هماهنگ کنید. مسیر جایگزین، Status page و پیام عملیاتی فارسی آماده باشد. Location را با Probe و Dependency end-to-end انتخاب کنید، نه برچسب «ایران» یا «خارج».
TCO؛ هزینه Idle و Incident را کنار Compute بگذارید
High-traffic hosting TCO =
Compute + Storage + DB + Cache + LB + CDN/WAF
+ Egress + Backup + Logs/Traces + Support
+ Engineering + On-call + Security + Migration/Exit
+ Expected incident and business-loss exposureهزینه کمینه، محتمل و Peak را با FX، Egress، Log volume، Warm headroom و Support بسازید. سپس Cost per successful order/search یا per eligible request را مقایسه کنید. مقاله TCO دامنه و هاست Procurement، Renewal، قرارداد و Exit مالی را عمیقتر توضیح میدهد.
از Provider چه مدرکی بگیریم؟
| ادعا | مدرک/آزمون |
|---|---|
| CPU/RAM اختصاصی | Throttle/burst/steal/limit و benchmark |
| Unlimited bandwidth | Port speed، fair use، overage و suspension |
| Auto-scaling | Metric، min/max، ramp، cooldown و quota |
| High availability | Failure domain، health/failover و SLA exclusion |
| Managed | RACI برای OS/App/DB/cache/security/backup |
| DDoS protection | Layer/scope/capacity/response/escalation |
| Backup | dataset، frequency، retention، RPO/RTO و restore |
| 24×7 support | Severity، first response، resolution/escalation test |
Knockout و Scorecard انتخاب
ابتدا Knockoutها: Eligibility، Data requirement، ضروریات Runtime، RPO/RTO، ظرفیت آزمودهشده، Payment و Exit. گزینهای که شرط غیرقابلمذاکره را نمیگذراند با امتیاز قیمت برنمیگردد.
| بعد | وزن نمونه | Evidence |
|---|---|---|
| SLO/Capacity | ۲۵٪ | Load/soak/spike result |
| Reliability/Recovery | ۱۵٪ | Failure/restore drill |
| Performance path Iran | ۱۵٪ | Multi-ISP journey probe |
| Operations/Support | ۱۵٪ | RACI/escalation evidence |
| Security | ۱۰٪ | Control and incident test |
| TCO | ۱۰٪ | low/base/peak/FX model |
| Migration/Exit | ۱۰٪ | export/rollback drill |
وزنها نمونهاند؛ براساس Business impact تنظیم کنید. Score بروشور با Score حاصل از PoC برابر نیست. هر امتیاز Owner، تاریخ، Source و Confidence داشته باشد.
Pilot و مهاجرت کمریسک
- Baseline فعلی و Bottleneck را ثبت کنید؛
- معماری هدف و Capacity/SLO contract بنویسید؛
- Environment نماینده با داده Sanitized بسازید؛
- Load/soak/spike/cache-cold/failure/recovery test اجرا کنید؛
- Content/data sync و DNS/CDN/LB را با TTL برنامهریزی کنید؛
- Shadow یا سهم کوچک Traffic را Canary کنید؛
- Outcome/SLO/Cost/Error را با Baseline مقایسه کنید؛
- Rollback و Restore را پیش از Cutover Drill کنید؛
- Ramp مرحلهای و Post-migration observation انجام دهید.
Kill criteria نمونه
- Checkout correctness یا Error budget خارج Threshold؛
- p95/p99 یا queue age پس از Ramp پایدار نشود؛
- DB/cache/dependency saturation از Guardrail عبور کند؛
- Cost per successful outcome از Baseline بدتر شود؛
- Observability یا Incident ownership ناکافی باشد؛
- Restore/rollback یا Provider escalation Drill شکست بخورد.
Runbook کمپین و Traffic event
| زمان | کار |
|---|---|
| T-۳۰ تا T-۱۴ | Forecast، Load/failure test، quota/support و Change freeze plan |
| T-۷ تا T-۱ | Warm capacity، cache warm، backup/restore، Owner و status copy |
| روز رویداد | War room، journey SLI، saturation، business outcome و guardrail |
| Overload | Protect checkout، rate/queue، degrade noncritical، scale/rollback |
| T+۱ تا T+۷ | Reconcile، cost، incident/near-miss، capacity model و action owner |
فقط Uptime dashboard داخل زیرساخت کافی نیست. Probe خارج از شبکه و Journey واقعی لازم است؛ راهنمای مانیتورینگ Uptime Status code، Content check، چندمکان، Alert و false positive را پوشش میدهد.
چکلیست هاست سایت پرترافیک
- High traffic با RPS/Peak/Burst/Concurrency تعریف شده است؛
- Critical journey و Outcome از Pageview جداست؛
- Cache hit/miss و authenticated/anonymous جدا اندازهگیری شدهاند؛
- p50/p95/p99 Duration و Saturation curve وجود دارد؛
- Worker/CPU/RAM/I/O/DB/cache/queue/dependency Signal دیده میشوند؛
- Query، Plugin، Autoload، Cron و Asset پیش از Scale Profile شدهاند؛
- SLO، Error budget، RPO و RTO روشناند؛
- Shared/Managed/VPS/Cloud/Dedicated با RACI مقایسه شدهاند؛
- Vertical قبل از Distributed complexity بررسی شده است؛
- Horizontal scale برای Session/Media/Deploy/DB آماده است؛
- LB health، draining، timeout و session behavior تست شدهاند؛
- Autoscaling headroom، lag، min/max و quota دارد؛
- Max concurrency از DB و Dependency محافظت میکند؛
- Cache purge/miss/stampede و warmup آزموده شدهاند؛
- Load/soak/spike/stress/failure/recovery test نماینده اجرا شدهاند؛
- Security/bot/DDoS/cost abuse در Capacity دیده شدهاند؛
- ISP/شهر/ساعت/درگاه/SMS ایران Probe شدهاند؛
- TCO شامل Egress/Log/Support/Ops/Incident/Exit است؛
- Provider claim با Contract/PoC/Drill اثبات شده است؛
- Pilot، Canary، Kill criteria، Rollback و Event runbook آمادهاند.
جمعبندی؛ Capacity را بخرید، برچسب را نه
سایت پرترافیک با «میلیون بازدید» یا «۸ گیگ RAM» تعریف نمیشود. Traffic shape، Cacheability، Concurrent dynamic work، Database/Dependency capacity و SLO تعیین میکنند چه چیزی لازم است. Managed WordPress میتواند از VPS خام بهتر باشد؛ Vertical scale میتواند از Cluster پیچیده عاقلانهتر باشد؛ و Cloud بدون طراحی Failure/Autoscaling فقط صورتحساب متفاوتی است.
از Journey و Baseline شروع کنید، Work per request را کم کنید، Bottleneck را زیر Load نماینده پیدا کنید و Headroom را تا Scale-up بسازید. سپس گزینه را با Failure/restore drill، مسیر ایران، TCO و Exit بسنجید. بهترین زیرساخت آن است که در روز کمپین Outcome درست را حفظ کند و تیم بتواند هنگام شکست آن را بفهمد، محدود و بازیابی کند.
سؤالات متداول هاست سایت پرترافیک
برای ۵۰ هزار بازدید ماهانه چند CPU و RAM لازم است؟
از بازدید ماهانه قابلمحاسبه نیست. Peak RPS، Request per page، Cache hit، Login/Cart/Checkout، Duration، Plugin/query و Background job ظرفیت را میسازند. Baseline بگیرید و با Traffic mix نماینده Load test کنید؛ سپس CPU/RAM/worker و Headroom را از Saturation curve انتخاب کنید.
برای سایت پرترافیک VPS بهتر است یا Cloud؟
VPS/Managed VPS برای بار قابلپیشبینی و تیم کوچک میتواند سادهتر و کمهزینهتر باشد. Cloud برای API-driven scaling و Managed service گزینه بیشتری میدهد، اما HA و Autoscaling خودکار نیست و TCO/Complexity دارد. هر دو را با SLO، Load/failure test، RACI، مسیر ایران و TCO مقایسه کنید.
چه زمانی Load Balancer لازم است؟
فقط بعد از پرشدن بزرگترین سرور نیست. وقتی Availability، Maintenance بدون قطعی، Canary یا Capacity چند Node نیاز دارید، مفید است. اما Health check، draining، session/state، timeout، TLS و Failure خود Load balancer باید طراحی و آزمون شوند.
آیا سرور داخل ایران برای کاربران ایرانی همیشه سریعتر است؟
خیر. فاصله تنها عامل نیست؛ Routing/Peering، ISP، ساعت، CDN hit/miss، crawler و مسیر درگاه/SMS/API مؤثرند. از چند ISP و شهر روی Journey واقعی Probe بگیرید و Eligibility، Data، Payment، Support و Exit را نیز بسنجید. پاسخ ممکن است داخل، خارج یا Hybrid باشد.
چگونه برای فروش ویژه از قطعی جلوگیری کنیم؟
Forecast و Traffic mix بسازید؛ Load/spike/cache-cold/failure test کنید؛ quota و Provider/درگاه را هماهنگ، Warm capacity و Cache را آماده، DB/Dependency را با concurrency cap محافظت و Runbook/Owner/Status/Rollback تعیین کنید. روز رویداد Journey SLI و Outcome را کنار Saturation و Cost مانیتور کنید.






