Tổng quan đồ án
Đồ án chuyên ngành “Triển khai, giám sát và đánh giá hoạt động của các ứng dụng” trên nền tảng đám mây tập trung vào việc triển khai và quản lý các ứng dụng sử dụng các dịch vụ AWS như Amazon Elastic Container Registry (ECR), Elastic Container Service (ECS), CloudWatch, Relational Database Service (RDS),… và các công cụ CI/CD (Jenkins, Github Actions) và tự động hóa hạ tầng cloud (Terraform).
Trước tiên, Amazon ECR được sử dụng để lưu trữ các container images, tạo điều kiện thuận lợi cho việc quản lý và phân phối các ứng dụng container. Tiếp theo, ECS được triển khai để quản lý việc chạy các container này trên môi trường đám mây, giúp tăng cường khả năng mở rộng và tính linh hoạt của ứng dụng. CloudWatch đóng vai trò quan trọng trong việc giám sát và ghi nhận các log, giúp theo dõi hiệu suất của hệ thống và phát hiện sớm các sự cố. Điều này giúp tối ưu hóa hiệu suất và đảm bảo sự ổn định của dịch vụ. RDS (MSSQL) dùng để lưu trữ dữ liệu người dùng với tính linh hoạt cao và khả năng sao lưu và phục hồi. Jenkins và GitHub Actions là công cụ CI/CD giúp tự động hóa quy trình xây dựng, kiểm thử, và triển khai phần mềm. Terraform là công cụ hạ tầng như mã (IaC) giúp quản lý và tự động hóa hạ tầng cloud.
Tổng quan, đồ án này không chỉ tập trung vào việc triển khai các dịch vụ cloud cơ bản mà còn nhấn mạnh vào các chiến lược DevOps, bao gồm tự động hóa quá trình triển khai, giám sát liên tục, và tối ưu hóa tài nguyên, nhằm xây dựng một hệ thống ứng dụng linh hoạt, an toàn và hiệu quả trên nền tảng AWS.
Mục đích của đề tài
Mục đích của đề tài này là cung cấp giải pháp toàn diện cho việc triển khai, quản lý và vận hành ứng dụng trên đám mây, nhằm đáp ứng các yêu cầu thực tế về hiệu quả, chi phí, linh hoạt và bảo mật trong môi trường công nghệ thông tin hiện đại.
Nội dung đồ án

DevOps (Development and Operations) là một phương pháp tiếp cận trong việc phát triển phần mềm nhằm thúc đẩy sự hợp tác giữa các nhóm phát triển (Development) và vận hành (Operations). Mục tiêu của DevOps là cải thiện hiệu suất, tăng cường độ tin cậy, và giảm thời gian phát triển phần mềm thông qua việc sử dụng các công cụ tự động hóa và các quy trình CI/CD (Continuous Integration/Continuous Deployment).
Triển khai ứng dụng web Messenger dựa trên giao diện và chức năng của Messenger do Facebook phát triển, cho người dùng có thể nghe gọi, trò chuyện và giám sát quá trình triển khai ứng dụng lên AWS.

VPC (Virtual Private Cloud) của AWS là một dịch vụ cho phép người dùng thiết lập một mạng ảo riêng biệt trong môi trường đám mây AWS. Với VPC, người dùng có thể kiểm soát toàn diện cấu hình mạng, bao gồm lựa chọn phạm vi địa chỉ IP, tạo subnets, thiết lập route tables và cấu hình gateways. Điều này giúp tăng cường bảo mật và quản lý lưu lượng mạng hiệu quả trong các ứng dụng đám mây.

Cách thức hoạt động
- WebUI Service ở Public subnet sẽ được thông qua Internet mọi người có thể kết nối với WebUI Service thông qua Internet Gateway (IGW).
- Các Service như netcore_service, nodejs_service ở trong Private subnet, bên ngoài không thể truy cập vào các Service này được. Các Service này giao tiếp với Internet thông qua NAT Gateway. Route Table sẽ định tuyến traffic từ Private Service đến NAT Gateway (Đặt trong Public subnet) và mỗi NAT Gateway cần một Elastic IP và từ đó ra Internet Gateway ra Internet.
- WebUI Service sẽ kết nối với các Service Private thông qua Endpoint trong một ECS Resource.

Mô hình Amazon ECS Application Lifecycle mô tả quá trình triển khai và quản lý ứng dụng trên Amazon ECS. Đầu tiên, hình ảnh container được lưu trữ trên Amazon Elastic Container Registry (ECR). Sau đó, ứng dụng được định nghĩa qua một task definition. Tiếp theo, ứng dụng được triển khai dưới dạng task hoặc service trên ECS. Cuối cùng, ứng dụng được giám sát để đảm bảo hiệu suất và tính khả dụng dựa trên Cloudwatch.

Kết quả
Video demo: https://drive.google.com/drive/folders/1VVlXjJK5PsOrkAiHBKra7vWhr3AaK1u
Hướng phát triển
Trong tương lai, nhằm hoàn thiện hệ thống DevOps và mở rộng quy mô để đáp ứng nhu cầu của các doanh nghiệp trong môi trường sản xuất, chúng tôi xin đề xuất một số hướng phát triển sau:
- Thành lập đội ngũ DevOps có kiến thức sâu rộng và kinh nghiệm để triển khai và vận hành quy trình phát triển phần mềm cho doanh nghiệp, cũng như hỗ trợ các nhóm khác.
- Liên tục cập nhật và áp dụng những công nghệ tiên tiến mới nhất trên thế giới.
- Xây dựng cơ sở hạ tầng đủ lớn để đáp ứng các yêu cầu và nguyên tắc của DevOps và hệ thống CI/CD.
- Tăng cường đào tạo nội bộ cho nhân viên để nâng cao kỹ năng và hiểu biết về CI/CD, DevOps và Cloud Computing.
- Thiết lập quy trình tự động hóa mạnh mẽ, giảm thiểu công việc thủ công nhằm tăng hiệu quả và độ chính xác trong các giai đoạn phát triển và triển khai phần mềm.
- Tạo điều kiện cho việc hợp tác và chia sẻ kiến thức giữa các đội nhóm để tối ưu hóa quá trình làm việc và phát triển sản phẩm.
- Thường xuyên kiểm tra và đánh giá hệ thống để phát hiện và khắc phục kịp thời các vấn đề phát sinh, đảm bảo hệ thống luôn hoạt động ổn định và hiệu quả.
- Mở rộng mối quan hệ hợp tác với các đối tác công nghệ để tiếp cận những giải pháp mới và cải tiến hiện tại.


