Chuyển đến nội dung chính

Làm chủ mạng Docker: Từ bridge tùy chỉnh đến kiến trúc sẵn sàng cho Swarm

Hướng dẫn thực hành đầy đủ về mạng Docker, bao gồm trình điều khiển mạng, quản lý IP, thiết lập overlay cho Swarm và tinh chỉnh hiệu năng cho hệ thống container hóa có thể mở rộng, an toàn.
· 12 phút đọc

Khám phá cùng AI

Mạng là khái niệm cốt lõi của ứng dụng container hóa. Nó cho phép giao tiếp liền mạch giữa tất cả container, hệ thống máy chủ và dịch vụ bên ngoài. Các tính năng mạng tích hợp của Docker là thiết yếu để cô lập dịch vụ hiệu quả, bảo mật luồng dữ liệu và điều phối kiến trúc microservices có thể mở rộng.

Một trong những công cụ mạnh mẽ nhất trong bối cảnh này là lệnh Docker network create, cho phép kỹ sư DevOps và nhà phát triển xác định các mạng tùy chỉnh phù hợp với nhu cầu ứng dụng.

Vì vậy hôm nay, tôi sẽ hướng dẫn bạn từng bước cách tạo và quản lý những mạng Docker này một cách hiệu quả. 

Nếu bạn mới bắt đầu với Docker, hãy xem lộ trình kỹ năng về Containerization and Virtualization with Docker and Kubernetes để có trải nghiệm thực hành. 

Docker Networking là gì?

Xây dựng ứng dụng hiện đại thường bao gồm nhiều dịch vụ trong các container riêng lẻ, cô lập. Mạng Docker cung cấp cách linh hoạt và mạnh mẽ để kết nối các container đó với nhau, cũng như với hệ thống bên ngoài, thông qua bất kỳ mô hình mạng nào bạn chọn, bất kể hạ tầng bên dưới.

Phần này sẽ cung cấp cho bạn kiến thức cơ bản về mạng Docker, một thành phần then chốt của Docker, và cách đánh giá cấu hình mạng nào sẽ phù hợp với nhu cầu ứng dụng của bạn. Nhưng trước khi bắt đầu, nếu bạn hoàn toàn mới với Docker, tôi rất khuyến khích bạn xem Introduction to Docker để xây nền tảng vững chắc trước khi đi sâu vào mạng Docker.

Trình điều khiển mạng: nền tảng của Docker networking

Docker sử dụng các trình điều khiển mạng để xác định cách container kết nối và giao tiếp. Mỗi trình điều khiển quy định cách xử lý mạng của container. Do đó, mỗi trình điều khiển mạng chính của Docker có mức hiệu năng, mức độ cô lập và độ phức tạp khác nhau.

Tổng quan về các trình điều khiển mạng cốt lõi của Docker

Dưới đây là các trình điều khiển tích hợp chính mà Docker hỗ trợ:

  1. Bridge: Trình điều khiển mặc định cho container độc lập. Nó tạo một mạng nội bộ cô lập trên máy chủ, cho phép các container giao tiếp với nhau bằng IP hoặc tên container. Lý tưởng cho phát triển và thử nghiệm trên một máy chủ đơn.
  2. Host: Loại bỏ lớp cô lập bằng cách dùng chung ngăn xếp mạng của máy chủ. Container sử dụng trực tiếp IP và cổng của máy chủ. Hữu ích cho ứng dụng hiệu năng cao hoặc cần tương thích với dịch vụ cấp độ máy chủ.
  3. None: Vô hiệu hóa toàn bộ mạng cho container. Chỉ có giao diện loopback. Phù hợp cho container không cần kết nối ra ngoài hoặc yêu cầu cô lập bảo mật nghiêm ngặt.
  4. Overlay: Cho phép giao tiếp giữa các container trên các máy chủ Docker khác nhau. Thường dùng trong Docker Swarm và triển khai đa máy chủ. Nó tạo một mạng phân tán trừu tượng hóa hạ tầng vật lý bên dưới.
  5. Macvlan: Gán một địa chỉ MAC riêng cho từng container, khiến nó xuất hiện như một thiết bị vật lý trên mạng. Phù hợp cho ứng dụng kế thừa cần truy cập trực tiếp mạng vật lý.
  6. IPvlan: Tương tự macvlan, nhưng định tuyến lưu lượng ở lớp IP thay vì dùng địa chỉ MAC. Cung cấp hiệu năng và khả năng kiểm soát tốt hơn trong môi trường mật độ cao.

Mỗi trình điều khiển ảnh hưởng đến cách container tương tác với nhau, với máy chủ và với mạng bên ngoài. 

Bạn tò mò các kiểu mạng này phối hợp ra sao? Khóa học Intermediate Docker của chúng tôi đề cập chi tiết thực tiễn về mạng Docker, volumes và Compose. Hiểu các khác biệt này là chìa khóa để thiết kế kiến trúc an toàn và hiệu năng.

Tôi nên dùng loại mạng nào?

Chọn đúng trình điều khiển mạng phụ thuộc vào kiến trúc ứng dụng và mục tiêu vận hành của bạn:

  1. Bridge: Khuyến nghị cho hầu hết kịch bản phát triển cục bộ và ứng dụng đa container đơn giản trên một máy chủ. Cân bằng giữa cô lập và dễ sử dụng.
  2. Host: Tốt nhất khi container cần gắn trực tiếp vào mạng của máy chủ, như khi mở dịch vụ trên các cổng tiêu chuẩn (ví dụ cổng 80 hoặc 443). Hãy thận trọng với bảo mật và xung đột cổng.
  3. None: Lý tưởng cho khối lượng công việc sandbox hoặc tác vụ trọng yếu về bảo mật không nên có bất kỳ truy cập mạng nào. Phổ biến trong quy trình tự động hoặc thử nghiệm.
  4. Overlay: Thiết yếu trong môi trường cụm như Docker Swarm hoặc Kubernetes, nơi container trải rộng trên nhiều máy chủ. Cho phép mở rộng ngang và khám phá dịch vụ.
  5. Macvlan: Ưu tiên khi container phải hành xử như thiết bị vật lý trên LAN. Dùng trong các trường hợp như bắt gói mạng, tích hợp hệ thống kế thừa hoặc khi cần bỏ qua ngăn xếp mạng của Docker.
  6. IPvlan: Cung cấp kiểm soát chi tiết và hiệu năng tốt hơn macvlan cho môi trường có yêu cầu mạng nghiêm ngặt, như hệ thống viễn thông hoặc tài chính.

Hãy cân nhắc các yếu tố như tô-pô máy chủ, nhu cầu bảo mật và chiến lược mở rộng khi chọn trình điều khiển mạng. 

Vẫn đang phân vân mạng nào phù hợp khối lượng công việc của bạn? Tìm hiểu Docker so với Kubernetes trong triển khai thực tế với Kubernetes vs Docker.

Tạo mạng Docker tùy chỉnh

Mạng Docker tùy chỉnh cho phép bạn kiểm soát cách container giao tiếp nội bộ với nhau cũng như với hệ thống bên ngoài, giúp bạn cô lập dịch vụ tốt hơn, gán IP dự đoán được hoặc thiết kế kiến trúc hướng hiệu năng hay bảo mật. 

Phần này sẽ hướng dẫn bạn từ những kiến thức cơ bản đến các tính năng nâng cao trong quá trình tạo mạng Docker tùy chỉnh, bao gồm các lệnh và cấu hình IP tùy biến.

Cấu trúc lệnh cơ bản

Để tạo một mạng tùy chỉnh, hãy dùng lệnh docker network create. Lệnh này cho phép bạn xác định trình điều khiển mạng, subnet và các tùy chọn khác để kiểm soát tốt hơn việc giao tiếp giữa container.

Dưới đây là ví dụ đơn giản dùng trình điều khiển bridge mặc định:

$ docker network create demo-network -d bridge

Lệnh này tạo một mạng bridge tên là demo-network. Docker trả về một ID mạng duy nhất để xác nhận. Tại thời điểm này, mạng đã tồn tại nhưng chưa kết nối container nào.

Bạn có thể xem các mạng hiện có bằng:

$ docker network ls

Để kết nối một container vào mạng mới, dùng cờ --network:

$ docker run -it --rm --name container1 --network demo-network busybox:latest

Để thêm một container hiện có vào mạng:

$ docker network connect demo-network container2

Và để gỡ nó ra:

$ docker network disconnect demo-network container2

Cuối cùng, khi không còn cần mạng nữa, bạn có thể xóa nó:

$ docker network rm demo-network

Để dọn dẹp tất cả mạng không dùng đến:

$ docker network prune

Quản lý địa chỉ IP nâng cao

Khi làm việc với hệ thống lớn hơn hoặc chính sách mạng cụ thể, Docker cho phép bạn quản lý thủ công dải địa chỉ IP trong các mạng tùy chỉnh.

Bạn có thể định nghĩa subnet và gateway bằng các cờ --subnet và --gateway:

$ docker network create \
  --driver bridge \
  --subnet 192.168.100.0/24 \
  --gateway 192.168.100.1 \
  custom-network

Để có thêm kiểm soát, hãy dùng:

  • --ip-range: Gán một pool IP mà container có thể lấy động, tách biệt với toàn bộ dải subnet.
  • --aux-address: Dành riêng các địa chỉ IP cụ thể trong subnet cho hệ thống bên ngoài hoặc mục đích tài liệu.

Ví dụ: 

$ docker network create \
  --driver bridge \
  --subnet 192.168.200.0/24 \
  --ip-range 192.168.200.128/25 \
  --aux-address reserved=192.168.200.254 \
  advanced-network

Thiết lập này:

  • Giới hạn IP động của container trong nửa trên của subnet.
  • Ngăn va chạm với IP được dành riêng.
  • Đảm bảo hành vi mạng nhất quán trong môi trường phức tạp.

Nếu bạn cần ví dụ có hướng dẫn hơn, hãy khám phá các chiến lược thiết lập nâng cao trong 10 Docker Project Ideas: From Beginner to Advanced.

Mạng trong chế độ Swarm

Chế độ Docker Swarm cho phép triển khai dịch vụ được điều phối trên một cụm các máy chủ Docker. Một phần quan trọng của điều phối này là mạng, đảm bảo các dịch vụ chạy trên các node khác nhau có thể giao tiếp liền mạch và an toàn với nhau.

Kiến trúc mạng nhận biết Swarm

Docker Swarm là giải pháp gom cụm gốc của Docker, biến một nhóm máy chủ Docker thành một động cơ ảo duy nhất. Nó cho phép bạn triển khai và quản lý container như các dịch vụ phân tán. Một trong những điểm mạnh lớn là mạng đa máy chủ, cho phép dịch vụ trên các máy khác nhau giao tiếp như thể chúng ở cùng một máy.

Mạng Swarm hỗ trợ hai loại lưu lượng chính:

  • Lưu lượng mặt phẳng điều khiển – liên lạc quản trị được mã hóa giữa các node Docker.
  • Lưu lượng mặt phẳng dữ liệu – giao tiếp giữa các container và truy cập dịch vụ bên ngoài.

Swarm sử dụng mạng overlay để hỗ trợ giao tiếp dịch vụ giữa các node và routing mesh để cân bằng tải lưu lượng bên ngoài qua các bản sao dịch vụ.

Tạo mạng cho swarm

Để hỗ trợ khám phá dịch vụ và giao tiếp đa máy chủ an toàn, Docker Swarm sử dụng mạng overlay với phạm vi swarm. Các mạng này có thể được tạo thủ công hoặc tự động khi khởi chạy dịch vụ.

Cách tạo một mạng overlay có phạm vi swarm:

$ docker network create \
  --driver overlay \
  --scope swarm \
  my-overlay

Mạng này không bị giới hạn trong một máy chủ; bất kỳ node nào tham gia swarm đều có thể kết nối container vào đó. Bạn có thể kiểm tra bằng:

$ docker network inspect my-overlay

Tùy chỉnh mạng Overlay

Mạng overlay hỗ trợ cấu hình nâng cao, chẳng hạn:

$ docker network create \
  --driver overlay \
  --subnet 10.0.9.0/24 \
  --gateway 10.0.9.99 \
  --opt encrypted \
  my-secure-overlay
  • --subnet và --gateway xác định tô-pô mạng.
  • --opt encrypted bật mã hóa IPSEC cho lưu lượng giữa các container.
  • --scope swarm được áp dụng tự động với trình điều khiển overlay trong chế độ swarm.

Hiểu các cờ --scope và --attachable

  • --scope swarm: Chỉ ra mạng khả dụng trên tất cả node trong swarm. Chỉ các dịch vụ swarm (không phải container độc lập) có thể dùng mạng này trừ khi chỉ định --attachable.
  • --attachable: Cho phép container độc lập tham gia mạng có phạm vi swarm. Hữu ích để gỡ lỗi hoặc truy cập tạm thời.

Ví dụ: 

$ docker network create \
  --driver overlay \
  --attachable \
  my-dev-overlay

Điều này cho phép bạn gắn các container thông thường vào mạng swarm, ngoài các dịch vụ.

Cấu hình và xác thực mạng

Bạn cần đảm bảo các mạng Docker được cấu hình đúng để giao tiếp đúng giữa các container, cung cấp bảo mật cần thiết và dịch vụ hiệu năng. Docker có nhiều công cụ và lệnh để xem xét, khắc phục sự cố và xác thực cấu hình mạng của bạn.

Xác minh cấu hình mạng

Để xem chi tiết cấu hình của bất kỳ mạng Docker nào, hãy dùng lệnh docker network inspect.  Bạn sẽ nhận được đầu ra JSON chi tiết bao gồm:

  • Trình điều khiển mạng (bridge, overlay, v.v.)
  • Cấu hình subnet và gateway
  • Phạm vi (local, swarm)
  • Các container được kết nối và địa chỉ IP của chúng
  • Truy cập nội bộ hay bên ngoài
  • Tùy chọn đặc thù trình điều khiển (ví dụ, VXLAN ID cho mạng overlay)

Ví dụ, bạn có thể làm như sau:

$ docker network inspect my-network

Hãy chú ý các trường chính như:

  • "Driver": Đảm bảo loại mạng dự định đã được tạo.
  • "IPAM": Xác nhận các thiết lập quản lý địa chỉ IP, bao gồm subnet hoặc gateway tùy chỉnh.
  • "Containers": Hiển thị container nào được gắn và IP được cấp.
  • "Options": Hiển thị cấu hình nâng cao như mã hóa (encrypted: true) hoặc kích thước MTU.

Kỹ thuật xác thực

Để xác nhận mạng hoạt động như mong đợi:

  1. Trước tiên bạn phải xác minh cấu hình IPAMBạn hãy kiểm tra phần "IPAM" trong đầu ra docker network inspect. Đảm bảo subnet và gateway khớp với thiết lập dự kiến. Subnet cấu hình sai có thể dẫn đến vấn đề kết nối hoặc xung đột IP.
  2. Sau đó kiểm tra các định danh VXLAN (chỉ Overlay)Mạng overlay dùng VXLAN để đóng gói lưu lượng container qua nhiều máy chủ. Kiểm tra phần "Options" với các khóa như:
"com.docker.network.driver.overlay.vxlanid_list": "4097"

Điều này xác nhận đường hầm VXLAN đang hoạt động và cấu hình đúng. Nếu thiếu hoặc sai, dịch vụ có thể không truy cập được giữa các node.

  1. Cuối cùng, kiểm thử kết nối giữa các containerTừ một container, hãy thử ping hoặc truy cập container khác bằng tên hoặc IP. Điều này xác nhận phân giải DNS và định tuyến nội bộ đang hoạt động:
$ docker exec -it container1 ping container2

Kiểm tra hành vi DNS

Container kết nối vào các mạng do người dùng định nghĩa sẽ dùng máy chủ DNS nhúng của Docker. Để xác nhận, hãy kiểm tra /etc/resolv.conf bên trong container và thử phân giải tên dịch vụ.

Xác thực định tuyến gateway

Với các container trên nhiều mạng, Docker chọn gateway mặc định dựa trên gw-priority cao nhất. Để áp đặt định tuyến đúng, gán mức ưu tiên rõ ràng khi tạo container:

$ docker run --network name=public,gw-priority=1 --network private mycontainer

Dùng nhật ký và công cụ chẩn đoán

Theo dõi nhật ký container để tìm lỗi kết nối, và dùng các công cụ như curl, dig và ip a bên trong container để gỡ lỗi cấp thấp.

Tóm lại, xác thực cấu hình mạng Docker giúp đảm bảo giao tiếp container trơn tru và giảm thiểu lỗi bất ngờ trong ứng dụng đa dịch vụ. 

Và điều này dẫn chúng ta đến phần tiếp theo.

Tối ưu bảo mật và hiệu năng

Mạng trong thế giới container không chỉ là bật phương thức giao tiếp. Nhiều trường hợp đòi hỏi cung cấp cô lập cần thiết đồng thời đảm bảo hiệu năng tối đa. Khi bảo vệ kiến trúc và cung cấp dịch vụ, phân đoạn và thông lượng có thể giúp bạn đạt được điều đó.

Chiến lược phân đoạn mạng

Phân đoạn mạng là thực hành nền tảng và phương thức bảo mật cho ứng dụng container hóa. Bằng cách gán container vào các mạng Docker riêng biệt, bạn có thể tách bạch các mối quan tâm chéo như phân đoạn cho dịch vụ frontend, backend và cơ sở dữ liệu. Điều này giúp giảm thiểu rủi ro lộ lọt và tấn công một cách chủ động.

Bạn có thể tận dụng mạng do người dùng định nghĩa để quản lý ranh giới giao tiếp. Container ở các mạng khác nhau sẽ không thể giao tiếp với nhau trừ khi bạn chủ động kết nối chúng. Ví dụ, nếu bạn đặt container cơ sở dữ liệu trên mạng chỉ nội bộ, các dịch vụ công khai sẽ không thể truy cập trực tiếp nó.

Quy tắc và kiểm soát tường lửa tích hợp

Theo mặc định, Docker triển khai các quy tắc iptables để hạn chế các điểm cuối giao tiếp giữa container và thế giới bên ngoài. 

Một số cách để mở rộng phân đoạn này gồm:

  • Tắt giao tiếp giữa các container trên mạng bridge mặc định:
{
  "icc": false
}
  • Thêm cấu hình này vào daemon.json của daemon Docker để ngăn container giao tiếp trừ khi ở cùng một mạng do người dùng định nghĩa.
  • Giới hạn khả năng và đặc quyền bằng các cờ như --cap-drop, --read-only và --no-new-privileges.
  • Dùng mạng overlay trong chế độ Swarm cho giao tiếp dịch vụ được mã hóa, có phạm vi xác định trên nhiều máy chủ.

Kỹ thuật tối ưu hiệu năng

Có nhiều cách bạn có thể cải thiện hiệu năng thông qua tối ưu hóa với Docker. 

Cải thiện thông lượng mạng

Chọn đúng trình điều khiển mạng ảnh hưởng trực tiếp đến hiệu năng. Ví dụ:

  • Dùng trình điều khiển host khi cần độ trễ thấp, thông lượng cao và không ưu tiên cô lập mạng.
  • Ưu tiên bridge cho môi trường cục bộ, cô lập.
  • Triển khai macvlan khi container cần hành xử như thiết bị vật lý trên mạng của bạn.

Tránh quá tải mạng bridge mặc định, và tạo mạng riêng cho dịch vụ nặng hoặc nhóm logic.

Dò hiệu năng với iperf3 và số liệu

Để đo hiệu năng mạng, hãy dùng công cụ dò như iperf3:

# Start server in container1
docker run -it --rm --name server --network my-net networkstatic/iperf3 -s

# Run client in container2
docker run -it --rm --network my-net networkstatic/iperf3 -c server

Bạn cũng có thể theo dõi thống kê mạng bằng:

  • docker stats – CPU, bộ nhớ và I/O mạng theo thời gian thực.
  • Prometheus + cAdvisor – Cho số liệu chuỗi thời gian và giám sát dài hạn.
  • Script hoặc agent tùy chỉnh xuất số liệu /proc/net/dev từ trong container.

Dò hiệu năng định kỳ giúp phát hiện nút thắt sớm và định hướng quyết định về bố trí container, chọn trình điều khiển hoặc nâng cấp mạng máy chủ.

Khắc phục sự cố mạng

Ngay cả khi tuân thủ thực hành tốt nhất, sự cố mạng vẫn có thể xảy ra. Chẩn đoán và khắc phục nhanh là chìa khóa duy trì thời gian hoạt động. Phần này cung cấp công cụ và kỹ thuật để xác định và sửa các vấn đề mạng Docker thường gặp.

Chẩn đoán vấn đề mạng

Một container tối giản có thể thiếu công cụ như ping, dig hoặc netstat, gây khó gỡ lỗi. Thay vì chỉnh sửa container, hãy khởi chạy một container mới chia sẻ namespace mạng của nó:

docker run -it --network container:my-container alpine

Sau đó cài công cụ mạng:

apk add --no-cache iproute2 bind-tools net-tools

Ngoài ra, hãy dùng nicolaka/netshoot, một image chuyên dụng chứa nhiều công cụ chẩn đoán:

docker run -it --rm --network container:my-container nicolaka/netshoot

Các công cụ như ip, nslookup, netstat và traceroute sẽ giúp xác định vấn đề định tuyến hoặc DNS.

Giải quyết vấn đề kết nối

Một số nguyên nhân phổ biến và cách khắc phục:

  • Lỗi phân giải DNS: Đảm bảo container ở trên mạng do người dùng định nghĩa để hưởng lợi từ DNS nhúng của Docker. Kiểm tra /etc/resolv.conf và dùng dig hoặc nslookup để thử phân giải tên.
  • Không khớp MTU: Container trên các mạng hoặc máy chủ khác nhau có thể bị rơi gói do MTU không khớp. Giảm MTU trong mạng overlay nếu có dùng tunneling:
docker network create --driver overlay --opt com.docker.network.driver.mtu=1200 my-overlay

Subnet xung đột

Tránh các subnet chồng lấn giữa các mạng Docker hoặc với mạng vật lý của máy chủ. Dùng --subnet để xác định dải không xung đột.

Cổng bị tường lửa máy chủ chặn

Đảm bảo các cổng Docker cần thiết được mở:

  • 2377 (quản lý Swarm)
  • 7946 TCP/UDP (khám phá container)
  • 4789 UDP (dữ liệu overlay)

Khắc phục sự cố hiệu quả kết hợp giữa chẩn đoán và hiểu rõ cách container tương tác với mạng của chúng. Với công cụ và cách tiếp cận đúng, hầu hết vấn đề có thể được cô lập và giải quyết trong vài phút.

Kết luận

Docker Networking là thành phần nền tảng của kiến trúc container hóa, cho phép giao tiếp an toàn, hiệu quả và có thể mở rộng giữa các dịch vụ, dù chạy trên một máy chủ hay trên một cụm phân tán. 

Với hỗ trợ tích hợp cho nhiều trình điều khiển mạng, quản lý IP có thể tùy biến và mạng overlay gốc cho Swarm, Docker trao quyền cho nhà phát triển và đội DevOps cô lập khối lượng công việc, kiểm soát luồng dữ liệu và tối ưu hiệu năng trong môi trường phức tạp.

Không phải giải pháp phù hợp cho mọi tình huống, nhưng nếu dùng một cách thấu đáo, nó mang lại năng lực vững chắc để xây dựng microservices hiện đại, pipeline tự động hóa và hệ thống phân tán an toàn.

Muốn tiếp tục mài giũa kỹ năng Docker và containerization? 

Dưới đây là một số tài nguyên được khuyến nghị cao để tiếp tục hành trình học tập của bạn:

Câu hỏi thường gặp về tạo mạng Docker

Lệnh Docker network create dùng để làm gì?

Lệnh này được dùng để định nghĩa và cấu hình các mạng Docker tùy chỉnh, cho phép container giao tiếp an toàn và hiệu quả.

Các loại trình điều khiển mạng Docker chính là gì?

Các trình điều khiển chính gồm bridge, host, none, overlay, macvlan và ipvlan, mỗi loại cung cấp mức độ cô lập và kết nối khác nhau.

Khi nào tôi nên dùng mạng overlay trong Docker?

Mạng overlay lý tưởng cho giao tiếp đa máy chủ, đặc biệt trong môi trường Docker Swarm hoặc Kubernetes.

Làm sao tôi xác thực một mạng Docker được cấu hình đúng?

Dùng Docker network inspect, kiểm tra thiết lập IPAM và VXLAN, và kiểm thử kết nối container bằng ping hoặc công cụ DNS.

Những công cụ nào giúp chẩn đoán sự cố mạng Docker?

Các công cụ như nicolaka/netshoot, dig, nslookup, iperf3 và nhật ký container hữu ích để gỡ lỗi các vấn đề thường gặp như lỗi DNS hoặc không khớp MTU.

Josep Ferrer

Tác giả

Josep Ferrer

Josep là một Nhà khoa học dữ liệu tự do chuyên về các dự án châu Âu, có chuyên môn về lưu trữ dữ liệu, xử lý, phân tích nâng cao và kể chuyện bằng dữ liệu tạo tác động. 

Với vai trò giảng dạy, anh phụ trách môn Dữ liệu lớn trong chương trình Thạc sĩ tại Đại học Navarra và chia sẻ góc nhìn qua các bài viết trên các nền tảng như Medium, KDNuggets và DataCamp. Josep cũng viết về Dữ liệu và Công nghệ trong bản tin Databites (databites.tech). 

Anh có bằng Cử nhân Vật lý Kỹ thuật từ Đại học Bách khoa Catalonia và bằng Thạc sĩ Hệ thống Tương tác Thông minh từ Đại học Pompeu Fabra.

Chủ đề

Liên quan