0

Tìm hiểu về k6 và vận hành trên docker swarm SE121 m11 PMCL

26 2 0
  • Tìm hiểu về k6 và vận hành trên docker swarm SE121 m11 PMCL

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

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 15/01/2022, 21:44

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN ĐỀ TÀI: Tìm hiểu K6 vận hành Docker Swarm SE121.M11.PMCL Giáo viên hướng dẫn: ThS Nguyễn Công Hoan Sinh viên thực hiện: Nguyễn Thanh Trung – 17520021 Tp Hồ Chí Minh, tháng 12/2021 NHẬN XÉT (của giảng viên hướng dẫn) ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… ……………………………………………………………………………………………………………… LỜI CẢM ƠN Đầu tiên, nhóm tác giả gửi lời cảm ơn chân thành đến tập thể quý thầy cô trường Đại học Công nghệ thông tin – Đại học Quốc gia Tp Hồ Chí Minh q thầy khoa Cơng nghệ phần mềm giúp cho nhóm tác giả có kiến thức làm tảng để thực đề tài Đặc biệt, nhóm tác giả xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy Nguyễn Công Hoan trực tiếp hướng dẫn tận tình, sửa chữa đóng góp nhiều ý kiến q báu giúp nhóm tác giả hồn thành tốt báo cáo mơn học Trong thời gian đề tài, nhóm tác giả vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi nghiên cứu kiến thức Từ đó, nhóm tác giả vận dụng tối đa thu thập để hồn thành báo cáo đồ án tốt Tuy nhiên, q trình thực hiện, nhóm tác giả khơng tránh khỏi thiếu sót Chính vậy, nhóm tác giả mong nhận góp ý từ phía thầy nhằm hồn thiện kiến thức mà nhóm tác giả học tập hành trang để nhóm tác giả thực tiếp đề tài khác tương lai Tp Hồ Chí Minh, ngày 17 tháng 12 năm 2021 Table of Contents ĐỀ TÀI: NHẬN XÉT (của giảng viên hướng dẫn) LỜI CẢM ƠN Giới thiệu 1.1 Lý chọn đề tài 1.2 Phạm vi đề tài 1.3 Mục tiêu đề tài Docker 2.1 Giới thiệu 2.2 Ưu điểm Docker 2.3 Thành phần 2.4 Một số khái niệm 2.5 Triển khai Docker Ubuntu Docker Swarm 3.1 Giới thiệu 3.2 Các thành phần Node Service Task 3.3 Tính Docker Swarm 10 3.4 Khởi tạo Docker Swarm 11 K6 15 4.1 Giới thiệu 15 4.2 K6.io 15 4.3 Ưu điểm nhược điểm 15 4.4 Cài đặt 17 Kiểm tra độ chịu tải với K6 18 6.Tổng kết 26 7.Tài liệu tham khảo 26 Giới thiệu 1.1 Lý chọn đề tài Theo xu hướng phát triển phần mềm nay, đội ngũ phát triển quan tâm đến tính sản phẩm, mà cịn phải kiểm tra đến khả sai sót sản phẩm Trong đó, khả chịu tải vấn đề lớn sản phẩm Vai trò người kỹ sư Tester trở nên quan trọng K6 công nghệ mà kỹ sư Tester nên biết Nhận thấy nhu cầu cần thiết cơng nghệ này, nhóm chúng em định chọn đề tài ‘Tìm hiểu K6 vận hành Docker Swarm 1.2 Phạm vi đề tài Trong đồ án này, nhóm chúng em tập trung vào tìm hiểu K6 & Docker Swarm, khái niệm, tính năng, cách hoạt động điểm mạnh điểm yếu K6 & Docker Swarm Từ đó, làm tảng để xây dựng ứng dụng minh họa triển khai lên K6 & Docker Swarm 1.3 Mục tiêu đề tài Trong đề tài, nhóm chúng em hướng đến ba mục tiêu sau: - Thứ nhất, hiểu khái niệm, nội dung K6 & Docker Swarm cách thức hoạt động K6 & Docker Swarm - Thứ hai, hiểu quy trình làm việc đội phát triển, công việc kỹ sư vận hành K6 & Docker Swarm - Thứ ba, Sử dụng kinh nghiệm, kiến thức nhóm có từ trình làm đề tài này, làm tảng phát triển cho đề tài sau Docker 2.1 Giới thiệu • Docker tảng mở dành cho lập trình viên, quản trị hệ thống dùng để xây dựng, vận chuyển chạy ứng dụng cách dễ dàng tảng ảo hóa • Docker đưa giải pháp cho vấn đề ảo hóa, thay tạo máy ảo chạy độc lập kiểu hypervisors (tạo phần cứng ảo cài đặt hệ điều hành lên đó), ứng dụng đóng gói lại thành Container riêng lẻ Các Container chạy chung nhân hệ điều hành qua LXC (Linux Containers), chia sẻ chung tài nguyên máy mẹ, đó, hoạt động nhẹ nhanh máy ảo dạng hypervisors 2.2 Ưu điểm Docker • Tiện lợi: giúp giảm tải phức tạp cài đặt loại công nghệ đồng phiên công nghệ • Dễ dàng sử dụng: dễ dàng cho lập trình viên, quản trị hệ thống, sử dụng Docker sử lợi container để xây dựng kiểm tra ứng dụng cách nhanh chóng • Khả di động: môi trường phát triển dựng lên docker chuyển từ người sang người khác mà khơng làm thay đổi cấu hình 2.3 Thành phần Các thành phần Docker bao gồm: – Docker Engine: thành phần Docker, cơng cụ để đóng gói ứng dụng – Docker Hub: dịch vụ cloud để chia sẻ ứng dụng tự động hóa chuỗi cơng việc liên tục, thao tác pull/push với images 2.4 Một số khái niệm Một số khái niệm phổ biến Docker: Docker images: “read-only template” Chẳng hạn, image chứa hệ điều hành Ubuntu cài đặt sẵn Vim – Docker registries: kho chứa images Người dùng tạo images tải lên tải images chia sẻ – Docker container: hoạt động giống thư mục (directory), chứa tất thứ cần thiết để ứng dụng chạy Mỗi docker container tạo từ docker image Các thao tác với container: chạy, bật, tắt, di chuyển, xóa – Dockerfile: file chứa tập hợp lệnh để Docker đọc thực để đóng gói image theo yêu cầu người dùng – Orchestration: công cụ, dịch vụ dùng để điều phối quản lý nhiều containers cho chúng làm việc hiệu – 2.5 Triển khai Docker Ubuntu Bước 1: Cập nhập OS câu lệnh sudo apt-get update Bước 2: Gỡ phiên cũ Docker(Bỏ qua bước chưa cài Docker) sudo apt-get remove docker docker-engine docker.io Bước 3: Cài Docker câu lệnh sudo apt install docker.io Bước 4: Chạy tự động hóa Docker sudo systemctl start docker sudo systemctl enable docker Bước 5: kiểm tra phiên Docker docker sevsion Chạy câu lệnh với Docker docker run hello-world Docker Swarm 3.1 Giới thiệu • Docker swarm cơng cụ cho phép nhóm physical virtual machine có cài đặt Docker deamon thành cụm (cluster) hay gọi swarm, ta xem docker host ảo (vitural docker host) Docker swarm cung cấp tính để dễ dàng quản lý điều phối cluster 3.2 Các thành phần Node Khi run docker với swarm mode, docker host gọi node Node chia làm loại manager (để quản lý swarm) worker (để run service) Mỗi node swarm manager, worker Manager node: Là node nhận thông tin service cần deploy từ user, điều phối task đến worker swarm Mặc định manager node worker node Worker node: Có trách nhiệm nhận thực thi task gửi từ manager node Service Task Một Service khai báo docker image cần run manage worker node swarm Khi tạo service, cần phải định cụ thể image command thực thi bên container Service run với model sau: • • Replicated services: swarm manager định cụ thể số lượng replica task node cluster Global services: swarm manager assign task cho node cluster Một Task tương ứng với docker container command thực thi container đó, khai báo tạo service Manager node assign task tới worker node dựa vào số lượng replica khai báo service 3.3 Tính Docker Swarm • Cluster management integrated with Docker Engine: Quản lý cluster với Docker Engine việc sử dụng Docker CLI để tạo swarm • Decentralized design: Docker Swarm thiết kế dạng phân cấp Thay xử lý khác biệt roles node thời điểm triển khai, Docker Engine xử lý chun mơn hố runtime Bạn triển khai hai loại node: managers worker Docker Engine • Declarative service model: Docker Engine sử dụng phương thức khai báo phép bạn define trạng thái mong muốn dịch vụ khác stack ứng dụng bạn VD: Bạn mơ tả ứng dụng bao gồm: web front-end với service message queueing database back-end • Scaling: Đối với service bạn khai báo số lượng task mà bạn muốn run Khi bạn scale up down swarm manager tự động thêm xố task để trì trạng thái mong muốn • Desired state reconciliation: Hãy hình dung bạn thiết lập service run 10 replicas container worker machine (host/vps) giữ số 10 $ docker-machine create worker1 $ docker-machine create worker2 $ docker-machine create worker3 Sau tạo xong ta kiểm tra list machine: $ docker-machine ls Bây ta sử dụng lệnh inspect thử xem thông tin machine $ docker-machine inspect manager 12 Dễ thấy số thông tin machine như: địa IP, MachineName (tên ta đặt), SSHKey để truy cập vào machine thơng qua SSHKey này, thông tin CPU ( CPU), Memory ( 1GB), … Việc setup machine hoàn tất ta tiến hành khởi tạo swarm manager để truy cập vào manager hay worker ta sử dụng thơng qua SSH cụ thể sau: 13 $ docker-machine ssh Ở đây: • = manager Và để quay lại host local: $ exit Khởi tạo swarm $ docker swarm init advertise-addr 14 K6 Giới thiệu 4.1 Hãy giả sử công ty bạn vừa phát triển trang web thương mại điện tử, mà tương tự Amazon Đó dự án lớn tổ chức bạn số lượng lớn khách hàng sử dụng trang web Nó cần có khả xử lý 100,000 giao dịch ngày hàng nghìn người dùng đồng thời trở lên Một số điều mà bạn quan tâm phát triển trang web là: • Điều xảy với máy chủ web điều kiện tải khốc liệt • Làm bạn kiểm tra trang web bạn kịch này? • Lấy 100.000 người dùng đồng thời kết nối với trang web bạn để thử nghiệm bất khả thi May mắn thay, có phần mềm mà giúp bạn giải vấn đề Đó K6 Đây cơng cụ tốt để đo đặc hiệu suất trang web Ban đầu, nhà phát triển phát triển công cụ để thử nghiệm hiệu ứng dụng web thực tế, làm nhiều 4.2 K6.io K6 phần mềm mà sử dụng để chạy thử nghiệm hiệu suất, thử nghiệm thử nghiệm chức ứng dụng web K6 mơ tải nặng máy chủ cách tạo hàng người dùng ảo đồng thời lên máy chủ web K6 ứng dụng mã nguồn mở Điều có nghĩa bạn tải xuống mã nguồn K6 để phân tích sửa đổi bạn muốn 4.3 Ưu điểm nhược điểm Ưu điểm: • Mã nguồn mở: K6 phần mềm mã nguồn mở Điều có nghĩa tải xuống miễn phí Nó ứng dụng Java túy 100% Nhà phát triển sử dụng mã nguồn nó, sửa đổi tùy chỉnh theo yêu cầu họ Họ đóng góp code họ để làm nên K6 tốt 15 • Dễ sử dụng: Người dùng cài đặt sử dụng K6 cách dễ dàng Chỉ cần tải từ internet, cài đặt chạy Như ứng dụng Java túy, sẵn sàng để sử dụng với cài đặt mặc định Nó khơng u cầu bạn phải có kỹ cụ thể kiến thức tên miền để sử dụng • Nền tảng độc lập: K6 phát triển Java, ngôn ngữ lập trình phổ biến giới Do đó, chạy hệ điều hành Window, Linux Mac • Báo cáo mạnh mẽ: K6 tạo báo cáo hiệu Kết kiểm tra xem lại cách sử dụng Graph, Chart, and Tree View K6 hỗ trợ định dạng khác báo cáo text, XML, HTML and JSON • Thử nghiệm cuối cùng: Với K6, người dùng thực loại kiểm thử mà bạn muốn Load Test, Stress Test, Functional Test, Distributed Test, tất công cụ • Tính linh hoạt: Bạn tùy chỉnh K6 theo yêu cầu bạn áp dụng thử nghiệm tự động cho K6 Bạn tiết kiệm cơng sức việc thực trường hợp kiểm tra thủ cơng • Hỗ trợ đa giao thức: K6 hỗ trợ vài giao thức HTTP, FTP, SOAP, JDBC, JMS LDAP Nó sử dụng để kiểm thử hiệu suất sở liệu bạn Nhược điểm • Tiêu thụ nhớ: K6 mơ tải nặng trực quan hóa báo cáo thử nghiệm Điều tiêu tốn nhiều nhớ dẫn khỏi nhớ tải nặng • Chỉ áp dụng cho ứng dụng web: K6 công cụ tốt để thử nghiệm ứng dụng web khơng phải cơng cụ phù hợp để thử nghiệm ứng dụng máy tính để bàn 16 4.4 Cài đặt K6.io phát hành gói cài đặt sử dụng nhiều hệ điều hành, hệ thống linux, mac, window, docker… Linux (Debian/Ubuntu) $ sudo apt-key adv keyserver hkp://keyserver.ubuntu.com:80 recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 $ echo "deb https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list $ sudo apt-get update $ sudo apt-get install k6 Mac (brew) Sử dụng brew $ brew install k6 Windows (MSI installer) $ Download the k6 installer: https://dl.bintray.com/loadimpact/windows/k6-latest-amd64.msi Nếu bạn dùng Chocolatey package manager Bạn cài đặt k6 cách sau: $ choco install k6 Kiểm tra version Để xem cài đặt thành công k6 hay chưa dùng lệnh: $ k6 version # k6 v0.31.1 (2021-03-17T13:23:23+0000/e9d8349, go1.15.8, linux/amd64) 17 Kiểm tra độ chịu tải với K6 Running k6 Vì k6 sử dụng file javascript để chạy test nên dễ dàng tiếp cận Chúng ta tạo file với tên homepage.js đơn giản : Tiến hành chạy test: $ k6 run homepage.js Hoặc chạy với docker: docker run -i loadimpact/k6 run -
- Xem thêm -

Xem thêm: Tìm hiểu về k6 và vận hành trên docker swarm SE121 m11 PMCL , Tìm hiểu về k6 và vận hành trên docker swarm SE121 m11 PMCL