Perbahasan Pengasingan Python: Adakah Pyodide dalam Deno Pendekatan Terbaik?

BigGo Editorial Team
Perbahasan Pengasingan Python: Adakah Pyodide dalam Deno Pendekatan Terbaik?

Pelancaran Model Context Protocol (MCP) oleh Pydantic untuk menjalankan kod Python dalam persekitaran terasing telah mencetuskan perbahasan hangat dalam kalangan pembangun mengenai pendekatan terbaik untuk pengasingan Python. Penyelesaian ini, yang menggunakan Pyodide yang berjalan dalam Deno untuk melaksanakan kod Python secara terasing, telah menerima pujian dan kritikan daripada komuniti pembangun.

Pertimbangan Keselamatan dalam Pengasingan Python

Pelaksanaan MCP Run Python menjalankan kod Python dalam Pyodide, iaitu pengedaran Python untuk pelayar web yang beroperasi dalam persekitaran JavaScript Deno. Walaupun pendekatan ini menyediakan pengasingan daripada sistem operasi hos, ahli komuniti telah membangkitkan kebimbangan mengenai andaian keselamatan. Sesetengah pembangun menyatakan bahawa kaedah ini bergantung kepada keselamatan pelbagai lapisan - mesin maya WASM Deno dan Pyodide - yang kedua-duanya berpotensi mengandungi eksploitasi atau pepijat. Perbahasan ini menyoroti cabaran asas dalam menjalankan kod Python yang tidak dipercayai secara selamat, kerana CPython (pelaksanaan Python standard) tidak direka dengan pengasingan sebagai ciri utama.

Saya lebih mempercayai pengasingan WASM berbanding pengasingan kontena Docker. Enjin WASM beroperasi dalam hampir semua pelayar web di seluruh dunia, berbilion kali sehari. Masalah keselamatan dalam enjin tersebut dapat dikesan dengan sangat cepat.

Pendekatan Pengasingan Python yang Disebut dalam Perbincangan

  • Pyodide dalam Deno (MCP Run Python): Menggunakan pengasingan berasaskan WASM, keselamatan yang baik tetapi ada kos prestasi
  • Wasmtime: Menjalankan Python dalam kontena WASM secara langsung dalam Python
  • Firecracker microVMs: Pengasingan keselamatan yang lebih baik tetapi masa permulaan yang lebih perlahan
  • Ciri-ciri kernel Linux: Landlock, cgroups untuk pengasingan
  • gVisor: Teknologi pengasingan kontena
  • Pengasingan khas: Menggunakan eval/exec dengan pengimport khas (disebut oleh Temporal)
  • Penjara berasaskan seccomp: Untuk kes penggunaan terhad dengan syscalls yang dihadkan

Pertimbangan Prestasi dan Alternatif

Metrik prestasi yang dikongsi dalam perbincangan mendedahkan overhead yang ketara apabila menjalankan kod Python dalam pengasingan berasaskan WASM. Penanda aras menunjukkan bahawa program hello world yang ringkas dalam persekitaran terasing adalah kira-kira 12 kali lebih perlahan berbanding pelaksanaan Python standard, dan hampir 370 kali lebih perlahan berbanding pelaksanaan C yang dioptimumkan untuk program yang sama. Jurang prestasi ini telah mendorong pembangun untuk meneroka pendekatan alternatif, termasuk menggunakan ciri-ciri kernel Linux seperti Landlock dan cgroups, microVM firecracker, dan penyelesaian berasaskan WASM lain seperti wasmtime.

Perbandingan Prestasi (Program Hello World)

Pelaksanaan Masa Prestasi Relatif
C Dioptimumkan ~0.0006 saat 368x lebih pantas daripada sandbox WASM
Python Standard ~0.019 saat 12.3x lebih pantas daripada sandbox WASM
Sandbox Python WASM ~0.234 saat Garis asas

Sokongan Ekosistem dan Aplikasi Praktikal

Walaupun terdapat kebimbangan prestasi, pendekatan Pyodide menawarkan fleksibiliti yang mengejutkan. Ahli komuniti menyatakan bahawa kebergantungan kompleks seperti scikit-learn berfungsi dalam persekitaran ini, membolehkan pengalaman pembelajaran mesin yang mudah dalam pelayar web. Keupayaan ini menjadikan penyelesaian ini menarik untuk kes penggunaan tertentu, terutamanya apabila keselamatan adalah keutamaan yang lebih tinggi berbanding prestasi mentah. Pendekatan ini juga mencerminkan teknik yang digunakan oleh platform AI utama - sebagai contoh, ChatGPT menggunakan Pyodide untuk pelaksanaan kod berasaskan pelayar dan Jupyter dalam kontena Kubernetes untuk ciri Code Interpreter.

Konteks Lebih Luas Rangka Kerja Agen AI

Pelaksanaan MCP Run Python adalah sebahagian daripada ekosistem rangka kerja agen AI yang semakin berkembang yang membolehkan model bahasa melaksanakan kod dengan selamat. Sesetengah pembangun menyatakan kebimbangan mengenai pertumbuhan rangka kerja ini, membuat perbandingan dengan perpecahan yang dilihat dalam ekosistem JavaScript. Pendekatan alternatif yang disebut termasuk eval-py oleh Dylibso, VM firecracker untuk pelaksanaan yang lebih fleksibel tetapi lebih perlahan, dan penyelesaian pengasingan khas yang dibina dengan alat seperti seccomp.

Pencarian untuk penyelesaian pengasingan Python yang sempurna berterusan, dengan pendekatan ideal bergantung kepada kes penggunaan tertentu, keperluan keselamatan, dan keperluan prestasi. Memandangkan sistem AI semakin memerlukan pelaksanaan kod yang selamat, bidang ini dijangka akan terus berkembang dan disempurnakan.

Rujukan: MCP Run Python