Triển khai tự động ứng dụng web bán quần áo dựa trên kiến trúc microservices trên aws dùng github actions và terraform

Automated deployment of microservices-based web applications on AWS using GitHub Actions and Terraform

Xây dựng thành công một ứng dụng web bán quần áo dựa trên kiến trúc microservices, triển khai và quản lý tự động trên nền tảng AWS với sự hỗ trợ của
các công cụ như GitHub Actions và Terraform. Quy trình tích hợp và triển khai liên tục (CI/CD) sẽ được tự động hóa hoàn toàn bằng GitHub Actions, trong khi cơ sở hạ tầng sẽ được quản lý hiệu quả bằng Terraform. Hệ thống sẽ đảm bảo tính ổn định và khả năng mở rộng. Ngoài ra, sinh viên tham gia thực hiện đồ án sẽ nắm vững kiến thức và kỹ năng về các công nghệ như Docker, Terraform, AWS, GitHub và GitHub Actions, từ đó nâng cao khả năng ứng dụng các công nghệ này vào các dự án thực tế

TÁC GIẢ

Nguyễn Đức Trung Kiên, Phùng Nam Thanh

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

Tổng quan

  • Sử dụng các kiến thức đã học được trong trường cũng như tìm hiểu về các kiến thức và công nghệ mới để áp dụng vào việc thực hiện đồ án.
  • Tìm hiểu và nghiên cứu về các công nghệ phổ biến trong việc xây dựng ứng dụng theo kiến trúc microservices, cung cấp và cấu hình cơ sở hạ tầng, triển khai quy trình CI/CD.
  • Tạo ra được hệ thống triển khai tự động ứng dụng web dựa trên kiến trúc microservices trên nền tảng điện toán đám mây AWS.

Đối tượng nghiên cứu

  • Hiểu và sử dụng được các cộng cụ, công nghệ như:
  • Microservices Architechture.
  • GitHub.
  • GitHub Actions.
  • Amazon Web Services (AWS): Elastic Container Registry (ECR), Elastic
  • Container Service (ECS), Relational Database Service (RDS).
  • Terraform
  • Docker

Tổng quan mô hình

Microservices là một kiểu kiến trúc phần mềm, trong đó các module được chia thành các services rất nhỏ (microservices) và độc lập với nhau. Các services này thường giao tiếp với nhau thông qua việc gọi API lẫn nhau. Thông qua kiến trúc này, mỗi dịch vụ có thể dễ dàng mở rộng quy mô và cập nhật mà không làm gián đoạn hay ảnh hưởng đến bất kỳ dịch vụ nào khác trong ứng dụng. Trong kiến trúc microservices, các developer có thể lựa chọn công nghệ phù hợp nhất cho từng services, từ ngôn ngữ lập trình đến cơ sở dữ liệu và các công cụ khác

image 44

Infrastructure as a Service (IaaS) là một mô hình dịch vụ đám mây trong đó các nhà cung cấp dịch vụ đám mây cung cấp các tài nguyên hạ tầng tính toán qua Internet. Các tài nguyên này bao gồm các máy chủ ảo, lưu trữ, mạng, và các dịch vụ hạ tầng cơ bản khác. Người dùng có thể thuê và quản lý các tài nguyên này theo nhu cầu mà không cần phải sở hữu và duy trì phần cứng vật lý.

image 45

Kết luận

Đồ án của nhóm về triển khai tự động ứng dụng web bán quần áo dựa trên kiến trúc microservices trên AWS đã đạt được nhiều kết quả tích cực. Việc xây dựng một ứng dụng với các chức năng cốt lõi, phân chia thành các dịch vụ riêng biệt, và triển khai trên nền tảng AWS đã giúp ứng dụng đạt tính linh hoạt và khả năng mở rộng. Bằng việc sử dụng Elastic Container Service (ECS) và Elastic Container Registry (ECR), nhóm đã thực hiện tốt việc quản lý container và lưu trữ Docker images.

Việc sử dụng GitHub Actions cho quy trình tích hợp và triển khai liên tục (CI/CD) đã góp phần tự động hóa quá trình triển khai. Đồng thời, Terraform đã hỗ trợ nhóm trong việc quản lý cơ sở hạ tầng một cách tự động và chuẩn hóa, giúp đảm bảo tính nhất quán của các tài nguyên AWS.

Tuy nhiên, nhóm cũng đã nhận thấy một số hạn chế cần khắc phục. Việc chưa có các module Terraform để tăng tính tái sử dụng và thiếu quy trình kiểm thử code cho các hành động pull từ các branch là những điểm yếu cần cải thiện. Ngoài ra, việc chưa thiết lập các môi trường khác nhau cho các loại hành động cũng là một nhược điểm. Nhìn chung, việc tiếp tục hoàn thiện đồ án và bổ sung kiến thức về công nghệ sẽ giúp nhóm khắc phục những thiếu sót còn lại và nâng cao chất lượng của hệ thống ứng dụng.