eBPF คืออะไร?
เทคโนโลยีที่กำลังเปลี่ยน
Infrastructure Engineering
eBPF ช่วยให้ run โค้ดใน Linux Kernel ได้โดยไม่ต้องแก้ kernel source — เปิดโอกาสใหม่ด้านการ observe, secure, และ optimize infrastructure อย่างที่ไม่เคยเป็นไปได้มาก่อน Netflix, Meta, Google, Cloudflare ใช้มันในระดับ production ที่ traffic หลักพันล้าน request ต่อวัน
eBPF คืออะไร? — จาก BPF สู่ eBPF
BPF ดั้งเดิม (1992)
Berkeley Packet Filter ถูกสร้างขึ้นในปี 1992 เพื่อ filter network packet ใน Unix มีความสามารถจำกัด — แค่ filter ว่า packet ไหนควรส่งให้ userspace หรือ drop เครื่องมืออย่าง tcpdump ใช้ BPF ตั้งแต่ยุคนั้น
eBPF — Extended BPF (2014–ปัจจุบัน)
Linux 3.18 เพิ่ม eBPF เข้าสู่ kernel อย่างเป็นทางการ โดย extend BPF ให้เป็น general-purpose virtual machine ใน kernel ที่รัน bytecode ผ่าน JIT compiler, มี verifier ตรวจสอบความปลอดภัย, และ maps สำหรับแชร์ข้อมูลกับ userspace
eBPF ทำงานอย่างไร? — ปลอดภัย รวดเร็ว ไม่ต้องแก้ Kernel
เขียน eBPF Program
เขียนใน C (หรือผ่าน Go/Rust bindings) แล้ว compile เป็น eBPF bytecode ด้วย LLVM/Clang โปรแกรมจะถูก attach เข้ากับ hook point ต่างๆ ใน kernel เช่น system call, network event, หรือ tracepoint
Verifier ตรวจสอบความปลอดภัย
ก่อน load เข้า kernel ทุกครั้ง kernel verifier จะตรวจสอบว่าโปรแกรม: ไม่มี infinite loop, ไม่เข้าถึง memory ที่ไม่ได้รับอนุญาต, และไม่สามารถทำให้ kernel crash ได้ — ถ้าผ่านไม่ได้จะ reject ทันที
JIT Compile & Execute
หลังผ่าน verifier bytecode จะถูก JIT compile เป็น native machine code ทำให้รันได้เร็วเทียบเท่า native kernel code ผลลัพธ์สามารถส่งกลับไปยัง userspace ผ่าน eBPF Maps หรือ perf events
4 กลุ่มการใช้งานหลักในโลก Production จริง
แทนที่จะต้องแก้โค้ด application เพื่อเพิ่ม telemetry (instrumentation) eBPF สามารถ observe ทุก system call, function call, memory allocation, และ network connection โดยไม่แตะโค้ด application เลยทำให้ได้ visibility เต็มรูปแบบใน microservices ที่เขียนด้วยหลายภาษาโดยไม่ต้องแก้แต่ละ service
Cilium — CNI plugin ที่ใช้ eBPF แทน kube-proxy และ iptables ใน Kubernetes ทำให้ network policy enforcement เกิดขึ้นในระดับ kernel โดยตรง ลด latency และเพิ่ม throughput อย่างมีนัยสำคัญ Cloudflare ใช้ XDP (eBPF-based) รับ traffic DDoS หลายร้อย Gbps โดยไม่ต้องส่งขึ้น TCP/IP stack เลย
eBPF สามารถ monitor ทุก system call ใน kernel ได้แบบ real-time ทำให้สามารถตรวจจับ behavior ที่ผิดปกติ เช่น container ที่พยายาม escape, process ที่ open unexpected network connection, หรือ privilege escalationโดยไม่ต้องพึ่ง signature-based detection — ตรวจจับ zero-day ได้
Continuous profiling ด้วย eBPF ทำให้สามารถเก็บ performance data ตลอดเวลาใน production โดยมี overhead ต่ำมาก (น้อยกว่า 1%) ต่างจาก traditional profiler ที่ต้องเปิดตอน debug เท่านั้น Google Borg ใช้ eBPF profiling ทั้ง fleet และประหยัดค่า compute ได้ หลายร้อยล้านดอลลาร์ต่อปีจากการระบุ hot code path ที่ optimize ได้
eBPF Ecosystem — เครื่องมือที่ใช้งานได้จริงวันนี้
eBPF เหมาะกับองค์กรแบบไหน?
eBPF ถูกออกแบบมาให้ทำงานได้ดีที่สุดบน Linux kernel สมัยใหม่ ถ้า workload ของคุณรันบน K8s นี่คือ use case ที่ชัดเจนที่สุด — ทั้ง network policy, observability, และ security enforcement
แทนที่จะต้อง instrument แต่ละ service ด้วย SDK ที่ต่างกัน eBPF-based tool เช่น Pixie หรือ Grafana Beyla สามารถ auto-detect L7 traffic ทุก protocol โดยไม่ต้องแก้โค้ดสักบรรทัด
eBPF ใช้ได้บน bare metal Linux และ VM เช่นกัน แต่ความซับซ้อนในการ setup สูงกว่า และ ecosystem ส่วนใหญ่ออกแบบมาสำหรับ Kubernetes ถ้ายังไม่ได้ใช้ K8s อาจเริ่มจาก tool ที่ใช้ง่ายกว่าก่อน
ถ้ามี latency spike, memory leak, หรือ CPU contention ที่ application-level tracing ไม่สามารถ pinpoint ได้ eBPF profiling เช่น bpftrace หรือ Pyroscope จะช่วยให้เห็น kernel-level behavior ที่ซ่อนอยู่
eBPF ไม่ใช่ระดับ Advanced — มันคือ Infrastructure Standard ใหม่
สิ่งที่ทำให้ eBPF น่าสนใจไม่ใช่แค่ performance ที่ดีกว่า แต่คือ มันเปลี่ยน paradigm ของการ observe และ secure system จาก "ต้องแก้โค้ด application" มาเป็น "kernel รู้ทุกอย่างและบอกเราได้" โดยไม่เพิ่ม complexity ให้ application layer
สำหรับองค์กรไทยที่กำลัง modernize infrastructure หรือ migrate สู่ Kubernetes eBPF คือการลงทุนที่คุ้มค่า — ไม่ใช่เพราะมันเป็นเทคโนโลยีใหม่ แต่เพราะ ปัญหาที่มันแก้ (observability, security, performance) เป็นปัญหาจริงที่ทุกองค์กรเจอ
Tensora ใช้ eBPF-based tooling ในการ monitor และ optimize infrastructure ของลูกค้า ถ้าคุณกำลังเผชิญกับ performance bottleneck หรือต้องการ observability ที่ลึกกว่านี้ เราพร้อมช่วยประเมินว่า eBPF เหมาะกับ stack ของคุณหรือไม่
สนใจ modernize infrastructure ด้วย eBPF-based observability?
พูดคุยกับทีม Tensora →