Để đảm bảo tính triển khai độc lập và thống nhất về mặt môi trường, dự án sử dụng Docker để đóng gói các microservices thành các container. Ở giai đoạn thử nghiệm, các microservices được đóng gói và triển khai trên môi trường AWS EC258.
Quá trình đóng gói các microservices và chạy các container được minh họa trong hình 3.39.
Hình 3.39. Đóng gói các microservices và tạo container
Mỗi một microservice sẽ chứa một Dockerfile59 nhằm định nghĩa các đặc tả về môi trường thực thi của ứng dụng. Docker sẽ tạo ra các Docker Image60 bằng cách đọc các chỉ thị trong Dockerfile. Để định nghĩa và chạy các container, công cụ Docker Compose61 được dùng. Các thông số để định nghĩa cho các container được mô tả trong một tệp tin có tên là “docker-compose.yml”. Ví dụ về cách tổ chức cũng như nội dung của một Dockerfile và các thông số mô tả cấu hình cho các container được thể hiện trong hình 3.40.
58 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html 59 https://docs.docker.com/engine/reference/builder/
60 https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/containers_and_images.html 61 https://docs.docker.com/compose/
74
Sau khi định nghĩa được các thông số cấu hình, cách đơn giản nhất để tạo và chạy các dịch vụ được định nghĩa trong “docker-compose.yml” là sử dụng câu lệnh “docker- compose-up” [33].
Hình 3.40. Mô tả của một Dockerfile và docker-compose.yml
Tóm lược chương 3
Kết thúc chương 3, luận văn đã tập trung giải thích quy trình xây dựng ứng dụng CEMS theo hướng kiến trúc microservices và micro-frontends. Các nội dung chính trong quá trình phát triển ứng dụng đã được mô tả bao gồm:
• Phân tích tổng quan yêu cầu chức năng của bài toán.
• Thiết kế kiến trúc tổng thể cho tầng dịch vụ theo hướng microservices.
• Xây dựng các thành phần chính của microservices.
• Thiết kế kiến trúc tổng thể và cài đặt các micro-frontends.
• Các loại hình kiểm thử đã được áp dụng trong dự án bao gồm kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử giao diện.
• Tổng quát về quá trình đóng gói các microservices sử dụng docker, docker compose.
75
KẾT LUẬN