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

đồ án linux và phần mềm nguồn mở đề tài deploy web services with docker

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Deploy Web Services With Docker
Tác giả Nguyễn Ngọc Sơn, Đặng Thái Sơn, Nguyễn Đình Anh Tài, Lê Minh Sang
Người hướng dẫn TS. Hoàng Hữu Đức
Trường học Trường Đại học Công nghệ Thông tin & Truyền thông Việt Hàn
Chuyên ngành Khoa học Máy tính
Thể loại Đồ án Linux và phần mềm nguồn mở
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 29
Dung lượng 3,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Tìm những tài liệu và hình ảnh liên quan đến Docker.- Chỉnh sửa và hoàn thiện báo cáo đồ án.Lê Minh Sang - Tìm hiểu và nghiên cứu về Web Server và Database.- Làm powerpoint chính- Tìm

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT HÀNKHOA KHOA HỌC MÁY TÍNH

ĐỒ ÁN LINUX VÀ PHẦN MỀM NGUỒN MỞĐỀ TÀI: DEPLOY WEB SERVICES

WITH DOCKER

Sinh viên thực hiện: NGUYỄN NGỌC SƠN,

ĐẶNG THÁI SƠN, NGUYỄN ĐÌNH ANH TÀI LÊ MINH SANG

Giảng viên hướng dẫn: TS HOÀNG HỮU ĐỨC

Đà Nẵng, tháng 10 năm 2023

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT HÀNKHOA KHOA HỌC MÁY TÍNH

ĐỒ ÁN LINUX VÀ PHẦN MỀM NGUỒN MỞĐỀ TÀI: DEPLOY WEB SERVICES

WITH DOCKER

Sinh viên: NGUYỄN NGỌC SƠN Mã: 21IT646

Giảng viên hướng dẫn: TS.HOÀNG HỮU ĐỨC

Đà Nẵng, tháng 10 năm 2023

Trang 3

LỜI CẢM ƠN

Trước hết, chúng tôi xin cảm ơn Khoa Khoa học Máy tính, Trường Đại học Côngnghệ Thông tin và Truyền thông Việt Nam - Hàn Quốc đã tạo điều kiện cho chúng tôinghiên cứu và chuẩn bị báo cáo giữa kỳ này

Tiếp theo, chúng tôi xin cảm ơn các thầy cô giáo Khoa Khoa học Máy tính Đặcbiệt, TS Hoàng Hữu Đức đã nhiệt tình giảng dạy và hướng dẫn chúng tôi những kiếnthức quý giá trong học kỳ này để chúng tôi có thể cải thiện tốt trong quá trình triểnkhai lập trình hệ thống trong học kỳ này

Trong quá trình thực hiện, chúng ta không thể tránh khỏi những bất cập Rấtmong nhận được sự hướng dẫn, góp ý của các bạn để chúng tôi có thể cố gắng cảithiện

Cuối cùng, với sự trân trọng và biết ơn sâu sắc, tôi chúc bạn sức khỏe và ngàycàng thành công hơn nữa trong sự nghiệp ngày càng phát triển con người,

Chúng tôi chân thành cảm ơn bạn!

Sinh viên thực hiện

NGUYỄN ĐÌNH ANH TÀIĐẶNG THÁI SƠNNGUYỄN NGỌC SƠN

LÊ MINH SANG

Trang 4

BẢNG PHÂN CÔNG CÔNG VIỆC

Nguyễn Ngọc Sơn - Tìm hiểu và nghiên cứu về Docker

- Demo về websever và database với Docker - Tìm những tài liệu và hình ảnh liên quan đến

Docker.- Chỉnh sửa và hoàn thiện báo cáo đồ án.Lê Minh Sang - Tìm hiểu và nghiên cứu về Web Server và

Database.- Làm powerpoint chính- Tìm những tài liệu và hình ảnh liên quan đến

Web Server và DatabaseĐặng Thái Sơn - Tìm hiểu cách thực hiện và triển khai Docker

với Web Server và Database- Làm báo cáo chính.- Tìm một số ví dụ về cách thực hiện và triển

khai Docker với Web Server và DatabaseNguyễn Đình Anh Tài - Tìm hiểu về các ứng dụng thực tế của Docker

liên quan đến Web Server- Góp ý và hỗ trợ bạn Sơn những chi tiết liên

quan đến demo- Chỉnh sửa và hoàn thiện powerpoint- Tìm hiểu một số trang web nổi tiếng liên quan

đến Docker với Web Server

Trang 6

DANH MỤC HÌNH VẼ

Figure 1 Web Server được kết nối với mạng máy tính mở rộng 4

Figure 2 Docker 10

Figure 3 docker-compose up -d 15

Figure 4 docker images 15

Figure 5 docker container ls 16

Figure 6 Thực thi import file sql vào cơ sở dữ liệu 16

Figure 7 Kiểm tra log của container 16

Figure 8 Demo trên localhost 17

Figure 9 docker-compose down 17

Figure 10 Demo sản phẩm 18Figure 11 Database

Trang 7

MỤC LỤC

MỤC LỤC vi

MỞ ĐẦU 1

1 Giới thiệu 1

2 Mục tiêu và phạm vi của đề tài 1

3 Nội dung và kế hoạch thực hiện 1

4 Bố cục báo cáo 2

CHƯƠNG 1 GIỚI THIỆU TỔNG QUÁT 3

1 Tổng quan về Web Server 3

1.1 Giới thiệu về Web Server 3

1.2 Lý do xuất hiện 3

1.3 Đánh giá về Web Server 4

2 Web Server hoạt động như thế nào? 5

2.1 Công nghệ sử dụng 5

2.2 Cách thức hoạt động 6

3 Các vấn đề khi triển khai ứng dụng 8

4 Kết chương 1 9

CHƯƠNG 2 GIẢI QUYẾT VẤN ĐỀ 10

1 Giới thiệu về Docker 10

2 Cách hoạt động của Docker 10

3 Đánh giá về Docker 11

3.1 Ưu điểm 11

3.2 Nhược điểm: 11

Trang 8

5 Kết chương 2 13

CHƯƠNG 3 CÀI ĐẶT 14

1 File cấu hình dịch vụ docker-compose.yml 14

2 File định nghĩa image web service Dockerfile 15

3 Các lệnh để build image và quản lý container 15

CHƯƠNG 4 DEMO SẢN PHẨM 18

KẾT LUẬN 19

1 Kết quả đạt được 19

2 Hạn chế 19

3 Hướng nghiên cứu 19

TÀI LIỆU THAM KHẢO i

Trang 9

MỞ ĐẦU1 Giới thiệu

Trong thời đại số hóa và phát triển công nghệ thông tin, xây dựng ứng dụngweb trở nên phức tạp và đòi hỏi tính linh hoạt và khả năng mở rộng Kiến trúc WebServer đã nổi lên như một cách hiệu quả để xây dựng ứng dụng có khả năng chia thànhcác thành phần nhỏ, độc lập, giúp quản lý dễ dàng và tối ưu hóa hiệu suất Docker, mộtnền tảng containerization, giúp đóng gói ứng dụng một cách độc lập, cung cấp môitrường đồng nhất và giảm xung đột trong quá trình triển khai

Với sự phát triển mạnh mẽ của các công nghệ này, đề tài này đã đượcchọn để xem xét cách kết hợp sức mạnh của kiến trúc Web Server và Docker đểxây dựng ứng dụng bizweb hiệu quả, linh hoạt và dễ quản lý

2 Mục tiêu và phạm vi của đề tài

Mục tiêu của dự án là xây dựng một ứng dụng web với kiến trúc server, trongđó mỗi web server sẽ thực hiện một chức năng cụ thể của ứng dụng Chúng tôi sẽ sửdụng Docker để đóng gói và triển khai các Web Server, tạo ra môi trường đồng nhất vàdễ quản lý

Phạm vi của dự án sẽ tập trung vào các bước cơ bản để xây dựng và triển khaiứng dụng, bao gồm:

1 Xác định chức năng của từng web server 2 Đóng gói web server bằng Docker containers 3 Tạo và quản lý các Docker containers thông qua Docker Compose 4 Triển khai ứng dụng trên một môi trường thử nghiệm

3 Nội dung và kế hoạch thực hiện

- Giới thiệu về Web Server: Trình bày khái niệm, lý do xuất hiện và ưu điểm,nhược điểm của Web Server

- Kiến trúc Web Server.- Các vấn đề trong việc triển khai Web Server

1

Trang 10

- Tuỳ chỉnh và mở rộng server ảo hoá: Nêu các phương pháp tuỳ chỉnh và mởrộng server ảo hoá trong Docker, bao gồm việc sử dụng Dockerfile và quản lývolumes.

- Thực hiện và kiểm thử: Mô tả kế hoạch thực hiện triển khai server Ubuntutrong Docker và tiến hành kiểm thử để đảm bảo tính ổn định và hiệu năng củahệ thống

4 Bố cục báo cáo

Sau phần Mở đầu, báo cáo được trình bày trong ba chương, cụ thể như sau:

Chương 1 Giới thiệu tổng quát

Chương 2 Giải quyết vấn đề

Chương 3 Cài đặt.Chương 4 Demo sản phẩm.

Cuối cùng là Kết luận Tài liệu tham khảo, và Phụ lục liên quan đến đề tài

2

Trang 11

CHƯƠNG 1 GIỚI THIỆU TỔNG QUÁT1.Tổng quan về Web Server

1.1 Giới thiệu về Web Server

Web server hay máy chủ web là một máy tính được kết nối và liên kết mạng máytính mở rộng Máy chủ web được cài đặt các chương trình để phục vụ ứng dụng web,chứa toàn bộ dữ liệu và nắm quyền quản lý Web server có thể lấy thông tin requess từphía trình duyệt web và gửi phần hồi tới máy khách thông qua HTTP hoặc giao thứckhác

Các web server thông dụng nhất hiện nay như: Apache, Nginx, IIs

Hình 1 Web server được kết nối và liên kết mạng máy tính mở rộng

1.2 Lý do xuất hiện

3

Trang 12

Web server chơi một vai trò quan trọng trong việc kết nối và chia sẻ thông tingiữa các máy chủ và máy khách, làm cho World Wide Web trở thành một môi trườngtrực tuyến phong phú và đa dạng.Web server xuất hiện để cung cấp một nền tảng choviệc chia sẻ thông tin và tài nguyên qua mạng Internet Dưới đây là một số lý do quantrọng:

- Phân phối thông tin: Web server cho phép tổ chức và cung cấp thông tin trênInternet dưới dạng trang web, tạo điều kiện cho người dùng truy cập thông tin từ mọinơi trên thế giới

- Phục vụ trang web động: Web server có khả năng xử lý mã nguồn động(dynamic content) để tạo ra các trang web động dựa trên dữ liệu được truy vấn từ cơsở dữ liệu hoặc các nguồn khác

- Phục vụ ứng dụng web: Web server hỗ trợ triển khai và chạy các ứng dụngweb, bao gồm cả các ứng dụng phức tạp sử dụng các ngôn ngữ lập trình như PHP,Python, Ruby, Java, và nhiều ngôn ngữ khác

- Quản lý truy cập và bảo mật: Web server cung cấp các tính năng để quản lýquyền truy cập, xác thực người dùng và bảo mật dữ liệu truyền tải giữa máy chủ vàmáy khách

- Chia sẻ tài nguyên: Web server giúp chia sẻ tài nguyên trên mạng, từ các tệp tinđến ảnh, video, và dữ liệu khác

- Hỗ trợ HTTPS: Web server hỗ trợ giao thức HTTPS, cung cấp một kênh antoàn cho việc truyền tải dữ liệu qua mạng

- Tăng hiệu suất: Các web server hiện đại thường có khả năng xử lý hàng ngànkết nối đồng thời, tối ưu hóa hiệu suất để phục vụ nhanh chóng cho số lượng lớn ngườidùng

- Quản lý phiên và tình trạng: Web server theo dõi trạng thái của các yêu cầu,quản lý phiên làm việc và duy trì trạng thái liên tục giữa các yêu cầu từ cùng mộtngười dùng

- Tối ưu hóa độ tin cậy và khả dụng: Các web server thường đi kèm với các tínhnăng tối ưu hóa độ tin cậy, đảm bảo rằng dịch vụ web có sẵn và hoạt động liên tục

1.3 Đánh giá về Web Server

1.3.1 Ưu điểm của Web Server:- Phân phối hiệu suất: Web server được thiết kế để xử lý nhiều yêu cầu đồng thời, đảm bảo hiệu suất cao khi phục vụ trang web cho nhiều người dùng

4

Trang 13

- Quản lý Ứng dụng Web: Cung cấp môi trường thích hợp để chạy vàquản lý ứng dụng web phức tạp, hỗ trợ nhiều ngôn ngữ lập trình và framework.

- Tích hợp Bảo mật: Web server cung cấp các tính năng bảo mật như xác thực người dùng, quản lý quyền truy cập, và hỗ trợ giao thức HTTPS để bảo vệ dữ liệu truyền tải

- Quản lý Phiên và Tình trạng: Theo dõi trạng thái của các yêu cầu, quản lý phiên làm việc và duy trì trạng thái liên tục giữa các yêu cầu từ cùng một người dùng

- Hỗ trợ Công nghệ Mới: Hỗ trợ các công nghệ mới như HTTP/2 và HTTP/3 để tối ưu hóa tốc độ truyền tải

- Chia sẻ Tài nguyên: Hỗ trợ chia sẻ tài nguyên như ảnh, video, và dữ liệukhác qua mạng Internet

- Tích hợp Reverse Proxy: Nhiều web server cũng có thể hoạt động như reverse proxy, tăng cường bảo mật và hiệu suất

1.3.2 Nhược điểm của Web Server:- Khả năng Mở rộng Có Hạn: Mặc dù nhiều web server có khả năng mở rộng, nhưng với một lượng lớn người dùng, bạn có thể đối mặt với giới hạn về khả năng mở rộng của họ

- Yêu Cầu Tài nguyên: Một số web server yêu cầu tài nguyên hệ thống đáng kể, đặc biệt là khi phải xử lý hàng nghìn kết nối đồng thời

- Cấu hình Phức tạp: Cấu hình một web server có thể trở nên phức tạp, đặc biệt là khi cần tùy chỉnh và tích hợp nhiều tính năng

- Bảo mật và Quản lý Rủi ro: Mặc dù web server cung cấp các tính năng bảo mật, nhưng nếu không được quản lý chặt chẽ, nó có thể trở thành một mục tiêu cho các cuộc tấn công mạng

- Chi phí Phát triển và Duy trì: Cần nguồn lực và chi phí để phát triển, cấuhình, và duy trì một hệ thống web server

- Yêu Cầu Kiến thức Kỹ thuật: Việc cấu hình và quản lý web server yêu cầu kiến thức kỹ thuật, và có thể đòi hỏi sự hiểu biết sâu rộng về hệ thống và mạng

5

Trang 14

- Rủi ro từ Các Lỗ Hổng Bảo mật: Nếu không được cập nhật và bảo trì đúng cách, web server có thể trở thành một nguồn rủi ro từ các lỗ hổng bảo mật.

2 Web Server hoạt động như thế nào?

- Content Delivery Network (CDN): Cloudflare, Akamai, Amazon CloudFront

- Containerization và Orchestration: Docker, Kubernetes.- SSL/TLS Certificates: Let's Encrypt

- Web Application Firewall (WAF): ModSecurity.- Monitoring và Logging: Prometheus, Grafana, ELK Stack.- Server Operating System: Linux (Ubuntu, CentOS), Windows Server.- Server-Side Scripting: CGI, FastCGI

- Authentication và Authorization: OAuth, OpenID Connect, JWT.- Dependency Management: Composer (PHP), pip (Python), npm (Node.js)

- Web Standards: HTML, CSS, JavaScript

2.2 Cách thức hoạt động của Web Server

Bất cứ khi nào bạn xem một trang web trên internet, có nghĩa là bạn đang yêu cầu trang đó từ một web server Khi bạn nhập URL trên trình duyệt của mình nó sẽ tiến hành các bước sau để gửi lại phản hồi cho bạn

2.2.1 Trình duyệt phân giải tên miền thành địa chỉ IP

Trình duyệt web của bạn trước tiên cần phải xác định địa chỉ IP nào mà tên miền topdev.vn trỏ về Trình duyệt sẽ yêu cầu thông tin từ một hoặc nhiều máy chủ DNS (thông qua internet) Máy chủ DNS sẽ cho trình duyệt biết địa chỉ IP nào tên miền sẽ

6

Trang 15

trỏ đến cũng là nơi đặt trang web Lúc này trình duyệt web đã biết địa chỉ IP của trang web, nó có thể yêu cầu URL đầy đủ từ webserver.

2.2.2 Webserver gửi lại client Trang được yêu cầu

Web server phản hồi bằng cách gửi lại những thông tin client yêu cầu… Nếu trang không tồn tại hoặc có lỗi khác xảy ra, nó sẽ gửi lại thông báo lỗi thích hợp

2.2.3 Trình duyệt hiển thị trang web

Trình duyệt web của bạn nhận lại được các tập tin html css (nhiều file khác)… và render hiển thị trang theo yêu cầu

3.Các vấn đề khi triển khai ứng dụng

Nếu bạn muốn tự tạo web server của riêng bạn bằng máy tính cá nhân, bạn cần lưu ý một số điều sau đây:

Về chi phí Mặc dù việc tự setup web server của riêng mình có vẻ rẻ hơn so với việc thuê một nhà cung cấp bên ngoài, nhưng điều này không phải lúc nào cũng đúng Bạn sẽ phải mua và bảo trì tất cả các thiết bị của riêng mình, do đó chi phí thực tế bạn phải trả sẽ nhiều hơn mức bạn thuê ngoài hàng tháng, chưa kể bạn phảithuê nhân viên chuyên trách để duy trì máy chủ của bạn hoạt động bình thường Về hiệu suất Ngoài việc đảm bảo máy tính của bạn hoạt động liên tục không ngừng nghỉ, cần lựa chọn cấu hình và dung lượng lưu trữ phù hợp vừa tránh lãng phí tài nguyên, vừa để đảm bảo web server luôn sẵn sàng, hoạt động với hiệu suất cao đáp ứng lưu lượng truy cập lớn trong một thời điểm, bởi người dùng có thể truy cập website của bạn bất kỳ lúc nào

Về tốc độ internet Nếu bạn muốn web server hoạt động ổn định, bạn sẽ cần phải cài đặt kết nối internet T1 dự phòng với giá không hề rẻ và cũng không có sẵn ởmọi nơi; Nếu bạn có một văn phòng truyền thống, việc thiết lập loại kết nối này có thểlà một thách thức hoặc thậm chí là không thể

Về việc bảo trì Máy chủ cần được bảo trì liên tục,chúng cần được giữ trong tình trạng vật lý tốt, phần mềm cần được cập nhật thường xuyên Do đó, bạn cần phải là người chủ động theo dõi các vấn đề kỹ thuật Đó là một công việc toàn thời gian và đòi hỏi trình độ chuyên môn

Giải quyết sự cố Nếu xảy ra sự cố, bạn có chắc chắn mình sẽ có chuyên môn kỹ thuật để khắc phục không? Nếu bạn không chắc vấn đề là gì hoặc bạn không đủ kinh nghiệm để khắc phục, việc tự setup web server của riêng mình là một việc mạo hiểm

4.Kết chương 1

7

Trang 16

Chương 1 đã cung cấp một cái nhìn tổng quan về kiến trúc Web Server và sựphát triển của mô hình này trong ngành công nghiệp CNTT Kiến trúc Web Server đãxuất hiện như một phương pháp linh hoạt và hiệu quả để xây dựng các ứng dụng phầnmềm phức tạp Từ sự phân tách rõ ràng của các thành phần, khả năng hoạt động độclập đến việc sử dụng các công nghệ và ngôn ngữ lập trình đa dạng, kiến trúc WebServer tập trung vào việc tối ưu hóa quy trình phát triển, triển khai, và quản lý hệthống phần mềm.

Việc chuyển từ kiến trúc monolithic sang Web Server đã được giải thích rõràng qua việc phân tích các thách thức mà kiến trúc monolithic mang lại, nhất làtrong việc quản lý sự phụ thuộc cao giữa các thành phần của ứng dụng Điều này đãlàm tăng cường ý thức về sự cần thiết của sự linh hoạt và tách biệt trong kiến trúc ứngdụng.

Những ưu điểm và nhược điểm của kiến trúc Web Server đã được phân tích chitiết, từ tính linh hoạt, khả năng mở rộng, tái sử dụng, cho đến các thách thức trongquản lý, hiệu suất, và bảo mật Những vấn đề trong quá trình triển khai ứng dụng.

Chương 2 sẽ giải quyết những vấn đề đã đề cập ở trên với Docker Hãy tiếp tụctheo dõi để hiểu rõ hơn về cách chúng ta có thể tận dụng Docker trong đề tài củamình.

8

Trang 17

CHƯƠNG 2 GIẢI QUYẾT VẤN ĐỀ1 Giới thiệu về Docker

Docker là một nền tảng mở nguồn được sử dụng để xây dựng, đóng gói và chạy các ứng dụng trong các môi trường ảo hóa gọn nhẹ gọi là containers Containers cho phép bạn đóng gói các thành phần của một ứng dụng, bao gồm các thư viện và phụ thuộc, vào một gói duy nhất gọi là Docker image Nhờ đó, bạn có thể đảm bảo rằng ứng dụng sẽ chạy đúng cách trên bất kỳ máy tính hoặc môi trường nào đã cài đặt Docker

Figure 2 Docker2 Cách hoạt động của Docker

Trước khi đi sâu vào những ưu điểm và nhược điểm của Docker, hãy tìm hiểu cách Docker hoạt động:

Docker Engine: Docker Engine là trái tim của Docker Nó bao gồm Docker Daemon, Docker Client và Containerd Docker Client là công cụ giúp người dùng giao tiếp với Docker Host, trong khi Docker Daemon lắng nghe các yêu cầu từ Docker Client và quản lý các đối tượng như Container, Image, Network và Volumes thông qua REST API Containerd là một công cụ dùng để quản lý containers

Docker Hub: Docker Hub là một trung tâm lưu trữ hình ảnh Docker Nó được gọi là "github for Docker images" vì trên Docker Hub có hàng ngàn hình

9

Ngày đăng: 13/09/2024, 10:54

HÌNH ẢNH LIÊN QUAN

BẢNG PHÂN CÔNG CÔNG VIỆC - đồ án linux và phần mềm nguồn mở đề tài deploy web services with docker
BẢNG PHÂN CÔNG CÔNG VIỆC (Trang 4)
Hình 1. Web server được kết nối và liên kết mạng máy tính mở rộng - đồ án linux và phần mềm nguồn mở đề tài deploy web services with docker
Hình 1. Web server được kết nối và liên kết mạng máy tính mở rộng (Trang 11)

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

TÀI LIỆU LIÊN QUAN

w