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 đó.