1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án cuối kỳ môn học các nền tảng phát triển phần mềm

17 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ Án Cuối Kỳ Môn Học Các Nền Tảng Phát Triển Phần Mềm
Tác giả Phạm Nguyễn Trí Đức, Nguyễn Thanh Hậu, Ngô Thanh Hiền
Trường học Trường Đại Học Văn Lang
Chuyên ngành Các Nền Tảng Phát Triển Phần Mềm
Thể loại đồ án cuối kỳ
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 17
Dung lượng 1,85 MB

Nội dung

- Khả năng mở rộng để đáp ứng nhu cầucủa người dùng cuối Autoscaling - Khả năng cấu hình cơ sở dữ liệu và lớp truy cập dữ liệu để đạt hiệu suất và lưu lượng cao RDS, Aurora, DynamoDB - P

Trang 1

TRƯỜNG ĐẠI HỌC VĂN LANG

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CUỐI KỲ

Môn học:

CÁC NỀN TẢNG PHÁT TRIỂN

PHẦN MỀM

NHÓM: 7

SVTH: Phạm Nguyễn Trí Đức – 2174802010227 Nguyễn Thanh Hậu – 2174802010784 Ngô Thanh Hiền – 2174802010243 LỚP: 222_71ITDS30103_0301

Trang 2

PHÂN CÔNG CÔNG VIỆC

Tên công việc Người phụ trách Ngày bắt đầu Ngày kết thúc

Đề xuất quy trình Đức 20/03/2022 21/03/2022

Đề xuất kiến trúc Đức 21/03/2022 22/03/2022

Vẽ flowchart cho kiến trúc Hậu 23/03/2022 24/03/2022 Giải thích flowchart Hậu 23/03/2022 24/03/2022 Ứng dụng của kiến trúc Hiền 25/03/2022 26/03/2022 Nêu khuyết điểm của hệ thống Hiền 27/03/2022 28/03/2022

Đề xuất giải quyết khuyết

điểm của hệ thống Đức 29/03/2022 30/03/2022 Đưa ra kết luận Hậu 01/04/2022 02/04/2022 Tổng hợp và trình bày lên

word Hiền 01/04/2022 02/04/2022

Trang 3

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU 4

CHƯƠNG 2: ĐỊNH NGHĨA/ KHÁI NIỆM… 5

2.1 Khả năng mở rộng để đáp ứng nhu cầu của người dùng cuối (Autoscaling) 5

2.2 Khả năng cấu hình cơ sở dữ liệu và lớp truy cập dữ liệu để đạt hiệu suất và lưu lượng cao (RDS, Aurora, DynamoDB) 5

2.3 Phân phối tải hiệu quả (Load balancer) 5

2.4 Cơ sở hạ tầng tự phục hồi khỏi các trường hợp dịch vụ bị lỗi (Autoscaling) 5

2.5 Bảo mật quyền truy cập vào môi trường khi đội ngũ phát triển mở rộng (S2S VPN, VPC, Sec Group, NACL,) 6

2.6 Chiến lược lưu trữ lâu dài cho các đối tượng không hoạt động hơn 6 tháng (Backup/S3/Glacier) 6

CHƯƠNG 3: QUI TRÌNH/ KIẾN TRÚC HOẠT ĐỘNG/ ỨNG DỤNG 8

3.1 Quy trình: 8

3.2 Kiến trúc hoạt động: 9

3.2.1 Giải thích: 10

3.3 Ứng dụng: 12

CHƯƠNG 4: NHỮNG KHUYẾT ĐIỂM CỦA HỆ THỐNG 13

CHƯƠNG 5: ĐỀ XUẤT GIẢI QUYẾT KHUYẾT ĐIỂM CỦA HỆ THỐNG 13

CHƯƠNG CUỐI: KẾT LUẬN 14

Trang 4

CHƯƠNG 1: GIỚI THIỆU

Một công ty khởi nghiệp nhỏ ở giai đoạn đầu của hoạt động của

họ Hiện tại, kiến trúc của họ sử dụng một LAMP stack với MySQL, Apache và PHP đang chạy trên một máy tính để bàn trong văn phòng nhỏ của họ Giống như nhiều công ty khởi nghiệp nhỏ khác,

họ tự tin rằng họ sẽ trở thành điều mới mẻ và mong đợi một sự phát triển đáng kể, nhanh chóng, nhưng không được định lượng được số người dùng trong vài tháng tới

- Khả năng mở rộng để đáp ứng nhu cầucủa người dùng cuối (Autoscaling)

- Khả năng cấu hình cơ sở dữ liệu và lớp truy cập dữ liệu để đạt hiệu suất và lưu lượng cao (RDS, Aurora, DynamoDB)

- Phân phối tải hiệu quả (Load balancer)

- Cơ sở hạ tầng tự phục hồi khỏi các trường hợp dịch vụ bị lỗi (Autoscaling)

- Bảo mật quyền truy cập vào môi trường khi đội ngũ phát triển mở rộng (S2S VPN, VPC, Sec Group, NACL,)

- Chiến lược lưu trữ lâu dài cho các đối tượng không hoạt động hơn 6 tháng (Backup/S3/Glacier)

Và mục tiêu cần đạt đề xuất một kiến trúc có thể quản lý, bảo mật, có khả năng mở rộng, hiệu suất cao, hiệu quả, linh hoạt, sẵn sàng sử dụng và có khả năng phục hồi cho phép startup phát triểntrong tương lai Kiến trúc này nên đặc biệt giải quyết các yêu cầu/lo ngại được miêu tả ở trên

Trang 5

CHƯƠNG 2: ĐỊNH NGHĨA/ KHÁI NIỆM…

2.1 Khả năng mở rộng để đáp ứng nhu cầu của người dùng cuối (Autoscaling)

Cho phép người dùng có một con số chính xác về số lượng EC2 instance khả dụng để xử lý…tải của application Chúng ta có thể tạo ra một tập collections của các EC2 instance, được gọi

là…Auto Scaling Group Người dùng cũng có thể chỉ định được số

lượng EC2 instance min của từng Auto Scaling Group, và Auto Scaling sẽ điều chỉnh nhằm đảm bảo số lượng EC2 instace cung cấp cho hệ thống không bao giờ dưới con số này Ngược lại, người dùng cũng có thể chỉ định số lượng EC2 instance max của từng Auto Scaling Group để đảm bảo số lượng EC2 instance cung cấp cho hệ thống không bao giờ vượt quá con số max Nếu người dùng muốn chỉ định sức chứa mong muốn, người dùng có thể tạo group ngay tại thời điểm đó hoặc bất kì thời điểm nào sau này, Auto Scale sẽ luôn đảm bảo người dùng có đủ số lượng EC2 instance như mong muốn Và nếu chúng ta chỉ định các scaling policy, Auto Scale có thể thực hiện launch hoặc terminate các instance dựa trên nhu cầu tăng hay giảm của Application

2.2 Khả năng cấu hình cơ sở dữ liệu và lớp truy cập dữ liệu để đạt hiệu suất và lưu lượng cao (RDS, Aurora, DynamoDB)

RDS (Relational Database Service) là dịch vụ cơ sở dữ liệu dựa trên đám mây của AWS Nó cung cấp nhiều tuỳ chỉnh cấu hình nhằm tối ưu hoá hiệu suất cơ sở dữ liệu bao gồm lựa chọn loại instance, kích thước đĩa cứng, cấu hình IOPS, kích thước bộ nhớ và vCPU

2.3 Phân phối tải hiệu quả (Load balancer)

RDS (Relational Database Service) là dịch vụ cơ sở dữ liệu dựa trên đám mây của AWS Nó cung cấp nhiều tuỳ chỉnh cấu hình nhằm tối ưu hoá hiệu suất cơ sở dữ liệu bao gồm lựa chọn loại

Trang 6

instance, kích thước đĩa cứng, cấu hình IOPS, kích thước bộ nhớ và vCPU

2.4 Cơ sở hạ tầng tự phục hồi khỏi các trường hợp dịch vụ bị lỗi (Autoscaling)

DynamoDB là dịch vụ cơ sở dữ liệu NoSQL được cấu hình để

có hiệu suất và khả năng lưu trữ cao DynamoDB có thể được cấu hình để đáp ứng nhu cầu lưu trữ dữ liệu lớn của khách hàng bằng cách điều chỉnh tốc độ đọc và ghi và kích thước bộ đệm Nó cũng

hỗ trợ tính năng tự động bổ sung, giúp khách hàng nâng giảm khả năng lưu trữ dựa trên nhu cầu của họ

2.5 Bảo mật quyền truy cập vào môi trường khi đội ngũ phát triển mở rộng (S2S VPN, VPC, Sec Group, NACL,)

Để có hiệu suất và lưu lượng cao với RDS, Aurora hoặc DynamoDB trên AWS, cần nghiên cứu các tuỳ chọn cấu hình khả dụng của mỗi dịch vụ và điều chỉnh chúng nhằm đáp ứng nhu cầu lưu trữ và truy cập thực tế

2.6 Chiến lược lưu trữ lâu dài cho các đối tượng không hoạt động hơn 6 tháng (Backup/S3/Glacier)

Phân phối tải hiệu quả (load balancer) trên AWS là một dịch

vụ cung cấp bởi Amazon Web Services (AWS) nhằm tự động phân

bổ tải giữa nhiều máy chủ EC2, để tăng cường sự sẵn sàng, tính

ổn định và hiệu năng của các ứng dụng web Load balancer hoạt động bằng việc phân bổ lưu lượng truy cập đến những máy chủ EC2 khác nhau dựa trên các thuật toán cân bằng tải, để giảm thiểu tải giữa nhiều máy chủ nhằm ngăn ngừa các sự cố mạng do quá tải AWS cung cấp ba loại load balancer: Classic Load Balancer (cân bằng tải cổ điển) , Application Load Balancer (cân bằng tải ứng dụng) và Network Load Balancer (cân bằng tải hệ thống)

Trang 7

Cơ sở hạ tầng tự phục hồi khỏi các trường hợp dịch vụ bị lỗi (Autoscaling) AWS là một tính năng tự động của AWS nhằm giảm ảnh hưởng của sự cố gây nên trên nhiều dịch vụ trong hệ thống Khi một dịch vụ gặp sự cố, Autoscaling AWS sẽ tự động thêm hoặc giảm số lượng phiên bản của dịch vụ đó nhằm giảm thiểu thiệt hại cho những thành viên bên trong hệ thống Tính năng này cũng đảm bảo rằng các phiên bản mới được tung ra với những bản cập nhật và nâng cấp mới nhất nhằm khắc phục các sự cố của phiên bản cũ hơn Khi sự cố được xử lý, Autoscaling AWS sẽ tự động điều chỉnh lại số lượng phiên bản của dịch vụ nhằm tránh lãng phí tài nguyên và chi phí

Bảo mật quyền truy cập vào môi trường khi đội ngũ phát triển

mở rộng đề cập đến các biện pháp bảo mật đảm bảo sự an toàn, riêng tư và cách li với các tài nguyên và dữ liệu quan trọng trong môi trường AWS Các biện pháp bao gồm:

+ Sử dụng S2S VPN (Site-to-Site Virtual Private Network) để thiết lập sự riêng tư và bảo mật dữ liệu giữa các mạng trên site và mạng AWS

+ Khởi tạo VPC (Virtual Private Cloud) nhằm tạo nên một môi trường mạng trong đó phe phát triển được phát triển, chạy ứng dụng và truy cập các dịch vụ AWS một cách tự do và an toàn + Thiết lập các security group (nhóm bảo mật) nhằm kiểm soát quyền truy cập mạng và nội dung tin truyền giữa các EC2 instances trong VPC theo nhu cầu

+ Thiết lập NACL (Network Access Control Lists) để quản lý quyền truy cập của subnet theo các quy tắc (rules) đã có sẵn

- Chiến lược lưu trữ lâu dài cho các đối tượng không hoạt động hơn

6 tháng trên AWS bao gồm:

Trang 8

1 Xác định các đối tượng không hoạt động hơn 6 tháng: Xác định các đối tượng trong hệ thống ứng dụng của công ty khởi nghiệp mà không được sử dụng trong vòng 6 tháng

2 Di chuyển các đối tượng sang S3: Các đối tượng này có thể được di chuyển sang S3 để lưu trữ dữ liệu lâu dài với giá cả phù hợp Sử dụng tính năng lưu trữ đối tượng cấp độ lớp và tuổi thọ của đối tượng trên S3 có thể được cấu hình để giảm chi phí lưu trữ

3 Di chuyển các đối tượng sang Glacier: Nếu đối tượng không được truy cập trong một khoảng thời gian lâu hơn, chúng có thể được di chuyển sang Glacier để giảm chi phí lưu trữ Glacier là một dịch vụ lưu trữ dữ liệu rất rẻ và có thể được sử dụng để lưu trữ dữ liệu lâu dài

4 Xóa các đối tượng không cần thiết: Nếu công ty khởi nghiệp quyết định loại bỏ các đối tượng không cần thiết, chúng có thể được xóa để giảm chi phí lưu trữ

Trang 9

CHƯƠNG 3: QUI TRÌNH/ KIẾN TRÚC HOẠT ĐỘNG/ ỨNG

DỤNG

3.1 Quy trình:

- Xác định yêu cầu và khuyết điểm của hệ thống hiện tại: Điều này bao gồm việc xác định các yêu cầu và mong muốn của công ty khởi nghiệp, đánh giá các khuyết điểm của hệ thống hiện tại và xác định các thách thức và giải pháp cần thiết để phát triển một hệ thống ứng dụng hiệu quả, mở rộng và an toàn hơn

- Thiết kế kiến trúc: Bao gồm việc thiết kế kiến trúc phân tán của hệ thống ứng dụng, bao gồm các dịch vụ AWS cần sử dụng và cách chúng hoạt động với nhau

- Triển khai và cấu hình: Bao gồm việc triển khai và cấu hình các dịch vụ AWS để phù hợp với kiến trúc đề xuất, bao gồm tạo các môi trường phát triển, kiểm thử và sản xuất

- Đưa hệ thống vào hoạt động và kiểm tra: Bao gồm việc kiểm tra và đưa hệ thống vào hoạt động để đảm bảo tính đúng đắn, độ tin cậy và hiệu suất của nó

- Phát triển và duy trì: Bao gồm việc phát triển và duy trì hệ thống ứng dụng theo yêu cầu của công ty khởi nghiệp, cập nhật và mở rộng các tính năng và khả năng của hệ thống và đảm bảo tính bảo mật và hiệu suất của nó

Với quy trình trên, công ty khởi nghiệp có thể đảm bảo rằng hệ thống ứng dụng của họ được xây dựng và phát triển một cách đúng đắn, mở rộng và hiệu quả, và đáp ứng được các yêu cầu và mong muốn của khách hàng

Trang 10

3.2 Kiến trúc hoạt động:

1 Người dùng truy cập ứng dụng thông qua Amazon Route 53, định tuyến đến Amazon CloudFront

2 Amazon CloudFront phân phối nội dung tĩnh từ Amazon S3 và chuyển tiếp yêu cầu đến Application Load Balancer (ALB)

3 ALB phân phối tải đến một hoặc nhiều ứng dụng trên Amazon EC2 hoạt động trong một Auto Scaling group

4 Các ứng dụng trên Amazon EC2 đọc và ghi dữ liệu từ Amazon RDS hoặc Amazon Aurora (nếu sử dụng cơ sở dữ liệu quan hệ) và/hoặc Amazon DynamoDB (nếu sử dụng cơ sở dữ liệu NoSQL)

5 Tất cả các tài nguyên nằm trong một Amazon VPC để cung cấp bảo mật và kiểm soát truy cập

6 Các Security Groups và NACL được sử dụng để hạn chế và kiểm soát lưu lượng truy cập đến các tài nguyên trong VPC

7 Sử dụng AWS Certificate Manager để quản lý và triển khai chứng chỉ SSL/TLS cho tên miền và ứng dụng của bạn

8 Sử dụng AWS WAF để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công phổ biến và các yêu cầu độc hại

9 Tạo sao lưu và lưu trữ dữ liệu bằng cách sử dụng Amazon S3 (cho nội dung tĩnh và sao lưu dữ liệu) và Amazon Glacier (cho lưu trữ lâu dài)

10.Sử dụng Amazon CloudWatch để giám sát và thu thập thông tin về tài nguyên và ứng dụng của bạn

11.Nếu cần, thiết lập kết nối AWS Site-to-Site VPN hoặc AWS Direct Connect

để kết nối mạng văn phòng của bạn với môi trường AWS của bạn

12.Cuối cùng, xem xét việc áp dụng quy trình phát triển liên tục (CI/CD) bằng cách sử dụng các dịch vụ như AWS CodeCommit, CodeBuild, CodeDeploy

và CodePipeline

Trang 11

3.2.1 Giải thích:

Flow chart đã đề xuất ở trên mô tả chi tiết các bước cần thực hiện để triển khai hệ thống AWS đề xuất Dưới đây là giải thích chi tiết cho các bước của flow chart:

1 Xác định yêu cầu hệ thống: Bước này bao gồm xác định các yêu cầu chức năng và phi chức năng của hệ thống và cân nhắc các giới hạn kỹ thuật, ngân sách và thời gian cho dự án

2 Thiết kế kiến trúc: Bước này bao gồm thiết kế kiến trúc phân tán cho hệ thống, bao gồm các dịch vụ AWS cần sử dụng và cách chúng hoạt động với nhau Kiến trúc này bao gồm việc triển khai các khu vực (Regions) và khu vực khả dụng (Availability Zones), tạo các mạng riêng ảo (VPC), cấu hình các máy chủ ảo (EC2), tạo các cơ sở dữ liệu quan hệ (RDS) hoặc phi quan hệ (DynamoDB), sử dụng dịch vụ phân phối nội dung (CloudFront) và bảo mật với các tính năng như S3 Encryption, VPC, Security Group, NACL, WAF,

Trang 12

3 Triển khai và cấu hình: Bước này bao gồm việc triển khai và cấu hình các dịch vụ AWS để phù hợp với kiến trúc đề xuất, bao gồm tạo các môi trường phát triển, kiểm thử và sản xuất Trong bước này, có thể sử dụng các công cụ tự động hóa như AWS CloudFormation hoặc AWS Elastic Beanstalk để tự động hóa quá trình triển khai

4 Kiểm tra hệ thống: Bước này bao gồm kiểm tra và đưa hệ thống vào hoạt động để đảm bảo rằng nó hoạt động chính xác, đáng tin cậy và hiệu quả Các kiểm tra bao gồm kiểm tra đơn vị, kiểm tra tích hợp và kiểm tra hệ thống

5 Giám sát và quản lý: Bước này bao gồm việc giám sát hệ thống để đảm bảo rằng nó hoạt động hiệu quả và đáp ứng yêu cầu của người dùng cuối AWS cung cấp các dịch vụ giám sát như CloudWatch để giám sát tài nguyên, đo lường các chỉ số hiệu suất và cảnh báo sự cố

6 Bảo trì và nâng cấp: Bước này bao gồm việc thực hiện các bảo trì định kỳ và nâng cấp hệ thống để đảm bảo rằng nó luôn hoạt động hiệu quả và đáp ứng yêu cầu của người dùng cuối AWS cung cấp các dịch vụ như AWS CodeDeploy và AWS Elastic Beanstalk để tự động hóa các quy trình triển khai

và nâng cấp

7 Giải quyết sự cố: Bước này bao gồm việc giải quyết các sự cố

hệ thống để đảm bảo rằng hệ thống luôn hoạt động đúng cách và đáp ứng yêu cầu của người dùng cuối AWS cung cấp các dịch vụ như AWS CloudFormation, AWS CloudTrail và AWS Trusted Advisor để giúp giải quyết các sự cố hệ thống

8 Tối ưu hoá hiệu suất: Bước này bao gồm việc tối ưu hoá hiệu suất của hệ thống để đảm bảo rằng nó hoạt động hiệu quả

và đáp ứng yêu cầu của người dùng cuối AWS cung cấp các dịch vụ như AWS CloudFront, AWS Elastic Load Balancing và AWS Auto Scaling để tối ưu hoá hiệu suất của hệ thống

Trang 13

Với các bước trên, công ty khởi nghiệp có thể triển khai hệ thống AWS đề xuất và đảm bảo rằng nó hoạt động đáp ứng yêu cầu của người dùng cuối, đồng thời cải thiện hiệu suất và giảm chi phí lưu trữ dữ liệu lâu dài

Trang 14

3.3 Ứng dụng:

- Xây dựng một ứng dụng web: Công ty khởi nghiệp có thể sử dụng kiến trúc

đề xuất để xây dựng một ứng dụng web đáp ứng nhu cầu của người dùng Sử dụng các dịch vụ AWS như EC2, RDS, S3, CloudFront và Elastic Load Balancer giúp tăng cường hiệu suất và khả năng mở rộng của ứng dụng

- Xây dựng một ứng dụng di động: Công ty khởi nghiệp cũng có thể sử dụng kiến trúc đề xuất để xây dựng một ứng dụng di động đáp ứng nhu cầu của người dùng Sử dụng các dịch vụ AWS như Mobile Hub, API Gateway, Lambda và DynamoDB giúp tăng cường khả năng mở rộng và hiệu suất của ứng dụng di động

- Xây dựng một ứng dụng IoT: Công ty khởi nghiệp có thể sử dụng kiến trúc

đề xuất để xây dựng một ứng dụng IoT Sử dụng các dịch vụ AWS như IoT Core, Kinesis, Lambda và DynamoDB giúp kết nối và quản lý các thiết bị IoT, xử lý dữ liệu và tăng cường khả năng mở rộng và hiệu suất của ứng dụng

- Xây dựng một ứng dụng dịch vụ: Công ty khởi nghiệp có thể sử dụng kiến trúc đề xuất để xây dựng một ứng dụng dịch vụ đáp ứng nhu cầu của khách hàng Sử dụng các dịch vụ AWS như API Gateway, Lambda, DynamoDB và S3 giúp tăng cường khả năng mở rộng và hiệu suất của ứng dụng dịch vụ

Vì vậy, các ứng dụng của dự án trên là rất đa dạng và phù hợp với nhiều loại hình công ty khởi nghiệp và ứng dụng khác nhau, từ ứng dụng web đến ứng dụng IoT và dịch vụ đám mây

Ngày đăng: 09/04/2024, 06:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w