Ưu nhược điểm của Docker

Một phần của tài liệu XÂY DỰNG WEBSITE HỖ TRỢ TRONG VIỆC HỌC TẬP VÀ GIẢNG DẠY CỦA HỌC SINH VÀ GIÁO VIÊN BẰNG NGÔN NGỮ PHP (Trang 49)

Ưu điểm:

Thứ nhất là tính tiện lợi, nhanh chóng. Nếu như trước đây triển khai dịch vụ/ứng dụng trên VMs tốn vài chục phút thì với Docker, nó sẽ giảm xuống chỉ còn vài phút. Thứ hai là tiết kiệm resource (tài nguyên). Mỗi docker container sử dụng bao nhiêu resource thì sẽ tốn bấy nhiêu, không sử dụng thì resource sẽ được trả về cho máy chủ host.

Thứ ba là hệ thống có mức độ tự động mở rộng cao hơn để đáp ứng nhu cầu phục vụ người dùng. Việc khởi tạo và tắt đi của một docker container diễn ra khá dễ dàng và dựa trên các metric của hệ thống.

Thứ tư là dễ dàng automate (tự động hóa) việc quản lý các docker container thông qua Kubernetes hoặc Docker Swarm.

36

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Nhược điểm:

Docker container nhỏ hơn và yêu cầu ít tài nguyên hơn máy ảo với máy chủ và cơ sở dữ liệu. Đồng thời, Docker sẽ sử dụng nhiều tài nguyên hệ thống như bộ lập lịch kernel của máy chủ sẽ cho phép. Bạn không nên mong đợi Docker tăng tốc ứng dụng theo bất kỳ cách nào.

Hơn thế nữa, Docker thậm chí có thể làm cho nó chậm hơn. Nếu bạn đang làm việc với nó, bạn nên đặt giới hạn về dung lượng bộ nhớ, CPU hoặc chặn IO mà bộ chứa có thể sử dụng. Mặt khác, nếu kernel phát hiện bộ nhớ của máy chủ đang chạy quá thấp để thực hiện các chức năng hệ thống quan trọng, nó có thể bắt đầu giết chết các quy trình quan trọng. Nếu quá trình sai bị giết (bao gồm cả Docker), hệ thống sẽ không ổn định.

Thật không may, các điều chỉnh bộ nhớ của Docker – ưu tiên hết bộ nhớ trên Docker daemon – không giải quyết được vấn đề này. Ngược lại, một lớp bổ sung giữa một ứng dụng và hệ điều hành cũng có thể dẫn đến việc giảm tốc độ. Tuy nhiên, mức giảm này sẽ không đáng kể. Docker container không được cách ly hoàn toàn và không chứa một hệ điều hành hoàn chỉnh như bất kỳ máy ảo nào.

Ưu điểm bảo mật lớn nhất của Docker là nó chia ứng dụng thành các phần nhỏ hơn. Nếu bảo mật của một phần bị xâm phạm, phần còn lại sẽ không bị ảnh hưởng.

Tuy nhiên, trong khi các quy trình riêng biệt trong các container hứa hẹn cải thiện bảo mật, tất cả các container đều chia sẻ quyền truy cập vào một hệ điều hành máy chủ duy nhất. Bạn có nguy cơ chạy các container Docker với sự cô lập không đầy đủ. Bất kỳ mã độc hại có thể có quyền truy cập vào bộ nhớ máy tính của bạn.

Có một thực tế phổ biến để chạy rất nhiều container trong một môi trường duy nhất. Đây là cách bạn làm cho ứng dụng của mình bị tấn công theo kiểu tấn công Tài nguyên lạm dụng trừ khi bạn giới hạn khả năng của bộ chứa tài nguyên. Để có hiệu quả và cách ly tối đa, mỗi container nên giải quyết một lĩnh vực quan tâm cụ thể.

37

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Một vấn đề khác là cấu hình mặc định của Docker – người dùng không được đặt tên. Không gian tên cho phép tài nguyên phần mềm chỉ sử dụng các tài nguyên khác nếu chúng thuộc về một không gian tên cụ thể.

Chạy các ứng dụng với Docker ngụ ý chạy daemon Docker với quyền root. Bất kỳ quy trình nào thoát ra khỏi Docker container sẽ có cùng đặc quyền trên máy chủ như đã thực hiện trong vùng chứa. Chạy các quy trình của bạn bên trong các thùng chứa như một người dùng không có đặc quyền có thể đảm bảo an ninh. Nó phụ thuộc vào khả năng bạn thêm hoặc loại bỏ. Để giảm thiểu rủi ro khi đột nhập container Docker, bạn không nên tải xuống các container sẵn sàng sử dụng từ các nguồn không đáng tin cậy.

38

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

39

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3.1 Phân tích yêu cầu đề tài

3.1.1 Phát biểu bài toán

Như đã đề cập, website hỗ trợ trong việc học tập, nhằm hỗ trợ mọi người cập nhật kiến thức một cách nhanh chóng, mà không tốn quá nhiều thời gian trong việc tìm hiểu sách vỡ một cách thủ công. Chúng ta có thể hiểu đơn giản rằng, website là nơi bản giao lưu học tập, cũng là nơi các thí sinh có thể thi đua để giành những điểm số cao.

3.1.2 Yêu cầu bài toán

Đối với website hỗ trợ trong việc học tập, yêu cầu cao nhất luôn phải có giao diện đơn giản để giúp mọi người dễ dàng tiếp cận.

Tiếp theo, em hướng tới những chức năng cơ bản của website hỗ trợ trong việc học tập, như đăng nhập, đăng ký, thi và hiển thị kết quả.

Đối với một website có nhiều người truy cập thì tính bảo mật luôn đặt lên hàng đầu, đó cũng là nhân tố chính để giúp người dùng luôn cảm thấy an toàn khi truy cập vào website.

Tiếp theo là khả năng tải trang, tốc độ luôn là vấn đề của mọi website, em luôn cố gắng hạn chế sử dụng các thư viện có sẵn để tăng khả năng chịu tải của trang web.

3.2 Đặc tả chức năng

Có 4 tác nhân chính trong hệ thống website hỗ trợ trong việc học tập: - Admin.

- Thí sinh cố định. - Thí sinh tự do. - Giảng viên.

40

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.2.1 Admin

Quản lý thông tin người dùng: có được thông tin của tất cả người dùng đăng ký thành viên trong hệ thống website từ giáo viên đến thí sinh tự dọ, có thể thực hiện được chức năng đổi tên người dùng mật khẩu…

Quản lý câu hỏi: có thể thực hiện chức năng thêm câu hỏi cho hệ thống cũng như thực hiện các chức năng sửa xóa.

Quản lý câu hỏi trò chơi: có thể thêm và chỉnh sửa hay xóa các câu hỏi trong phần trò chơi của hệ thống.

Quản lý thông tin bài làm: hiển thị thông tin tất cả bài làm của người dùng, tên người dùng, kết quả bài bài…

3.2.2 Thí sinh tự do

Quản lý thông tin cá nhân: có quyền đăng ký tài khoản, thực hiện chức năng đăng nhập. Có thể cập nhập thông tin cá nhân, như cập nhập tên, mật khẩu.

Quản lý làm bài: có quyền làm bài trắc nghiệm, khi nhấn nộp bài thì hiển thị chi tiết bài làm, hiển thị kết quả bài làm.

Quản lý kết quả bài làm: sau khi làm bài thì dữ liệu điểm sẽ được lưu trữ. Quản lý chơi trò chơi: có quyền chơi trò chơi với các câu hỏi từ admin thêm vào, với hệ thống trực quan.

3.2.3 Thí sinh cố định

Quản lý kiểm tra thông tin cá nhân: khi truy cập vào hệ thống thí sinh cố định có thể nhập mã sinh viên để kiểm tra thông tin cá nhân.

Quản lý làm bài thi: thí sinh có thể thực hiện làm bài thi để thực hiện việc điểm danh một cách tự động.

Quản lý làm bài tập: thí sinh có thể thực hiện làm bài tập mà giảng viên đã giao.

3.2.4 Giảng viên

Quản lý thông tin thí sinh cố định: giáo viên có quyền quản lý thông tin thí sinh cố định, khi thực hiện chức năng thêm chỉnh sửa hoặc xóa thí sinh.

41

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Quản lý bài tập: giảng viên có thể thực hiện thêm bài tập về nhà cho sinh viên và hệ thống sẽ thông báo bằng gmail cho sinh viên.

Quản lý điểm danh: giảng viên có thể thực hiện chức năng điểm danh, cũng như xem được thông tin điểm danh, điểm danh thủ công, thêm chỉnh sửa hay xóa, hoặc có thể thực hiện chức năng xuất file excel.

Quản lý công việc cá nhân: giảng viên thể thực hiện thêm công việc cá nhân của bản thân và thực hiện chỉnh sửa hay xóa.

3.3 Biểu đồ phân rã chức năng 3.3.1 Khái niệm 3.3.1 Khái niệm

BFD là biểu đồ phân rã có thứ bậc các chức năng của hệ thống từ tổng thể đến chi tiết, mỗi chức năng có thể có một hoặc nhiều chức năng con, tất cả được thể hiện trong một khung của biểu đồ.

3.3.2 Ý nghĩa của BFD

Giới hạn phạm vi của hệ thống thông tin cần phải phân tích.

Tiếp cận thông tin về mặt logic nhằm làm rõ chức năng của hệ thống.

Phân biệt các chức năng và nhiệm vụ của từng bộ phận trong hệ thống thông tin, từ đó lọc bỏ những chức năng trùng lặp, dư thừa.

3.3.3 Hạn chế của BFD

BFD không có tính động, nó chỉ cho thấy các chức năng mà không thể hiện trình tự xử lý của các chức năng đó cũng như sự trao đổi thông tin giữa các thông tin. Do đó, BFD thường được sử dụng làm mô hình chức năng trong bước đầu phân tích.

42

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.3.4 Biểu đồ

Hình 20: Biểu đồ phân rã chức năng của hệ thống

3.4 Sơ đồ Usecase

Use case là một kỹ thuật được dùng trong kỹ thuật phần mềm và hệ thống để

nắm bắt yêu cầu chức năng của hệ thống. Use case mô tả sự tương tác đặc trưng giữa người dùng bên ngoài (actor) và hệ thống.

Nó thể hiện ứng xử của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm của người sử dụng. Nó mô tả các yêu cầu đối với hệ thống, có nghĩa là những gì hệ thống phải làm chứ không phải mô tả hệ thống làm như thế nào. Tập hợp tất cả Use case của hệ thống sẽ mô tả tất cả các trường hợp mà hệ thống có thể được sử dụng.

43

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.4.1 Sơ đồ use case tổng quát

44

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Bảng 1: Mô tả use case tổng quát của hệ thông

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Quản lý thông tin người dùng

Use case này mô tả chức năng quản lý thông tin của người dùng như thêm người dùng, chỉnh sửa, xóa thông tin.

2 Quản lý câu hỏi thi Use case này mô tả chức năng quản lý câu hỏi thi của thí sinh tự dọ như thực hiện thêm câu hỏi, sửa hay xóa câu hỏi.

3 Quản lý câu hỏi trò chơi

Use case này mô tả chức năng quản lý câu hỏi trò chơ cho thí sinh tự do, thêm câu hỏi, chỉnh sửa câu hỏi hay xóa.

4 Quản lý kết quả thí sinh tự do

Use case này mô tả chức năng quản lý kết quả thí sinh tự do như xem được toàn bộ thông tin của tất cả thí sinh, về tên, ngày thi, và số điểm.

5 Đăng nhập trang quản trị

Use case này mô tả chức năng đăng nhập trang quản trị, điều này có nghĩa nếu muốn thực hiện quyền quản trị đầu tiên cần xác nhận tài khoản.

6 Quản lý thí sinh cố định

Use case này mô tả chức năng của giảng viên, như thêm các thí sinh cố định, chỉnh sửa hay xóa các thông tin như mã học phần, tên, lớp,…

7 Quản lý câu hỏi điểm danh

Use case này mô tả chức năng quản lý câu hỏi điểm danh của giảng viên như thêm câu hỏi, chỉnh sửa, xóa câu hỏi để thực hiện việc điểm danh.

8 Quản lý thông tin điểm danh

Use case này mô tả chức năng hiển thị toàn bộ thông tin điểm danh của thí sinh cố định, thực hiện điểm danh tự động hay thủ công.

45

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

9 Đăng nhập trang giảng viên

Use case này mô tả muốn thực hiện quyền giảng viên phải đăng nhập để xác thực thông tin.

10 Quản lý thông tin cá nhân

Use case này mô tả chức năng quản lý thông tin cá nhân của thí sinh tự do như xem thông tin hay đổi mật khẩu.

11 Thực hiện chức năng thi

Use case này mô tả chức năng thực hiện thi của thí sinh tự do bằng cách chọn đề thi và thực hiện thi. 12 Thực hiện chơi trò

chơi

Use case này mô tả chức năng thực hiện chơi trò chơi.

13 Quản lý lịch sử bài làm cá nhân

Use case này mô tả chức năng quản lý lịch sử bài làm cá nhân, xem ngày thi kết quả thi.

14 Đăng nhập trang thí sinh tự do

Use case này mô tả chức năng xác thực thông tin khi truy cập vào trang của thí sinh tự do.

15 Quản lý kiểm tra thông tin cá nhân

Use case này mô tả chức năng của thí sinh cố định kiểm tra thông tin cá nhân bằng cách nhập mã sinh viên.

16 Quản lý làm bài thi Use case này mô tả chức năng thi của thí sinh cố định thực hiện chức năng thi.

18 Quản lý làm bài tập Use case này mô tả chức năng làm bài tập của thí sinh cố định.

19 Quét mã QR để xác thực

Use case này mô tả chức năng quyét mã QR của thí sinh cố định để chuyển hướng trang.

20 Truy cập link giảng viên cấp

Use case này mô chức năng truy cập link giảng viên cấp để nộp bài tập.

46

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.4.2 Sơ đồ use case quản lý thông tin người dùng

Hình 22: Sơ đồ use case quản lý thông tin người dùng Bảng 2: Mô tả use case quản lý thông tin người dùng

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Thêm người dùng Thêm thông tin người dùng khi muốn tạo mới một người dùng.

2 Chỉnh sửa thông tin người dùng

Thực hiện chỉnh sửa thông tin người dùng khi có yêu cầu.

3 Xóa người dùng Thực hiện chức năng xóa người dùng.

3.4.3 Sơ đồ use case quản lý câu hỏi thi

47

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Hình 3: Mô tả use case quản lý câu hỏi thi

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Thêm câu hỏi Thực hiện chức năng thêm câu hỏi cho thí sinh tự do 2 Chỉnh sửa thông tin

câu hỏi

Thực hiện chức năng chỉnh sửa thông tin câu hỏi cho thí sinh tự do

3 Xóa câu hỏi Thực hiện chức năng xóa câu hỏi.

3.4.4 Sơ đồ use case quản lý câu hỏi trò chơi

Hình 24: Sơ đồ use case quản lý câu hỏi trò chơi Hình 4: Mô tả use case quản lý câu hỏi trò chơi

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Thêm câu hỏi Thực hiện chức năng thêm câu hỏi trò chơi cho thí sinh tự do.

2 Chỉnh sửa thông tin câu hỏi

Thực hiện chức năng chỉnh sửa thông tin câu hỏi trò chơi cho thí sinh tự do.

48

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.4.5 Sơ đồ use case quản lý kết quả thí sinh tự do

Hình 25: Sơ đồ use case quản lý kết quả thí sinh tự do Hình 5: Mô tả use case quản lý kết quả thí sinh tự do

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Xem thông kê về điểm

Xem thông kê về điểm số thi của các thí sinh tự do. 2 Xem thống kê về

ngày thi

Xem thông kê về ngày thi của các thí sinh tự do. 3 Xem thống kê về

thành viên thi

49

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.4.6 Sơ đồ use case quản lý thí sinh cố định

Hình 26: Sơ đồ use case quản lý thí sinh cố định Hình 6: Mô tả use case quản lý thí sinh cố định

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Thêm thí sinh cố định

Giảng viên thực hiện thêm thông tin thí sinh cố định để thí sinh cố định có thể điểm danh.

2 Sửa thông tin của thí sinh cố định

Giảng viên có thể sửa thông tin của thí sinh cố định. 3 Xóa thông tin của

thí sinh cố định

50

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

3.4.7 Sơ đồ usecase quản lý câu hỏi điểm danh

Hình 27: Sơ đồ use case quản lý câu hỏi điểm danh Hình 7: Mô tả use case quản lý câu hỏi điểm danh

STT Tên Use Case Ý Nghĩa/ Ghi Chú

1 Thêm câu hỏi Giảng viên có thể thêm câu hỏi cho thí sinh cố định điểm danh.

2 Chỉnh sửa câu hỏi Giảng viên có thể sửa câu hỏi điểm danh của thí sinh

Một phần của tài liệu XÂY DỰNG WEBSITE HỖ TRỢ TRONG VIỆC HỌC TẬP VÀ GIẢNG DẠY CỦA HỌC SINH VÀ GIÁO VIÊN BẰNG NGÔN NGỮ PHP (Trang 49)