Multi Tenant Là Gì, Bàn Về Kiến Trúc Database Trong Ứng Dụng Multi

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

Bạn đang xem: Multi tenant là gì, bàn về kiến trúc database trong Ứng dụng multi

Bạn vẫn xem: Multi-tenant là gì

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

Có 3 phương án multi tenantPhương án I. Cùng thông thường một cơ sở tài liệu (database), share bảng (table)
Tất cả những bảng liên quan đều có 1 khóa nước ngoài là UserId. Dữ liệu thành phầm của từng sale phần lớn được lưu bình thường trong bảng Product, mà lại được tách biệt nhau vì chưng trường UserId.Điểm mạnh:- thi công lưu trữ 1-1 giản.- dễ cho vấn đề phát triển.- Không gặp mặt phải sự việc đồng bộ cấu trúc bảng trong quy trình phát triền.Nhược điểm:- Không độc lập database nên việc một shop rất có thể xem dữ 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 thực sự là sự việc lớn.- vấn đề backup, restore tài liệu cho từng siêu thị là gần như không thể, chỉ có thể backup cho tất cả.- sự việc phát sinh thực sự tinh vi khi tài liệu phình to, rất khó khăn trong câu hỏi backup, restore...- khó khăn khi scale hệ thống.Lời khuyên: phương án này chỉ sử dụng làm những khối hệ thống nhỏ, ít dữ liệu, phạt sinh dữ liệu không lớn.Phương án II. Cùng tầm thường database, share schemaHướng kiến thiết này sử dụng một các đại lý dữ liệu, từng tenant tương ứng 1 schema.

Xem thêm: Siêu Âm Thai Có Yolksac Là Gì, Túi Noãn Hoàng(Yolksac) Là Gì

Tất cả một schema phổ biến để thống trị những các dữ liệu chung, thống trị thông tin về tenants. Kết cấu các bảng ở tất cả các tenant gần như giống nhau.Cần 1 schema chuẩn chỉnh để phụ thuộc đó tạo nên tenant mới trong quá trình thêm bắt đầu tenant.Schema là 1 trong những khái niệm mới được chuyển vào SQL hệ thống từ phiên bản 2005, nó là 1 trong namespace dùng để làm gom nhóm các table tất cả chung một điểm lưu ý nào đó đễ thuận tiện quản lý. Nếu như khách hàng không sử dụng schema trong database thì nó đã lấy schema khoác định làdbo.Ưu điểm của schema
Giúp nhóm các Database Object lại cùng với nhau cho dễ quản lí lýCho phép phân quyền sống schema tăng tính bảo mậtVí dụ trong lược trang bị CSDL của người sử dụng có hai một số loại table bao gồm như sau:Các table về tin tức -> mình sẽ khởi tạo schema tên là news 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 tên là sys có những table liên quan đến hệ thốngTrong một database thì thương hiệu của schema là duy nhất, luôn được hướng dẫn và chỉ định với cú pháp: server.database.schema.object.Ưu điểm: khi bạn phân nhóm những 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 đến từng user khác nhau, đây chính là điểm mạnh của schema.2. Giải pháp tạo Schema với lệnh Create SchemaSQL Server cung cấp đầy đủ nguyên lý giao diện bối cảnh đến qui định dòng lệnh nên các bạn có hai phương pháp để tạo schema:Cách trước tiên là áp dụng công rứa SSMS.Cách lắp thêm hai là áp dụng lệnh Create Schema. áp dụng SSMS thì bạn nhấp chuột phải vào database và chọn Create schema, còn trong bài này mình đang hướng dẫn sử dụng tạo bởi dòng lệnh CREATE SCHEMA.Như nghỉ ngơi ví dụ trên, hiện nay mình sẽ tạo hai schema tên là news cùng sys.CREATE SCHEMA news;CREATE SCHEMA sys;3. Bí quyết xóa Schema với lệnh DROP SCHEMASau khi tạo ra schema dứt nếu các bạn không cần sử dụng tới thì hãy sử dụng lệnh DROP SCHEMA nhé.DROP SCHEMA news;DROP SCHEMA sys;4. Phân quyền đến schema Giả sử bạn có nhu cầu user thehalfheart bao gồm 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ì sử 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 việc phân nhóm như vậy này góp lược đồ cửa hàng dữ liệu của chúng ta trông chuyên nghiệp hóa hơn, dễ dãi 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ì đã rất thuận tiện quản lý, và bạn có thể phân quyền thống trị từng schema cho từng user khác nhau, đây đó là điểm mạnh của schema.Lý vị nữa để dùng Schema là bảo mật thông tin (Security Policy), ta rất có thể phân quyền ở cấp độ toàn Schema thay bởi từng object lẻ tẻ trong Schema.Điểm mạnh:- kiến thiết theo hướng này thì có thê thay đổi các cấu trúc, hàm, giấy tờ thủ tục riêng rẽ giữa những tenant.- dễ phân quyền hơn phương án 1.- tiết kiệm ngân sách và chi phí được chi tiêu khi tiến hành (do con số database chỉ là rất ít)Nhược điểm:- phương pháp backup tự do từng tenant là vụ việc nan giải, xây dựng viên sẽ phải tự cai quản việc backup/restore cho từng tenant bởi code.- Việc đồng bộ những thay đổi trong cấu schema là vấn đề cần phải quan tâm.- tài liệu trong database đang phình ra nhanh chóng.- số lượng schema trong 1 database là tất 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: hệ thống sẽ gồm 1 database tầm thường (chuyên để quản lý các phần như danh sách tenant, user, role ...), 1 database tenant chuẩn (chứa tài liệu chuẩn), và những tenant khác.Mỗi tenant sẽ là 1 trong những database, người tiêu dùng sẽ gồm quyền truy cập vào database phổ biến và database tenant của user đó.Kết luận:Chọn phương án 1 để thực hiện do dễ tăng cấp dễ thực hiện