Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
1,67 MB
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 TÌM HIỂU DOCKER VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA Giảng viên hướng dẫn: ThS Nguyễn Công Hoan Lớp: SE121.N11.PMCL Sinh viên thực hiện: Mai Phúc Tâm 20521868 Tp Hồ Chí Minh, 2023 LỜI CẢM ƠN Đầu tiên, em 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 em có kiến thức làm tảng để thực đề tài Đặc biệt, em 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 quý báu giúp em hồn thành báo cáo mơn học mình, em gặp thầy nhiều lần Trong thời gian đề tài, em 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 Dù thời gian chuẩn bị ỏi, em vận dụng thu thập để hoàn thành báo cáo đồ án cách tốt Sai sót chắn xảy ra, vậy, em mong nhận góp ý từ phía thầy nhằm hồn thiện kiến thức mà em học tập hành trang để em thực tiếp đề tài khác tương lai Thành phố Hồ Chí Minh, tháng năm 2023 Sinh viên Mai Phúc Tâm NHẬN XÉT CỦA GIẢNG VIÊN ………………………………………………………………………………………… … ……………………………………………………………………………………… …… …………………………………………………………………………………… ……… ………………………………………………………………………………… ………… ……………………………………………………………………………… …………… …………………………………………………………………………… ……………… ………………………………………………………………………… ………………… ……………………………………………………………………… …………………… …………………………………………………………………… ……………………… ………………………………………………………………… ………………………… ……………………………………………………………… …………………………… …………………………………………………………… ……………………………… ………………………………………………………… ………………………………… ……………………………………………………… …………………………………… …………………………………………………… ……………………………………… ………………………………………………… ………………………………………… ……………………………………………… …………………………………………… …………………………………………… ……………………………………………… ………………………………………… ………………………………………………… ……………………………………… …………………………………………………… …………………………………… ……………………………………………………… ………………………………… ………………………………………………………… ……………………………… …………………………………………………………… …………………………… ……………………………………………………………… ………………………… ………………………………………………………………… ……………………… …………………………………………………………………… …………………… ……………………………………………………………………… Mục lục Table of Contents LỜI CẢM ƠN NHẬN XÉT CỦA GIẢNG VIÊN Chương GIỚI THIỆU CHUNG Lý chọn đề tài 1.1 Về Docker .7 Phạm vi nghiên cứu Nội dung nghiên cứu Kết hướng tới Công cụ sử dụng Chương DOCKER Giới thiệu Virtualization (Công nghệ ảo hoá) 1.1 Khái niệm .9 1.2 Lợi ích 10 1.3 Hardware Virtualization (Ảo hoá phần cứng) 11 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4 Software Virtualization (Ảo hoá phần mềm) 13 1.4.1 1.4.2 1.4.3 1.4.4 1.5 Khái niệm: 13 Khác biệt cơng nghệ ảo hố ảo hố phần mềm: 13 Cách thức hoạt động công nghệ ảo hoả phần mềm: 13 Phân loại ảo hoá phần mềm: 13 Application Virtualization (Ứng dụng ảo) 13 1.5.1 1.5.2 1.5.3 Khái niệm 11 Khác biệt cơng nghệ ảo hố ảo hố phần cứng 11 Các thành phần ảo hoá phần cứng 11 Cách thức hoạt động cơng nghệ ảo hố phần cứng 11 Các loại ảo hoá phần cứng 12 Khái niệm: 13 Cách hoạt động: 14 Lưu ý: 14 Giới thiệu Docker 14 2.1 Khái niệm 14 2.2 Container 16 2.2.1 2.2.2 2.2.3 Khái niệm: 16 Container công nghệ ảo hoá: 16 Chạy phần mềm Container: 17 2.3 So sánh Docker Virtual Machine 18 2.4 Lợi ích 21 2.5 Tác hại 23 2.6 Use case 24 2.7 Tập kiến trúc Docker (Docker Engine) 24 2.7.1 2.7.2 2.7.3 2.8 Docker Daemon (Server): 25 Docker Client: 25 Docker Registry: 25 Các đối tượng khác (Docker Object) 26 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 Docker image 26 Docker container 26 Docker volume 26 Docker networking 27 Docker services 27 Chương XÂY DỰNG HỆ THỐNG 28 5.1 Về ứng dụng website ghi 28 3.1 Xây dựng kiến trúc hệ thống 28 3.1.1 Xác định yêu cầu hệ thống 29 3.1.2 Phân tích yêu cầu hệ thống 29 3.2 Phân tích thiết kế hệ thống 30 3.2.1 Sơ đồ use case 30 3.2.1.1 Sơ đồ use case 30 3.2.1.3 Mô tả chi tiết use case 30 3.2.2 Sơ đồ lớp 31 3.2.2.2 3.3 Mô tả chi tiết 32 Thiết kế giao diện 34 3.3.1.1 Giao diện trang chủ 34 3.3.1.2 Giao diện đăng nhập 35 3.3.1.3 Giao diện danh sách ghi (Khi chưa tạo ghi cả) 35 3.3.1.4 Giao diện soạn ghi 36 3.3.1.5 Giao diện danh sách ghi (sau có ghi chú) 37 3.3.1.6 Giao diện chỉnh sửa ghi 39 Chương KẾT LUẬN 41 4.1 Kết đạt 41 4.2 Hạn chế 41 4.3 Hướng phát triển 41 TÀI LIỆU THAM KHẢO 42 Chương GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài Về Docker Trong thời đại đại, với tiến đáng kinh ngạc công nghệ, ứng dụng tạo cập nhật liên tục, dẫn đến hình thành nhiều ngơn ngữ lập trình Mỗi ngơn ngữ thường yêu cầu phần mềm hỗ trợ, gói thư viện mơi trường riêng biệt Trong số đó, số ngơn ngữ Java Python chạy hầu hết tảng, ngôn ngữ khác C# hay Swift lại có tính kén chọn phụ thuộc vào môi trường hệ điều hành Đối với ứng dụng cần triển khai, việc cài đặt nhiều môi trường vấn đề khó khăn Ngồi ra, cịn có vấn đề xung đột phần mềm, trùng port khác biệt phiên trình phát triển Nếu vấn đề dừng lại việc khó cài đặt, chấp nhận Tuy nhiên, xảy xung đột phần mềm gây ảnh hưởng đến hoạt động ứng dụng, điều khơng thể chấp nhận Để giải vấn đề này, cơng nghệ ảo hóa xuất Docker số Docker, tảng dành cho lập trình viên quản trị hệ thống, giúp phát triển, triển khai chạy ứng dụng thơng qua việc sử dụng container Việc đóng gói ứng dụng vào container giúp giảm thiểu rủi ro xung đột trình phát triển triển khai, đồng thời tạo môi trường vận hành ổn định cho ứng dụng Phạm vi nghiên cứu Đồ án nghiên cứu tập trung vào việc ảo hố Docker, với cơng nghệ đóng gói thư viện ứng dụng, việc quản lý, triển khai bảo mật an ninh container Một phần nghiên cứu áp dụng kết kiến thức thu vào ứng dụng thực tế nhằm tăng cường hiểu biết áp dụng thực tiễn Nội dung nghiên cứu Em trước tiên tìm hiểu cơng nghệ ảo hố gì, sau vào khái niệm Docker, container khái niệm liên quan Ưu, khuyết điểm Docker, Tính năng, Use case vài điều lưu ý sử dụng Docker Kết hướng tới Mục tiêu em với đề tài này, mở rộng kiến thức thân với lĩnh vực quản trị hệ thống Docker Các kiến thức em nhắm tới thông qua trình tìm hiểu áp dụng thực tế đồ án giúp em phát triển thêm việc xây dựng môi trường cô lập ứng dụng thông qua Docker Docker Compose Với sinh viên khác sử dụng đồ án nghiên cứu làm tài liệu tham khảo, em mong tài liệu khái niệm em soạn thảo sưu tầm làm móng bạn tìm hiểu nghiên cứu sâu tuyệt vời Docker Công cụ sử dụng Trong trình xây dựng phần mềm, em sử dụng cơng cụ sau: • • • • Node.js Express.js MongoDB Docker Desktop cho Windows Chương DOCKER 1.1 Giới thiệu Virtualization (Cơng nghệ ảo hố) Khái niệm Virtualization q trình giúp tối ưu hố phần cứng máy tính nguồn gốc điện tốn đám mây Cơng nghệ giúp dev tạo dịch vụ IT (các môi trường ảo) phục vụ cho nhu cầu coding, sử dụng phần mềm để tạo lớp ảo phần cứng máy tính, server, … Đặc biệt hơn, cơng nghệ cho phép sử dụng sức mạnh máy thực chạy hết công suất nhờ vào việc phân vùng tài nguyên cho nhiều người dùng hay môi trường VD: Với phương thức truyền thống, giả sử có máy server Một máy mail server, máy web server, máy lại chạy app lỗi thời Mỗi server dùng với mục đích khác nhau, dùng có 30% suất thay dùng hết khả Hình 1.1 – Sử dụng máy servers với mục đích khác Tuy nhiên, với cơng nghệ ảo hố, nhét thêm ứng dụng lỗi thời vào mail server, cho phép tài nguyên server dùng cách hiệu Thậm chí, phần cịn lại người dùng nhét thêm tác vụ khác vào để tận dụng triệt để Việc giúp giảm khoản chi phát sinh từ việc sử dụng nhiều servers cho server làm nhiều tác vụ khác thay tập trung làm tác vụ Hình 1.2 – Tiết kiệm server thơng qua cơng nghệ ảo hố Ngày nay, cơng nghệ ảo hố thực hành tiêu chuẩn tập kiến trúc doanh nghiệp IT, cơng nghệ thúc đẩy kinh tế đám mây Bằng việc cung cấp đám mây phục vụ cho người dùng thông qua phần cứng máy tính họ, cơng ty cung cấp dịch vụ đưa chi phí hiệu tỉ lệ với tài ngun máy tính dùng cho khối lượng cơng việc người dùng, tạo thị trường màu mỡ phong phú cho đơi bên 1.2 Lợi ích • Tiết kiệm chi phí Như ví dụ trên, Sử dụng nhiều server phần cứng riêng lẻ cho tác vụ khác dẫn đến việc lãng phí tài nguyên làm tác vụ khác Thay vào đó, việc hợp ứng dụng vào mơi trường ảo hố tiết kiệm chi phí cho cơng ty bạn thông qua việc tiết kiệm tiền đáng kể cho máy chủ • Giảm thời gian chết tăng khả phục hồi Giả sử máy vật lí cơng ty gặp cố, cơng ty phải cử để sửa thay đổi chúng, việc tốn đến hàng chí đến hàng ngày liền Nhưng với mơi trường ảo, việc trở nên dễ dàng hơn, bạn tự sửa chữa cách chép clone máy ảo gặp cố, sửa chúng, đưa lên lại, vỏn vẹn vài phút – giúp tăng khả phục hồi mạnh mẽ cải thiện tính liên tục kinh doanh • Hiệu suất cao: Với việc sử dụng server hơn, đội ngũ IT bạn dành thời gian việc bảo trì phần cứng sở hạ tầng CNTT Việc cài đặt, cập nhật trì mơi trường xun suốt máy ảo server dễ dàng so với việc phải trải qua trình đầy gian nan khó khăn việc cập nhật server sang server khác Ít thời gian trì mơi trường đồng nghĩa với việc tăng hiệu suất cho đội ngũ bạn • Tự chủ kiểm sốt DevOps Các dev thiết lập máy ảo làm việc với mà khơng ảnh hưởng đến q trình phát triển phần mềm họ VD: Khi cập nhật phần mềm mắt, phương pháp truyền thống phải kiếm máy mới, tải nùi thư viện modules, thiết lập môi trường để kiểm thử chức Tuy nhiên, cơng nghệ ảo hố gom hết tất bước vỏn vẹn bước, dev/tester cần clone máy chủ ảo cho phần mềm máy họ, kiểm thử môi trường, pull trình phát triển phần mềm Việc giúp tăng tốc độ tính linh hoạt phần mềm 10 Chương XÂY DỰNG HỆ THỐNG 5.1 Về ứng dụng website ghi Nếu bạn đơn giản muốn trang web truy cập lưu trữ ghi cách nhanh chóng, thuận tiện, khơng rườm rà chức năng, website đáp ứng nhu cầu bạn Cụ thể hơn: • Dễ sử dụng: Các chức đơn giản trang web giúp người dùng dễ dàng làm quen sử dụng mà không cần nhiều thời gian để học cách hoạt động Giao diện đơn giản, tính rõ ràng dễ hiểu tạo điều kiện thuận lợi cho người dùng tạo quản lý ghi cách nhanh chóng hiệu • Tiết kiệm thời gian: Với chức đơn giản, người dùng không cần nhiều thời gian cơng sức để tìm hiểu sử dụng trang web Việc tạo, chỉnh sửa xóa ghi thực cách nhanh chóng trực quan, giúp tiết kiệm thời gian tăng hiệu suất làm việc • Tập trung vào nhiệm vụ chính: Trang web quản lý ghi với chức đơn giản thường tập trung vào nhiệm vụ quản lý ghi cách hiệu Thay phức tạp với nhiều tính phụ khác, trang web giúp người dùng tập trung vào việc tạo, tổ chức tìm kiếm ghi cách thuận tiện dễ dàng • Độ tin cậy: Trang web quản lý ghi với chức đơn giản thường có thiết kế đơn giản lỗi, đảm bảo độ tin cậy trình sử dụng Người dùng tin tưởng vào tính ổn định đáng tin cậy trang web để lưu trữ quản lý ghi mà khơng lo lắng cố liệu • Linh hoạt tiện lợi: Một trang web quản lý ghi đơn giản thường hỗ trợ tính truy cập từ nhiều thiết bị tảng khác Điều mang lại linh hoạt tiện lợi cho người dùng để truy cập quản lý ghi họ từ đâu 3.1 Xây dựng kiến trúc hệ thống 28 3.1.1 Xác định yêu cầu hệ thống Từ liệu thu thập q trình khảo sát, xác định được, ứng dụng gồm chức sau đây: + Đăng ký đăng nhập + Cộng tác thời gian thực + Truy cập chỉnh sửa note + Quản lý note 3.1.2 Phân tích yêu cầu hệ thống – Đăng ký Đăng nhập: Khách hàng sử dụng tài khoản đăng ký để đăng nhập vào ứng dụng Hình thức đăng nhập đăng ký sử dụng tài khoản Google Sau đăng nhập, khách hàng sử dụng ứng dụng – Truy cập chỉnh sửa note: Người dùng truy cập chỉnh sửa note họ bình thường, bao gồm thao tác thêm, xoá, sửa văn – Quản lý note: Người dùng quản lý note họ với thao tác tạo note mới, xố note, tìm kiếm note 29 3.2 Phân tích thiết kế hệ thống 3.2.1 Sơ đồ use case 3.2.1.1 Sơ đồ use case 3.2.1.2 Danh sách Actor STT Tên Actor Ý nghĩa/Ghi Người sử dụng phần mềm để ghi User 3.2.1.3 Mô tả chi tiết use case 3.2.1.3.1 Use case Login 30 – Mục đích: Đảm bảo xác thực thơng tin người dùng an toàn bảo mật hệ thống – Tác nhân: User – Mô tả: Người dùng đăng nhập vào hệ thống để vào tận hưởng tính chế độ Online Nếu lần hệ thống tự động đăng kí tài khoản người dùng đăng nhập 3.2.1.3.2 Use case Log out – Mục đích: Đăng xuất khỏi hệ thống – Tác nhân: User – Mô tả: Người dùng click vào nút đăng xuất để thoát tài khoản khỏi hệ thống 3.2.1.3.3 Use case Quản lý note – Mục đích: Xử lí thao tác với note lưu trữ trang web – Tác nhân: User – Mơ tả: Người dùng quản lí thao tác note họ (Thêm, xố, sửa, tìm kiếm lưu) hệ thống web 3.2.2 Sơ đồ lớp 3.2.2.1 Tổng quan sơ đồ lớp 31 3.2.2.2 Mô tả chi tiết 3.2.2.2.1 Lớp Account STT Tên thuộc tính Loại Ràng buộc Mã tài khoản accountid string googleid string Mã tài khoản google displayName string Tên hiển thị firstName string Tên người dùng lastName string Họ người dùng createdAt date Ngày tạo tài khoản STT Tên phương thức logIn() logOut() editInfo() Kiểu trả bool void bool PK Ý nghĩa/ghi Ràng buộc Ý nghĩa/ghi Đăng nhập Đăng xuất Chỉnh sửa thông tin cá nhân 3.2.2.2.2 Lớp Note 32 STT Tên thuộc tính Loại Ràng buộc noteid accountid title body string string string string createdAt date Ngày khởi tạo updatedAt date Ngày cập nhật STT Tên phương thức createNote() editNote() deleteNote() Kiểu trả bool bool Bool PK FK Ý nghĩa/ghi Ràng buộc Mã ghi Mã tài khoản Tiêu đề Nội dung ghi Ý nghĩa/ghi Tạo ghi Chỉnh sửa ghi Xoá ghi 33 3.3 Thiết kế giao diện 3.3.1 Giao diện người dùng 3.3.1.1 Giao diện trang chủ Đây giao diện mở trang web, trang chủ hiển thị hình chào mời người dùng đăng nhập để sử dụng ứng dụng ghi Phần góc hình cho người dùng đăng nhập vào hệ thống, cịn phần cho người dùng thơng tin trang web 34 3.3.1.2 Giao diện đăng nhập Đây giao diện đăng ký, cho phép người dùng sử dụng tài khoản Google để đăng nhập vào website 3.3.1.3 Giao diện danh sách ghi (Khi chưa tạo ghi cả) Đây giao diện hiển thị danh sách ghi mà người dùng tạo Tuy nhiên, chưa có ghi tạo nên hình thay vào trở thành hình chào mời người dùng tạo ghi 35 3.3.1.4 Giao diện soạn ghi Đây giao diện cho phép người dùng soạn ghi mới, gồm tiêu đề nội dung ghi Sau người dùng ghi xong, người dùng ấn vào nút Add Note bên để thêm vào danh sách ghi 36 3.3.1.5 Giao diện danh sách ghi (sau có ghi chú) Đây giao diện hiển thị danh sách ghi mà người dùng tạo Phần ghi danh sách hiển thị phần tiêu đề phần nội dung có sẵn Muốn coi chi tiết ghi người dùng cần ấn vào ghi để xem đầy đủ 37 38 3.3.1.6 Giao diện chỉnh sửa ghi Nội dung giao diện gần tương tự với giao diện tạo ghi chú, khác xuất nút xoá ghi thay nút thêm ghi thành cập nhật ghi Ngồi ra, người dùng ấn vào nút Xố ghi hình pop-up xác nhận người dùng có muốn xố ghi hay khơng 39 40 Chương KẾT LUẬN 4.1 Kết đạt – Hoàn thành yêu cầu đặt – Giao diện đa số đơn giản, bố cục hợp lý, người dùng dễ dàng theo tác ứng dụng – Tốc độ phản hồi thao tác nhanh – Sinh viên thực nắm cách thức làm ứng dụng website thương mại điện tử, hiểu biết Docker, NodeJS, ExpressJS, MongoDB 4.2 Hạn chế – Website thiếu nhiều chức định lúc ban đầu: • Chức cộng tác thời gian thực • Chức chia sẻ ghi • Chức truy cập vào ghi người dùng khác – Có vài phần giao diện không thân thiện với người dùng 4.3 Hướng phát triển – Xây dựng chứa cịn thiếu, hồn thiện chức có – Thêm nhiều phương thức đăng nhập khác 41 TÀI LIỆU THAM KHẢO Trong trình xây dựng phát triển ứng dụng website, tham khảo cácnguồn tài liệu sau: Tài liệu Docker: https://www.docker.com/ Tài liệu React.js: https://reactjs.org/ Tài liệu MongoDB: https://www.mongodb.com/ Tài liệu Mongoose: https://mongoosejs.com/ Tài liệu Google Cloud: https://cloud.google.com/docs/ Tài liệu PassportJS: https://www.passportjs.org/docs/ Tài liệu ExpressJS: https://expressjs.com/en/4x/api.html 42