Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp với đề tài "Phát triển công cụ ảo hóa mạng sử dụng phần mềm" được thực hiện bởi nhóm sinh viên Trần Quang Hiệp, Nguyễn Quốc Hoan và Cao Thị Mai Trâm, dưới sự hướng dẫn của ThS. Nguyễn Đăng Quang tại Khoa Đào tạo Chất lượng cao, ngành Công nghệ Thông tin, chuyên ngành Mạng và An ninh mạng, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

Lý do chọn đề tài

Trong thực tiễn triển khai hạ tầng công nghệ thông tin, việc thiết lập (setup) và triển khai (deploy) ứng dụng lên một hoặc nhiều máy chủ vật lý thường gặp nhiều trở ngại lớn. Quy trình này đòi hỏi phải cài đặt thủ công hàng loạt công cụ và môi trường phụ thuộc cần thiết cho ứng dụng. Đồng thời, sự không đồng nhất giữa các môi trường trên nhiều máy chủ khác nhau thường xuyên phát sinh lỗi tương thích và xung đột tài nguyên. Công nghệ Docker ra đời nhằm cung cấp giải pháp đóng gói (container) chạy trên nền tảng ảo hóa cấp hệ điều hành, cho phép cô lập ứng dụng, mã nguồn, thư viện và cấu trúc thư mục riêng biệt. Nhận thấy các đặc tính nhẹ, triển khai nhanh và dễ cấu hình của Docker có thể ứng dụng hiệu quả để xây dựng một môi trường mô phỏng mạng nhỏ gọn, nhóm nghiên cứu đã lựa chọn đề tài này nhằm phát triển một công cụ ảo hóa mạng dựa trên phần mềm.

Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu nghiên cứu được tác giả xác định cụ thể gồm ba nội dung chính:

  1. Nghiên cứu và nắm vững định nghĩa về Docker, Dockerfile, Docker Compose, Docker Hub, Docker Networking; cấu trúc tệp tin và các câu lệnh quản trị liên quan.
  2. Làm rõ nguyên lý vận hành và mối liên kết kỹ thuật giữa Dockerfile, Docker Compose, Docker Hub và Docker Networking trong một hệ thống hoàn chỉnh.
  3. Ứng dụng các kiến thức đã tìm hiểu để xây dựng thành công một hệ thống mô phỏng mạng ảo hóa, cho phép tạo lập cấu hình thông qua giao diện trực quan và tự động sinh mã Dockerfile, Docker Compose.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Công nghệ Docker, nguyên lý hoạt động của Docker Engine, cấu trúc và cú pháp của Dockerfile, Docker Compose, Docker Hub và các trình điều khiển mạng (Docker Network drivers).
  • Phạm vi nghiên cứu:
    • Về không gian và công nghệ: Giới hạn trong hệ sinh thái Docker (Dockerfile, Docker Compose, Docker Hub, Docker Networking) kết hợp giao diện người dùng xây dựng bằng ReactJS và thư viện ReactFlow; kiểm thử kết nối giữa các thực thể mạng ảo (PC, Router, Switch) chạy trên môi trường Linux.
    • Về thời gian thực hiện: Đề tài được triển khai trong thời gian 15 tuần, từ ngày 05/09/2022 đến ngày 20/12/2022.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ sử dụng

Nghiên cứu dựa trên các khái niệm nền tảng của công nghệ ảo hóa và hệ sinh thái container:

  • Kiến trúc Docker Engine: Mô hình client-server bao gồm Docker Daemon (dockerd) quản trị các đối tượng (Images, Containers, Networks, Volumes), REST API làm trung gian điều khiển, và Docker Client giao tiếp qua giao diện dòng lệnh (CLI).
  • Phần mềm giám sát máy ảo (Hypervisor): Khung lý thuyết so sánh giữa giải pháp ảo hóa phần cứng truyền thống (quản lý máy ảo riêng biệt có hệ điều hành riêng) và giải pháp ảo hóa cấp hệ điều hành của Docker (chia sẻ chung kernel của máy chủ host).
  • Docker Image và Docker Container: Cơ chế tệp mẫu bất biến (read-only snapshots) xếp tầng theo các layer và môi trường thực thi động (runtime environment) có lớp ghi tạm thời.
  • Tự động hóa triển khai: Cấu trúc chỉ thị của Dockerfile (FROM, LABEL, MAINTAINER, RUN, ADD, COPY, ENV, CMD, USER) và cấu hình dịch vụ đa container bằng tệp YAML trong Docker Compose.
  • Trình điều khiển mạng Docker Network: Cơ chế hoạt động của các driver mạng tích hợp gồm Bridge network (mặc định cho các container trên cùng máy chủ), Host network (sử dụng trực tiếp không gian mạng của host), và Overlay network (phục vụ kết nối phân tán giữa nhiều Docker daemon).

Phương pháp nghiên cứu

  • Phương pháp phân tích và tổng hợp lý thuyết: Thu thập, phân tích tài liệu kỹ thuật chuẩn từ Docker; so sánh các mô hình triển khai ứng dụng truyền thống, ảo hóa bằng Hypervisor và ảo hóa bằng Container.
  • Phương pháp thiết kế và phát triển phần mềm: Thiết kế kiến trúc module hóa ứng dụng web giao diện người dùng (Front-end) bằng ReactJS kết hợp thư viện ReactFlow nhằm hiển thị và quản lý topology mạng trực quan trên màn hình canvas; hiện thực hóa logic chuyển đổi sơ đồ đồ họa thành cấu hình Docker.
  • Phương pháp thực nghiệm kỹ thuật: Thiết lập môi trường thử nghiệm trên hệ điều hành Linux; cấu hình kịch bản mạng từ giao diện; xuất file tự động và thực thi lệnh khởi tạo môi trường bằng Docker Compose; sử dụng các công cụ dòng lệnh (ping, cấu hình định tuyến route, kiểm tra tiến trình dịch vụ) để đo lường và xác minh tính đúng đắn của từng mô hình mạng.

Nguồn dữ liệu

Dữ liệu nghiên cứu bao gồm tài liệu kỹ thuật chính thức từ nhà phát triển Docker, các gói thư viện mã nguồn mở JavaScript/ReactJS, cùng các thông số cấu hình địa chỉ IPv4, cấu hình cổng dịch vụ mạng (FTP cổng 21, HTTP cổng 80, DNS cổng 53, MySQL cổng 3306) được thiết lập trong quá trình thực nghiệm.


Thiết kế và triển khai

Kiến trúc công cụ và giao diện người dùng

Hệ thống được thiết kế dưới dạng ứng dụng web đơn trang (Single Page Application) sử dụng ReactJS và thư viện đồ họa ReactFlow, tập trung vào việc mô hình hóa trực quan hệ thống mạng:

  • Màn hình Canvas: Khu vực làm việc trực quan cho phép người dùng kéo thả các node đại diện cho thiết bị mạng (VPC/PC, Router, Switch) và tạo các đường kết nối (connections) giữa các cổng mạng của thiết bị.
  • Thanh bên (Sidebar): Hiển thị danh mục các thiết bị sẵn có để đưa vào không gian làm việc và liệt kê danh sách các thiết bị hiện đang tồn tại trên canvas.
  • Hộp thoại cấu hình (Configure Modal): Cho phép can thiệp thông số chi tiết khi nhấp chuột phải vào thiết bị:
    • Đối với PC: Tùy chọn hệ điều hành nền tảng (Ubuntu, CentOS, Alpine), cấu hình địa chỉ IP, và bật/tắt các dịch vụ mạng tích hợp (FTP, HTTP, DNS, MySQL).
    • Đối với Router: Cấu hình địa chỉ IP tương ứng theo từng cổng mạng được kết nối (hỗ trợ mô hình 1 cổng hoặc 2 cổng).
  • Bộ điều khiển trạng thái (State Controller): Hỗ trợ chức năng xóa từng thiết bị tùy chọn hoặc xóa toàn bộ đối tượng trên canvas (Delete All Object) kèm hộp thoại xác nhận an toàn (Yes, Delete it! hoặc No, Cancel!).

Cơ chế sinh mã và tự động hóa

Sau khi hoàn thiện sơ đồ mạng trên giao diện, hệ thống xử lý logic kiểm tra ràng buộc:

  • Kiểm tra hợp lệ (Validation): Kiểm tra tính đầy đủ và chính xác của dải địa chỉ IP. Nếu người dùng nhập sai định dạng hoặc để trống thông số IP, hệ thống sẽ chặn thao tác và vô hiệu hóa nút xuất dữ liệu (Export).
  • Xuất cấu hình (Export): Khi thông số hợp lệ, hệ thống tự động đóng gói và tải về máy người dùng một thư mục chứa đầy đủ các tệp mã nguồn:
    • Các tệp Dockerfile được tùy biến cho từng loại thiết bị theo hệ điều hành và dịch vụ đã chọn (chứa các chỉ thị cài đặt gói dịch vụ tương ứng).
    • Tệp docker-compose.yaml chứa cấu trúc định nghĩa toàn bộ các dịch vụ (services), cấu hình cổng (port mapping) và phân vùng mạng logic (networks) dạng bridge kết nối các container.

Quy trình cài đặt và triển khai thực tế

Quy trình thiết lập môi trường thực nghiệm trên máy chủ chạy hệ điều hành Linux được tác giả chuẩn hóa qua các bước:

  1. Cập nhật hệ thống và cài đặt các gói phụ trợ cần thiết.
  2. Thêm khóa GPG chính thức của Docker và cấu hình Docker repository.
  3. Cài đặt Docker Engine và thêm tài khoản người dùng vào nhóm quyền docker.
  4. Cài đặt công cụ Docker Compose và phân quyền thực thi (chmod +x).
  5. Tiếp nhận thư mục cấu hình từ công cụ web, thực thi lệnh docker-compose up để tự động build images, tạo mạng ảo, khởi chạy container và gắn kết các cổng dịch vụ.

Nội dung chính theo từng chương

PHẦN MỞ ĐẦU

Trình bày tổng quan về tính cấp thiết của đề tài trong bối cảnh việc triển khai ứng dụng đa máy chủ gặp nhiều rào cản về tính đồng nhất và phân bổ tài nguyên. Xác định đối tượng nghiên cứu trọng tâm là các thành phần của công nghệ Docker; phạm vi thực hiện trong 15 tuần tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh; cùng ba mục tiêu chính từ nghiên cứu lý thuyết đến xây dựng thành công công cụ phần mềm mô phỏng mạng ảo hóa.

PHẦN NỘI DUNG - CHƯƠNG I. Khái niệm về Docker

Chương này cung cấp hệ thống cơ sở lý thuyết toàn diện về công nghệ container:

  • Lịch sử và các phương thức triển khai: Phân tích ba giai đoạn tiến hóa gồm triển khai truyền thống trên máy chủ vật lý (lãng phí tài nguyên, xung đột phần mềm), triển khai bằng ảo hóa Hypervisor (cung cấp máy ảo hoàn chỉnh, an toàn nhưng nặng nề), và triển khai bằng Docker Container (chia sẻ kernel, gọn nhẹ, khởi động nhanh).
  • Thành phần Docker Engine và quy trình hoạt động: Trình bày chi tiết ba thành phần của Docker Engine (Server/Daemon, REST API, Client CLI) và năm đối tượng cốt lõi (Image, Dockerfile, Container, Network, Volume). Chu trình làm việc chuẩn gồm ba bước: Build (đóng gói từ Dockerfile), Push (lưu trữ lên Docker Hub/Registry), Pull và Run (tải về và khởi chạy container).
  • So sánh Docker và Hypervisors: Tác giả hệ thống hóa các điểm khác biệt cơ bản giữa hai công nghệ ảo hóa:
Tiêu chí Hypervisor Docker Container
Kích thước (dung lượng) Kích thước lớn Kích thước nhỏ
Hiệu suất Hạn chế Hiệu suất gốc (native)
Hệ điều hành Mỗi máy ảo có một hệ điều hành riêng Sử dụng chung hệ điều hành của host
Cơ chế ảo hóa Ảo hóa về mặt phần cứng Ảo hóa về mặt hệ điều hành
Thời gian khởi động Tính theo phút Tính theo mili giây
Phân bổ bộ nhớ Phân bổ theo nhu cầu cần thiết Yêu cầu ít dung lượng bộ nhớ hơn
Mức độ cô lập Hoàn toàn bị cô lập và an toàn hơn Cô lập ở mức tiến trình, có thể kém an toàn hơn
  • Hệ thống câu lệnh quản trị: Phân loại chi tiết các tập lệnh CLI cho Docker Image (images, pull, push, inspect, history, tag, save, load, rmi), vòng đời Container (ps, create, run, rm), quản lý trạng thái (start, stop, restart, pause, unpause, kill), kiểm tra thông tin (logs, inspect, stats, top, port, diff), và thực thi can thiệp (attach, exec, update, cp, rename, export, commit).
  • Cấu trúc tệp Dockerfile và Docker Compose: Phân tích cú pháp các chỉ thị xây dựng tệp Dockerfile (FROM, LABEL, MAINTAINER, RUN, ADD, COPY, ENV, CMD, USER) và phương thức quản lý đa container bằng tệp docker-compose.yaml (các tính năng cách ly môi trường, tái sử dụng container không đổi, định nghĩa biến môi trường).
  • Docker Network: Trình bày cơ chế kết nối mạng nội bộ và bên ngoài của Docker thông qua ba driver chính: Bridge (mặc định trên host đơn, gán qua virtual bridge docker0), Host (dùng trực tiếp mạng máy chủ), và Overlay (kết nối mạng phân tán giữa nhiều Docker daemon trong cụm Swarm).

PHẦN NỘI DUNG - CHƯƠNG II. Phần giao diện

Chương này tập trung vào thiết kế phần mềm, cấu trúc mã nguồn và kiểm thử thực nghiệm:

  • Hiện thực hóa ý tưởng và thiết kế giao diện: Mô tả cấu trúc ứng dụng web xây dựng bằng ReactJS, việc tích hợp thư viện ReactFlow để tạo bảng vẽ canvas, danh mục các lớp đối tượng và các hàm chức năng xử lý tương tác mạng.
  • Quy trình sinh cấu hình và kịch bản thực nghiệm: Kết hợp giữa giao diện người dùng và hạ tầng Docker thông qua 6 trường hợp kiểm thử cụ thể:
    • Trường hợp 1 (PC kết nối thông qua Router - cùng OS): Cấu hình hai PC chạy cùng hệ điều hành Ubuntu kết nối qua hai Router; kiểm tra thông số IP, thiết lập bảng định tuyến tĩnh (add route), thực hiện ping thông mạng và kiểm tra trạng thái các dịch vụ cài đặt.
    • Trường hợp 2 (PC kết nối thông qua Router - khác OS): Kiểm thử kết nối định tuyến và ping thành công giữa hai PC chạy hai hệ điều hành khác nhau thông qua dải mạng trung gian giữa Router 1 và Router 2.
    • Trường hợp 3 (PC kết nối LAN thông qua Switch): Hai PC kết nối chung một mạng cục bộ qua Switch; thực hiện kiểm tra ping nội bộ, khởi chạy dịch vụ FTP Server trên PC1, tạo tài khoản người dùng và thực hiện kết nối FTP thành công từ PC2.
    • Trường hợp 4 (PC kết nối Switch kết nối Router): Mô hình phức hợp gồm 3 PC kết nối qua Switch và định tuyến qua Router; thực thi docker-compose up, kiểm tra ánh xạ cổng (port mapping) ra máy host và kiểm tra đồng thời 4 dịch vụ: HTTP, DNS, FTP, MySQL hoạt động chính xác từ máy host.
    • Trường hợp 5 (Người dùng nhập sai thông tin IP): Kiểm tra trường hợp cấu hình sai địa chỉ mạng; hệ thống vẫn sinh file nhưng kết quả thực nghiệm cho thấy PC1 và PC2 không thể ping thấy nhau.
    • Trường hợp 6 (Người dùng nhập thiếu thông tin IP): Kiểm thử ràng buộc giao diện; khi thiếu trường địa chỉ IP của thiết bị, hệ thống tự động khóa tính năng xuất file, ngăn người dùng nhấn nút Export.

PHẦN KẾT LUẬN

Tổng kết toàn bộ các kết quả lý thuyết và ứng dụng đạt được của khóa luận; đưa ra nhận xét, đánh giá mức độ hoàn thành nhiệm vụ nghiên cứu của từng thành viên trong nhóm (Trần Quang Hiệp, Nguyễn Quốc Hoan, Cao Thị Mai Trâm).


Kết quả và đóng góp

Kết quả chính đạt được

  • Về mặt lý thuyết: Nhóm nghiên cứu đã hệ thống hóa đầy đủ cơ sở khoa học về công nghệ containerization, phân biệt rõ bản chất kiến trúc giữa Docker và máy ảo Hypervisor, đồng thời làm chủ toàn bộ cú pháp cấu hình Dockerfile, Docker Compose và cơ chế điều khiển mạng Docker Network.
  • Về mặt ứng dụng:
    • Xây dựng thành công ứng dụng web với giao diện đồ họa canvas hỗ trợ trực quan hóa thao tác thiết kế mạng: kéo thả thiết bị, nối dây kết nối, cấu hình IP, chọn hệ điều hành và gán dịch vụ mạng.
    • Phát triển thành công tính năng tự động chuyển đổi mô hình mạng trên canvas thành gói thư mục chứa mã nguồn Dockerfile và docker-compose.yaml chuẩn xác.
    • Thực nghiệm thành công 6 kịch bản mạng thực tế: xác minh khả năng liên lạc thông suốt qua lệnh ping, kiểm tra định tuyến đa router, vận hành chính xác các dịch vụ mạng (FTP, HTTP, DNS, MySQL), và kiểm chứng cơ chế bắt lỗi giao diện khi người dùng nhập sai hoặc thiếu thông số kỹ thuật.

Đóng góp của đề tài

  • Đề xuất một giải pháp phần mềm hỗ trợ mô phỏng hệ thống mạng gọn nhẹ, tận dụng trực tiếp công nghệ Docker Container thay thế cho các phần mềm ảo hóa phần cứng nặng nề truyền thống.
  • Cung cấp công cụ trực quan hóa giúp đơn giản hóa việc viết mã Dockerfile và Docker Compose thủ công, giảm thiểu sai sót cú pháp và rút ngắn thời gian khởi tạo các topology mạng phục vụ học tập, thử nghiệm.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

Căn cứ theo các nội dung được nhóm tác giả phân tích trong văn bản:

  • Hạn chế của công nghệ nền tảng: Docker sử dụng chung nhân hệ điều hành (kernel) với máy chủ host nên mức độ cô lập bảo mật không tuyệt đối như máy ảo Hypervisor; nguy cơ mất kiểm soát kernel nếu sử dụng image không an toàn; các tiến trình container khi bị dừng (stop) sẽ mất hoàn toàn dữ liệu nếu không cấu hình cơ chế gắn ổ đĩa (mount volume) hoặc sao lưu; Docker Community Edition (CE) yêu cầu nền tảng Linux 64-bit với các tính năng cgroups và namespaces, không tương thích với môi trường Linux 32-bit.
  • Hạn chế của đề tài: Nhóm tác giả tự đánh giá quá trình thực hiện đồ án vẫn còn một số thiếu sót do những giới hạn nhất định về mặt kiến thức chuyên sâu, kỹ thuật phần mềm và kinh nghiệm thực tế trong triển khai hệ thống mạng quy mô lớn.

Hướng nghiên cứu tiếp

Dựa trên phạm vi và các nội dung mở được đề cập trong khóa luận:

  • Tiếp tục mở rộng các tính năng mô phỏng mạng nâng cao, hỗ trợ thêm các giao thức định tuyến động phức tạp và đa dạng hóa danh mục thiết bị mạng trên canvas.
  • Nghiên cứu cơ chế tự động gắn kết khối lưu trữ dữ liệu (Docker Volumes) để duy trì tính toàn vẹn dữ liệu cho các container dịch vụ khi khởi động lại.
  • Mở rộng phạm vi nghiên cứu từ mạng Docker host đơn (Bridge driver) sang mô hình mạng phân tán trên nhiều máy chủ sử dụng Overlay driver kết hợp Docker Swarm hoặc các hệ thống điều phối container.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên thuộc ngành Công nghệ Thông tin, chuyên ngành Mạng máy tính, An toàn thông tin, Kỹ thuật phần mềm và các kỹ sư bắt đầu tiếp cận phương pháp vận hành DevOps:

  • Phần lý thuyết Chương I: Cung cấp tài liệu tra cứu nhanh về bảng so sánh giữa Docker và Hypervisor; bảng tổng hợp chi tiết các nhóm câu lệnh CLI quản trị Docker Container/Image; hướng dẫn tường tận cú pháp các chỉ thị trong Dockerfile và cấu trúc tệp Docker Compose.
  • Phần thực nghiệm Chương II: Đóng vai trò như tài liệu hướng dẫn thực hành cấu hình mạng container, cung cấp các kịch bản định tuyến mẫu, cách cấu hình dịch vụ mạng cơ bản (HTTP, DNS, FTP, MySQL) và cách thiết lập ánh xạ cổng kết nối giữa container với máy tính vật lý.

Câu hỏi thường gặp

1. Điểm khác biệt cốt lõi giữa ảo hóa bằng Docker Container và ảo hóa bằng Hypervisor theo phân tích của tác giả là gì?
Trả lời: Theo Bảng 4 trong văn bản, Hypervisor ảo hóa ở tầng phần cứng, mỗi máy ảo mang một hệ điều hành riêng biệt nên dung lượng lớn, khởi động tính theo phút và hiệu suất hạn chế nhưng mức độ cô lập an toàn hơn. Ngược lại, Docker Container ảo hóa ở tầng hệ điều hành, dùng chung kernel của máy chủ host nên dung lượng nhỏ, khởi động tính theo mili giây, hiệu suất gốc và tốn ít bộ nhớ hơn, tuy nhiên mức độ cô lập ở mức tiến trình có thể kém an toàn hơn.

2. Công cụ giao diện người dùng của đề tài hỗ trợ cấu hình những dịch vụ mạng cụ thể nào cho thiết bị PC?
Trả lời: Giao diện chương trình cho phép người dùng tùy chọn bật/tắt 4 dịch vụ mạng tích hợp trên thiết bị PC gồm: dịch vụ truyền tệp FTP (File Transfer Protocol), dịch vụ web HTTP (Hypertext Transfer Protocol), dịch vụ phân giải tên miền DNS (Domain Name System), và hệ quản trị cơ sở dữ liệu MySQL.

3. Cơ chế xử lý của phần mềm khi người dùng nhập sai hoặc nhập thiếu thông tin địa chỉ IP trong thực nghiệm là gì?
Trả lời: Trong thực nghiệm Trường hợp 5, khi người dùng cấu hình sai thông tin IP, hệ thống vẫn xuất file nhưng các container PC không thể thực hiện lệnh ping thông mạng tới nhau. Trong thực nghiệm Trường hợp 6, khi người dùng nhập thiếu thông số IP bắt buộc, giao diện phần mềm sẽ tự động vô hiệu hóa tính năng, khiến người dùng không thể nhấn nút Export để tải cấu hình về máy.

4. Driver mạng nào của Docker được tác giả xác định là lựa chọn tối ưu cho việc giao tiếp giữa nhiều container trên một host đơn?
Trả lời: Tác giả xác định driver mạng BRIDGE là driver mặc định khi khởi tạo Docker và là driver tốt nhất phục vụ cho nhu cầu giao tiếp giữa nhiều container độc lập chạy trên cùng một máy chủ vật lý (host đơn).


Kết luận

Khóa luận tốt nghiệp của nhóm tác giả đã giải quyết trọn vẹn mục tiêu nghiên cứu từ cơ sở lý thuyết về Docker đến việc phát triển một công cụ ảo hóa mạng trực quan trên nền tảng web bằng ReactJS. Phần mềm hỗ trợ người dùng thiết kế sơ đồ mạng nhanh chóng, tự động hóa quy trình sinh mã Dockerfile và docker-compose.yaml, đồng thời được kiểm chứng độ chính xác qua 6 kịch bản thực nghiệm mạng cụ thể. Đề tài thể hiện tính ứng dụng cao trong việc hỗ trợ học tập và thử nghiệm mạng mô phỏng, mở ra hướng phát triển cho các giải pháp hạ tầng mạng nhỏ gọn dựa trên công nghệ container.