Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • eBPF

    eBPF là gì? Vì sao dân DevOps / Cloud Native / Security đang nói rất nhiều về nó?


    Nếu Kubernetes thay đổi cách chúng ta triển khai ứng dụng, thì eBPF đang thay đổi cách chúng ta tương tác với nhân Linux kernel.
    eBPF (extended Berkeley Packet Filter) là công nghệ cho phép chạy các chương trình tùy chỉnh trực tiếp bên trong Linux kernel một cách an toàn. Điều này biến kernel từ một thành phần “đóng” thành một nền tảng có thể lập trình được. Thay vì phải sửa mã nguồn kernel, biên dịch lại, reboot server hoặc viết kernel module phức tạp, eBPF cho phép nạp logic động vào kernel khi hệ thống đang chạy.
    Sau đây là một mô tả cụ thể. Application của bạn chạy ở userspace. Thông thường, khi app cần truy cập file, network socket, memory, process information... nó phải đi qua system calls để nói chuyện với kernel. Với eBPF, bạn có thể “gắn” chương trình nhỏ vào các sự kiện trong kernel như một packet đi vào network stack, hoặc system call được gọi, process được tạo, file được truy cập, TCP connection được mở, security event xảy ra....eBF giúp tất cả các tác vụ này nói chuyện với nhân linux kernel dễ dàng hơn.
    Khi event xảy ra, chương trình eBPF chạy ngay bên trong kernel.
    Điều này tạo ra hiệu năng cực cao vì chúng ta không cần context switching liên tục giữa userspace và kernel. Nó cũng giúp giảm overhead, lý do là vì xử lý gần nguồn dữ liệu nhất. Khà năng giám sát cũng gần với thời gian thực. Vì sao eBPF đặc biệt quan trọng với Kubernetes?


    Trong môi trường Kubernetes, application chạy trong containers, containers lại nằm trong Pods. Pods thì phân bố trên nhiều Nodes, mỗi Node có một Linux kernel. Điểm quan trọng Kernel nhìn thấy toàn bộ những gì đang xảy ra trên host. Kernel lúc này biết container nào đang chạy, process nào tạo kết nối, packet nào đi đâu hay pod nào nói chuyện với pod nào, ai truy cập file nào, syscall nào đang được gọi....và nhiều thức khác.
    Đây là lý do eBPF trở thành “vũ khí mới” trong cloud-native. 3 ỨNG DỤNG lớn của eBPF

    1. Networking


    eBPF có thể can thiệp trực tiếp vào packet path. Ví dụ như load balancing, routing, packet filtering, NAT, service mesh acceleration, replacing iptables bottlenecks
    Một ví dụ nổi tiếng là sản phẩm Cilium. Cilium dùng eBPF để thay thế nhiều phần networking truyền thống trong Kubernetes. Thay vì phụ thuộc nặng vào iptables, Cilium đưa packet processing xuống kernel-level. Cách này giúp cho độ trễ thấp hơn, thru put cao hơn.

    2. Observability


    eBPF rất mạnh trong monitoring. Bạn có thể theo dõi syscalls, TCP latency, DNS queries, file access, process behavior, container activity...mà không cần các intrusive agents nặng nề. Ví dụ Pixie, bpftrac, BCC, Parca. Đây là lý do eBPF đang thay đổi cách observability hoạt động.

    3. Security


    Security team cực kỳ thích eBPF vì tính khả kiến visibility rất sâu. Có thể giúp chúng ta phát hiện suspicious process execution, privilege escalation, malware behavior....Ví dụ tools Falco (eBPF mode), Tetragon, Tracee. Thay vì chỉ nhìn logs sau khi sự cố xảy ra, eBPF giúp quan sát hành vi runtime.

    Một cách nhìn dễ nhớ


    Nếu Docker là “virtualization nhẹ”. Thì eBPF là programmable infrastructure inside Linux kernel. Hoặc dễ hình dung hơn iptables + tcpdump + strace + observability agent + security sensor ... nhưng hiện đại hơn, nhanh hơn, kernel-native hơn. eBPF đang là nền tảng phía sau rất nhiều công nghệ cloud-native hiện đại Kubernetes networking, runtime security, observability, zero-trust workload security, service mesh evolution. Nếu bạn đang làm DevOps, Platform Engineering, Kubernetes, Cloud Security, SRE, AI Infrastructure thì eBPF là chủ đề đáng đọc thêm.​
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X