V8 Isolate-ээс Firecracker MicroVM рүү: Netlify Edge Functions хэрхэн 5 дахин хурдассан бэ?
Вэб хөгжүүлэгчдийн дунд сүүлийн хэдэн жил "Edge Functions"-ийн тухай ярихад хамгийн түрүүнд Chrome V8 хөдөлгүүрийн Isolate технологи санаанд ордог байв. Cloudflare Workers, Deno Deploy зэрэг платформуудын ачаар Isolate нь "хөнгөн, хэдхэн миллисекундэд ачаалдаг (cold start), бага санах ой ашигладаг" гэдгээрээ edge computing-ийн стандарт болсон билээ.
Харин Netlify саяхан өөрсдийн Edge Functions архитектурт томоохон эргэлт хийж, V8 Isolate-ээс Firecracker MicroVM рүү бүрэн шилжүүлснээ албан ёсоор мэдээллээ. Хамгийн гайхалтай нь энэхүү шилжилтийн үр дүнд хүсэлтийн дундаж хугацаа (median warm latency) 25-40ms байснаас 5-6ms болж бараг 5 дахин буурчээ.
Хуучин архитектурын асуудал юу байв?
Netlify өдөрт 1 тэрбум гаруй Edge Functions хүсэлт боловсруулдаг (хувийн тохиргоо, A/B тест, cookie шалгалт, auth г.м.). Өмнө нь тэд Edge Functions-ийг ажиллуулахдаа гаднын тусдаа V8 Isolate дэд бүтцийг ашигладаг байв.
Энэ загвар нь онолын хувьд зөв мэт боловч практикт хэд хэдэн том бэрхшээл үүсгэж байсан юм:
- Сүлжээний илүү хоп (Network Hops): Хэрэглэгчийн хүсэлт Netlify-ийн edge node-д ирээд, цааш гаднын isolate үйлчилгээ рүү илгээгдэж, хариу нь буцаж ирдэг байсан тул сүлжээний нэмэлт саатал (RTT) үүсдэг байв.
- Хяналт ба найдвартай байдал: Лог дамжуулах, хязгаарлалт тавих, алдаа засах зэрэгт гуравдагч талын дэд бүтцээс хараат байсан нь үйлчилгээний уян хатан чанарыг боомилж байв.
Firecracker MicroVM гэж юу вэ? Яагаад үүнийг сонгов?
Firecracker бол AWS-ийн нээлттэй эхээр хөгжүүлсэн, serverless ажлуудад (AWS Lambda, Fargate) зориулагдсан хэт хөнгөн Hypervisor (KVM) систем юм. Уламжлалт хүнд VM-үүд хэдэн арван секунд эсвэл минут зарцуулдаг бол Firecracker MicroVM нь хэдхэн миллисекундын дотор ачаалж, минимал санах ой эзэлдэг.
Netlify-ийн инженерүүд гаднын тусгаарлагдсан орчинд найдахын оронд өөрсдийн дотоод сүлжээнд суурилсан Compute Node-үүд дээр Firecracker-ийг нэвтрүүлжээ.
Хүсэлт хэрхэн боловсруулагдаж байна вэ?
Шинэчилсэн архитектурын дагуу:
- Edge Node дээр шүүлт хийх: Хэрэглэгчийн хүсэлт ирэх үед edge node уг зам (route) нь Edge Function-д хамаарах эсэхийг тодорхойлоод, өөрсдийн сүлжээн дэх хамгийн ойр compute node руу шууд чиглүүлнэ.
- Service ба MicroVM удирдлага: Хүсэлтийг хүлээн авсан compute node нь тухайн вебсайтад зориулсан үйлчилгээ үүссэн эсэхийг шалгана. Үйлчилгээний түвшинд хэд хэдэн MicroVM-ийг зэрэг удирдах, ачааллыг хуваарилах боломжтой.
- Eager Booting ба Lifecycle: VM бүр тодорхой тооны хүсэлт боловсруулаад автоматаар унтардаг бөгөөд систем саатал үүсгэхгүйн тулд дараагийн MicroVM-ийг урьдчилан ачаалж (eager booting) бэлтгэдэг байна.
5-6ms: Хөгжүүлэгчдэд ямар ашигтай вэ?
Энэхүү шинэчлэл нь Netlify ашигладаг инженерүүдэд хэд хэдэн бодит давуу талыг авчирч байна:
- 5 дахин хурдан warm invocation: Түгээмэл ажилладаг edge функцуудын median хугацаа 5-6ms болж буурсан нь хэрэглэгчийн вэб хуудас нээгдэх хугацаа (TTFB)-д шууд эерэг нөлөө үзүүлнэ.
- Линуксийн бүтэн тусгаарлалт (Hardware-level isolation): V8 isolate нь зөвхөн хэлний түвшний process тусгаарлалт хийдэг бол MicroVM нь үйлдлийн системийн цөмийн түвшний бүрэн техник хангамжийн тусгаарлалт олгодог тул хамгаалалт эрс сайжирна.
- Кодод өөрчлөлт оруулах шаардлагагүй: Хөгжүүлэгчид кодоо ямар ч өөрчлөлтгүйгээр урьдын адил ашиглах боломжтой бөгөөд үнэ тариф болон төлөвлөгөөнд өөрчлөлт ороогүй.
- Хурдан лог ба илүү сайн мониторинг: Дотоод сүлжээндээ ажиллаж байгаа тул консолын логууд Netlify dashboard дээр бараг сааталгүй гарч ирдэг болсон байна.
Дүгнэлт
Энэхүү алхам нь серверлесс болон edge computing-ийн ертөнцөд том дохио боллоо. "Зөвхөн V8 isolate л edge-д тохирно" гэсэн ойлголтыг Firecracker MicroVM эвдэж, сүлжээний зөв зохион байгуулалт болон хөнгөн виртуалчлалын тусламжтайгаар бүр илүү хурд, илүү өндөр хамгаалалтыг нэг дор авч болохыг харууллаа.
Хэрэв таны систем Netlify Edge Functions ашигладаг бол уг шинэчлэл ямар ч тохиргоо шаардахгүйгээр аль хэдийн production орчинд идэвхжсэн байна.
Эх сурвалж: Netlify Official Engineering Blog: 5x faster Edge Functions: v8 isolates to Firecracker MicroVMs
Сэтгэгдэл
Ачаалж байна...