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
2,62 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 Phạm vi nghiên cứu Nội dung nghiên cứu .7 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 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 hoá 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 Lý chọn đề tài 1.1 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 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 hoá 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 q 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 q 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 Giới thiệu Virtualization (Công nghệ ảo hố) 1.1 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ả 1.1 – Sử dụng máy servers mục đích khác nhaucác ứng dụng lỗi thời Tuy nhiên, Hình với cơng nghệ ảo3hố, chúng với ta nhét thêm 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ụ 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 Hình 1.2 – Tiết kiệm server thông qua công nghệ ảo hoá 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 soá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 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 Tối ưu chi phí bảo vệ môi trường