ការបែងចែក Tenant (Multi-Tenancy Isolation)
Ultimate Multisite: Multi-Tenancy 1.2.0 គាំទ្រការបែងចែក database និង filesystem សម្រាប់ subsite នីមួយៗ ដើម្បីរក្សាភាពឯករាជ្យរបស់ tenant។ វាធ្វើឱ្យទិន្នន័យរបស់ tenant នៅតែដាច់ពីគ្នា ខណៈពេលដែលនៅតែរក្សាបាននូវការផ្តល់សេវាលើបណ្តាញ (network-level provisioning) ការគិតថ្លៃ (billing) និងការគ្រប់គ្រង (administration)។
យុទ្ធសាស្ត្រនៃការបែងចែក (Isolation strategy)
ប្រើប្រាស់ sovereign isolation សម្រាប់អតិថិជនដែលត្រូវការការបែងចែកទិន្នន័យកាន់តែខ្លាំង ការផ្ទុក filesystem ផ្ទាល់ខ្លួន ឬព្រំដែន host ដាច់ដោយឡែក។
Tenant sovereign នីមួយៗគួរមាន៖
- database ផ្ទាល់ខ្លួន ឬយុទ្ធសាស្ត្រ prefix សម្រាប់ database ដែលត្រូវបានអនុម័តសម្រាប់ host។
- root filesystem ផ្ទាល់ខ្លួនសម្រាប់ tenant។
- ការចុះបញ្ជី tenant registry ដែលភ្ជាប់ site ទៅនឹង database, root path, hostname និង isolation model។
- លទ្ធផលនៃការផ្ទៀងផ្ទាត់ការផ្លាស់ប្តូរ (migration verification result) មុនពេល tenant ត្រូវបានចាត់ទុកថាដំណើរការ live។
ការភ្ជាប់ host សម្រាប់ database (Database host binding)
កំណែ 1.2.0 បានផ្លាស់ប្តូរអាកប្បកិរិយា mặc địnhនៃការភ្ជាប់ host ក្នុងម៉ាស៊ីនតែមួយ (same-machine host binding) សម្រាប់ការដំឡើង sovereign។ តម្លៃដូចជា localhost ត្រូវបានធ្វើឱ្យមានលក្ខណៈធម្មតា (normalized) ដើម្បីឱ្យ Bedrock, FrankenPHP និងការដំឡើង WordPress ដែលប្រើ container អាចផ្តល់ និងផ្ទៀងផ្ទាត់สิทธิ์ប្រឆាំងនឹងខ្សែអត្ថបទ host ដែល MySQL ពិតជាមើលឃើញ។
នៅពេលកំណត់រចនាសម្ព័ន្ធ tenant sovereign៖
- កំណត់ database host ទៅជាតម្លៃដែល runtime របស់ tenant ទាមទារ។
- ប្រើ
localhostសម្រាប់ការដំឡើង socket នៅលើម៉ាស៊ីនក្នុងស្រុក (local socket installs) នៅពេលដែល host រំពឹងការតភ្ជាប់ក្នុងស្រុក។ - ប្រើ
127.0.0.1ឬ hostname នៃ service ប៉ុណ្ណោះនៅពេលដែល server database អនុញ្ញាតសិទ្ធិដល់ host នោះ។ - ដំណើរការ migration verification បន្ទាប់ពីផ្លាស់ប្តូរការភ្ជាប់ host។
ប្រសិនបើរបាយការណ៍នៃការផ្ទៀងផ្ទាត់បង្ហាញពីការបរាជ័យក្នុងការផ្តល់สิทธิ์ សូមប្រៀបធៀបការផ្តល់สิทธิ์អ្នកប្រើប្រាស់របស់ DB tenant ជាមួយនឹងការកំណត់រចនាសម្ព័ន្ធ host binding។ អ្នកប្រើប្រាស់ដែលត្រូវបានផ្តល់សិទ្ធិសម្រាប់ user@localhost គឺខុសពី [email protected] ឬ user@%។
root filesystem
ឫសនៃអ្នកเช่า (tenant root) គួរត ែមានស្ថិរភាពเมื่อมีการចាប់ផ្តើមใหม่และการติดตั้งใช้งานซ้ำ หลีกเลี่ยงการใช้เส้นทาง mount ชั่วคราว สำหรับการติดตั้งแบบ Bedrock ให้แน่ใจว่า tenant root ชี้ไปยัง web root ของ WordPress ที่คาดหวังโดย tenant bootstrap ไม่ใช่แค่ project root เท่านั้น
ลำดับการเตรียมระบบ (Provisioning order)
สำหรับ tenant ใหม่ที่เป็นเอกเทศ (sovereign tenants) ให้ใช้ลำดับนี้:
- สร้างรายการลงทะเบียน tenant (tenant registry entry).
- สร้างฐานข้อมูลและผู้ใช้ฐานข้อมูลของ tenant.
- Bootstrap โครงสร้าง schema ของ tenant.
- เตรียมผู้ใช้ของ tenant.
- กำหนดเส้นทาง filesystem ของ tenant.
- รันการตรวจสอบการย้ายข้อมูล (migration verification).
- เปลี่ยนเส้นทางการเข้าชม (routing) หรือ DNS หลังจากผ่านการตรวจสอบแล้ว.
ลำดับนี้จะป้องกันไม่ให้ tenant ที่ถูกแยกส่วนบางส่วนได้รับทราฟฟิกก่อนที่ตัวเขียนฐานข้อมูล (database writer), ผู้ใช้, และระบบไฟล์จะพร้อมใช้งาน.
กระบวนการจัดการลูกค้าสำหรับลูกค้าที่เป็นเอกเทศ (Sovereign customer management flows)
Ultimate Multisite v2.13.0 จะเก็บการดำเนินการจัดการลูกค้าไว้ที่เว็บไซต์หลักเมื่อเปิดใช้งานโหมด sovereign. Tenant ยังสามารถทำงานเป็น WordPress install ที่แยกออกมาได้ แต่การดำเนินการที่เกี่ยวข้องกับลูกค้าซึ่งขึ้นอยู่กับการเรียกเก็บเงินผ่านเครือข่าย (network billing), การเป็นสมาชิก (membership) หรือข้อมูลบัญชีร่วม ควรส่งลูกค้ากลับไปยังเว็บไซต์หลัก แทนที่จะพยายามทำรายการให้เสร็จสิ้นภายใน runtime ของ tenant.
กระบวนการของเว็บไซต์หลักนี้ใช้กับ:
- การชำระเงินและการเปลี่ยนแปลงแผน (Checkout and plan changes).
- ภาพรวมบัญชีและการดำเนินการโปรไฟล์ลูกค้า (Account overview and customer profile actions).
- การอัปเดตที่อยู่สำหรับเรียกเก็บเงินและหน้าจัดการการชำระเงิน (Billing address updates and payment-management screens).
- มุมมองใบแจ้งหนี้และประวัติการชำระเงิน (Invoice and payment-history views).
- การดำเนินการจัดการเว็บไซต์ เช่น การเพิ่มเว็บไซต์หรือการลบเว็บไซต์ (Site management actions such as adding sites or deleting a site).
- การสลับ Template.
- การแมปโดเมนและการเปลี่ยนแปลง primary-domain.
នៅពេលដែលអតិថិជនចាប់ផ្តើមធ្វើសកម្មភាពណាមួយពី tenant ឯករាជ្យ (sovereign tenant) មួយ Ultimate Multisite នឹងបង្កើត URL នៃ site មេ (main-site URL) ដែលត្រូវគ្នា ហើយរក្សាទុក source tenant ជាគោ លដៅត្រឡប់វិញ ប្រសិនបើវាមានសុវត្ថិភាព។ ការធ្វើបែបនេះអនុញ្ញាតឱ្យអតិថិជនបញ្ចប់សកម្មភាពដែលបានគ្រប់គ្រងនោះដោយផ្អែកលើកំណត់ត្រានៅក្នុងបណ្តាញ (network records) បន្ទាប់មកត្រឡប់ទៅបរិបទ tenant ដោយមិនប duplicat ស្ថានភាពនៃការគិតថ្លៃ ឬសមាជិកនៅក្នុង database របស់ sovereign។
សម្រាប់អ្នកប្រតិបត្តិការ (operators) ច្បាប់ជាក់ស្តែងគឺ៖ សូមរក្សាទុកទំព័រដែលពាក់ព័ន្ធនឹងការគិតថ្លៃ (billing), ប្រវត្តិគណនី (account), ការបិទការបញ្ជាទិញ (checkout), ប័ណ្ណវិក្កយបត្រ (invoice), قالب (template) និងការគ្រប់គ្រងដែន (domain-management) នៅលើ site មេសម្រាប់ network ដែលជា sovereign។ Tenant dashboards អាចភ្ជាប់ទៅកាន់ទំព័រទាំងនោះបាន ប៉ុន្តែ site មេនៅតែជាប្រភពនៃការពិត (source of truth) សម្រាប់សកម្មភាពនោះ។