0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng Dẫn Debug Networking Trong DevOps: Bí Kíp Của Một SRE

Đăng vào 3 tháng trước

• 4 phút đọc

Hướng Dẫn Debug Networking Trong DevOps: Bí Kíp Của Một SRE

Giới thiệu

Khi công việc đơn điệu hàng ngày của những người làm DevOps liên quan đến mạng không còn là điều mới lạ, bạn có tự hỏi liệu có cách nào để biến những thách thức đó thành kiến thức hữu ích? Hãy cùng tìm hiểu bí kíp debug networking từ một chuyên gia trong ngành.

Tóm tắt

Huyền thoại DevOps Lý Tiểu Mon đã từng nói rằng:

"Tôi không sợ người dùng 10.000 tools tracing trong CNCF chỉ một lần mà chỉ sợ người đã dùng tcpdump debug 10.000 lần."

Trong lĩnh vực DevOps, nhiều người đã bỏ qua kiến thức nền tảng như networking và mô hình OSI, chỉ tập trung vào những từ khóa “hot” như Kubernetes, AWS hay CI/CD. Tuy nhiên, kiến thức networking vẫn là một phần quan trọng không thể thiếu trong công việc hàng ngày.

Kiến thức cơ bản và cần thiết

Khi chuẩn bị cho phỏng vấn, bạn sẽ không thể tránh khỏi những câu hỏi tưởng chừng đơn giản như:

  • Bắt tay 3 bước là gì?
  • Sự khác biệt giữa TCP và UDP là gì?

Nếu bạn không nắm được kiến thức cơ bản này, bạn có thể gặp rắc rối lớn trong quá trình làm việc. Những công việc như DevOps, SRE hay System Admin đòi hỏi kiến thức sâu rộng về networking hàng ngày.

Ai là tôi?

Xin chào, mình là Minh Monmen, hiện đang làm việc như một SRE (Site Reliability Engineer) tại một công ty AI đến từ Nhật Bản. Bài viết này là một phần trong series DevOps Training mà mình đang thực hiện. Bạn có thể tham khảo lộ trình tự học DevOps của mình qua bài viết khác.

Networking quan trọng như thế nào?

Câu trả lời là Rất Quan Trọng. Trong công việc DevOps, bạn sẽ phải tiếp xúc với các vấn đề liên quan đến cấu hình networking, firewall, port, NAT mỗi ngày. Bạn có thể không cần nhớ tường tận mọi thứ liên quan đến gốc rễ lập trình, nhưng khi làm việc với networking, mọi thứ có thể chuyển từ đơn giản đến phức tạp rất nhanh chóng.

Thu thập thông tin sự cố

Việc đầu tiên bạn cần làm khi gặp sự cố là thu thập thật nhiều thông tin. Hãy kiểm tra log của ứng dụng, exception và các thông tin liên quan đến network. Một số mã lỗi phổ biến liên quan đến networking có thể là:

  • DNS lookup failure
  • Connection refused
  • Network is unreachable
  • Certificate errors
  • Blocked by CORS

Tái hiện sự cố

Sau khi đã thu thập thông tin, bước tiếp theo là tái hiện sự cố. Nếu sự cố xảy ra liên tục, điều này sẽ giúp bạn dễ dàng xác định vấn đề hơn. Nếu không, hãy cố gắng tìm ra quy luật hạn chế những vấn đề khó hiểu.

Khoanh vùng lỗi

Hiểu cách mà các ứng dụng giao tiếp với nhau sẽ giúp bạn khoanh vùng vấn đề dễ hơn. Vẽ sơ đồ hệ thống và mô hình OSI sẽ giúp bạn xác định vùng lỗi nhanh hơn. Bạn có thể sử dụng tiếp cận top-down hoặc bottom-up để tìm hiểu rõ hơn về vị trí sự cố.

Công cụ sử dụng để debug

Có rất nhiều công cụ mà bạn có thể dùng trong quá trình debug. Một số công cụ quan trọng bao gồm:

  • Layer 7: curl, dig, nslookup
  • Layer 4: telnet, nmap
  • Layer 3: ping, traceroute

Các vấn đề phổ biến và cách xử lý

Lỗi ở bước DNS

Kiểm tra các bản ghi DNS, máy chủ DNS của client và mạng nội bộ có thể giúp bạn xử lý những vấn đề liên quan đến không phân giải được IP.

Lỗi ở layer 3

Xác định xem liệu có vấn đề gì với các packet gửi đến server hay không. Sử dụng ping, traceroute để kiểm tra tính khả dụng.

Lỗi ở layer 4

Phải xác minh xem connection có bị timeout hay reset không. Hãy kiểm tra firewall và ứng dụng đang listen đúng port chưa.

Lỗi ở layer 7

Kiểm tra các vấn đề liên quan đến request timeout, response error và nội dung bên trong. Sử dụng curl và các công cụ khác để gửi và nhận dữ liệu một cách chính xác.

Kết luận

Debugging networking là một kỹ năng thiết yếu mà mỗi người làm việc trong lĩnh vực DevOps đều phải nắm vững. Hãy chắc chắn rằng bạn hiểu cách thức hoạt động của mô hình mạng và có các công cụ cần thiết để xử lý sự cố. Trong các bài viết tiếp theo, mình sẽ chia sẻ thêm về các mô hình thường gặp và cách thức giải quyết chúng.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào