Nghiên Cứu Triển Khai và Đánh Giá Các Nền Tảng Serverless Mã Nguồn Mở Dựa Trên Kubernetes

Luận văn tốt nghiệp nghiên cứu tốt nghiệp mạng máy tính và truyền thông nghiên cứu triển khai và đánh giá các nền tảng serverless, điều tra thực trạng, phân tích số liệu, đề xuất

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2021

97
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CÁM ƠN

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN

1.1. Tổng quan tình hình nghiên cứu

1.2. Mục tiêu, đối tượng và phạm vi nghiên cứu

1.2.1. Mục tiêu của đề tài

1.2.2. Đối tượng nghiên cứu của đề tài

1.2.3. Phạm vi nghiên cứu của đề tài

1.3. Tính mới và tính ứng dụng thực tế của đề tài

1.4. Đóng góp của đề tài

1.5. Cấu trúc của khóa luận

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Giới thiệu khái niệm ảo hóa và trình bày kiến trúc ảo hóa phổ biến

2.2. Giới thiệu công nghệ ảo hóa container Docker

2.3. Giới thiệu công nghệ quản trị và điều phối container Kubernetes

2.4. Giới thiệu tổng quan về kiến trúc Microservices, một nền tảng ban đầu của Serverless

2.5. Giới thiệu khái niệm về mô hình Serverless, ưu và nhược điểm của nó và trình bày một số trường hợp sử dụng mô hình Serverless Computing

3. CHƯƠNG 3: CÁC NỀN TẢNG SERVERLESS MÃ NGUỒN MỞ

3.1. Tiêu chí lựa chọn

3.2. Các nền tảng Serverless mã nguồn mở

4. CHƯƠNG 4: TRIỂN KHAI CÁC NỀN TẢNG SERVERLESS MÃ NGUỒN MỞ

4.1. Cài đặt môi trường thực nghiệm

4.1.1. Cài đặt Docker và Kubernetes

4.1.2. Cài đặt Apache OpenWhisk

4.1.3. Cài đặt Kubeless

4.1.4. Cài đặt OpenFaaS

4.2. Triển khai thử nghiệm ứng dụng AI trên nền tảng Serverless

4.3. Xây dựng ứng dụng tính số Fibonacci trên nền tảng Serverless

4.3.1. Xây dựng và triển khai

5. CHƯƠNG 5: ĐÁNH GIÁ CÁC NỀN TẢNG SERVERLESS MÃ NGUỒN MỞ

5.1. Thực nghiệm 1 - Đánh giá thời gian phản hồi

5.2. Thực nghiệm 2 - Đánh giá sự ảnh hưởng của ngôn ngữ lập trình phổ biến đến thời gian phản hồi của các function

5.3. Thực nghiệm 3 - Đánh giá sự ảnh hưởng của giới hạn bộ nhớ và giải thuật cho function

5.4. Thực nghiệm 4 - Đánh giá sự ảnh hưởng trong khả năng tính toán CPU

6. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Kết luận

6.2. Hướng phát triển

TÀI LIỆU THAM KHẢO

PHỤ LỤC

1. Cài đặt Docker

2. Cài đặt Kubernetes

3. Tạo cluster sử dụng kubeadm

4. Apache OpenWhisk

4.1. Cài đặt Apache OpenWhisk

4.2. Đoạn mã mẫu "Hello, world!"

5. Kubeless

5.1. Cài đặt Kubeless

5.2. Đoạn mã mẫu "Hello, world!"

5.3. Đoạn mã mẫu Fibonacci đệ quy

5.4. Đoạn mã mẫu Fibonacci giải thuật O(n)

5.5. Đoạn mã mẫu Fibonacci giải thuật O(log n)

6. Ứng dụng AI và tính số Fibonacci trên nền tảng Serverless

6.1. Một số lệnh khởi tạo function pigo-openfaas

6.2. Mã nguồn website tính số Fibonacci trên nền tảng Serverless

Tóm tắt

I. Tổng quan về Nghiên Cứu Nền Tảng Serverless Mã Nguồn Mở

Nền tảng Serverless mã nguồn mở dựa trên Kubernetes đang trở thành xu hướng trong việc phát triển ứng dụng. Kiến trúc này cho phép các nhà phát triển tập trung vào việc viết mã mà không cần lo lắng về cơ sở hạ tầng. Việc nghiên cứu và đánh giá các nền tảng này giúp hiểu rõ hơn về khả năng ứng dụng trong môi trường máy chủ cận biên.

1.1. Ảnh hưởng của Kiến Trúc Serverless đến Phát Triển Ứng Dụng

Kiến trúc Serverless giúp giảm thiểu thời gian phát triển và triển khai ứng dụng. Các nhà phát triển có thể dễ dàng mở rộng và quản lý ứng dụng mà không cần lo lắng về việc duy trì máy chủ.

1.2. Lợi Ích của Việc Sử Dụng Nền Tảng Mã Nguồn Mở

Nền tảng mã nguồn mở như Kubernetes cho phép tùy biến và mở rộng linh hoạt. Điều này giúp các tổ chức tiết kiệm chi phí và tăng cường khả năng kiểm soát.

II. Thách Thức trong Triển Khai Nền Tảng Serverless cho Hệ Thống Cận Biên

Mặc dù có nhiều lợi ích, việc triển khai nền tảng Serverless cho hệ thống máy chủ cận biên cũng gặp phải nhiều thách thức. Tài nguyên hạn chế và độ trễ trong xử lý dữ liệu là những vấn đề cần được giải quyết.

2.1. Tài Nguyên Hạn Chế và Ảnh Hưởng đến Hiệu Suất

Hệ thống máy chủ cận biên thường có tài nguyên hạn chế, điều này ảnh hưởng đến khả năng xử lý và hiệu suất của các ứng dụng Cloud-native.

2.2. Độ Trễ trong Xử Lý Dữ Liệu

Độ trễ trong việc truyền tải dữ liệu từ thiết bị đến máy chủ có thể làm giảm hiệu suất của ứng dụng. Việc tối ưu hóa quy trình xử lý là rất cần thiết.

III. Phương Pháp Triển Khai Nền Tảng Serverless Dựa Trên Kubernetes

Triển khai nền tảng Serverless trên Kubernetes yêu cầu một quy trình rõ ràng và hiệu quả. Các bước triển khai cần được thực hiện một cách cẩn thận để đảm bảo tính khả thi và hiệu suất.

3.1. Cài Đặt Môi Trường Triển Khai

Cài đặt môi trường bao gồm việc thiết lập DockerKubernetes. Điều này tạo ra nền tảng vững chắc cho việc triển khai các ứng dụng Microservices.

3.2. Triển Khai Các Nền Tảng Serverless

Các nền tảng như Apache OpenWhisk, Kubeless, và OpenFaaS cần được triển khai và cấu hình đúng cách để tối ưu hóa hiệu suất.

IV. Đánh Giá Hiệu Suất của Các Nền Tảng Serverless Mã Nguồn Mở

Đánh giá hiệu suất của các nền tảng Serverless là rất quan trọng để xác định tính khả thi của chúng trong môi trường cận biên. Các tiêu chí đánh giá bao gồm thời gian phản hồi và khả năng mở rộng.

4.1. Thời Gian Phản Hồi của Các Function

Thời gian phản hồi là một trong những chỉ số quan trọng nhất để đánh giá hiệu suất của các nền tảng Serverless. Việc sử dụng công cụ như JMeter giúp đo lường chính xác.

4.2. Khả Năng Mở Rộng và Tính Linh Hoạt

Khả năng mở rộng của các nền tảng Serverless cho phép ứng dụng xử lý khối lượng công việc lớn mà không gặp phải vấn đề về hiệu suất.

V. Kết Luận và Hướng Phát Triển Tương Lai của Nền Tảng Serverless

Nền tảng Serverless mã nguồn mở dựa trên Kubernetes có tiềm năng lớn trong việc phát triển ứng dụng cho hệ thống máy chủ cận biên. Tương lai của công nghệ này hứa hẹn sẽ mang lại nhiều cải tiến và ứng dụng mới.

5.1. Tiềm Năng Phát Triển trong Ngành Công Nghiệp

Sự phát triển của Edge computingCloud-native applications sẽ thúc đẩy nhu cầu về các nền tảng Serverless trong tương lai.

5.2. Các Xu Hướng Mới trong Công Nghệ Serverless

Các xu hướng như MicroservicesContainer orchestration sẽ tiếp tục định hình cách thức triển khai và quản lý ứng dụng trong môi trường Serverless.

10/07/2025

Trích đoạn nội dung tài liệu

Chương 1 Giới thiệu tổng quan Chương này tập trung trình bày tổng quan về tình hình nghiên cứu liên quan đến chủ để tạo cơ sở nền tảng ban đầu, từ đó nêu ra phương pháp thực hiện một cách khái quát làm tiền đề cho quá trình nghiên cứu.1 Tổng quan tình hình nghiên cứu Hiện nay, sự phổ biến và gia tăng không ngừng về số lượng của các thiết bị IoT (Internet of Things) yêu cầu xử lý dữ liệu và thời gian phản hồi nhanh. Tuy nhiên, việc sử dụng điện toán đám mây (Cloud Computing) sẽ làm chậm quá trình truyền nhận và xử lý do các máy chủ ở cách xa nguồn dữ liệu. Trong những năm gần đây, kiến trúc điện toán cận biên (Edge Computing) xuất hiện và có thể giải quyết được vấn đề giảm độ trễ khi truyền nhận dữ liệu, tăng khả năng xử lý với hiệu suất tốt hơn [2]. Tương tự như điện toán đám mây, điện toán cận biên cũng có thể triển khai các ứng dụng và các dịch vu trong môi trường độc lập bằng công nghệ ảo hóa (Virutalization), cụ thể hơn là các máy ảo (Virtual Machine) [3].

Tuy nhiên, kiến trúc ảo hóa truyền thống Hypervisor chưa tận dụng hết tài nguyên hệ thống. Ví dụ, một máy ảo khi khởi động sẽ chiếm hết tài nguyên và tách biệt hoàn toàn với hệ thống máy chủ. Bên cạnh đó, công nghệ ảo hóa container (Containerization) cho phép các phần mềm được đóng gói thực thi trên nhiều kiến trúc phần cứng và xây dựng nhanh, gọn, nhẹ phù hợp với việc khởi tạo ứng dụng tại cạnh biên [4]. Với nguồn tài nguyên tương đối hạn chế tại các hệ thống máy chủ cận biên, việc tối ưu và sử dụng hiệu quả tài nguyên đóng vai trò quan trọng.

Trong những năm gần đây, mô hình Serverless Computing (điện toán "không" máy chu) đã ra đời và nhận được sự quan tâm lớn của cộng đồng [5]. Mô hình Serverless Computing có thể kết hợp cùng công nghệ ảo hóa container để giải quyết vấn đề tối ưu hóa lượng tài nguyên sử dụng, hứa hẹn sẽ nâng cao chất lượng dịch vụ (Quality of Services) bằng cách loại bỏ gánh nặng về cơ sở hạ tang hay việc cấu hình, cài đặt hệ thống và chỉ trả chi phí khi người dùng cần sử dụng [6]. Bên cạnh đó, mô hình Serverless hiện đang được cung cấp bởi một số nhà cung cấp đám mây công cộng (public cloud) như Amazon Lambda, Google Function, Azure Function,. Tuy nhiên, các nhà cung cấp dich vụ Serverless chủ yếu cung cấp giải pháp trên nền điện toán đám mây.

Để triển khai, tùy biến mô hình này trên các nền tảng máy chủ cận biên, các nền tảng Serverless mã nguồn mở là một giải pháp cũng nhận được nhiều sự quan tâm của cộng đồng nghiên cứu [1]. Chang hạn, việc triển khai mô hình điều phối và quản trị container Kubernetes trên một nền tảng thử nghiệm cận biên sử dụng mô hình Serverless mã nguồn mở là OpenFaaS [7]. Nhóm nghiên cứu khác sử dung JMeter đánh giá thời gian phản hôi, thông lượng và tỉ lệ phản hồi thành công của các function (chức năng) trên bốn nền tảng Serverless mã nguồn mở là OpenFaaS, Kubeless, Apache OpenWhisk, Knative được triển khai trên một nút master của Kubernetes [6]. Ở nghiên cứu khoa học [8] nhóm tác giả đã đề xuất và triển khai Serverless dựa trên WebAssembly mà không dùng công nghệ ảo hóa container trên hệ thống máy chủ cận biên.

Trong khóa luận này, tác giả quyết định thực hiện dé tài "Nghiên cứu triển khai và đánh giá các nền tảng Serverless mã nguồn mở dựa trên Kubernetes cho hệ thống máy chủ cận biên" như Apache OpenWhisk, Kubeless, OpenFaaS để có cái nhìn khách quan và đánh giá tính khả thi của việc áp dụng mô hình Serverless cho kiến trúc Edge Computing.2 Mục tiêu, đối tượng và phạm vi nghiên cứu 1.1 Mục tiêu của đề tài * Nghiên cứu, thiết kế mô hình và lựa chọn các nền tảng Serverless tiém năng sử dụng công nghệ ảo hóa container cho hệ thống máy chủ trong kiến trúc điện toán cận biên. « Triển khai và đánh giá các nên tảng Serverless mã nguồn mở dựa trên Kubernetes có thể áp dụng kiến trúc điện toán cận biên.2 Đối tượng nghiên cứu của đề tài » Thiết bi phần cứng: máy ảo VMware * Công nghệ ảo hóa container: Docker * Công nghệ quản trị, điều phối container: Kubernetes * Các nền tảng Serverless mã nguồn mở: Apache OpenWhisk, Kubeless, OpenFaaS. Phạm vi nghiên cứu của đề tài Các nền tảng Serverless mã nguồn mở phổ biến, có cộng đồng hỗ trợ lớn và triển khai trên nền ảo hóa container với Docker và Kubernetes.3 Tính mới và tinh ứng dụng thực tế của dé tài Trong những năm gần đây, các kiến trúc điện toán cận biên, ảo hóa với container, mô hình Serverless là những chủ dé mới rat được quan tâm của cộng đồng nghiên cứu và các doanh nghiệp. Sự phát triển của các ứng dụng thời gian thực (real-time) và các thiết bị IoT yêu cầu thời gian xử lý nhanh, độ trễ thấp va bảo mật.

Điện toán cận biên là một giải pháp cho vấn dé trên khi mà hệ thống máy chủ cận biên sẽ xử lý dữ liệu ngay tại các nút biên trước khi đến đến các đám mây [5]. Tuy nhiên, các hệ thống máy chủ cận biên có tài nguyên hạn chế dẫn đến các ứng dụng phải tận dụng hiệu quả tài nguyên. Để giải quyết van đề trên, việc triển khai mô hình Serverless cho hệ thống máy chủ cận biên sử dụng công nghệ ảo hóa container là một giải pháp tiềm năng [6]. Bên cạnh đó, hệ thống máy chủ cận biên không đồng nhất về kiến trúc và phân tán về cơ sở hạ tầng dẫn đến việc sử dụng mô hình Serverless cho hệ thống máy chủ cận biên để dễ dàng triển khai, quản lý và mở rộng [7].

Đề tài này sẽ tập trung đánh giá và so sánh các nền tảng Serverless mã nguồn mở mới nhất với cộng đồng phát triển lớn và nhiều tiềm năng ứng dung để triển khai cho kiến trúc điện toán cận biên trong tương lai.4 Đóng góp của đề tài Trong để tài này, tác giả tập trung vào những phần sau » Đánh giá tính khả thi của việc triển khai các nền tảng Serverless mã nguồn mở trên kiến trúc điện toán cận biên (Edge Computing). * Triển khai các nền tảng Serverless mã nguồn mở trên kiến trúc máy chủ cận biên (Edge server), cụ thể là Apache OpenWhisk, Kubeless, OpenFaaS. * Đánh giá hiệu suất qua thông qua thời gian phản hồi dưới khối lượng công việc khác nhau.5 Cấu trúc của khóa luận Cấu trúc khóa luận được phân bổ như sau. Chương 2 trình bày cơ sở lý thuyết về ảo hóa, ảo hóa container Docker, quản trị điều phối container Kubernetes, microservices va mô hình Serverless Computing.

Chương 3 trình bày về cai đặt và triển khai các nền tang Serverless mã nguồn mở. Chương 4 đưa ra các tiêu chí để lựa chọn đánh giá các nền tảng Serverless mã nguồn mở. Chương 5 đánh giá các nền tảng Serverless mã nguồn mở dựa trên Kubernetes sử dụng Apache OpenWhisk, Kubeless, OpenFaaS. Cuối cùng, Chương 6 kết luận và hướng phát triển trong tương lai.

Chương 2 Cơ sở lý thuyết Chương 2 trình bày về cơ sở lý thuyết và kiến thức nền tảng về các công nghệ đã sử dụng trong khóa luận.1 giới thiệu khái niệm ảo hóa và trình bày kiến trúc ảo hóa phổ biến.2 giới thiệu công nghệ ảo hóa container Docker.3 giới thiệu công nghệ quản trị và điều phối container Kubernetes.4 giới thiệu tổng quan về kiến trúc Microservices, một nền tang ban đầu của Serverless. Cuối cùng, phan 2.5 giới thiệu khái niệm về mô hình Serverless, ưu và nhược điểm của nó và trình bày một số trường hợp sử dụng mô hình Serverless Computing.1 7 Áohóa Sự phát triển nhanh chóng của công nghệ thông tin dẫn đến nhu cầu sử dụng máy tính, phần mềm và lưu trữ ngày càng tăng cao. Các thiết bị phần cứng máy tính không đủ để đáp ứng nhu cầu đó, cho nên việc tận dụng tối đa tài nguyên được sử dụng ở các máy chủ là một nhu cầu cấp thiết đối với các hệ thống có quy mô sử dụng và cơ sở hạ tầng lớn. Để giải quyết van đề trên, công nghệ ảo hóa ra đời giúp tận dụng tốt hơn tài nguyên và giảm chi phí [9].

Mặc dù ảo hóa trở nên phổ biến trong những năm gan đây, nhưng nguồn gốc của nó có thể bắt nguồn từ năm 1960 khi IBM giới thiệu ý tưởng hệ thông M44/44X [10]. Ảo hóa là công nghệ giúp phân tách phần cứng vật lý thành các thành phần ảo tách biệt với nhau, cung cấp khả năng mở rộng và tận dụng tài nguyên hợp lý theo nhu cầu sử dụng. Hiện nay, có hai công nghệ ảo hóa phổ biến nhất là ảo hóa dựa trên Hypervisor và ảo hóa sử dụng container (cũng được gọi là ảo hóa hệ điều hành). Phần tiếp theo, chúng ta sẽ đi sâu hơn về các kiên trúc ảo hóa.1 Kiến trúc ảo hóa dựa trên Hypervisor Trong thập kỷ qua, kiến trúc ảo hóa dựa trên Hypervisor đã là một phương pháp phổ biến để triển khai các máy ảo.

Cách tiếp cận này dựa vào một phần mềm gọi là hypervisor hay giám sát màn hình máy ảo (Virtual Machine Monitor) nằm giữa phần cứng và máy ảo. VMM có ba đặc điểm sau: cung cấp môi trường tương tự như máy thật, đảm bảo hiệu suất cho các chương trình chạy trong máy ảo và VMM có toàn quyền kiểm soát tài nguyên trên hệ thống máy chủ đã cai [1]. Cụ thể hơn, nó được sử dung để tạo và quản lý các máy ảo trên cùng một hệ thống máy chủ chứa các hệ điều hành khác nhau hoặc nhiều phiên bản của một hệ điều hành, do đó có thể chia sẻ tài nguyên phần cứng giữa các nền tảng ảo .Ví dụ, người dùng có thể chạy hệ điều hành Windows trên máy chủ Linux và ngược lại. Hơn nữa, nó cung cấp một môi trường độc lập riêng biệt.

Trong đó, các ứng dụng có thể chạy mà không can thiệp gì đến các ứng dụng khác, bằng cách này người dùng có thể sử dụng môi trường máy tính để quản lý và giám sát nhiều tài nguyên một các tập trung [9]. Hypervisor được chia thành hai loại ! như trong hình 2.com/cd/E200659 1 /doc.htm Hardware Type 1 Type2 Hình 2.1: Phân loại kiến trúc ảo hóa dựa trên Hypervisor [1] Loại 1: Hypervisor ở loại này chạy trực tiếp trên phần cứng của máy vật lý và không thông qua bat kỳ hệ điều hành nào. Ví dụ cho kiến trúc này là Oracle VM, Microsoft Hyper-V, VMWare ESX, và Xen. Loại 2: Hypervisor ở loại này sẽ chạy trên một hệ điều hành.

Không giống loại 1, loại 2 trên hệ điều hành sẽ chứa trình điều khiển hypervisor giúp quản lý và tạo các máy ảo trên đó.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ