Skip to main content

Олон багтласан систем (Multi-Tenancy Isolation)

Ultimate Multisite: Multi-Tenancy 1.2.0 нь өөрийн тусгай багтласан хэрэглэгчдэд (sovereign tenants) хувьд тус бүрийн хослол болон файлын системээ тусгаарлахыг дэмждэг. Энэ нь хэрэглэгчийн өгөгдлийг тусгаар хадгалж байхын зэрэгцээ сүлжээний түвшний тохиргоо, төлбөлт, удирдлагын үйл ажиллагааг хадгалдаг.

Тусгаарлах стратеги (Isolation strategy)

Өөрийн тусгай багтласан өндөр өгөгдлийн тусгаарлалт, зориулсан файлын системээ эсвэл тусдаа хост хязгаарын шаардлагатай хэрэглэгчдэд тусгаарлалтыг ашиглана.

Өөрийн тусгай багтласан хэрэглэгч бүр дараах зүйлсийг байх ёстой:

  • Хост (host) дээр зөвшөөрөгдсөн зориулсан хослолтай (database host) эсвэл хослолын урьдчилсан хувьсагчийн стратеги.
  • Тусдаа хэрэглэгчийн файлын систем үндсэн хавтас (dedicated tenant filesystem root).
  • Тухайн сайтыг түүний өгөгдөл, үндсэн зам (root path), хост нэр (hostname) болон тусгаарлалтын загвараас хамааруулан холбосон бүртгэл (tenant registry entry).
  • Хэрэглэгч ажиллах үедээ түүнийг "live" гэж үзэхээс өмнө шилжилтийн шалгалт хийх үр дүн.

Өгөгдлийн хост багтаалт (Database host binding)

1.2.0 хувилбар нь өөрийн тусгай (sovereign) суурилууруудад анхны тохиргоо болох ижил машины хост багтаалтын (same-machine host binding) үйлдлийг өөрчилсөн. localhost зэрэг ижил машин дээрх утгуудыг Bedrock, FrankenPHP, контейнерд суурилсан WordPress-ийн суурилуулалт MySQL нь бодит байдал дээр хардаг хост мөрөөс зөвшөөрөл өгөх баталгаажуулахад тохирох байдлаар хялбарчилж (normalize) авдаг.

Өөрийн тусгай багтласан хэрэглэгчийг тохируулж байхдаа:

  1. Өгөгдлийн хостыг тухайн runtime-д шаардлагатай утгаар тохируулна.
  2. Хост нь орон нутгийг (local connections) хүлээж байгаа үед localhost-ийг ашиглана.
  3. Өгөгдлийн сервер тухайн хост руу эрх өгсөн үед л 127.0.0.1 эсвэл үйлчилгээний хост нэрийг (service hostname) ашиглана.
  4. Хост багтаалтыг өөрчилсний дараа шилжилтийн шалгалт хийх.

Хэрэв шалгалтаас эрхийн алдаа гарвал, тухайн хэрэглэгчийн DB-ийн эрхийг тохируулсан зүйл болон хост багтаалтыг харьцуулан үзнэ. user@localhost-д өгсөн эрх нь [email protected] эсвэл user@%-тэй ялгаатай байдаг.

Файлын систем үндсэн хавтас (Filesystem root)

Төрийн үндсэн хэсэг (tenant root) нь дахин эхлүүлэх болон разверсмент хийх үед тогтвортой байх ёстой. түр хугацааны mount path-уудаас зайлсхийгээрэй. Bedrock-ийн загварын усталттай (install) байдлын хувьд, tenant root нь зөвхөн төслийн үндсэн хэсэг биш, харин tenant bootstrap-ын шаарддаг WordPress-ийн веб үндсэн хэсэгт чиглэж байгааг баталгаажуулаарай.

Үүсгэх дараалал (Provisioning order)

Шинэ өөрийн төрийн (sovereign) tenant-үүдийн хувьд дарааллыг дараах байдлаар ашиглана уу:

  1. Tenant registry entry-г үүсгэх.
  2. Tenant database болон database user-ийг үүсгэх.
  3. Tenant schema-г bootstrap хийх.
  4. Tenant users-ыг үүсгэх.
  5. Tenant filesystem path-уудыг тохируулах.
  6. Migration verification-ийг ажиллуулах.
  7. Verification-д амжилттай дууссаны дараа routing эсвэл DNS-ийг өөрчлөх.

Энэхүү дараалал нь database writer, user болон filesystem бэлэн болгохоос өмнө хэсэгчлэн тусгаарлагдсан (isolated) tenant-уудад трафик орохыг сэргийлдэг.

Өөрийн үйлчлүүлэгчийг удирдах явц (Sovereign customer management flows)

Ultimate Multisite v2.13.0-ийн хувьд sovereign mode-оос хамааруулан, үйлчлүүлэгчийн удирдлагын үйлдлүүдийг үндсэн сайт дээр байлгана. Tenant нь тусгаарлагдсан WordPress усталттай ажиллаж чадна, гэхдээ сүлжээний төлбөр хийх, гишүүнчлэлийн эсвэл хамтарсан дансны өгөгдөлд хамаарах үйлдэлүүдийг tenant runtime дотор дуусгах оронд үйлчлүүлэгчийг үндсэн сайт руу буцааж илгээх ёстой.

Үндсэн сайт дээрх явц дараах зүйлүүдэд хэрэглэнэ:

  • Checkout болон төлөв өөрчлөх үйлдлүүд.
  • Дансны ерөнхий харалт (Account overview) ба үйлчлүүлэгчийн профилийн үйлдлүүд.
  • Төлбөрийн хаяг шинэчлэх, төлбөрийн удирдлагын дэлгэцүүд. -Invoice болон төлбөр хийсэн түүхийн үзүүлэлтүүд.
  • Сайт удирдах үйлдлүүд, жишээ нь сайт нэмэх эсвэл сайт устгах.
  • Template-ийг солих.
  • Domain mapping ба үндсэн домен (primary-domain)-ыг өөрчлөх.

Хэрэв хэрэглэгч өөрийн сорилготой (sovereign tenant) үйлдэл хийх эхэлбэл, Ultimate Multisite нь тухайн үндсэн сайтын URL-ийг үүсгэж, аюулгүй байдлын нөхцөл хангасан тохиолдолд эхлэлийн сорилготой (source tenant) тасыг буцаах зорилго болгон хадгалдаг. Энэ нь хэрэглэгчдэд сүлжээний бүртгэлтэй холбоотой үйлдэл хийж дууссаны дараа, төлбөр хийх эсвэл гишүүнчлэлийн төлөвийг сорилготой өгөгдлийн сангуудад давхарлахгүйгээр сорилгын контекст рүү буцаж очих боломжийг олгодог.

Операторууд (operators) хувьд практик дүрмээс харахад: сорилготой сүлжейн хувьд төлбөр хийх, дансны мэдээлэл, checkout (захиалга), invoice (авгуулга), template (модель) болон domain-management (домен удирдах) хуудсуудыг үндсэн сайтын дээр хүртээмжтэй байлгах хэрэгтэй. Сорилгын dashboard-ууд нь эдгээр хуудсуудад холбогдох боломжтой ч, үйлдэл хийх үндсэн мэдээллийн эх сурвалж (source of truth) бол үндсэн сайт хэвээр үлдэнэ.