Bài 10. Thiết Kế Mạng cho Hệ Thống DevOps: Tối Ưu Hiệu Năng và Độ Tin Cậy

Thiết Kế Mạng cho Hệ Thống DevOps: Tối Ưu Hiệu Năng và Độ Tin Cậy

Một hệ thống DevOps mạnh mẽ không chỉ cần code tốt mà còn phải có mạng được thiết kế tối ưu. Nếu mạng không đáp ứng được tải hoặc sụp khi có lỗi, pipeline CI/CD của bạn sẽ thất bại, microservices ngừng hoạt động, và người dùng chịu ảnh hưởng. Trong bài cuối của series, chúng ta sẽ khám phá thiết kế mạng trong DevOps, tập trung vào scalability mạng, redundancy mạng, và cách áp dụng thực tế để xây dựng mạng cho hệ thống CI/CD với 1000 người dùng.

Nguyên Tắc Thiết Kế Mạng trong DevOps

Scalability Mạng: Mở Rộng Không Giới Hạn

Scalability đảm bảo mạng xử lý được lượng truy cập tăng mà không giảm hiệu năng.

  • Nguyên tắc:

    • Chia subnet hợp lý (xem bài 2): Tránh hết IP khi mở rộng.
    • Load balancing: Phân phối traffic đều (VD: NGINX, AWS ELB).
    • Dùng VLAN (bài 7): Phân đoạn để giảm tải broadcast.
  • Ví dụ: Hệ thống ban đầu hỗ trợ 100 user với subnet 192.168.1.0/24. Khi tăng lên 1000 user, cần chuyển sang 10.0.0.0/16 và thêm load balancer.

Redundancy Mạng: Không Điểm Thất Bại Duy Nhất

Redundancy đảm bảo hệ thống sống sót qua lỗi phần cứng/mạng.

  • Nguyên tắc:

    • Multi-path: Nhiều đường mạng (VD: 2 ISP).
    • Failover: Dự phòng thiết bị (router, switch).
    • Backup link: VPN hoặc leased line.
  • Ví dụ thực tế: Một team DevOps mất kết nối Internet do router chính hỏng. Thêm router dự phòng với failover (VRRP) đã cứu hệ thống.

Bảo Mật và Hiệu Năng

  • Bảo mật: Áp dụng firewall, VLAN, VPN (bài 6, 9).
  • Hiệu năng: Đo latency, throughput (bài 8), tối ưu MTU.

Mục tiêu: Mạng vừa nhanh, vừa an toàn, vừa chịu tải cao.

Case Study: Mạng cho Hệ Thống CI/CD 1000 Người Dùng

Yêu Cầu

  • User: 1000 developer, 50 pipeline chạy đồng thời.
  • Traffic: Pull/push code (GitLab), deploy artifact (S3), monitoring.
  • Yếu tố: Scalable, redundant, bảo mật.

Thiết Kế Mạng

  1. IP và Subnet:

    • Dùng 10.0.0.0/16 (65k địa chỉ).
    • Chia subnet:
      • 10.0.1.0/24: Runner CI/CD (254 host).
      • 10.0.2.0/24: Server GitLab.
      • 10.0.3.0/24: Monitoring (Prometheus, Grafana).
      • 10.0.10.0/24: Developer VLAN.
  2. VLAN:

    • VLAN 10: Runner.
    • VLAN 20: Server nội bộ.
    • VLAN 30: Monitoring.
    • VLAN 100: Developer.
  3. Routing và Redundancy:

    • 2 router (R1, R2) chạy VRRP:
      • R1: Primary (10.0.0.1), R2: Backup (10.0.0.2).
    • Default gateway: 10.0.0.1.
    • Kết nối 2 ISP (ISP1 primary, ISP2 backup).
  4. Load Balancing:

    • NGINX LB trước GitLab server:
      upstream gitlab {
      server 10.0.2.10;
      server 10.0.2.11;
      }
      server {
      listen 80;
      location / {
       proxy_pass http://gitlab;
      }
      }
  5. Bảo mật:

    • Firewall: Chỉ mở port 22 (SSH) từ VLAN 100, port 443 (HTTPS) từ Internet.
    • VPN: Developer truy cập từ xa qua OpenVPN.
  6. Monitoring:

    • Prometheus scrape metrics từ VLAN 30.
    • Alert nếu latency > 100ms hoặc packet loss > 1%.

Sơ Đồ Mạng

[Internet]
  | ISP1  ISP2
  |-------|
 [R1]   [R2] (VRRP: 10.0.0.1)
    | Switch (Trunk)
    | VLAN 10 | VLAN 20 | VLAN 30 | VLAN 100
 [Runner]  [GitLab LB] [Monitoring] [Developer]

Thực Hành: Xây Dựng và Debug Mạng

Cấu Hình Router Failover (Giả Lập GNS3)

  1. Tạo topology: 2 router, 1 switch, 2 PC.
  2. Cấu hình VRRP (Cisco):
    # Router 1 (Primary)
    interface fa0/0
    ip address 10.0.0.1 255.255.0.0
    vrrp 1 ip 10.0.0.254
    vrrp 1 priority 120
    # Router 2 (Backup)
    interface fa0/0
    ip address 10.0.0.2 255.255.0.0
    vrrp 1 ip 10.0.0.254
    vrrp 1 priority 100
  3. Test: Tắt R1 → R2 tự động lên.

Cấu Hình VLAN và Firewall

  1. Switch:
    vlan 10
    name RUNNER
    interface fa0/1
    switchport mode access
    switchport access vlan 10
  2. Firewall (iptables):
    iptables -A INPUT -p tcp --dport 22 -s 10.0.10.0/24 -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -j DROP

Debug Mạng

  • Ping: ping 10.0.0.254 → Kiểm tra VRRP.
  • Tcpdump:
    tcpdump -i eth0 -n host 10.0.2.10
  • Latency: Dùng iperf đo giữa runner và GitLab.

Debug tip:

  • Job chậm: Kiểm tra latency với traceroute.
  • Traffic mất: Xem VRRP failover có hoạt động không.

Kết Luận

Thiết kế mạng trong DevOps là nghệ thuật kết hợp scalability mạng, redundancy mạng, và bảo mật để hỗ trợ hệ thống CI/CD mạnh mẽ. Từ việc chia subnet, dùng VLAN, đến cấu hình failover và load balancing, bạn giờ đây có thể xây dựng mạng cho hàng nghìn người dùng mà vẫn đảm bảo hiệu năng và độ tin cậy. Series này đã đi qua 10 bài – từ cơ bản đến nâng cao – hy vọng bạn đã sẵn sàng áp dụng vào thực tế!

Bài tập nhỏ:

  • Thiết kế mạng cho 500 user với 2 VLAN và 1 load balancer. Vẽ sơ đồ.
  • Chạy iperf giữa 2 máy, đo throughput tối đa.

Cảm ơn bạn đã theo dõi series Networking Chuyên Sâu cho DevOps!

Điều hướng chuỗi bài viết<< Bài 9: Bảo Mật Mạng Chuyên Sâu: Bảo Vệ Hệ Thống DevOps Trước Mối Đe Dọa
>> Bài 11. SDN trong DevOps: Tự Động Hóa Mạng cho Hệ Thống Phân Tán
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận