MULTI-TENANT LÀ GÌ

     
Multi-Tenant - Multi-tenancy có nghĩa là một phiên bạn dạng duy duy nhất của ứng dụng và cơ sở hạ tầng cung ứng của nó giao hàng nhiều khách hàng hàng. Mỗi khách hàng share ứng dụng ứng dụng và cũng chia sẻ một cơ sở dữ liệu. Dữ liệu của từng người khách hàng bị xa lánh và vẫn vô hình so với những người tiêu dùng khác.Lợi ích của Multi tenantChi tổn phí thấp hơn thông qua tính tài chính theo quy mô: Với nhiều khách hàng, nhân rộng lớn có ý nghĩa sâu sắc cơ sở hạ tầng thấp hơn nhiều so với chiến thuật lưu trữ vì người tiêu dùng mới có quyền truy vấn vào cùng 1 phần mềm cơ bản.Hơn nữa, tín đồ dùng không phải lo về việc cập nhật các thiên tài và update mới, họ cũng không nhất thiết phải trả phí duy trì hoặc chi tiêu khổng lồ. Các phiên bản cập nhật là 1 phần của đk hoặc, nếu đề nghị trả bất kỳ khoản phí gia hạn nào, nó được share bởi không ít người dân thuê, vì đó tạo nên nó biến đổi danh nghĩa (nhân tiện, bao gồm các bản cập nhật).Kiến trúc Multi tenant phục vụ tác dụng tất cả mọi fan từ các quý khách hàng nhỏ, gồm quy mô hoàn toàn có thể không bảo đảm cơ sở hạ tầng siêng dụng. Chi phí phát triển và duy trì phần mượt được phân tách sẻ, giảm đưa ra tiêu, dẫn đến tiết kiệm chi phí được chuyển đến bạn, khách hàng.

Bạn đang xem: Multi-tenant là gì


Hỗ trợ dịch vụ tốt hơn.Mang lại tác dụng lâu dài cho những nhà cung ứng cũng như người dùng, có thể là về khía cạnh bảo trì, chi phí đầu tứ hoặc phạt triển.Khuyết điểm Multi tenant:Khó backup database lẻ tẻ từng tenantDữ liệu phìm to mau lẹ Khó khăn khi scale hệ thống.
*

Có 3 cách thực hiện multi tenantPhương án I. Cùng tầm thường một cơ sở tài liệu (database), chia sẻ bảng (table)Tất cả những bảng liên quan đều có 1 khóa ngoại là UserId. Dữ liệu sản phẩm của từng sale hầu như được lưu tầm thường trong bảng Product, tuy nhiên được tách biệt nhau bởi trường UserId.Điểm mạnh:- xây đắp lưu trữ đối chọi giản.- dễ dàng cho vấn đề phát triển.- Không gặp mặt phải vấn đề đồng bộ cấu trúc bảng trong quá trình phát triền.Nhược điểm:- Không chủ quyền database nên việc một shop có thể xem tài liệu của shop khác nếu có quyền truy vấn SQL, phân quyền bên trên SQL đích thực là vấn đề lớn.- vấn đề backup, restore dữ liệu cho từng shop là gần như không thể, chỉ có thể backup cho tất cả.- sự việc phát sinh thực sự phức tạp khi tài liệu phình to, rất khó khăn trong việc backup, restore...- trở ngại khi scale hệ thống.Lời khuyên: phương án này chỉ cần sử dụng làm những hệ thống nhỏ, ít dữ liệu, vạc sinh dữ liệu không lớn.Phương án II. Cùng phổ biến database, chia sẻ schemaHướng kiến tạo này áp dụng một cửa hàng dữ liệu, từng tenant tương xứng 1 schema. Tất cả một schema thông thường để quản lý những các dữ liệu chung, cai quản thông tin về tenants. Kết cấu các bảng ở tất cả các tenant đông đảo giống nhau.Cần 1 schema chuẩn để nhờ vào đó tạo ra tenant bắt đầu trong quá trình thêm mới tenant.
Schema là 1 trong khái niệm bắt đầu được đưa vào SQL vps từ phiên bạn dạng 2005, nó là một namespace dùng làm gom nhóm các table gồm chung một điểm sáng nào kia đễ tiện lợi quản lý. Nếu như khách hàng không thực hiện schema trong cơ sở dữ liệu thì nó đang lấy schema mặc định làdbo.Ưu điểm của schema
Giúp nhóm những Database Object lại với nhau mang lại dễ cai quản lýCho phép phân quyền sinh hoạt schema tăng tính bảo mật
Ví dụ vào lược thứ CSDL của chúng ta có hai loại table chính như sau:Các table về thông tin -> mình sẽ tạo nên schema thương hiệu là news bao gồm những table tương quan đến tin tứcCác table khối hệ thống -> mình sẽ tạo nên schema thương hiệu là sys gồm những table tương quan đến hệ thốngTrong một database thì tên của schema là duy nhất, luôn luôn được chỉ định với cú pháp: server.database.schema.object.Ưu điểm: khi chúng ta phân nhóm những table lại thì sẽ rất thuận tiện quản lý, và bạn có thể phân quyền thống trị từng schema đến từng user khác nhau, đây đó là điểm mạnh của schema.2. Biện pháp tạo Schema cùng với lệnh Create Schema
SQL Server cung cấp đầy đủ nguyên lý giao diện hình ảnh đến phương tiện dòng lệnh nên chúng ta có hai phương pháp để tạo schema:Cách thứ nhất là sử dụng công vậy SSMS.Cách máy hai là thực hiện lệnh Create Schema. Sử dụng SSMS thì bạn nhấp chuột phải vào database và lựa chọn Create schema, còn trong bài xích này mình đang hướng dẫn áp dụng tạo bằng dòng lệnh CREATE SCHEMA.Như làm việc ví dụ trên, bây giờ mình sẽ khởi tạo hai schema thương hiệu là news với sys.CREATE SCHEMA news;CREATE SCHEMA sys;3. Biện pháp xóa Schema cùng với lệnh DROP SCHEMASau khi tạo thành schema ngừng nếu chúng ta không dùng tới thì hãy sử dụng lệnh DROP SCHEMA nhé.

Xem thêm: Khôi Phục Id Apple Bị Vô Hiệu Hóa, Làm Thế Nào Để: Id Apple Bị Vô Hiệu Hóa


DROP SCHEMA news;DROP SCHEMA sys;4. Phân quyền mang đến schema
Giả sử bạn muốn user thehalfheart có quyền quản lý cho schema news thì chỉ việc sử dụng lệnh GRANT, còn xóa quyền thì dùng lệnh DENY.Cấp quyền:GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: khổng lồ Xóa quyền:
Như vậy vấn đề phân nhóm như thế này góp lược đồ đại lý dữ liệu của người tiêu dùng trông chuyên nghiệp hóa hơn, dễ dàng phân quyền và bảo mật thông tin hơn.
Ưu điểm: khi bạn phân nhóm các table lại thì vẫn rất thuận lợi quản lý, và bạn cũng có thể phân quyền thống trị từng schema mang lại từng user không giống nhau, đây chính là điểm mạnh của schema.

Xem thêm: Sửa Lỗi Không Cài Đặt Được Zalo Trên Máy Tính ? Bài Này Sẽ Có Ích Cho Bạn


Lý bởi nữa để dùng Schema là bảo mật thông tin (Security Policy), ta rất có thể phân quyền ở lever toàn Schema thay vì chưng từng object riêng biệt trong Schema.Điểm mạnh:- xây cất theo phía này thì có thê biến hóa các cấu trúc, hàm, thủ tục riêng rẽ giữa các tenant.- dễ dàng phân quyền hơn cách thực hiện 1.- tiết kiệm ngân sách và chi phí được ngân sách chi tiêu khi triển khai (do con số database chỉ là rất ít)Nhược điểm:- phương pháp backup chủ quyền từng tenant là sự việc nan giải, lập trình viên sẽ đề xuất tự thống trị việc backup/restore mang lại từng tenant bởi code.- Việc đồng điệu những thay đổi trong cấu schema là vấn đề cần được quan tâm.- tài liệu trong database đã phình ra nhanh chóng.- con số schema trong một database là có giới hạn.- khó khăn khi scale hệ thống.Phương án III. Từng tenant một database.
Phương án này sẽ triển khai như sau: khối hệ thống sẽ bao gồm một database tầm thường (chuyên để cai quản các phần như list tenant, user, role ...), 1 database tenant chuẩn chỉnh (chứa dữ liệu chuẩn), và các tenant khác.Mỗi tenant sẽ là 1 trong những database, người tiêu dùng sẽ tất cả quyền truy cập vào database thông thường và database tenant của user đó.Kết luận:Chọn phương pháp 1 để thực hiện do dễ nâng cấp dễ thực hiện