برای آنکه بیشترین بهرهوری و کارایی را از ستون داشته باشید، رعایت بهترین رویههای زیر توصیه میشود:
Security (امنیت)
- دسترسی به منابع ستون و APIها را از طریق IAM مدیریت کنید.
- Security Groupها را با قوانین حداقل سطح دسترسی (Least Privilege) پیکربندی نمایید.
- سیستمعامل و اپلیکیشنهای روی Instance را بهطور منظم بهروزرسانی و Patch کنید.
- برای شناسایی خودکار آسیبپذیریهای نرمافزاری و افشای ناخواسته شبکه، از Audit Log استفاده کنید.
Storage (ذخیرهسازی)
- برای سیستمعامل و دادهها، Volumeهای جداگانه تعریف کنید. اطمینان یابید Volume دادهها پس از Termination Instance حفظ شود تا در صورت نیاز بهصورت دستی پاک گردد.
- Volumeها و Snapshotهای حاوی دادههای حساس را حتماً رمزگذاری (Encrypt) کنید.
- در Object Storage ستون میتوانید دادههای غیرساختیافته مانند لاگها، بکاپها، تصاویر و فایلهای حجیم را ذخیره کنید. این لایه با S3 API سازگار است و امکان یکپارچگی با ابزارهای استاندارد را فراهم میکند.
- بر اساس الگوی دسترسی، کلاس ذخیرهسازی متناسب با نیاز خود انتخاب کنید.
- با تعریف Lifecycle Policy، مدیریت هزینه و منابع را بهینه کنید.
- با تنظیم Bucket Policy، سطح دسترسی به آبجکتها را کنترل نمایید.
- هنگام ساخت Bucket به عمومی یا خصوصی بودن آن دقت کنید.
- برای بهبود Performance و مدیریت هزینه، از یکپارچهسازی CDN با Object Storage بهره ببرید.
Resource Management (مدیریت منابع)
- از Instance Metadata برای شناسایی و ردیابی منابع استفاده کنید.
- Service Quotaها را بررسی کرده و در صورت نیاز بهموقع افزایش دهید.
- با کمک مانیتورینگ، مصرف منابع را پایش کرده و نسبت به Right-sizing اقدام کنید.
Backup & Recovery (پشتیبانگیری و بازیابی)
- بهطور منظم از Volumeها بکاپ بگیرید و از Instanceها Image تهیه کنید تا Template پیکربندی همیشه در دسترس باشد.
- اپلیکیشن را طوری طراحی کنید که با IP دینامیک پس از Restart Instance سازگار باشد.
- برای Failover آماده باشید؛ از Floating IP یا Network Interface برای Instance جایگزین استفاده کنید.
- فرآیند بازیابی Volume و Instance را بهطور دورهای تست کنید.
Networking (شبکه)
- مقدار TTL را برای IPv4 و IPv6 روی ۲۵۵ تنظیم کنید تا از مشکلات Reachability جلوگیری شود.
- مقدار MTU را روی ۱۴۵۰ تنظیم کنید تا از Fragmentation پیشگیری شود.
- برای جداسازی بخشها، از VPC یا Subnet مجزا استفاده کنید.
- برای اتصال شبکههای مستقل (داخل یا خارج از ستون) از Tunnel همراه با Encryption بهره ببرید.
Kubernetes (کوبرنتیز)
- بر اساس نیازتون Tier مناسب را انتخاب کنید (Free, Standard, Premium)
- تلاش کنید تا کلاستر و تمام نودپولها را به روز نگه دارید و به موقع ارتقا دهید.
- به دلیل وجود Breaking Change در نسخههای جدید، تا جای ممکن از وابستگی مستقیم به APIهای کوبرنتیز خودداری کنید.
- معماری اپلیکیشن را Stateless طراحی کنید تا در Rollout یا Scale مشکل ایجاد نشود.
- روی Control Plane هیچگونه Workload قرار ندهید.
- به ازای هر ۳ Worker یک Node Pool بسازید تا ارتقا و Placement بهینهتر انجام شود.
- از Local Disk تنها در صورت نیاز استفاده کنید. در غیر این صورت، Remote Disk انتخاب بهتری است.
- CNI را بر اساس نیاز خود از بین Calico یا Cilium انتخاب کنید.
- از کلاستر و PVCها بهطور منظم بکاپ بگیرید. ستون بهصورت پیشفرض افزونه Velero را فراهم کرده است.
- سرویس مانیتورینگ پیشفرض (Kube-prometheus-stack) را در صورت نیاز تکمیل یا با نسخه اختصاصی خود جایگزین کنید.
- برای مدیریت دسترسیها، IAM ستون را ترجیح دهید تا یکپارچگی بیشتری با سایر سرویسها داشته باشید.
- از Registry Mirror ستون یا Mirror اختصاصی در زمان ساخت Node Pool استفاده کنید.
- برای مدیریت هزینه و SLA، Tier مناسب (Free، Standard یا Premium) را انتخاب کنید.
Virtual Machines (ماشینهای مجازی – نسخه ۲)
- ایزولهسازی با VPC: محیطهای مختلف (Production، Staging، Test) را با VPC جدا کنید.
- منابع مرتبط را در یک Subnet قرار دهید تا بتوانید Firewall Ruleهای یکسان اعمال کنید.
- تنها در صورت نیاز به ماشینها Public IP اختصاص دهید؛ برای دسترسی Outbound از Internet Gateway استفاده کنید.
- برای توزیع بار و افزایش دسترسپذیری از Load Balancer استفاده کنید.
- برای کنترل ترافیک ورودی/خروجی از Security Group با اصل Least Privilege بهره ببرید.
- از دادهها در لایه اپلیکیشن نسخه پشتیبان بگیرید.
- دادههای حساس را روی Persistent Disk ذخیره کنید.
- در سناریوهایی مانند دیتابیسهای Multi-Replica از Placement Group استفاده کنید.
- عملیات ساخت، تغییر یا حذف VM را از طریق API و بهصورت IaC انجام دهید.
- از User Data برای خودکارسازی نصب پکیجها و پیکربندی سرویسها استفاده کنید.
- پس از پیکربندی یک VM، از آن Image تهیه کنید تا ساخت ماشینهای مشابه سریعتر انجام شود.
- مصرف CPU و RAM را پایش کرده و منابع را Right-size کنید.
- نسبت CPU به RAM را بر اساس نوع Workload بهینه کنید.
- برای بارهای سنگین از Dedicated Machine و برای محیطهای Dev/Test از Economy Machine استفاده کنید.
- منابع بلااستفاده را پاک کنید یا از آنها Image بگیرید.
- چرخه عمر ماشینها را بررسی کرده و در صورت امکان به ظرفیت کمتر منتقل نمایید.
Database (دیتابیس)
- در محیط Production حتماً High Availability را فعال کنید تا Failover خودکار انجام شود.
- برای Production از ماشینهای Dedicated با Local Disk و برای Dev/Staging از Economy Machine با Remote Disk استفاده کنید.
- با حداقل منابع شروع کرده و در صورت نیاز مقیاس را افزایش دهید.
CDN (شبکه توزیع محتوا)
- فایلهای استاتیک مانند تصاویر، ویدیو، CSS و JS را روی CDN ستون قرار دهید تا Latency کاهش یابد.
- همیشه HTTPS/TLS را فعال کنید و از Certificate واقعی استفاده نمایید. امکان صدور و تمدید خودکار گواهی در CDN ستون وجود دارد.
- از Firewall داخلی CDN برای مقابله با حملات و ترافیک غیرمجاز استفاده کنید.
- Caching Rules را دقیق تنظیم کنید تا حداکثر Cache Hit حاصل شود.
- در صورت تغییر فایلها، از Cache Invalidation یا Purge برای انتشار سریع نسخههای جدید استفاده کنید.
- برای محتوای حساس از لینک امن (Secure Link) استفاده کنید.
- مانیتورینگ و Log Forwarder را فعال کنید تا با تحلیل متریکها و لاگها (از جمله از طریق Datastore ستون) مصرف و سلامت سرویس را بررسی کنید.