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

Đồ án tìm hiểu về k6 và vận hành trên docker swarm

54 5 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

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM  BÁO CÁO ĐỒ ÁN ĐỒ ÁN ĐỀ TÀI: TÌM HIỂU VỀ K6 VÀ VẬN HÀNH TRÊN DOCKER SWARM Giảng viên hướng dẫn: ThS Nguyễn Công Hoan Sinh viên thực hiện: Nguyễn Huỳnh Bảo Quốc 20520292 La Thanh Huy 20520539 TP HỒ CHÍ MINH, THÁNG 07 NĂM 2023 LỜI CẢM ƠN Đầu tiên nhóm chúng em xin chân thành cảm ơn thầy Nguyễn Cơng Hoan hướng dẫn nhiệt tình kĩ lưỡng suốt q trình xây dựng hồn thiện sản phẩm Trong khoảng thời gian 19 tuần, thơng qua q trình tìm hiểu nghiên cứu, chúng em tiếp thu kiến thức quan trọng, bổ ích góp ý chân thành để làm đồ án hoàn chỉnh Suốt thời gian ấy, chúng em học hỏi thêm nhiều kiến thức, kinh nghiệm phần hình dung mục đích cách thức sử dụng công cụ kiểm thử hiệu hệ thống phần mềm Trong thời đại công nghệ đại, việc kiểm tra đảm bảo hiệu suất ứng dụng hệ thống trở nên quan trọng Đối với nhà phát triển quản trị hệ thống, có nhiều cơng cụ hỗ trợ để thực kiểm tra hiệu suất tải nhanh Bên cạnh đó, việc triển khai ứng dụng phân tán phát triển phần mềm vô quan trọng Trong đề tài này, chúng em tiến hành tìm hiểu hai cơng cụ phổ biến K6 Docker Swarm Trong suốt trình xây dựng phần mềm nhóm chúng em khơng thể tránh khỏi sai sót, mong nhận thơng cảm góp ý chân thành từ thầy cô Chúng em xin chân thành cảm ơn! MỤC LỤC TÓM TẮT ĐỒ ÁN CHƯƠNG MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Phạm vi đề tài 1.3 Mục tiêu đề tài CHƯƠNG TỔNG QUAN 2.1 Phân tích đánh giá đề tài 2.2 Vấn đề tồn 2.3 Hướng giải vấn đề CHƯƠNG NGHIÊN CỨU ĐỀ TÀI 3.1 K6 3.1.1 K6 ? 3.1.2 Cài đặt cấu hình 3.1.3 Cú pháp Skript 10 3.1.4 Ưu điểm nhược điểm K6 15 3.2 Docker Swarm 15 3.2.1 Khởi đầu với Docker Swarm 15 3.2.2 Triển khai ứng dụng Docker Swarm 20 3.2.3 Quản lý Swarm kiểm soát tài nguyên 22 3.2.4 Service task Docker Swarm 25 3.2.5 Tính Docker Swarm 26 3.2.5 Ưu điểm nhược điểm Docker Swarm 29 3.3 Triển khai K6 Docker Swarm 29 3.3.1 Viết Script kiểm thử có tên file test.js 30 3.3.2 Tạo docker image 30 3.3.3 Chạy Docker Image 30 3.3.4 Tạo Docker Swarm Cluster 31 3.3.5 Triển khai test.js file K6 dạng Service Docker Swarm 32 3.3.6 Quan sát kết 32 3.4 Vận hành K6 Docker Swarm 32 3.4.1 Thiết lập quản lý số lượng container K6 32 3.4.2 Giám sát hiệu suất lưu lượng K6 33 CHƯƠNG KẾT QUẢ NGHIÊN CỨU 34 4.1 Chạy phân tích kết K6 Docker Swarm 34 4.1.1 Chạy Skript K6 34 4.1.2 Thu thập phân tích kết 35 4.1.3 Đánh giá hiệu suất tối ưu hóa 36 CHƯƠNG SO SÁNH VÀ KẾT LUẬN 40 5.1 So sánh K6 với phần mềm kiểm thử hiệu khác 40 5.1.1 Các phần mềm tương tự 40 5.1.2 So sánh K6 Jmeter 41 5.2 So sánh Docker Swarm với phần mềm tương tự 44 5.2.1 Các phần mềm tương tự 44 5.2.2 So sánh Docker Swarm với Kubernetes 44 5.3 Khả vận hành K6 Docker Swarm 47 5.3.1 Nhận xét 47 5.3.2 Kết luận 47 CHƯƠNG HƯỚNG PHÁT TRIỂN 47 6.1 Khả mở rộng Docker Swarm 47 6.2 Thực thử nghiệm hiệu suất tải Docker Swarm 47 6.3 Tối ưu hóa hiệu suất Docker Swarm K6 48 6.4 Tích hợp với cơng cụ khác 48 6.5 Đánh giá ổn định độ tin cậy Docker Swarm K6 48 6.6 So sánh Docker Swarm với công nghệ khác 48 TÀI LIỆU THAM KHẢO 49 TÓM TẮT ĐỒ ÁN Vấn đề nghiên cứu Vấn đề nghiên cứu đề tài tìm hiểu K6 cách vận hành Docker Swarm K6 công cụ mã nguồn mở sử dụng để kiểm thử hiệu ứng dụng hệ thống Nó cung cấp khả mơ tải cơng việc phân tích hiệu chi tiết ứng dụng web API Docker Swarm công cụ quản lý triển khai ứng dụng dựa Docker, cho phép tổ chức container vào nhóm vận hành chúng nhiều máy tính vật lý ảo hóa Các hướng tiếp cận Để nghiên cứu vấn đề này, tiến hành bước sau: • Tìm hiểu K6: Nghiên cứu khái niệm K6, cách cài đặt cấu hình, cú pháp scripting, tính cơng cụ • Tìm hiểu Docker Swarm: Nghiên cứu cách cài đặt cấu hình Docker Swarm, tạo quản lý service, khái niệm overlay network load balancing Swarm • Kết hợp K6 với Docker Swarm: Tìm hiểu cách triển khai K6 Docker Swarm để mô lưu lượng tải lớn phân tán nhiều container Xác định cách chạy kiểm tra hiệu K6 Swarm thu thập kết Cách giải vấn đề Để giải vấn đề, ta thực bước sau: • Cài đặt cấu hình K6: Cài đặt K6 máy tính cấu hình thơng số cần thiết cho việc kiểm thử hiệu • Cài đặt cấu hình Docker Swarm: Cài đặt Docker Swarm thiết lập máy chủ thành nút Swarm để triển khai container quản lý tải Swarm • Triển khai K6 Docker Swarm: Tạo Docker image cho K6 triển khai Docker Swarm Xác định cách chạy kiểm tra hiệu K6 Swarm, sử dụng tính scale load balancing Swarm để mơ lưu lượng tải lớn • Thu thập phân tích kết quả: Thu thập kết từ việc chạy kiểm tra hiệu phân tích chúng để đánh giá hiệu ứng dụng hệ thống Một số kết đạt Thông qua nghiên cứu này, đạt kết sau • Hiểu rõ K6 cách sử dụng để kiểm thử hiệu ứng dụng hệ thống • Hiểu Docker Swarm khả triển khai vận hành ứng dụng tảng Swarm • Triển khai thành cơng K6 Docker Swarm chạy kiểm tra hiệu mơi trường phân tán • Thu thập phân tích kết từ việc chạy kiểm tra hiệu năng, từ đánh giá hiệu ứng dụng hệ thống mơi trường phân tán Tóm lại, nghiên cứu tập trung vào việc tìm hiểu K6 cách vận hành Docker Swarm Qua đó, có nhìn tổng quan việc kiểm thử hiệu triển khai ứng dụng môi trường phân tán CHƯƠNG MỞ ĐẦU 1.1 Lý chọn đề tài Theo xu hướng phát triển phần mềm nay, việc xây dựng phần mềm hồn chỉnh khơng gói gọn yếu tố tính năng, giao diện, khả mở rộng,… mà cịn phải kiểm tra sai sót hiệu sản phẩm Trong đó, khả chịu tải vấn đề cần lưu tâm, qua vai trị tester trở nên quan trọng Nhận thấy nhu cầu sử dụng cần thiết công nghệ phát triển phần mềm, nhóm chúng em định lựa chọn nghiên cứu đề tài “Tìm hiểu K6 vận hành Docker Swarm” 1.2 Phạm vi đề tài • Tìm hiểu K6: Đề tài bao gồm việc tìm hiểu K6, cơng cụ mã nguồn mở sử dụng rộng rãi để kiểm tra hiệu suất độ tin cậy ứng dụng web Quá trình nghiên cứu K6 bao gồm: cách cài đặt, cấu hình, cú pháp skript K6, với cách chạy phân tích kết • Tìm hiểu Docker Swarm: Đề tài tập trung vào việc tìm hiểu Docker Swarm, cơng cụ quản lý cụm Docker, cho phép triển khai quản lý ứng dụng dựa container môi trường phân tán Quá trình nghiên cứu Docker Swarm bao gồm: cách cài đặt, triển khai ứng dụng quản lý cụm Swarm 1.3 Mục tiêu đề tài Trong đề tài lần này, nhóm chúng em hướng đến mục tiêu sau: • Hiểu rõ K6 Docker Swarm: Mục tiêu tìm hiểu sâu K6 Docker Swarm, bao gồm cách cài đặt, cấu hình sử dụng tính hai cơng cụ • Áp dụng K6 để kiểm tra hiệu suất: Mục tiêu sử dụng K6 để tạo thực thi tải cơng việc, thu thập phân tích kết để đánh giá hiệu suất ứng dụng • Áp dụng Docker Swarm để triển khai ứng dụng: Mục tiêu sử dụng Docker Swarm để triển khai quản lý ứng dụng môi trường phân tán, tận dụng tính mở rộng đảm bảo ổn định hệ thống • So sánh đánh giá: Mục tiêu cuối so sánh K6 Docker Swarm, đánh giá ưu điểm hạn chế công cụ, xem xét phù hợp sử dụng chúng trường hợp khác CHƯƠNG TỔNG QUAN 2.1 Phân tích đánh giá đề tài Trong lĩnh vực tìm hiểu K6 vận hành Docker Swarm, có số nghiên cứu viết từ tác giả nước Các nghiên cứu tập trung vào khía cạnh sau: • Có nhiều viết tài liệu giới thiệu K6, cung cấp hướng dẫn cài đặt, cấu hình sử dụng công cụ Một số tác giả đề cập đến cách viết kịch (scripts) kiểm thử hiệu sử dụng ngôn ngữ hợp lý phương pháp kiểm thử khác Tuy nhiên, chưa có nghiên cứu đáng kể tập trung vào khả tích hợp K6 với môi trường triển khai phân tán Docker Swarm • Có nhiều tài liệu viết giới thiệu Docker Swarm, cung cấp hướng dẫn cài đặt, cấu hình triển khai ứng dụng mơi trường Swarm Tuy nhiên, tài liệu thường tập trung vào khái niệm bước cài đặt đơn giản Chưa có nghiên cứu sâu cách vận hành ứng dụng Swarm kết hợp với công cụ kiểm thử hiệu K6 2.2 Vấn đề tồn Tuy tài liệu viết giới thiệu nêu khái quát chức K6 Docker Swarm, số vấn đề chưa tập trung nghiên cứu đầy đủ Một số vấn đề tồn bao gồm: • Hiệu khả mở rộng K6 Docker Swarm: Chưa có nghiên cứu chi tiết khả mở rộng hiệu K6 triển khai môi trường Docker Swarm Điều bao gồm khả xử lý lượng kết nối đồng thời lớn, khả scale ứng dụng khả phân tán tải container • Tối ưu hóa hiệu sử dụng K6 Docker Swarm: Chưa có nghiên cứu tập trung vào cách tối ưu hóa hiệu chạy kiểm tra hiệu K6 Docker Swarm Việc tối ưu hóa liên quan đến cách triển khai cấu hình Swarm, việc tối ưu hóa cấu hình quy trình chạy kiểm tra hiệu 2.3 Hướng giải vấn đề Để giải vấn đề tồn tại, đề tài cần tập trung vào mục tiêu sau: • Đánh giá hiệu khả mở rộng K6 Docker Swarm: Nghiên cứu khả xử lý mở rộng K6 Swarm cách triển khai kiểm tra hiệu đo lường hiệu hệ thống môi trường phân tán • Tối ưu hóa hiệu sử dụng K6 Docker Swarm: Nghiên cứu đề xuất phương pháp tối ưu hóa hiệu chạy kiểm tra hiệu K6 Swarm, bao gồm tối ưu hóa cấu hình quy trình chạy kiểm tra • Xây dựng hướng dẫn tài liệu thực hành: Xây dựng hướng dẫn tài liệu thực hành chi tiết việc sử dụng K6 Docker Swarm, giúp người dùng triển khai kiểm thử hiệu ứng dụng cách hiệu mơi trường phân tán Giải thích thơng số: Tên Số liệu (Metrix) VU(Verture User) VUS Mô tả Người dùng ảo tạo để giả lập yêu cầu Có VU thử nghiệm cấu hình để mơ Số lượng vị trí VU phân bổ trước mà thử nghiệm VUS_max định cấu hình (vus_max cho phép bạn mở rộng số lượng VU thử nghiệm để tối đa số lượng đó) Tổng iteration_duration thời gian cho yêu cầu (http_req_sending + http_req_waiting + http_req_receiving) Tổng số lần tất VU thử nghiệm quản lý để iterations chạy qua hàm default () Thời gian VU dành để chờ phân bổ kết nối TCP từ nhóm http_req_blocked kết nối http_req_connecting Thời gian VU dành để thiết lập kết nối TCP đến máy chủ từ xa http_req_duration Thời gian thực tra cứu DNS http_req_receiving Thời gian nhận trả lời từ máy chủ từ xa Thời gian dành để truyền yêu cầu HTTP đến máy chủ từ http_req_sending xa 4.1.3 Đánh giá hiệu suất tối ưu hóa 4.1.3.1 Mục tiêu đánh giá hiệu suất 36 Mục tiêu đánh giá hiệu suất đo đánh giá yếu tố liên quan đến hiệu suất trang web để tối ưu hóa trải nghiệm người dùng đảm bảo khả chịu tải ứng dụng Các mục tiêu cụ thể bao gồm: - Đo thời gian phản hồi trang web để đảm bảo thời gian phản hồi nhanh chóng cho người dùng - Đánh giá khả chịu tải trang web để xác định mức tải tối đa mà trang web xử lý cách ổn định - Xác định thời gian phản hồi trung bình trang web để đánh giá hiệu suất chung - Đo số lượt truy cập tối đa xử lý khoảng thời gian để kiểm tra khả mở rộng đảm bảo hiệu suất ổn định 4.1.3.2 Các kịch đánh giá hiệu suất Kịch 1: Kiểm tra thời gian phản hồi - Quá trình: Kịch gửi yêu cầu GET đến trang chủ ghi lại thời gian phản hồi Điều giúp đánh giá thời gian phản hồi trung bình trang web - Kết quả: Trả thời gian phản hồi yêu cầu Hình 4.3 Thời gian phản hồi VUs giây Kịch 2: Kiểm tra khả chịu tải 37 - Quá trình: Kịch sử dụng tùy chọn stages để tạo mô tải lượng người dùng tăng dần theo thời gian Nó tăng số lượng người dùng từ lên 10 vịng phút, sau giữ mức tải 10 phút cuối giảm từ 10 xuống vòng phút - Kết quả: mã phản hồi 200 phản hồi thành công, request timeout khơng thành cơng Hình 4.4 Kiểm tra khả chịu tải web Kịch 3: Kiểm tra lỗi - Quá trình: + Kiểm tra mã trạng thái phản hồi: Kiểm tra xem mã trạng thái phản hồi có phải 200 hay khơng Điều đảm bảo yêu cầu thành công + Kiểm tra lỗi SSL/TLS: Kiểm tra xem có lỗi SSL/TLS q trình giao tiếp khơng Điều đảm bảo khơng có lỗi bảo mật xảy + Kiểm tra lỗi xử lý nội dung: Kiểm tra xem có lỗi xử lý nội dung phản hồi hay khơng Trong ví dụ này, kiểm tra xem có từ "error" phần thân phản hồi hay khơng - Kết quả: lỗi xảy trình thực thi như: lỗi HTTP, lỗi kết nối, lỗi xác thực, lỗi cú pháp,… 38 Hình 4.5 Kiểm tra lỗi xảy Kịch 4: Kiểm tra tính ổn định với lượng tải ngẫu nhiên - Quá trình: Kịch tạo độ trễ ngẫu nhiên trước gửi yêu cầu GET đến trang chủ Điều mô tải lượng ngẫu nhiên từ người dùng thực tế Kịch giúp kiểm tra tính ổn định đáp ứng trang web điều kiện tải lượng không - Kết quả: mã phản hồi 200 phản hồi thành cơng Hình 4.6 Kiểm tra tính ổn định với độ trễ ngẫu nhiên 39 CHƯƠNG SO SÁNH VÀ KẾT LUẬN 5.1 So sánh K6 với phần mềm kiểm thử hiệu khác 5.1.1 Các phần mềm tương tự Hình 5.1 Jmeter Hình 5.2 Gatling 40 Hình 5.3 Jmeter Hình 5.4 Gatling Các cơng cụ có tính tương tự K6 sử dụng rộng rãi việc kiểm thử hiệu suất ứng dụng Lựa chọn phần mềm thích hợp phụ thuộc vào yêu cầu cụ thể môi trường kiểm thử 5.1.2 So sánh K6 Jmeter Apache JMeter công cụ mã nguồn mở miễn phí phát triển Apache Software Foundation Nó sử dụng rộng rãi để kiểm thử hiệu suất tải ứng dụng web dịch vụ web Dưới kết so sánh phần mềm kể trên: Nội dung Jmeter K6 Ngơn ngữ lập trình Java Go Ngơn ngữ kịch Hạn chế: Java (Groovy, Beanshell, v.v.) Javascript Giao thức Hỗ trợ hầu hết giao thức thông Hỗ trợ giao thức đại qua plugin (hỗ trợ riêng cho (HTTP/1.1, HTTP/2, WebSockets, HTTP/1.1, SOAP, FTP, JDBC, gRPC) LDAP, MOM qua JMS, SMTP, POP3, IMAP, tập lệnh shell, TCP, đối tượng Java) Tự động hóa trình duyệt Có, sử dụng Selenium/WebDriver Có, sử dụng xk6-browser 41 Phụ thuộc bên Java ngồi Khơng có Tận dụng nguồn tài ngun ; Một trình tạo tải mơ vài nghìn người dùng ảo tốt ; Một trình tạo tải mơ hàng chục nghìn người dùng ảo Quản lý nhớ Bộ nhớ heap JVM phải đặt Sử dụng nhớ trình tạo tải ngun Mơ hình luồng Thread: Virtual User; Hiệu suất chậm hơn, chi phí tài nguyên cao Goroutine: Virtual User; Hiệu suất nhanh hơn, chi phí tài nguyên thấp Dễ viết kịch Điều khiển GUI, với khối mã Điều khiển mã; plugin VSCode Ngưỡng cấp Không, yêu cầu cá nhân độ thử nghiệm Đúng Định dạng tập XML lệnh Javascript Sự hợp tác Khó thực đồng thời; thân thiện với người thử nghiệm; cần ứng dụng GUI để chỉnh sửa Thân thiện với nhà phát triển, dễ phiên bản; Định dạng Javascript thúc đẩy cộng tác Bảo Trì Kịch dài dịng; Định dạng XML khó đọc Kịch ngắn gọn hơn; JavaScript dễ đọc Cộng đồng Từ năm 1998; Nhiều hướng dẫn bên thứ ba; Tài liệu phong phú; Khơng có cộng đồng trung tâm Kể từ năm 2017; Tài liệu phong phú; Ít hướng dẫn bên thứ ba hơn; cộng đồng thức Hỗ trợ plugin Yêu cầu plugin cho nhiều tính năng, có nhiều plugin có sẵn Hầu hết tính hỗ trợ nguyên bản, hỗ trợ plugin tính khả dụng cịn thưa thớt 42 Tạo tải phân tán Đúng Có (thơng qua Nhà điều hành k6 ) Báo cáo tạo trước Báo cáo HTML mặc định tùy chỉnh; đăng nhập qua người nghe Khơng có báo cáo tạo trước tích hợp sẵn; tích hợp với cơng cụ phân tích với bảng điều khiển bên thứ ba Trang mạng jmeter.apache.org k6.io Mã nguồn https://github.com/apache/jmeter https://github.com/grafana/k6 Kết luận: Cả hai công cụ hoạt động tốt: - Tạo tải cấp độ giao thức máy chủ ứng dụng cách tạo tập lệnh cho luồng người dùng phức tạp - Kịch thực tế với việc sử dụng thời gian suy nghĩ động, tạo tái sử dụng liệu thử nghiệm mơ hình khối lượng cơng việc tùy chỉnh - Tài liệu tính tính quán phát hành Cả hai công cụ không hỗ trợ: - Phân tích kết chi tiết (JMeter có trình nghe báo cáo HTML tạo trước, chúng lý tưởng) Người dùng nên tích hợp kết với sở liệu phần mềm trực quan hóa liệu Jmeter tối ưu: - Kiểm thử truyền thống Những người tìm kiếm công cụ kiểm tra dựa GUI với vô số hướng dẫn bên thứ ba hỗ trợ giao thức rộng rãi Đã sử dụng công cụ thương mại LoadRunner NeoLoad K6 tối ưu: 43 - Các nhóm kỹ thuật hợp tác, đa chức nơi thử nghiệm trải dài qua nhiều vai trị Những người tìm kiếm cơng cụ kiểm tra tải đơn giản nhẹ đầy đủ tính Các nhóm tìm cách tích hợp thử nghiệm vào quy trình phát triển có quy trình CI/CD 5.2 So sánh Docker Swarm với phần mềm tương tự 5.2.1 Các phần mềm tương tự Hình 5.5 Kubernetes Hình 5.7 Nomad Hình 5.6 Apache Mesos Hình 5.6 OpemShift Hiện có nhiều giải pháp orchestration mã nguồn mở như: Docker Swarm, Kubernetes, Apache Mesos, OPENSHIFT, Nomad etc Hiện tại, lĩnh vực điều phối container, Kubernetes Docker Swarm công cụ quan trọng sử dụng để deploy container bên cluster 5.2.2 So sánh Docker Swarm với Kubernetes 44 Kubernetes tảng xây dựng dựa nhiều năm kinh nghiệm Google việc chạy workload quy mô lớn quy trình production Theo định nghĩa website Kubernetes, “Kubernetes hệ thống nguồn mở (open-source system) để tự động hóa việc triển khai, thay đổi kích thước quản lý ứng dụng container hoá” Dưới kết so sánh phần mềm kể trên: Nội dung Docker Swarm Kubernetes Định nghĩa ứng dụng Các ứng dụng deploy service (hoặc micro-service) Swarm cluster File YAML dùng để cụ hố multi-container Hơn nữa, Docker Compose deploy ứng dụng Một ứng dụng deploy cách sử dụng kết hợp pod, deployments services (hoặc microservices) Install setup Việc cài đặt Docker Swarm đơn giản Với Docker, cần công cụ tùy chọn để build theo mơi trường cấu hình Docker Swarm cung cấp tính linh hoạt cách cho phép tất node tham gia vào cluster có với tư cách manager worker Bước install thực thủ cơng cần có kế hoạch cụ thể để Kubernetes hoạt động trơn tru Hướng dẫn cài đặt thường không thống nhà cung cấp Ngồi ra, cần nắm cấu hình cluster địa IP node nhiệm vụ node Yêu cầu Với lợi công cụ Docker, Docker Swarm sử dụng ngôn ngữ chung để điều hướng cấu trúc Điều cung cấp tính biến thiên tốc độ cho cơng cụ Kubernetes yêu cầu kiến thức CLI (Command Line Interface) để chạy Docker Cần hiểu Docker CLI để điều hướng bên cấu trúc, sau bổ sung infrastructure ngơn ngữ chung Kubernetes để chạy program Logging giám sát Docker Swarm hỗ trợ để giám sát với ứng dụng bên thứ ba Lời khuyên Kubernetes hỗ trợ nhiều phiên logging (ghi nhật ký) giám sát 45 nên sử dụng Docker với Reimann để giám sát, nhiên Docker Swarm có API mở, nên việc kết nối với nhiều ứng dụng dễ dàng service triển khai cluster: • Các log (nhật ký) Elasticsearch / Kibana (ELK) container • Heapster / Grafana / Influx để giám sát container • Tích hợp cloud Sysdig Khả So với Kubernetes, Docker thay đổi quy Swarm deploy mơ container nhanh hơn; điều cho phép thời gian phản ứng nhanh để thay đổi quy mô theo yêu cầu Kubernetes all-in-one framework cho hệ thống phân tán Đây hệ thống phức tạp cung cấp API thống đảm bảo mạnh mẽ trạng thái cluster, làm chậm deployment thay đổi quy mơ container Tính sẵn sàng, khả dụng Docker Swarm cung cấp tính sẵn sàng cao service nhân node Swarm Trong Docker Swarm, node quản lý Swarm chịu trách nhiệm cho toàn cluster quản lý tài nguyên node worker Tất pod phân phối node điều cung cấp tính sẵn sàng cao cách chấp nhận lỗi ứng dụng Hơn nữa, loadbalancing Kubernetes phát pod không lành mạnh loại bỏ chúng, điều hỗ trợ tính sẵn sàng cao Networking Một node tham gia cluster tạo overlay network service bao trùm tất host Swarm network cầu nối Docker cho container Người dùng Docker Swarm tùy chọn mã hóa data traffic (lưu lượng liệu) container tự tạo overlay network Kubernetes network có tính chất phẳng cho phép tất pod giao tiếp với Trong Kubernetes, model yêu cầu 02 CIDR: 01 CIDR để yêu cầu pod lấy địa IP, 01 CIDR cho service Quy mô cộng đồng 100+ Contributors 4.000+ Commits 500+ Fork 3.000+ Contributors 100.000+ Commits 30.000+ Fork 46 5.3 Khả vận hành K6 Docker Swarm 5.3.1 Nhận xét Nghiên cứu thành công việc đánh giá khả vận hành K6 Docker Swarm - K6 cho thấy khả mở rộng tốt số lượng container K6 tăng, thời gian phản hồi trì mức chấp nhận - Quản lý triển khai kịch kiểm thử hiệu suất với K6 Docker Swarm thuận tiện linh hoạt - K6 Docker Swarm tổ hợp mạnh mẽ để kiểm thử hiệu suất tải ứng dụng, mang lại hiệu suất ổn định khả mở rộng 5.3.2 Kết luận - Dựa kết nghiên cứu, rút kết luận K6 Docker Swarm giải pháp đáng tin cậy hiệu cho kiểm thử hiệu suất ứng dụng Khả mở rộng tốt khả quản lý dễ dàng Docker Swarm kết hợp với tính linh hoạt hiệu suất ổn định K6 mang lại môi trường kiểm thử hiệu suất mạnh mẽ đáng tin cậy CHƯƠNG HƯỚNG PHÁT TRIỂN 6.1 Khả mở rộng Docker Swarm Ngoài việc triển khai K6 Docker Swarm, tìm hiểu khả mở rộng Docker Swarm để xử lý tải lớn đáng tin cậy Nghiên cứu khái niệm scaling, load balancing, rolling updates, high availability Docker Swarm Đánh giá hiệu khả chịu tải Docker Swarm áp dụng vào ứng dụng thực tế 6.2 Thực thử nghiệm hiệu suất tải Docker Swarm Sử dụng K6 Docker Swarm, thực thử nghiệm hiệu suất tải ứng dụng thực tế Xác định yêu cầu tải tối đa mà Docker Swarm xử lý cách ổn định Đo lường thời gian phản hồi, tải CPU, băng thông mạng số hiệu suất khác trình chạy thử nghiệm So sánh kết việc sử dụng Docker Swarm việc chạy ứng dụng máy chủ đơn lẻ 47 6.3 Tối ưu hóa hiệu suất Docker Swarm K6 Nghiên cứu áp dụng phương pháp tối ưu hóa hiệu suất Docker Swarm K6 Điều chỉnh cấu hình Docker Swarm để đạt hiệu suất tốt nhất, bao gồm quản lý tài nguyên, xử lý đồng thời tăng cường bảo mật Sử dụng công cụ giám sát để theo dõi phân tích hiệu suất Docker Swarm ứng dụng K6 6.4 Tích hợp với cơng cụ khác Khám phá khả tích hợp Docker Swarm K6 với công cụ khác trình kiểm thử hiệu suất Có thể tích hợp với công cụ giám sát ghi nhật ký Prometheus Grafana để thu thập hiển thị thông tin hiệu suất chi tiết Sử dụng công cụ tự động hóa để triển khai quản lý cụm Docker Swarm 6.5 Đánh giá ổn định độ tin cậy Docker Swarm K6 Xác định đánh giá yếu tố ổn định độ tin cậy Docker Swarm K6 môi trường sản xuất Xử lý vấn đề liên quan đến trình triển khai, khởi động lại, kết nối phục hồi Kiểm tra khả khôi phục sau cố khả mở rộng hệ thống 6.6 So sánh Docker Swarm với công nghệ khác Nghiên cứu so sánh Docker Swarm với công nghệ quản lý triển khai khác Kubernetes, Apache Mesos, Nomad Đánh giá ưu điểm hạn chế công nghệ việc triển khai vận hành ứng dụng hiệu suất cụm máy chủ 48 TÀI LIỆU THAM KHẢO [1] Burt, A., & Grankvist, P (2019) K6: Building and Scaling Load Testing on a Cloud Native Load Generator In Proceedings of the 12th International Conference on Performance Evaluation Methodologies and Tools (pp 85-92) ACM [Online] Available: ACM Digital Library, https://dl.acm.org/doi/10.1145/3358500.3366895 [Accessed: September 2021] [2] Docker Documentation (2021) Docker Swarm Mode [Online] Available: https://docs.docker.com/engine/swarm/ [Accessed: September 2021] [3] Docker Documentation (2021) Resource Docker [Online] Available: https://www.docker.com/resources/what-container/ [Accessed: September 2021] [4] Hjelm, T (2020) Load Testing and Performance Monitoring with K6 O'Reilly Media [Online] Available: O'Reilly Online Learning, https://www.oreilly.com/library/view/load-testing-and/9781098100605/ [Accessed: September 2021] 49 [5] K6 Documentation (2021) K6: Modern Load Testing for Developers [Online] Available: https://docs.k6.io/ [Accessed: September 2021] [6] K6 Documentation (2021) Comparing k6 and JMeter for load testing [Online] Available: https://k6.io/blog/k6-vs-jmeter/ [Accessed: January 2021] [7] Load Impact (2021) About Load Impact [Online] Available: https://k6.io/about/ [8] Luke Thompson (2020) Beautiful Load Testing With K6 and Docker Compose [Online] Available: https://goeco.link/hFShp [9] Nashtechglobal (2023) Scaling K6 Tests with Docker Swarm [Online] Available: https://goeco.link/xnTnl 50

Ngày đăng: 04/09/2023, 20:28

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

TÀI LIỆU LIÊN QUAN

w