Tổng quan
Việc xây dựng các ứng dụng web với khả năng mở rộng và dễ dàng quản lý trở thành một yêu cầu quan trọng. Các hệ thống website bán hàng ngày càng phức tạp và đòi hỏi phải xử lý nhiều yêu cầu từ người dùng một cách nhanh chóng và hiệu quả. Kiến trúc microservices và công nghệ container như Docker Swarm đã nổi lên như những giải pháp hiệu quả để giải quyết các vấn đề này.
Khi triển khai hệ thống theo kiến trúc miroservices còn có tính ứng dụng cao trong thực tế như phù hợp với các doanh nghiệp khi triển khai các hệ thống website bán hàng phức tạp. Dễ dàn quản lí, bảo trì cũng như tăng hiệu quả vận hành.
Đối tượng nghiên cứu
- Kiến trúc microservices: về định nghĩa, kiến trúc hệ thống cũng như những lợi ích đạt được
- Docker: Định nghĩa và kiến trúc của Docker, cách viết một Dockerfile,
- Docker Swarm: khái niệm, các tính năng cũng như kiến trúc của Docker Swarm. Cách viết một Docker Compose file và triển khai hệ thống các cluster.
Phạm vi nghiên cứu
- Các chức năng của một hệ thống website bán hàng: thanh toán, đăng nhập, mua hàng, tìm kiếm sản phẩm, …
- Docker và Docker Swarm: Tập trung vào việc sử dụng Docker để đóng gói các dịch vụ microservices và sử dụng Docker Swarm để triển khai và quản lý chúng.
- Triển khai hệ thống: Sử dụng Docker Swarm để triển khai các dịch vụ microservices trên một cluster và đảm bảo các dịch vụ hoạt động một cách chính xác.
Nội dung đề tài
Microservices là một kỹ thuật phát triển phần mềm và là một biến thể của kiến trúc hướng dịch vụ (SOA-Service Oriented Architecture), cấu trúc một ứng dụng như một tập hợp các dịch vụ được kết nối với nhau. Đây là một thiết kế kiến trúc để xây dựng các ứng dụng phân tán thông qua việc sử dụng các container.

Kiến trúc Swarm bao gồm một tập hợp các node có ít nhất một node chính (Manager-Leader) và một số node worker có thể là máy ảo hoặc vật lý.
- Swarm: là một cluster của nhiều node trong chế độ Swarm, thay vì phải chạy các container bằng câu lệnh thì ta sẽ thiết lập các services để phân bổ các bản replicas tới các node.
- Manager Node: Là node nhận các define service từ user, quản lý theo dõi các services và tác vụ đang chạy trong Swarm, điều phối và chỉ định các node worker làm việc
- Worker Node: là một máy vật lý hay máy ảo chạy các tác vụ được chỉ định bởi node manager
- Task: là các Docker containers thực thi các lệnh đã định nghĩa trong service. Tác vụ này sẽ do node Manager phân bổ xuống và sau khi việc phân bổ này task không thể chuyển sang một worker khác. Nếu task thất bại, node Manager sẽ chỉ định một phiên bản mới của tác vụ đó cho một node có sẵn khác trong Swarm.
- Services: Nó định nghĩa các thông số cơ bản như image của container và số lượng các container replicas (bản sao) mà bạn muốn chạy trên Docker Swarm.

Kết luận
Qua đồ án này, chúng em nhận thấy rõ những lợi ích và thách thức của việc triển khai ứng dụng theo kiến trúc microservices. Mặc dù kiến trúc này mang lại nhiều ưu điểm về mặt linh hoạt và khả năng mở rộng nhưng việc quản lý và duy trì một hệ thống microservices phức tạp đòi hỏi kiến thức chuyên sâu và các công cụ hỗ trợ hiệu quả. Với những ưu điểm mà kiến trúc microservies mang lại thì đây là một xu hướng phát triển tất yếu và sẽ tiếp tục được ứng dụng rộng rãi trong tương lai, đặc biệt là đối với các hệ thống yêu cầu tính linh hoạt, khả năng mở rộng và độ tin cậy cao. Việc nắm bắt và làm chủ các công nghệ liên quan sẽ giúp chúng em đáp ứng tốt hơn các yêu cầu ngày càng cao của thị trường và người dùng


