0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng dẫn Dockerize Dự án Microservices E-commerce Demo của Google

Đăng vào 2 ngày trước

• 3 phút đọc

Cập nhật Gần Nhất: 10/11/2024

Xin chào các bạn! 👋

Lại là mình đây! Hôm nay mình sẽ chia sẻ với các bạn cách triển khai một dự án e-commerce theo kiến trúc microservices bằng Docker, dựa trên một demo tuyệt vời từ Google: microservices-demo. 🚀

Mục tiêu của bài viết

Trong bài viết này, mình sẽ hướng dẫn các bạn clone dự án, build từng service và chạy toàn bộ hệ thống để có cái nhìn tổng quan về cách hoạt động của kiến trúc microservices. Mục tiêu chính là:

  • Thể hiện quy trình Dockerize và triển khai microservices mà không gặp lỗi.
  • Nhận diện và xử lý các vấn đề phát sinh trong quá trình build.

Tổng quan về Dự án Microservices

Dự án này bao gồm 12 service chính, một số trong đó sử dụng các ngôn ngữ lập trình khác nhau. Sơ đồ kiến trúc có sẵn trong repo giúp chúng ta hình dung được sự phụ thuộc giữa các service, giúp dễ dàng hơn trong việc debug sau này.

Danh sách Các Service

Service Ngôn ngữ Mô tả
frontend Go HTTP server không yêu cầu đăng nhập.
cartservice C# Lưu trữ sản phẩm trong giỏ hàng.
productcatalogservice Go Cung cấp danh sách sản phẩm.
currencyservice Node.js Chuyển đổi tiền tệ.
paymentservice Node.js Xử lý thanh toán.
shippingservice Go Dự đoán chi phí vận chuyển.
emailservice Python Gửi email xác nhận.
checkoutservice Go Điều phối quá trình đặt hàng.
recommendationservice Python Đề xuất sản phẩm.
adservice Java Cung cấp quảng cáo văn bản.
loadgenerator Python/Locust Mô phỏng hành vi mua sắm.

Bắt đầu với Docker

1. Cài đặt yêu cầu

Trước hết, đảm bảo máy của bạn đã cài đặt Docker. Sau đó, clone dự án từ GitHub:

Copy
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git

2. Dockerize Từng Service

Lần 1: Dockerize các Service Độc Lập

Bắt đầu với những service không phụ thuộc vào bất kỳ service nào khác:

  • adservice
  • productcatalogservice
  • cartservice
  • shippingservice
  • currencyservice
  • paymentservice
  • emailservice

Trong terminal, điều hướng vào thư mục tương ứng và chạy lệnh build cho từng service:

bash Copy
docker build -t <tên-service> .

Sau khi hoàn tất, chúng ta sẽ cấu hình file docker-compose.yml để chạy các service này cùng với Redis như sau:

yml Copy
services:
  adservice:
    image: adservice

  redis:
    image: redis:6-alpine

  ... (các service khác)

Khởi chạy với:

Copy
docker compose up -d

Lần 2: Dockerize Các Service Phụ Thuộc

Tiến hành tương tự cho các service recommendationservice, frontend, checkoutservice, loadgenerator. Hãy nhớ xây dựng lại các Dockerfile nếu cần thiết.

3. Cấu hình môi trường

Trong file docker-compose.yml, mọi biến môi trường cần thiết đã được trích xuất từ file manifest Kubernetes tương ứng. Điều này giúp đảm bảo các service có thể giao tiếp với nhau thành công.

4. Chạy Hệ Thống Đầy Đủ

Cuối cùng, sau khi hoàn tất việc cấu hình và Dockerize, hãy chắc chắn rằng tất cả các service đang chạy bằng lệnh:

Copy
docker compose ps

Kết luận

Hy vọng bài hướng dẫn này sẽ giúp bạn có cái nhìn rõ ràng về cách Dockerize một dự án microservices và triển khai nó một cách hiệu quả. Hãy để lại câu hỏi hoặc ý kiến dưới bài viết, mình sẽ rất vui lòng hỗ trợ! Chúc các bạn thành công và hẹn gặp lại ở những bài viết tiếp theo!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào