1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo architecture of sofware in cloud

28 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Kiến trúc phần mềm trong Cloud
Tác giả Dương Vũ Mạnh Long, Chu Xuân Kiên, Trịnh Hữu Trường, Nghiêm Xuân Văn
Người hướng dẫn TS. Nguyễn Nhất Hải, TS. Trịnh Thành Trung
Trường học Trường Đại học Bách khoa Hà Nội, Viện Công nghệ Thông tin và Truyền thông
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 5,23 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cloud Computing hay còn gọilà điện toán đám mây là một mô hình dịch vụ mà ở đó người dùng có thể truy cập đếncác tài nguyên điện toán dùng chung như mạng, các máy chủ, ứng dụng, dịch vụ,

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

**********

BÁO CÁO

ĐỀ TÀI:

Architecture of Sofware in Cloud

Giảng viên hướng dẫn : TS Nguyễn Nhất Hải

TS Trịnh Thành Trung

Chu Xuân Kiên - 20212609M Trịnh Hữu Trường – 20211039M

Hà Nội, 09 - 2022

1

Trang 2

Mục lục

Mục lục 1

Danh mục hình ảnh 2

I Giới thiệu tổng quan về cloud, aws, azure, gcp 4

II Kiến trúc phần mềm trong Cloud 7

1 Kiến trúc Client server 7

1.1 Giới thiệu 7

1.2 Kiến trúc Client – Server trên Cloud 11

2 Kiến trúc Microservices 15

2.1 Giới thiệu 15

2.2 Kiến trúc Microservices trên Cloud 16

3 Kiến trúc 3 tầng 27

3.1 Tổng quan về kiến trúc 3 tầng 27

3.2 Mô hình kiến trúc 3 tầng trong AWS 28

III Kết luận 32

Tài liệu tham khảo 33

Trang 3

Danh mục hình ảnh

Hình 1: Mô hình Cloud Computing 4

Hình 2: Mô hình Client Server 8

Hình 3: Phương pháp sizing 9

Hình 4: Mô hình kiến trúc Client - Server khi triển khai trên Cloud 13

Hình 5: Kiến trúc monolithic và microservices 15

Hình 6: Kiến trúc tổng thể của 1 hệ thống shop sử dụng microservices 16

Hình 7: Kiến trúc microservices (cụ thể AWS) 17

Hình 8: Kiến trúc mircroservices AWS cho ứng dụng Sales Portal for Automotive 19

Hình 9: Sơ đồ luồng thực hiện theo mô hình kiến trúc 20

Hình 10: Kiến trúc microservices trên Azure Kubernetes Service 22

Hình 11: Kiến trúc Microservice trên Google Cloud 24

2

Trang 4

I Giới thiệu tổng quan về cloud, aws, azure, gcp

Công nghệ ngày càng phát triển đã sinh ra những mô hình, dịch vụ phần mềm mới, đadạng, tiện lợi và phù hợp với nhu cầu của người dùng Cloud Computing hay còn gọi

là điện toán đám mây là một mô hình dịch vụ mà ở đó người dùng có thể truy cập đếncác tài nguyên điện toán dùng chung như mạng, các máy chủ, ứng dụng, dịch vụ, lưutrữ chỉ thông qua kết nối mạng máy tính vào mọi lúc mọi nơi, dễ dàng tiếp cận và phục

vụ theo yêu cầu Những tài nguyên này có thể được tạo ra hoặc loại bỏ bằng ngườidùng cuối mà không cần sự can thiệp của các nhà cung cấp dịch vụ Hình dưới mô tảcác thiết bị và người dùng cuối sử dụng Cloud Computing cũng như các dịch vụ mà nócung cấp

Hình 1: Mô hình Cloud ComputingĐặc điểm của Cloud Computing là khả năng truy cập tài nguyên thông qua kết nốimạng băng thông rộng, tốc độ cao Người dùng có thể tùy chọn cấu hình dịch vụ theomong muốn Tài nguyên trên Cloud Computing sẽ được sử dụng chung cho nhiềungười với nhiều mục đích khác nhau Khi sử dụng tài nguyên điện toán thì sẽ được

Trang 5

giám sát, kiểm tra theo thời gian thực Tài nguyên có thể tăng giảm tự động mà khôngcần người điều phối Khi kết hợp nhiều máy chủ với lượng tài nguyên nhàn rỗi, nhữngngười dùng có nhu cầu có thể cùng nhau chia sẻ lượng tài nguyên đó và từ đó sẽ tối ưuđược năng lực của các tài nguyên này Khi dùng chung như vậy thì chi phí dịch vụcũng sẽ rẻ hơn.

Cloud Computing sẽ giúp người dùng truy cập dịch vụ mọi lúc mọi nơi chỉ cần kết nốimạng Internet Các ứng dụng và dữ liệu lưu trữ không cần phải gắn trên các thiết bịphần cứng mang theo người Các ứng dụng trên điện toán đám mây cũng có thể dễdàng mở rộng quy mô, dễ dàng thay đổi lượng tài nguyên theo nhu cầu Các nhà pháttriển ứng dụng có thể tiết kiệm chi phí mua, lắp đặt và bảo trì hạ tầng máy chủ, khôngtốn chi phí thuê địa điểm đặt máy chủ, từ đó tiết kiệm chi phí tối đa Các phần mềmtrên điện toán đám mây cũng có thể dễ dàng nâng cấp bảo trì cập nhật liên tục màkhông sợ gián đoạn, có khả năng chống lỗi cao Mạng lưới điện toán đám mây là trêntoàn cầu, do đó các dịch vụ trên cloud có thể truy cập ở mọi nơi trên thế giới, điều nàycũng là yếu tố quan trọng cho các nhà phát triển ứng dụng quy mô toàn cầu Ngoài ra,các thông tin, dữ liệu lưu trữ cũng không bị mất do thiên tai, lũ lụt ở một địa điểm nào

đó do dữ liệu lưu trữ trên điện toán đám mây được sao lưu ở khắp nơi trên thế giới,đảm bảo sự an toàn của dữ liệu Các cơ chế bảo mật dữ liệu của điện toán đám mâycũng rất mạnh mẽ

Có 3 loại điện toán đám mây phổ biến hiện nay là:

- Cơ sở hạ tầng như một dịch vụ (IaaS): là loại dịch vụ đám mây mang tính chất

hạ tầng nên nó cho phép người dùng khả năng tùy chỉnh tối đa Thông thường đượcdùng cho các nhà phát triển ứng dụng, các công ty, doanh nghiệp có kiến thức về côngnghệ thông tin Nó cho phép tạo ra các máy chủ ảo, tự xây dựng cấu hình máy ảo đó từ

vi xử lý, bộ nhớ, mạng, hệ điều hành …

- Nền tảng như một dịch vụ (PaaS): là loại dịch vụ đám mây mang tính chất nềntảng tức là không phải chỉ cung cấp các máy ảo rỗng mà thay vào đó là các máy ảo đãđược cài các môi trường phát triển phần mềm, có các môi trường lập trình, thư viện,phương thức triển khai hệ thống phần mềm Nhờ đó, các doanh nghiệp phát triển phầnmềm chỉ còn phải tập trung vào business của mình

5

Trang 6

- Phần mềm như một dịch vụ (SaaS): là một loại điện toán đám mây phổ biếnnhất hiện nay Nó cung cấp đến người dùng những phần mềm hoàn chỉnh và có thể sửdụng được ngay Các phần mềm này không cần phải tải về máy mà thay vào đó là chạytrực tiếp trên trình duyệt nhờ đó có thể hoạt động trên đa nền tảng, tiết kiệm thời giancài đặt phần mềm.

Với những tiềm năng và lợi thế lớn như vậy nên ngành điện toán đám mây đã và đangphát triển rất mạnh mẽ Hàng loạt các nhà cung cấp dịch vụ điện toán đám mây ra đời

để bắt kịp xu thế Trong số đó phải kể đến những nhà cung cấp dịch vụ điện toán đámmây hàng đầu bao gồm Amazon Web Services (AWS), Microsoft Azure, Google CloudPlatform (GCP) Đây là 3 nhà cung cấp dịch vụ lớn nhất đến thời điểm hiện tại vớihàng trăm dịch vụ khác nhau Amazon Web Service được ra đời năm 2006 doAmazon.com phát triển Có thể coi là nhà cung cấp dịch vụ ra đời sớm nhất và hiệncũng đang chiếm thị phần lớn nhất AWS là một nền tảng đám mây toàn diện với hơn

200 dịch vụ từ tính toán, lưu trữ đến giám sát, triển khai … Microsoft Azure doMicrosoft phát triển ra đời muộn hơn AWS vào năm 2010, nó cũng chứa trong mìnhhơn 200 dịch vụ, đặc biệt là các dịch vụ SaaS Office 365 như Word, Excel,Powerpoint… đã rất phổ biến với đại đa số người dùng văn phòng Google CloudPlatform được cung cấp bởi Google ra đời vào tháng 4 năm 2008 với hơn 90 dịch vụ,tập trung chủ yếu vào các nhà phát triển ứng dụng vừa và nhỏ, đặc biệt là mạnh mẽtrong các dịch vụ AI Machine Learning Ngoài ra, ở trong nước ta cũng có nhiều đơn

vị đã triển khai các dịch vụ cloud như Viettel IDC, FPT Smart Cloud… đều là cáccông ty công nghệ hàng đầu của Việt Nam

Đối với các nhà phát triển ứng dụng trên điện toán đám mây Ngoài việc học cách sửdụng các dịch vụ của nhà cung cấp điện toán thì việc thiết kế phần mềm trên một cơ sở

hạ tầng mới mẻ cũng đòi hỏi những kiến trúc phần mềm phù hợp và tối ưu Do đó,trong đề tài này chúng em sẽ đi sâu vào tìm hiểu và nghiên cứu một số các kiến trúcphần mềm được sử dụng trong điện toán đám mây

Trang 7

II Kiến trúc phần mềm trong Cloud

1 Kiến trúc Client server

1.1 Giới thiệu

Client Server là một kiến trúc rất phổ biến hiện nay được sử dụng trong nhiều phầnmềm đặc biệt là các phần mềm network, lưu trữ tập trung Với kiến trúc này, sẽ cónhiều client yêu cầu thực hiện một số công việc nào đó và gửi yêu cầu đến một server -

là một máy tính tập trung lưu trữ các thông tin chung của các client hoặc có khả năng

xử lý các yêu cầu của các client Các máy client sẽ gửi yêu cầu một dịch vụ nào đó đếnserver và nhận lại kết quả tương ứng từ server Ví dụ, khi người dùng truy cập vào mộttrang web thì sẽ yêu cầu tải các file html, css… từ server để có thể hiển thị nội dungtrang web trên trình duyệt Server sẽ luôn phải chạy hay còn gọi là zero down time vàchờ các yêu cầu từ client trong khi các máy client có thể không phải hoạt động liêntục Thông thường, một server sẽ cung cấp một lớp truy cập trong suốt với clients haynói cách khác là client không cần biết đến các thành phần xử lý đứng sau server nhưphần cứng hoặc phần mềm mà server chạy Client thông thường là các máy trạm hoặcmáy tính cá nhân, điện thoại di động trong khi server là một máy tính có trên mạng và

có sức mạnh tính toán cao Mô hình này đặc biệt hiệu quả trong trường hợp client vàserver thực hiện các task khác nhau với tập tính chạy khác nhau

7

Trang 8

Hình 2: Mô hình Client Server

Mô hình này có thể coi như một kiến trúc phần mềm phân tán do hai bên client vàserver lưu trữ các thông tin khác nhau và trao đổi dữ liệu của nhau qua mạng máy tính.Server sẽ chạy một vài chương trình để chia sẽ tài nguyên với client Một clientthường không chia sẻ bất kỳ tài nguyên nào của nó, nhưng nó sẽ gửi các yêu cầu đếnserver và sau đó sẽ nhận lại phản hồi từ server Một cặp request-response này là mộtphiên làm việc Ví dụ phổ biến của kiến trúc client-server là hệ thống email, worldwide web… Vai trò của server là chia sẻ chương trình, dịch vụ cho một hoặc nhiềuclient

Trong kiến trúc Client-Server, server thường được thiết kế như một hệ thống tập trung

để phục vụ nhiều client Do đó, năng lực tính toán, bộ nhớ của server sẽ phải tăng lênnếu khối lượng client hoặc công việc tăng lên Để tăng khả năng tính toán của mộtserver lên người ta thường sử dụng hai phương pháp là Horizontal Scaling và VerticalScaling

Trang 9

Hình 3: Phương pháp sizingHorizontal Scaling là thêm một máy hoặc một node vào hạ tầng server Chương trìnhserver lúc này sẽ được chạy trên nhiều máy tính khác nhau, khối lượng công việc nhậnrequest từ client sẽ được chia sẻ trên các máy tính này và nhờ đó làm tăng khả năngphục vụ các client Điều phức tạp ở đây là phải làm sao kết nối các máy tính lại vớinhau và phân chia công việc ra sao trong một tập hợp các máy tính riêng lẻ này Thôngthường người ta sẽ tạo thành các cluster máy tính, trong đó các máy tính sẽ cùng nốiđến một Load Balancing (cân bằng tải) - có nhiệm vụ phân phối các request của clientđến các máy tính trong cluster.

Có rất nhiều thuật toán phân tải trong đó chia làm hai loại là thuật toán phân tải động

và thuật toán phân tải tĩnh Trong thuật toán phân tải động có thể kể đến các thuật toánnhư:

- Least connection: Tìm máy tính đang có ít kết nối nhất và gửi request đến máynày

9

Trang 10

- Weighted least connection: Người quản trị có thể gán các giá trị trọng số khácnhau đến từng máy tính trong cluster, ví dụ các máy tính có khả năng tính toán

và bộ nhớ lớn hơn sẽ có trọng số lớn hơn tức là phục vụ được nhiều requesthơn

- Weighted response time: Tính trung bình thời gian phản hồi của từng máytính, kết hợp với số kết nối đang kết nối đến từng máy tính Nhờ đó, phản hồitới client sẽ là nhanh nhất

- Resource-based: Trên mỗi máy tính đều có thể tính toán tài nguyên hiện tạinhư tính khả dụng của CPU, RAM … dựa vào các thông số này, LoadBalancing sẽ quyết định request sẽ được gửi vào máy tính nào

Thuật toán phân tải tính bao gồm các thuật toán:

- Round robin: Trong một tập hợp các máy tính được đánh số từ 1 đến N, cácrequest đến sẽ được lần lượt đưa đến máy tính 1 đến N và quay vòng lại

- Weighted round robin: Cho phép người quản trị gán các trọng số khác nhauđến từng máy tính Request sẽ được gán từ máy tính có trọng số lớn đến nhỏ vàquay vòng

- IP hash: Mỗi IP gửi request đến sẽ được chuyển sang một mã hash, mỗi máytính sẽ phục vụ một dải mã hash cố định hay một dải IP cố định tương ứng.Load balancing có thể kết hợp với một DNS resolver để routing tên miền về địa chỉcủa Load balancing Với một cluster máy tính thì không thể thiếu Load Balancingđược

Ngoài ra, với Horizontal Scaling còn một vấn đề quan trọng khác là việc cài đặt mớimột máy tính và vấn đề tăng thêm hoặc giảm bớt số lượng máy một cách tự động Cóthể dựa vào số lượng request đến và lượng tài nguyên hiện tại của cả cluster Để có thể

tự động tạo một máy tính mới có thể chạy chương trình server hiện tại thì việc setupmôi trường trên máy tính mới là rất khó khăn, do đó người ta nghĩ ra sử dụng kháiniệm container để có thể dễ dàng sinh ra một máy ảo có thể chạy ngay chương trìnhcủa server hiện tại Để có thể quản lý các container này, người ta lại nghĩ ra các hệthống quản lý container như Kubernetes, Docker Swarm …

Trang 11

Vertical Scaling là phương pháp thêm tài nguyên cho một máy tính duy nhất Ví dụ đểtăng khả năng tính toán lên thì người ta lắp thêm nhiều CPU vào máy tính server, đểtăng bộ nhớ RAM người ta lắp thêm nhiều RAM vào máy tính server, để tăng bộ nhớlưu trữ người ta lắp nhiều ổ cứng HDD, SSD vào máy tính server Tuy nhiên việc thêmnhiều tài nguyên sẽ khó có thể tăng mãi, đồng thời tính chịu lỗi sẽ giảm xuống do chỉ

có một máy sẽ dễ làm server down time hơn là nhiều máy tính

Có thể thấy ưu điểm của horizontal scaling là khả năng mở rộng ít phụ thuộc vào phầncứng, ít thời gian down time hơn, tăng khả năng chịu lỗi và tăng hiệu năng trong khi

đó với vertical sẽ lợi thế về chi phí, không cần giao tiếp phức tạp giữa các máy tính,đơn giản trong việc bảo trì, ít phải thay đổi phần mềm

Với vấn đề bảo mật, ở phía server luôn phải đảm bảo tính bảo mật và khả năng chịu lỗitrước các cuộc tấn công Server có nhiệm vụ lưu trữ và xử lý tập trung, do đó tất cả các

dữ liệu của các client sẽ được lưu tập trung tại server Các client khác nhau sẽ có thểlưu trữ các thông tin cá nhân của mình trên server, nhưng không có quyền lấy hoặcchỉnh sửa thông tin của client khác Máy tính server sẽ luôn tiếp nhận request từ client,

vì vậy trong các client hoàn toàn có thể có các client có ý đồ xấu, muốn đánh sậpserver hoặc ăn cắp hoặc chỉnh sửa thông tin trái phép không phải của mình ở trênserver Các cuộc tấn công phổ biến có thể kể đến như tấn công từ chối dịch vụ(DDOS), tấn công SQL Injection, … Mỗi kiểu tấn công đều mang đến hậu quả nặng

nề, làm tê liệt dịch vụ hoặc làm mất, sai dữ liệu Đặc biệt với các ngành quan trọngnhư giáo dục, dịch vụ, ngân hàng thì bảo mật server lại càng quan trọng

Một số cách bảo mật cho server là sử dụng rate limit để đảm bảo lượng truy cập vàoserver không bị tăng đột biến, sử dụng mật mã hóa để mã hóa dữ liệu truyền đi giữaclient và server, và mã hóa dữ liệu của client trên server để đảm bảo kẻ tấn công khôngthể xem và chỉnh sửa thông tin trên server

1.2 Kiến trúc Client – Server trên Cloud

Việc xây dựng phần mềm trên cloud computing bằng kiến trúc client-server là hết sức

rõ ràng và cụ thể Việc triển khai một phần mềm chạy trên cloud đã cho thấy mục đíchcủa nó là cho nhiều người có thể sử dụng Bản thân môi trường cloud là một mạngmáy tính kết nối với nhau qua mạng internet và bất kỳ thiết bị nào trên thế giới cũng

11

Trang 12

có thể kết nối đến các mạng cloud Do đó, rõ ràng những phần mềm được triển khaitrên cloud sẽ phục vụ cho rất nhiều client với quy mô lớn và mang tầm thế giới.Trong mô hình client server thì cloud computing thường đóng vai trò là server Khixây dựng xong các chương trình phần mềm cho server, nhà phát triển sẽ phải đưachương trình lên các máy chủ server Các máy chủ này có thể là các host do chính nhàphát triển xây dựng hoặc thuê từ bên thứ 3 tùy vào mục đích, độ bảo mật và chi phítriển khai Với phương án thuê bên thứ 3 thì hiện nay có rất nhiều các host của cácdoanh nghiệp đang cung cấp, thậm chí có những host free Việc triển khai trên các hostnày chỉ sử dụng cho các chương trình server nhỏ và phạm vi hoạt động nhỏ do bảnthân các đơn vị này cũng không thể cung cấp tài nguyên lớn và phủ được mạng lướimáy tính khắp thế giới được Trái lại, với cloud thì khả năng tính toán và xử lý là rấtcao bởi siêu máy tính và số lượng lớn các data center phủ khắp các quốc gia trên thếgiới.

Bản thân bên trong server của mô hình client server cũng sẽ được xây dựng bằng nhiềukiến trúc phần mềm khác Do đó, với mô hình client-server thì đề tài chủ yếu sẽ chỉ tậptrung ở cách mà giao tiếp giữa client và server trong môi trường cloud computing

Để chạy chương trình server trên cloud, trước hết chúng ta cần các dịch vụ tính toán.Nếu trong AWS ta có thể kể đến các dịch vụ có thể chạy chương trình server như:

- EC2: là một dịch vụ cho phép cung cấp các máy tính ảo hóa theo nhu cầu, cóthể tự do lựa chọn ram, số nhân, bộ nhớ lưu trữ, hệ điều hành… do đó mangtính linh động rất cao

- Elastic BeanStalk: là một dịch vụ triển khai mở rộng các ứng dụng web mộtcách dễ dàng chỉ cần cung cấp source code mà không cần quan tâm nhiều đếnvấn đề triển khai

- Elastic Container Service: Là một dịch vụ điều phối các container, dùng để xâydựng server chạy nhiều service trên nhiều máy ảo khác nhau Dùng cho cácchương trình server phức tạp và quy mô lớn

- Amazon Lambda: Là một dịch vụ phi máy chủ hay serverless, đây là dịch vụchỉ thuần tính toán, không lưu trữ bất kỳ thông tin gì Nó dựa vào các event và

dữ liệu từ các service khác và thực hiện tính toán sau đó trả lại kết quả

Trang 13

Ở phía client nếu là ứng dụng điện thoại hoặc desktop sẽ cần sử dụng các phần mềm

để có thể kết nối lên server, còn nếu là trang web thì cần sử dụng trình duyệt để có thểtruy cập được vào dịch vụ server Do đó với phần mềm dưới client thì không liên quanđến các dịch vụ cloud computing

Để có thể giao tiếp giữa client và server thì trong mô hình cloud có thể xây dựng nhưhình dưới đây

Hình 4: Mô hình kiến trúc Client - Server khi triển khai trên Cloud

Client khi truy cập dịch vụ của server sẽ có thể gọi trực tiếp vào địa chỉ public IP củaserver, tuy nhiên địa chỉ IP là khó nhớ và có thể bị thay đổi Hơn nữa, nếu giả sử server

mở rộng theo Horizontal Scaling để tạo nên nhiều máy hơn thì lúc đó số lượng IP cũnglớn theo Do đó, để dễ dàng cho việc truy cập đến server người ta sử dụng hệ thốngDNS (Domain Name System) Khi muốn gửi request đến server người dùng sẽ sửdụng một tên miền dễ nhớ và gửi tên miền này đến DNS Resolver, DNS Resolver sẽtìm địa chỉ IP ứng với tên miền này và gửi lại cho client, lúc này client sẽ dùng địa chỉ

IP này để gửi request đến server Trong AWS, dịch vụ Route 53 là dịch vụ được sửdụng để quản lý các địa chỉ của server và cập nhật địa chỉ này đến các DNS Resolvertheo tên miền xác định từ ban đầu

13

Trang 14

Như đã trình bày ở phần trước, để có thể sử dụng Horizontal Scaling thì cần đến loadbalancer Trong AWS, dịch vụ Elastic Load Balancer sẽ có nhiệm vụ phân tải về cácmáy tính để đảm bảo hệ thống scaling hoạt động ổn định Cuối cùng, các chương trìnhcủa server sẽ được chạy trên một hoặc nhiều máy ảo EC2 Đây là mô hình giao tiếpgiữa client và server đơn giản nhất khi sử dụng Route 53, Elastic Load Balancer,Amazon EC2.

Nâng cao hơn, do việc xây dựng một server là để phục vụ nhiều client và tại bất cứthời điểm nào Do đó, server luôn phải đảm bảo tính sẵn sàng tức là thời gian downtime tốt nhất phải là zero Nhưng trong quá trình phát triển phần mềm của server thìkhông thể tránh khỏi việc phải cập nhật, bổ sung tính năng hoặc vá các lỗ hổng Vì thế,các chiến lược triển khai chương trình server ra đời Trong số đó có mô hình CanaryDeployment, tức là chiến lược triển khai từng phần Giả sử khi có một phiên bản mớiv2 cần triển khai, ta sẽ xây dựng thêm một cụm Elastic Load Balancer và EC2 và đặtcùng với cụm hiện tại đang triển khai phiên bản v1 Lúc này sử dụng Route 53 đểchuyển hướng các request dần sang cụm máy chủ v2 Ban đầu sẽ là 10% lượng requestvào v2, 90% vào v1 Sau đó, tiến hành kiểm tra độ ổn định của v2 Nếu thấy tốt thì cóthể tăng dần lượng request sang cụm v2 và giảm dần ở v1 Đến cuối cùng nếu không

có lỗi ở cụm v2 thì tiến hành thay thế hoàn toàn cụm v1 bằng cụm v2 mới Chiến lượctriển khai v2 hoàn tất Với cách triển khai này thì sẽ đảm bảo phát hiện được lỗi kịpthời và khả năng rollback cũng rất nhanh Tránh được thời gian downtime mà vẫn đảmbảo chất lượng của version mới

Kiến trúc client-server nhìn chung là một kiến trúc nền tảng và đóng vai trò rất quantrọng trong các phần mềm hiện đại ngày nay

Ngày đăng: 18/06/2024, 17:24

HÌNH ẢNH LIÊN QUAN

Hình 1: Mô hình Cloud Computing - báo cáo architecture of sofware in cloud
Hình 1 Mô hình Cloud Computing (Trang 4)
Hình 2: Mô hình Client Server - báo cáo architecture of sofware in cloud
Hình 2 Mô hình Client Server (Trang 8)
Hình 3: Phương pháp sizing - báo cáo architecture of sofware in cloud
Hình 3 Phương pháp sizing (Trang 9)
Hình 4: Mô hình kiến trúc Client - Server khi triển khai trên Cloud - báo cáo architecture of sofware in cloud
Hình 4 Mô hình kiến trúc Client - Server khi triển khai trên Cloud (Trang 13)
Hình 5: Kiến trúc monolithic và microservices - báo cáo architecture of sofware in cloud
Hình 5 Kiến trúc monolithic và microservices (Trang 15)
Hình 6: Kiến trúc tổng thể của 1 hệ thống shop sử dụng microservices - báo cáo architecture of sofware in cloud
Hình 6 Kiến trúc tổng thể của 1 hệ thống shop sử dụng microservices (Trang 16)
Hình 10: Kiến trúc microservices trên Azure Kubernetes Service - báo cáo architecture of sofware in cloud
Hình 10 Kiến trúc microservices trên Azure Kubernetes Service (Trang 17)
Hình 11: Kiến trúc Microservice trên Google Cloud - báo cáo architecture of sofware in cloud
Hình 11 Kiến trúc Microservice trên Google Cloud (Trang 20)
Hình 12:  Kiến trúc 3 tầng Tầng presentation là nơi người dùng nhìn thấy và tương tác ứng dụng - báo cáo architecture of sofware in cloud
Hình 12 Kiến trúc 3 tầng Tầng presentation là nơi người dùng nhìn thấy và tương tác ứng dụng (Trang 22)
Hình 13:Kiến trúc 3 tầng sử dụng IaaS - báo cáo architecture of sofware in cloud
Hình 13 Kiến trúc 3 tầng sử dụng IaaS (Trang 24)
Hình 14: Kiến trúc 3 tầng serverless - báo cáo architecture of sofware in cloud
Hình 14 Kiến trúc 3 tầng serverless (Trang 25)
Hình 15: Kiến trúc 3 tầng serverless - báo cáo architecture of sofware in cloud
Hình 15 Kiến trúc 3 tầng serverless (Trang 26)

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

TÀI LIỆU LIÊN QUAN

w