Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp với đề tài "Xây dựng hệ thống cung cấp dịch vụ quản lý và kinh doanh trực tuyến" được thực hiện bởi nhóm sinh viên Lô Minh Phát, Nguyễn Bảo Trấn và Nguyễn Văn Sơn thuộc Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, dưới sự hướng dẫn của giảng viên Mai Anh Thơ. Nghiên cứu được triển khai trong mốc thời gian từ ngày 13/02/2023 đến ngày 28/05/2023.

Về bối cảnh thực tiễn, thương mại điện tử (TMĐT) tại Việt Nam đang phát triển mạnh mẽ và trở thành phương thức bán hàng phổ biến, đóng vai trò cầu nối xóa bỏ khoảng cách không gian giữa người mua và người bán. Tuy nhiên, đối với các doanh nghiệp vừa và nhỏ hoặc các hộ kinh doanh cá thể trong giai đoạn khởi nghiệp, việc tự đầu tư xây dựng và đưa vào vận hành một hệ sinh thái TMĐT hoàn chỉnh gặp phải nhiều rào cản lớn:

  1. Chi phí tài chính ban đầu cho khâu thiết kế, xây dựng và mua sắm hạ tầng máy chủ rất cao.
  2. Thời gian triển khai kéo dài trước khi hệ thống có thể chính thức hoạt động thương mại.
  3. Rủi ro kỹ thuật cao do lỗi hệ thống phát sinh hoặc phần mềm tự phát triển không cung cấp đầy đủ các tính năng nghiệp vụ cần thiết.

Xuất phát từ các khó khăn này và thông qua các buổi trao đổi trực tiếp với những người từng làm việc tại các hộ kinh doanh khởi nghiệp, nhóm tác giả đề xuất giải pháp xây dựng một nền tảng dịch vụ cho phép nhiều người dùng (tenant) đăng ký tham gia, sử dụng chung hạ tầng phần mềm nhưng phân tách hoàn toàn dữ liệu quản lý dựa trên mô hình kiến trúc Multi-Tenancy. Người dùng trả phí dịch vụ định kỳ theo tháng với mức chi phí thấp hơn đáng kể so với việc tự xây dựng riêng lẻ.

Mục tiêu nghiên cứu của đề tài được xác định theo 7 nhiệm vụ cụ thể:

  1. Tìm hiểu, ứng dụng các công nghệ mới trong việc xây dựng, phát triển và triển khai ứng dụng trên nền tảng website.
  2. Xây dựng một trang thương mại điện tử cho phép nhiều người dùng có thể cùng tham gia và dùng chung hệ thống.
  3. Nghiên cứu kiến trúc Multi-Tenancy và ứng dụng vào việc thiết kế, xây dựng cấu trúc hệ thống của ứng dụng.
  4. Tìm hiểu về các nghiệp vụ trong thương mại điện tử nhằm mang đến các giải pháp phù hợp trong việc quản lý và kinh doanh trực tuyến.
  5. Tạo ra một ứng dụng thân thiện với người dùng và dễ sử dụng.
  6. Cho phép tùy chỉnh mở rộng các hướng phát triển về sau cho ứng dụng.
  7. Giải đáp thắc mắc của các thành viên trong nhóm về cách thức xây dựng và vận hành của các hệ thống có quy mô tương tự.

Đối tượng nghiên cứu của khóa luận tập trung vào mô hình kiến trúc Multi-Tenancy trong phát triển ứng dụng web và các quy trình nghiệp vụ quản lý bán lẻ ngành thời trang. Phạm vi không gian của đề tài là khảo sát các mô hình kinh doanh trực tuyến tại Việt Nam, tập trung vào thị trường bán lẻ thời trang; phạm vi thời gian thực hiện nghiên cứu và kiểm thử hệ thống kéo dài hơn 3 tháng (từ tháng 2 đến cuối tháng 5 năm 2023).

Cơ sở lý thuyết và phương pháp tiếp cận

Đề tài áp dụng các nền tảng lý thuyết và công nghệ kỹ thuật phần mềm hiện đại nhằm giải quyết bài toán phục vụ nhiều khách thuê trên cùng một hạ tầng:

  • Khung lý thuyết kiến trúc phần mềm: Trọng tâm là kiến trúc Multi-Tenancy (đa người thuê). Đây là giải pháp thiết kế mà chỉ một phiên bản ứng dụng duy nhất phục vụ đồng thời nhiều khách hàng (tenant), trong đó mỗi khách hàng dùng chung tài nguyên phần mềm nhưng kho dữ liệu được cô lập logic hoặc vật lý. Đi kèm với đó là mô hình bảo mật hướng đối tượng nghiệp vụ (Domain Object Security) kết hợp danh sách kiểm soát truy cập (Access Control Lists - ACLs) để xử lý xác thực (Authentication) và phân quyền (Authorization).
  • Phương pháp nghiên cứu và phát triển:
    • Phương pháp khảo sát thực tế: Khảo sát hiện trạng và phân tích đối chuẩn (benchmarking) từ ba hệ thống điển hình: nền tảng quản lý và bán hàng đa kênh Sapo (các phân hệ Sapo Web, Sapo Go, Sapo FNB, Sapo OMINI, Sapo Academy), website thương mại điện tử quốc tế Nike (cấu trúc danh mục, bộ lọc thuộc tính sản phẩm, tính tương thích responsive), và hệ thống quản lý nội bộ của thương hiệu thời trang Yody (bố cục bảng dữ liệu, cấu trúc thanh điều hướng navbar phân cấp).
    • Phương pháp thiết kế hệ thống phần mềm: Ứng dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ Use Case tổng quan, biểu đồ tuần tự (Sequence Diagram) cho các luồng xử lý chính và biểu đồ lớp (Class Diagram) chi tiết cho 27 thực thể dữ liệu.
    • Phương pháp kiểm thử phần mềm: Xây dựng bộ ca kiểm thử (test case) nhằm đánh giá chức năng của từng phân hệ giao diện và backend.
  • Nguồn dữ liệu: Dữ liệu sơ cấp được thu thập thông qua phỏng vấn trực tiếp các cá nhân đang kinh doanh thực tế tại các hộ khởi nghiệp; dữ liệu thứ cấp được tổng hợp từ tài liệu kỹ thuật của Spring Framework, ReactJS, Kubernetes, tài liệu lưu hành nội bộ và các ấn phẩm trực tuyến của Sapo, Nike và Yody.

Thiết kế và triển khai

Là một đồ án chuyên sâu về xây dựng phần mềm, khóa luận dành phần lớn dung lượng để mô tả kiến trúc kỹ thuật, giải pháp phân tách dữ liệu, ngăn xếp công nghệ và quy trình tự động hóa tích hợp/triển khai liên tục (CI/CD).

1. Phân tích các giải pháp phân tách dữ liệu trong kiến trúc Multi-Tenancy

Khóa luận đã so sánh chi tiết ba mô hình thiết kế cơ sở dữ liệu (CSDL) cho kiến trúc đa người thuê:

Tiêu chí so sánh Database per Tenant (Mỗi tenant 1 CSDL riêng) Schema per Tenant (Chung 1 CSDL, mỗi tenant 1 Schema) Shared Database (Dùng chung CSDL và Schema)
Cơ chế phân tách Tách biệt hoàn toàn ở mức vật lý giữa các CSDL tenant với 1 CSDL Master quản lý danh sách tenant. Tách biệt ở mức logic theo cơ chế schema riêng biệt do hệ quản trị CSDL cung cấp. Lưu chung toàn bộ bảng dữ liệu, phân biệt bằng cột định danh (tenant_id).
Mức độ an toàn dữ liệu Cao nhất, đảm bảo tính riêng tư tuyệt đối cho từng bên thuê. Cao, phụ thuộc vào cơ chế phân quyền truy cập schema của hệ quản trị CSDL. Thấp nhất trong ba giải pháp, tiềm ẩn nguy cơ nhầm lẫn dữ liệu giữa các tenant.
Chi phí phần cứng Rất tốn kém tài nguyên máy chủ, chỉ phù hợp với khách hàng có ngân sách lớn. Trung bình, tối ưu hơn mô hình tách riêng CSDL vật lý. Tối ưu tài nguyên phần cứng tối đa, chi phí vận hành máy chủ thấp nhất.
Độ phức tạp ứng dụng Tầng ứng dụng xử lý định tuyến kết nối CSDL linh hoạt. Đòi hỏi xử lý chuyển đổi schema tương ứng theo ngữ cảnh người dùng. Tầng ứng dụng phải luôn gán và kiểm tra điều kiện tenant_id trong mọi truy vấn SQL.
Vấn đề sao lưu / Phục hồi Dễ dàng sao lưu và khôi phục độc lập cho từng tenant riêng lẻ. Gặp khó khăn nếu hệ quản trị CSDL không hỗ trợ sao lưu theo từng schema. Rất khó khăn khi cần sao lưu hoặc khôi phục dữ liệu cho riêng một tenant duy nhất.

2. Ngăn xếp công nghệ sử dụng

  • Backend: Sử dụng Java với framework Spring Boot. Hệ thống ứng dụng tính năng tự động cấu hình (Auto-configuration) và cơ chế tiêm phụ thuộc (Dependency Injection) nhằm giảm thiểu liên kết chặt (loose coupling), tạo tiền đề cho việc mở rộng sang kiến trúc microservices. Cấu trúc mã nguồn backend phân chia thành ba tầng chính:
    • Controller: Tiếp nhận các yêu cầu HTTP từ client, điều phối xử lý và trả về phản hồi.
    • DTO (Data Transfer Object): Định dạng cấu trúc dữ liệu truyền tải giữa client và server, ánh xạ thông tin từ cơ sở dữ liệu.
    • Service: Chứa toàn bộ các xử lý logic nghiệp vụ trung tâm của hệ thống.
  • Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu quan hệ MySQL hoạt động theo mô hình máy chủ (server-based), hỗ trợ đa luồng và tương thích mạnh mẽ với Spring Data JPA.
  • Frontend: Xây dựng bằng ReactJS, tổ chức giao diện dưới dạng cây giao diện (UI Tree) cấu thành từ các thành phần (Component) có khả năng tái sử dụng độc lập. Hệ thống frontend tích hợp các thư viện chuyên dụng:
    • antd (Ant Design): Cung cấp bộ thư viện thành phần giao diện chuẩn hóa cho các trang quản trị.
    • Redux và redux-saga: Quản lý trạng thái toàn cục (State Management), xử lý các tác vụ bất đồng bộ và đồng bộ hóa vòng đời dữ liệu khi giao tiếp API.
    • SCSS: Tiền xử lý CSS phục vụ việc thiết kế giao diện tùy biến linh hoạt. Mã nguồn frontend được phân cấp thành 13 thư mục chức năng, tách biệt hoàn toàn giữa các component chỉ hiển thị (render) và các component xử lý gọi API kết nối dữ liệu.

3. Quy trình triển khai tự động CI/CD

Hệ thống thiết lập đường ống triển khai tự động hóa qua 4 bước khép kín:

  1. Lập trình viên (Dev) hoàn thiện tính năng hoặc module mã nguồn và thực hiện lệnh commit lên hệ thống quản lý phiên bản GitLab.
  2. GitLab CI tự động kích hoạt tiến trình xây dựng mã nguồn (build source code).
  3. Sử dụng công cụ Kaniko để đóng gói ứng dụng thành container image mà không cần tiến trình nền Docker daemon có quyền root, sau đó đẩy (push) image lên Container Registry.
  4. Triển khai và cập nhật ứng dụng tự động lên cụm máy chủ Kubernetes (K8S) thông qua công cụ quản lý gói Helm (Helm Chart).

Nội dung chính theo từng chương

Chương 1: Lý do chọn đề tài

Chương này khái quát xu hướng bùng nổ của TMĐT và sự chuyển dịch phương thức bán hàng trực tuyến tại Việt Nam. Tác giả chỉ rõ bài toán thực tiễn: chi phí đắt đỏ và thời gian kéo dài khi doanh nghiệp tự phát triển phần mềm riêng. Từ kết quả khảo sát thực tế tại các hộ kinh doanh, chương 1 định hình đề tài: xây dựng một giải pháp phần mềm cung cấp dịch vụ quản lý và bán hàng thời trang theo kiến trúc Multi-Tenancy dùng chung hạ tầng, đồng thời xác lập 7 mục tiêu nghiên cứu cụ thể của đồ án.

Chương 2: Khảo sát hiện trạng

Chương 2 trình bày chi tiết kết quả khảo sát 3 nền tảng:

  • Nền tảng Sapo: Phân tích 5 giải pháp phần mềm chuyên biệt (Sapo Web, Sapo Go, Sapo FNB, Sapo OMINI, Sapo Academy) và 9 tính năng cốt lõi như quản lý đơn hàng, quản lý kho bãi chi tiết, biểu đồ báo cáo tài chính, cổng thanh toán và quản lý đơn vị vận chuyển.
  • Website Nike: Khảo sát về mặt UI/UX, phân cấp danh mục đa tầng, tính năng lọc sản phẩm theo màu sắc, giới tính, độ tuổi và khả năng tương thích hiển thị trên thiết bị di động (responsive).
  • Hệ thống quản lý Yody: Khảo sát cấu trúc giao diện quản trị phân cụm theo từng khối nội dung, cách thức tổ chức bảng dữ liệu kèm thanh công cụ tìm kiếm, bộ lọc, phân trang và thanh navbar phân cấp. Dựa trên khảo sát, chương 2 tổng hợp yêu cầu kỹ thuật và phân rã hệ thống thành 3 website độc lập:
  1. Website quản lý cửa hàng (Shop Manager): Phục vụ quản trị danh mục, nhân viên, phân quyền, biến thể sản phẩm, đơn hàng và nội dung hiển thị; yêu cầu xác thực người dùng bắt buộc.
  2. Website cửa hàng (Shopping Website): Phục vụ khách mua hàng xem sản phẩm, tin tức, banner, tìm kiếm, giỏ hàng và thanh toán trực tuyến; người dùng vãng lai không bắt buộc đăng nhập.
  3. Website triển khai (Tenant Manager): Phục vụ người quản trị hệ thống khởi tạo tài khoản tenant mới, quản lý cấu hình các gói dịch vụ và vận hành toàn hệ thống.

Chương 3: Kiến trúc hệ thống và công nghệ sử dụng

Chương này tập trung phân tích lý thuyết chuyên sâu về Multi-Tenancy: ưu điểm (tối ưu hóa chi phí hạ tầng, chia sẻ tài nguyên vận hành, bảo trì và cập nhật tập trung không gián đoạn) và nhược điểm (phức tạp khi sao lưu riêng rẽ, dung lượng dữ liệu tăng trưởng nhanh). Tác giả so sánh chi tiết ba phương án thiết kế dữ liệu (Database per Tenant, Schema per Tenant, Shared Database). Đồng thời, chương 3 làm rõ các quyết định lựa chọn công nghệ: Spring Boot cho backend theo mô hình 3 tầng (Controller, DTO, Service); MySQL làm cơ sở dữ liệu quan hệ; ReactJS kết hợp Redux-Saga và Ant Design cho tầng frontend; cùng quy trình đóng gói và điều phối container tự động bằng GitLab CI, Kaniko, Helm và Kubernetes.

Chương 4: Thiết kế hệ thống

Chương 4 là phần nội dung kỹ thuật có dung lượng lớn nhất, bao gồm:

  • Cơ chế xác thực và phân quyền: Thiết kế phân quyền dựa trên mô hình ACLs và Domain Object Security. Mỗi hành vi tác động lên tài nguyên được ánh xạ thành một permission duy nhất, các permission được gom nhóm thành các group quyền để gán cho các vai trò.
  • Phân loại 5 tác nhân (Actors): Khách vãng lai chưa đăng nhập (Unauthenticated User / Guest), Quản trị viên hệ thống triển khai (System Admin), Chủ cửa hàng (Shop Admin), Nhân viên cửa hàng (Shop Employee) và Khách hàng đã đăng ký (Shop Customer).
  • Mô tả chức năng: Thiết kế chi tiết danh mục Use Case cho 3 website với các nhóm chức năng chính như: quản lý nhân viên, quản lý nhóm quyền, danh mục, tin tức, chi nhánh cửa hàng, thuộc tính sản phẩm (variant), bộ thuộc tính (variant template), thẻ tag, sản phẩm, bộ lọc thuộc tính, đơn đặt hàng, giỏ hàng, thanh toán và quản trị tenant. Đi kèm là các biểu đồ tuần tự mô tả chi tiết các luồng xử lý chính (main flow, alternative flow, exception flow).
  • Thiết kế cơ sở dữ liệu: Xây dựng biểu đồ lớp hoàn chỉnh cho cả ứng dụng Master và ứng dụng Tenant, bao gồm 27 lớp thực thể được đặc tả chi tiết từ Bảng 48 đến Bảng 74: Location, Store, Category, News, Tenant, Employee, Permission, Group, Account, CustomerAddress, Customer, Tag, ProductCategory, ProductVariant, ProductConfig, Product, OrderItem, Order, Variant, VariantConfig, VariantTemplate, Payment, PaymentConfig, Carousel, CarouselItem, FacetedSearch, FacetedItem.
  • Thiết kế giao diện: Đặc tả chi tiết layout website quản lý CMS, thanh điều hướng Navigation Bar, trang hồ sơ Profile, các thành phần nhập liệu (Label + Input), giao diện danh sách bảng và các thành phần hiển thị trên Shopping Website (trang hiển thị danh mục, chi tiết sản phẩm, giỏ hàng và thanh toán đơn hàng).

Chương 5: Kiểm thử phần mềm

Chương 5 trình bày phương pháp thiết kế và danh mục các ca kiểm thử (test case) chức năng cho hệ thống phần mềm, tập trung kiểm tra tính đúng đắn của các quy trình nghiệp vụ như đăng ký tài khoản, đăng nhập, phân quyền truy cập, thêm sản phẩm vào giỏ hàng, tạo mới sản phẩm và xử lý luồng đặt hàng.

Chương 6: Kết luận

Chương tổng kết toàn bộ các kết quả đạt được sau quá trình thực hiện đồ án, đánh giá mức độ hoàn thành so với các mục tiêu đã đề ra ban đầu, đồng thời chỉ ra các nhược điểm còn tồn tại của hệ thống và đề xuất các phương hướng nghiên cứu phát triển tiếp theo.

Kết quả và đóng góp

Về kết quả kỹ thuật, đồ án đã hoàn thành các nội dung chính:

  • Hiện thực hóa hệ thống phần mềm với 3 phân hệ giao diện chuyên biệt: Website quản lý cửa hàng (Shop Manager), Website bán hàng trực tuyến (Shopping Website) và Website quản trị tenant (Tenant Manager).
  • Xây dựng mô hình phân quyền bảo mật linh hoạt dựa trên lý thuyết Domain Object Security và Access Control Lists (ACLs), cho phép gán quyền thao tác chi tiết theo từng hành động cụ thể trên từng tài nguyên hệ thống.
  • Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh với 27 bảng dữ liệu (tương ứng 27 lớp thực thể), giải quyết tốt bài toán phân loại sản phẩm thời trang phức tạp thông qua các mô hình cấu hình thuộc tính động (Variant, VariantConfig, VariantTemplate) và bộ lọc tìm kiếm nhiều chiều (FacetedSearch, FacetedItem).
  • Thiết lập thành công chuỗi quy trình CI/CD tích hợp công nghệ đóng gói không đặc quyền Kaniko và công cụ Helm Chart nhằm tự động hóa việc đưa các container ứng dụng lên môi trường vận hành Kubernetes.

Về mặt giải pháp, đồ án đã cung cấp một mô hình kiến trúc tham chiếu khả thi trong việc cung cấp dịch vụ phần mềm thương mại điện tử đa người thuê (Multi-Tenancy SaaS) dành riêng cho ngành bán lẻ thời trang, giúp các hộ kinh doanh cắt giảm chi phí hạ tầng máy chủ và rút ngắn thời gian tiếp cận thị trường.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận tự chỉ ra các mặt hạn chế và tồn tại:

  • Do giới hạn về mặt thời gian và kiến thức thực tiễn của nhóm sinh viên, hệ thống vẫn còn những thiếu sót nhất định trong quá trình triển khai thực tế.
  • Các nhược điểm cố hữu của mô hình Multi-Tenancy vẫn chưa được xử lý triệt để trong khuôn khổ đồ án: việc phân tách dữ liệu gây khó khăn cho công tác sao lưu và phục hồi dữ liệu độc lập cho từng tenant riêng lẻ, đồng thời dung lượng dữ liệu dùng chung phình to nhanh chóng tạo áp lực lớn lên tài nguyên hệ thống khi số lượng khách thuê gia tăng.

Về hướng phát triển tiếp theo, nhóm tác giả đề xuất:

  • Tiếp tục nghiên cứu các cơ chế tối ưu hóa tài nguyên phần cứng và mở rộng hệ thống theo mô hình kiến trúc Microservices để nâng cao khả năng chịu tải.
  • Phát triển thêm các công cụ bổ trợ, các mô-đun mở rộng phục vụ nghiệp vụ bán hàng và chăm sóc khách hàng nhằm gia tăng giá trị dịch vụ cho các tenant.
  • Hoàn thiện thêm các cơ chế tự động hóa trong quản lý sao lưu (backup) và khôi phục (restore) cơ sở dữ liệu riêng biệt cho từng khách thuê.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho các đối tượng học thuật và kỹ thuật:

  • Sinh viên chuyên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Tài liệu là nguồn tham khảo trực quan về quy trình hoàn chỉnh để xây dựng đồ án tốt nghiệp, từ khảo sát nghiệp vụ thực tế, mô hình hóa phân quyền ACLs, thiết kế use case chi tiết đến đóng gói ứng dụng CI/CD với Kubernetes.
  • Kỹ sư phát triển phần mềm ứng dụng web: Phần đặc tả cơ sở dữ liệu gồm 27 lớp thực thể (đặc biệt là cơ chế quản lý biến thể sản phẩm thời trang VariantTemplate và tìm kiếm phân nhánh FacetedSearch) là mô hình mẫu có thể tái sử dụng trực tiếp trong các dự án thương mại điện tử thực tế.

Câu hỏi thường gặp

1. Hệ thống trong đồ án được phân chia thành những phân hệ website nào?

Hệ thống được thiết kế và chia tách thành ba phân hệ website độc lập phục vụ ba nhóm mục đích khác nhau:

  • Website quản lý cửa hàng (Shop Manager): Dành cho Shop Admin và Shop Employee, yêu cầu đăng nhập bắt buộc, cung cấp các công cụ quản lý nhân viên, phân quyền, cấu hình thuộc tính sản phẩm, quản lý đơn hàng và nội dung hiển thị.
  • Website cửa hàng (Shopping Website): Dành cho khách mua hàng (Shop Customer và Guest) xem sản phẩm, tin tức, banner, tìm kiếm đa chiều, quản lý giỏ hàng và đặt hàng trực tuyến; người dùng không bắt buộc phải đăng nhập khi duyệt thông tin.
  • Website triển khai (Tenant Manager): Dành riêng cho System Admin để quản lý danh sách tenant, cấp phát tài khoản và cấu hình hệ thống khi có khách hàng mới đăng ký sử dụng dịch vụ.

2. Ba giải pháp thiết kế cơ sở dữ liệu cho kiến trúc Multi-Tenancy được so sánh như thế nào?

Báo cáo phân tích ba giải pháp kỹ thuật chính:

  • Database per Tenant: Mỗi tenant sử dụng một CSDL vật lý riêng biệt cùng một CSDL Master quản lý chung. Ưu điểm là an toàn dữ liệu và tính riêng tư cao nhất, dễ sao lưu từng tenant, nhưng nhược điểm là chi phí phần cứng rất lớn.
  • Schema per Tenant: Tất cả tenant dùng chung một CSDL nhưng mỗi tenant được cấp một schema riêng. Dữ liệu được cách ly ở mức logic, tận dụng tài nguyên tốt hơn, nhưng gặp trở ngại khi sao lưu nếu hệ quản trị CSDL không hỗ trợ sao lưu theo từng schema.
  • Shared Database: Tất cả tenant dùng chung CSDL và chung schema, phân biệt dữ liệu thông qua cột định danh tenant_id. Cách này tận dụng tối đa tài nguyên phần cứng, cấu trúc đơn giản nhưng phức tạp trong xử lý logic ở tầng ứng dụng và tiềm ẩn rủi ro nhầm lẫn dữ liệu giữa các bên thuê.

3. Cơ chế phân quyền và bảo mật trong hệ thống được thiết kế dựa trên nguyên lý nào?

Hệ thống áp dụng mô hình Domain Object Security kết hợp danh sách kiểm soát truy cập (Access Control Lists - ACLs). Cụ thể, mỗi hành động thao tác (xem, tạo mới, chỉnh sửa, xóa) trên từng tài nguyên dữ liệu sẽ tương ứng với một quyền (permission) duy nhất. Các quyền này được tập hợp thành các nhóm quyền (group). Tài khoản người dùng sẽ được phân loại và cấp phép truy cập dựa trên nhóm quyền mà họ được gán, giúp hệ thống kiểm tra phân quyền chặt chẽ trước khi thực thi bất kỳ yêu cầu nghiệp vụ nào.

4. Quy trình tự động hóa CI/CD trong đồ án sử dụng các công cụ gì?

Quy trình CI/CD được xây dựng hoàn toàn tự động gồm 4 công cụ chính:

  • Mã nguồn được đẩy lên hệ thống quản lý phiên bản GitLab.
  • Tiến trình tích hợp liên tục GitLab CI tự động kích hoạt quá trình build mã nguồn.
  • Công cụ Kaniko thực hiện đóng gói mã nguồn thành container image an toàn mà không cần daemon Docker đặc quyền, sau đó đưa image lên Container Registry.
  • Công cụ Helm (Helm Chart) thực hiện việc cập nhật và triển khai phiên bản container mới lên cụm điều phối container Kubernetes (K8S).

5. Hệ thống hỗ trợ những vai trò người dùng (Actors) nào?

Bảng phân loại người dùng (Actors) của hệ thống xác định 5 nhóm tác nhân:

  • Unauthenticated User (Guest): Khách hàng chưa đăng ký tài khoản, chỉ có quyền xem nội dung công khai và mua hàng vãng lai.
  • System Admin: Quản trị viên cấp cao của hệ thống triển khai, chịu trách nhiệm quản trị tenant và cấu hình hệ thống.
  • Shop Admin: Quản trị viên của từng cửa hàng, nắm toàn quyền trên website quản lý cửa hàng tương ứng.
  • Shop Employee: Nhân viên cửa hàng, các quyền truy cập chức năng cụ thể do Shop Admin phân quyền và cấp phép.
  • Shop Customer: Khách mua hàng đã tạo tài khoản thành công trên Shopping Website, có trang cá nhân và theo dõi đơn hàng riêng.

Kết luận

Khóa luận tốt nghiệp của nhóm tác giả Lô Minh Phát, Nguyễn Bảo Trấn và Nguyễn Văn Sơn đã nghiên cứu và triển khai thành công mô hình hệ sinh thái thương mại điện tử đa người thuê (Multi-Tenancy) dành cho ngành hàng thời trang. Đồ án thể hiện tính hoàn thiện kỹ thuật cao qua việc kết hợp nền tảng backend Spring Boot, frontend ReactJS, cơ sở dữ liệu quan hệ MySQL và quy trình điều phối tự động hóa trên Kubernetes. Kết quả nghiên cứu cung cấp một giải pháp thiết kế khả thi, hỗ trợ các doanh nghiệp khởi nghiệp tiếp cận phần mềm quản trị và bán hàng với chi phí hạ tầng tối ưu.