I. Giới thiệu về Đồ án Web Bán Mỹ Phẩm với Microservice Cloud Native
Đồ án web bán mỹ phẩm theo kiến trúc Microservice và Cloud Native là một giải pháp hiện đại để xây dựng hệ thống thương mại điện tử có khả năng mở rộng cao. Trong bối cảnh phát triển ứng dụng web hiện nay, việc áp dụng kiến trúc Microservice giúp tối ưu hóa hiệu suất hệ thống và nâng cao trải nghiệm người dùng. Dự án này tập trung vào việc xây dựng một nền tảng bán mỹ phẩm toàn diện với các tính năng như quản lý sản phẩm, đơn hàng, thanh toán trực tuyến và quản trị hệ thống. Sử dụng công nghệ Cloud Native, hệ thống có thể triển khai trên Kubernetes (K8s) để đảm bảo tính sẵn sàng cao và khả năng tự động mở rộng theo nhu cầu.
1.1. Định nghĩa Microservice Architecture
Microservice Architecture là mô hình kiến trúc phần mềm nơi ứng dụng được chia nhỏ thành các dịch vụ độc lập, mỗi dịch vụ chạy trong một quy trình riêng biệt. Các dịch vụ này giao tiếp với nhau thông qua API và message queue như RabbitMQ. Mô hình này cho phép các nhóm phát triển làm việc độc lập, dễ dàng cập nhật và triển khai các tính năng mới mà không ảnh hưởng đến toàn bộ hệ thống.
1.2. Lợi ích của Cloud Native trong E commerce
Cloud Native cho phép ứng dụng chạy trên môi trường đám mây với khả năng tự động mở rộng, tự chữa lành và dễ dàng triển khai. Các lợi ích bao gồm: giảm chi phí cơ sở hạ tầng, tăng tính linh hoạt, cải thiện độ tin cậy, và hỗ trợ triển khai liên tục. Cho các nền tảng bán mỹ phẩm, điều này có nghĩa là khả năng xử lý lượng truy cập lớn vào những thời điểm cao điểm như sale, khuyến mãi.
II. Kiến trúc Hệ thống Microservice cho Platform Bán Mỹ Phẩm
Kiến trúc Microservice của đồ án bao gồm nhiều dịch vụ độc lập như dịch vụ xác thực, quản lý sản phẩm, quản lý đơn hàng, thanh toán và thông báo. Mỗi dịch vụ có cơ sở dữ liệu riêng để đảm bảo tính độc lập và linh hoạt. Hệ thống sử dụng API Gateway để định tuyến yêu cầu từ phía người dùng đến các dịch vụ tương ứng. Giao tiếp không đồng bộ được thực hiện thông qua RabbitMQ với Mass Transit, cho phép các dịch vụ xử lý sự kiện một cách hiệu quả. Triển khai trên Kubernetes đảm bảo tính sẵn sàng cao, tự động lấy cân bằng tải và khả năng phục hồi khi có sự cố.
2.1. Các Dịch vụ Chính trong Kiến trúc
Hệ thống gồm các microservice chính: Authentication Service (xác thực người dùng), Product Service (quản lý sản phẩm và danh mục), Order Service (quản lý đơn hàng), Payment Service (xử lý thanh toán VNPAY), User Service (quản lý tài khoản và địa chỉ), và Notification Service (gửi email OTP). Mỗi dịch vụ độc lập, có thể cập nhật, mở rộng hoặc sửa chữa mà không làm gián đoạn các dịch vụ khác.
2.2. Công nghệ và Công cụ Sử dụng
Dự án sử dụng .NET/C# để xây dựng các microservice, PostgreSQL và MongoDB cho lưu trữ dữ liệu, RabbitMQ cho hàng đợi tin nhắn. Triển khai được thực hiện bằng Docker và Kubernetes (K8s), với Helm để quản lý cấu hình. CI/CD Pipeline được thiết lập trên Jenkins tích hợp với GitHub để tự động hóa quá trình kiểm tra, xây dựng và triển khai.
III. Triển khai trên Cloud với Infrastructure as Code IaC
Infrastructure as Code (IaC) là phương pháp quản lý cơ sở hạ tầng thông qua các tập tin cấu hình, cho phép tự động hóa quá trình triển khai trên cloud. Đồ án sử dụng Digital Ocean làm nhà cung cấp dịch vụ đám mây, tạo ra các tài nguyên như Kubernetes Cluster, Load Balancer, Volume Block Storage và Virtual Private Cloud (VPC). Sử dụng Helm Charts và Helmfile, toàn bộ cấu hình được lưu trữ dưới dạng code, dễ dàng sao lưu, kiểm soát phiên bản và triển khai lại. Blue/Green Deployment được áp dụng để đảm bảo việc cập nhật ứng dụng không gây mất dịch vụ, với hai môi trường chạy song song cho phép chuyển đổi nhanh chóng nếu cần.
3.1. Cơ sở hạ tầng trên Digital Ocean
Digital Ocean cung cấp Kubernetes managed cluster để triển khai các container chứa microservice. Load Balancer phân phối lưu lượng truy cập giữa các node trong cluster. Volume Block Storage cung cấp lưu trữ bền vững cho dữ liệu cơ sở dữ liệu. VPC tạo một mạng riêng an toàn cho các tài nguyên cloud, đảm bảo bảo mật và kiểm soát truy cập.
3.2. Tự động hóa triển khai với CI CD
Jenkins Pipeline được thiết lập tích hợp với GitHub thông qua webhook, tự động kích hoạt khi có commit mới. Pipeline thực hiện các bước: kiểm tra mã, xây dựng Docker image, đẩy lên container registry, cập nhật Kubernetes manifests, và triển khai lên cluster. Blue/Green Deployment cho phép kiểm tra phiên bản mới trước khi chuyển toàn bộ lưu lượng truy cập, giảm rủi ro và thời gian ngừng dịch vụ.
IV. Giao diện Người dùng và Tính năng Chính của Hệ thống
Giao diện người dùng của nền tảng bán mỹ phẩm được thiết kế thân thiện, dễ sử dụng với các tính năng chính bao gồm: đăng ký/đăng nhập với xác thực OTP qua email, duyệt sản phẩm theo danh mục, xem chi tiết sản phẩm, thêm vào giỏ hàng và wishlist, thanh toán trực tuyến qua VNPAY. Quản lý tài khoản cá nhân cho phép người dùng cập nhật thông tin, thay đổi mật khẩu, quản lý đơn hàng và địa chỉ giao hàng. Trang quản trị viên cung cấp dashboard tổng quan, quản lý sản phẩm, danh mục, đơn hàng và khách hàng. Giao diện được xây dựng với React hoặc Vue.js để đảm bảo hiệu suất cao và trải nghiệm người dùng mượt mà trên mọi thiết bị.
4.1. Tính năng cho Khách hàng
Người dùng có thể đăng ký tài khoản với xác thực OTP, duyệt danh mục sản phẩm mỹ phẩm đa dạng, xem chi tiết sản phẩm kèm hình ảnh và đánh giá, sử dụng quickview để xem nhanh. Chức năng giỏ hàng cho phép thêm, xóa, cập nhật số lượng sản phẩm. Wishlist lưu các sản phẩm yêu thích. Thanh toán qua VNPAY an toàn, dễ dàng. Quản lý đơn hàng, địa chỉ giao hàng và lịch sử mua hàng.
4.2. Tính năng cho Quản trị viên
Dashboard hiển thị thống kê tổng quan: doanh thu, số lượng đơn hàng, khách hàng mới. Quản lý danh mục sản phẩm: thêm, sửa, xóa. Quản lý sản phẩm: thêm sản phẩm mới, chỉnh sửa thông tin, quản lý chi tiết sản phẩm (kích cỡ, màu sắc). Quản lý đơn hàng: xem danh sách, chi tiết đơn hàng, cập nhật trạng thái. Quản lý khách hàng và báo cáo doanh số.