نمودار معماری ویسا: لایهٔ مدیریت ابری ویسا دو نود را مدیریت میکند. روی نود اول سه سایت و روی نود دوم دو سایت اجرا میشود و هر سایت وردپرس، دیتابیس و فضای ذخیرهسازی مستقل خودش را دارد.
weesa-cloud / clusterهمهٔ سرویسها فعال
WEESA CLOUDمدیریت خودکار با Kubernetes
NODE 01Ready
NODE 02Ready
روی یک سایت کلیک کنید تا ببینید چه منابعی فقط به همان سایت تعلق دارد.
WordPress در کانتینر مستقلدیتابیس اختصاصیStorage پایدار
Architecture
مسیر یک تغییر، از Git تا سایت در حال اجرا
هر سایت از یک تعریف نسخهدار شروع میشود و تا رسیدن ترافیک کاربر، از این لایهها عبور میکند.
GitDesired state
تعریف نسخهدار سایت و منابع آن
۱
Argo CDGitOps sync
همگامسازی خودکار کلاستر با تعریف موجود در Git
۲
HarborPrivate registry
تأمین ایمیج کانتینری وردپرس
۳
KubernetesRancher-managed cluster
زمانبندی Workload روی نود مناسب و اعمال سهم منابع
۴
Site workloadWordPress container
اجرای وردپرس سایت
۵
Database + StorageDedicated / persistent
اتصال دیتابیس اختصاصی و حجم پایدار
۶
Ingress + TLSHTTPS
رسیدن ترافیک دامنه با SSL به سایت
۷
Components
اجزای زیرساخت و کاری که برای سایت شما میکنند
Kubernetes
هماهنگسازی خودکار
Kubernetes اجرای Workloadها را روی کلاستر مدیریت میکند: زمانبندی روی نودها، اعمال سهم منابع و راهاندازی مجدد کانتینرهای ناسالم.
Scheduling بر اساس منابع درخواستی
Requests و Limits برای هر سایت
Health probes و restart خودکار
Nodes
کلاستر چندنودی
زیرساخت از چند نود تشکیل شده و ظرفیت آن با افزودن نود گسترش مییابد. مدیریت کلاستر و نودها با Rancher انجام میشود.
اجرای سایتها روی چند سرور
مدیریت متمرکز با Rancher
افزایش ظرفیت با افزودن نود
Workloads
وردپرس کانتینری
هر سایت یک Workload کانتینری مستقل است که از ایمیج آماده و یکسان وردپرس ساخته میشود.
ایمیج استاندارد و نسخهدار
پیکربندی مخصوص هر سایت
بهروزرسانی تدریجی (rolling)
Database Isolation
دیتابیس مستقل
برای هر سایت دیتابیس اختصاصی ساخته میشود و اطلاعات اتصال آن فقط در اختیار Workload همان سایت است.
بدون جدول مشترک
اعتبارنامهٔ مخصوص هر سایت
بکاپ مستقل
Storage
حجم پایدار
فایلهای سایت روی حجم ذخیرهسازی پایدار نگهداری میشوند و با راهاندازی مجدد یا جابهجایی کانتینر از بین نمیروند.
Persistent Volume برای هر سایت
جدا از چرخهٔ عمر کانتینر
نمایش مصرف در داشبورد
Registry
Harbor خصوصی
ایمیجهای کانتینری در رجیستری خصوصی Harbor نگهداری و از همانجا مستقر میشوند.
منبع کنترلشدهٔ ایمیجها
نسخهبندی ایمیجها
بدون وابستگی مستقیم به رجیستری عمومی
GitOps
Argo CD
وضعیت مطلوب زیرساخت در Git تعریف میشود و Argo CD کلاستر را با آن همگام نگه میدارد.
تغییرات نسخهدار و قابل بازبینی
بازگشت به نسخهٔ قبل
استقرار تکرارپذیر
Deployment
استقرار خودکار
ساخت سایت، بهروزرسانی و تغییر منابع بهصورت Deployment ثبت و مرحلهبهمرحله اجرا میشوند.
تاریخچهٔ هر Deployment
وضعیت هر مرحله در داشبورد
بررسی سلامت پیش از آماده شدن
Monitoring
پایش
وضعیت Workloadها و مصرف منابع پایش میشود و در داشبورد بهصورت نمودار و هشدار نمایش داده میشود.
مصرف CPU و حافظه
زمان پاسخ
هشدار نزدیک شدن به سقف منابع
Recovery
بازیابی
بازیابی در دو سطح انجام میشود: Kubernetes کانتینرهای ناسالم را دوباره اجرا میکند و بکاپها امکان بازگرداندن فایلها و دیتابیس سایت را فراهم میکنند.
راهاندازی مجدد خودکار Workload
بکاپ زمانبندیشده
بازیابی نسخه از داشبورد
For Developers
برای توسعهدهندگان و آژانسها
وردپرس در ویسا استاندارد است؛ اما محیط اجرای کانتینری چند نکته دارد که دانستنش در توسعه و نگهداری سایت کمک میکند.
ساختار منابع هر سایت
# every site owns its resourcessite/<slug>
├── workload WordPress + PHP # image from private registry
├── database dedicated instance
├── storage persistent volume # wp-content
├── config per-site config & secrets
└── domains default + custom, automatic TLS
چرخهٔ تغییر زیرساخت
# infrastructure changes are declarative
git commit "site: raise memory quota"
└─▶ argo-cd detects drift, syncs cluster
└─▶ kubernetes rolling update
└─▶ health probes pass → ready# every step is recorded as a deployment
دادههای ماندگار
رسانهها، افزونهها و قالبها در wp-content روی Storage پایدار هستند. به تغییر دستی فایلهای هستهٔ وردپرس تکیه نکنید.
پیکربندی تزریقی
اطلاعات اتصال دیتابیس و کلیدها توسط پلتفرم تزریق میشوند؛ آنها را در کد یا مخزن hard-code نکنید.
دسترسی برنامهنویسی
مدیریت سایتها از داشبورد انجام میشود. برای یکپارچهسازی سازمانی، درخواست خود را از طریق پشتیبانی فنی ثبت کنید.
بله. برای هر سایت یک دیتابیس اختصاصی ساخته میشود؛ نه مجموعهای از جدولها با پیشوند متفاوت در یک دیتابیس مشترک. به همین دلیل بار دیتابیس، دسترسیها، بکاپ و بازیابی هر سایت از سایتهای دیگر جداست.
سایتها چگونه ایزوله هستند؟
هر سایت Workload کانتینری خودش را با سهم مشخص از CPU و حافظه دارد، به دیتابیس اختصاصی خودش متصل است و فایلهایش روی حجم ذخیرهسازی مستقل نگهداری میشود. تنظیمات و اطلاعات محرمانهٔ هر سایت هم جداست؛ بنابراین مصرف منابع یا خطای یک سایت روی سهم سایتهای دیگر اثر نمیگذارد.
سایتها روی چند Node اجرا میشوند؟
زیرساخت ویسا یک کلاستر چندنودی است و Kubernetes تعیین میکند Workload هر سایت روی کدام نود اجرا شود. تعداد نودها با رشد ظرفیت پلتفرم تغییر میکند، به همین دلیل عدد ثابتی اعلام نمیکنیم؛ نکتهٔ مهم این است که سایت شما به یک سرور فیزیکی مشخص گره نخورده است.
Kubernetes چه فایدهای برای سایت من دارد؟
Kubernetes سیستمی است که اجرای Workloadها را روی چند سرور مدیریت میکند: تصمیم میگیرد هر سایت کجا اجرا شود، سهم منابع هر سایت را اعمال میکند و اگر محیط اجرای سایت از کار بیفتد آن را دوباره راهاندازی میکند. نتیجه برای شما یعنی کارهای عملیاتی کمتر و محیطی قابل پیشبینیتر.
شروع با ویسا
زیرساخت را به ما بسپار.
روی سایت و کسبوکارت تمرکز کن؛ اجرای پایدار آن با ویساست.