- Spin เป็นเครื่องมือพัฒนาโอเพนซอร์สสำหรับสร้าง ปรับใช้ และรันแอปพลิเคชัน WebAssembly (Wasm) แบบเซิร์ฟเวอร์เลสได้ทุกที่
- มีข้อดีคือให้ไบนารีแบบพกพาที่มีขนาดเล็ก เวลาเริ่มต้นต่ำ และมีปริมาณงานรองรับสูง ทำให้สามารถรันแอปพลิเคชันได้ในหลากหลายสภาพแวดล้อม
ไฮไลต์ของ Spin 3.0
- ด้วยความเบาของ Wasm เวลาเริ่มต้นที่รวดเร็ว และความปลอดภัย จึงเหมาะกับการใช้งานฝั่งเซิร์ฟเวอร์ โดยได้เปรียบในกรณีที่คอนเทนเนอร์ช้าหรือมีขนาดใหญ่ กรณีที่ต้องการแซนด์บ็อกซ์อย่างเข้มงวด หรือกรณีใช้งานแบบเซิร์ฟเวอร์เลส
- WebAssembly Component Model ช่วยทำให้การทำงานร่วมกันระหว่างภาษาโปรแกรมต่าง ๆ เป็นมาตรฐาน จึงเปิดโอกาสใหม่ ๆ ให้กับนักพัฒนา
- การพึ่งพาคอมโพเนนต์ - เขียนโปรแกรมหลายภาษาได้ง่ายขึ้น
- Spin 3.0 นำเสนอเวิร์กโฟลว์การพัฒนาที่สามารถใช้ไลบรารีที่เขียนด้วย Rust เป็น dependency ในแอปพลิเคชัน JavaScript ได้ เป็นต้น
- สามารถจัดเก็บ ค้นหา และนำเข้าคอมโพเนนต์จาก OCI registry ได้ มอบประสบการณ์คล้ายกับ npm/NuGet/crates.io
- การปรับใช้แบบเลือกได้ - สร้างครั้งเดียวแล้วเลือกปรับใช้ตามต้องการ
- สามารถรันบางคอมโพเนนต์ของแอปพลิเคชัน Spin แบบโลคัลหรือผ่าน SpinKube ได้
- ใช้แฟลก
spin up --component-id เพื่อระบุคอมโพเนนต์ที่จะรัน และเปิดทางให้วิศวกรแพลตฟอร์มสามารถเลือกรันคอมโพเนนต์บนโหนดที่ตรงกับข้อกำหนดเฉพาะได้
- การผสานรวมอย่างลึกกับมาตรฐาน WASI
- โครงการ Spin มีส่วนร่วมกับ WASI API และผสานรวมเข้ากับ Spin เพื่อรองรับความต้องการของชุมชน
- WASI Key-Value และ WASI Config API ได้รับการรองรับอย่างเป็นทางการใน Spin
- การผสานรวม OpenTelemetry (OTel) - มาพร้อมความสามารถด้าน observability
- Spin 3.0 รองรับ observability ของ OpenTelemetry (OTel) อย่างเป็นทางการ ทำให้ผสานเข้ากับเครื่องมืออย่าง Grafana, Jaegar, Prometheus ได้
- ตั้งค่า observability stack ได้ง่ายผ่านปลั๊กอิน
spin otel
- Spin Factors - การรีแฟกเตอร์รันไทม์ครั้งใหญ่
- มีการรีแฟกเตอร์โครงสร้างภายในของ Spin ครั้งใหญ่ผ่านความสามารถที่เรียกว่า Spin Factors เพื่อเพิ่มความเป็นโมดูลาร์
- การขยาย Spin runtime ทำได้ง่ายขึ้น และแม้ยังต้องฟอร์กโปรเจกต์ก็สามารถทำได้
- เดโม - การใช้งาน Spin 3.0
- มีตัวอย่างการใช้ความสามารถด้าน component dependency ของ Spin 3.0 เพื่อสร้างคอมโพเนนต์แปลงภาพด้วย Rust แล้วนำไปใช้เป็น dependency ในคอมโพเนนต์ JavaScript/TypeScript
- ใช้ปลั๊กอิน
spin deps เพื่อเผยแพร่คอมโพเนนต์ไปยัง OCI registry และให้คอมโพเนนต์ Wasm ที่เขียนด้วยภาษาอื่นนำไปใช้ต่อได้
- สถานะของอีโคซิสเต็ม
- มีทั้ง CLI plugin และ trigger plugin ใหม่ ๆ เพิ่มขึ้นมา และยังมีรีลีสใหม่ของโครงการ SpinKube ด้วย
- มีการเพิ่มฟีเจอร์ใหม่ รวมถึงการปรับใช้แบบเลือกได้
1 ความคิดเห็น
OTel ตอนนี้เหมือนจะกลายเป็นค่าปริยายไปแล้ว