Serverless гэж юу вэ? Serverless computing энгийнээр тайлбарлая
Serverless бол кодоо ажиллуулах арга бөгөөд та өөрөө ямар ч серверийг тохируулж, удирдахгүй. Та кодоо үүлэн үйлчилгээ үзүүлэгчид өгнө, тэр нь зөвхөн ямар нэг зүйл түүнийг өдөөх үед — вэб хүсэлт, файл байршуулалт, төлбөрийн мэдэгдэл — ажиллаад зогсдог. Та ихэвчлэн таны код жинхэнээр ажиллаж байгаа хугацааны төлөө төлдөг, идэвхгүй зогсож буй машины төлөө биш.
AI-аар бүтээхэд serverless яагаад чухал вэ
AI-аар аппликейшн бүтээж, hosting сонголт эсвэл кодыг харахад та «serverless функц», «edge функц» эсвэл «cloud функц» гэсэн нэрүүдтэй таарна. Олон hosting платформ эдгээрийг санал болгодог бөгөөд зарим AI бүтээгч backend-ээ ийм байдлаар байршуулдаг. Энэ загварыг ойлгох нь гурван практик асуултад тусална:
- Зардал. Хэн ч ашиглаагүй байхад таны аппликейшн мөнгө зардаг уу?
- Хурд. Яагаад тайван хугацааны дараах эхний хүсэлт удаан байдаг вэ?
- Хязгаар. Яагаад урт ажил — том тайлан үүсгэх, видео боловсруулах — цаг нь дууссан бэ?
Мөн serverless юу биш болохыг мэдэх нь тустай: энэ нь backend байхгүйг хэлэхгүй. Таньд серверийн тал дээрх код хэрэгтэй хэвээр; зүгээр л өөр хүн машинуудыг ажиллуулдаг. Үндсэн зүйлийн талаар сервер гэж юу вэ гэсэн хуудсыг үзнэ үү.
Өдөр тутмын зүйрлэл
Уламжлалт сервер бол машинтай байхтай адил. Үргэлж бэлэн, шууд явж чадна, гэхдээ та түүнийг жолоодсон ч, жолоодоогүй ч — даатгал, зогсоол, засвар — төлдөг.
Serverless бол такси дуудахтай адил. Зөвхөн явсан аяллынхаа төлөө төлнө, хэрэв зуун хүн зэрэг явах шаардлагатай бол зуун такси ирнэ. Гэхдээ машин ирэх богино хугацаатай хүлээлт (cold start) байж болно, аялал бүр хамгийн дээд урттай, жолооч таныг өмнөх аяллаас санадаггүй (функцууд stateless).
Serverless функцууд хэрхэн ажилладаг вэ
Хамгийн түгээмэл хэлбэрт, functions as a service гэж нэрлэгдэх:
- Та функц бичнэ — нэг төрлийн үйл явдлыг боловсруулдаг жижиг код, жишээ нь «
/api/bookingsруу POST-ыг боловсруул». - Та байршуулна. Үйлчилгээ үзүүлэгч үүнийг хадгалж, өдөөгчтэй холбоно: URL, хуваарь, хадгалалтад шинэ файл, дарааллын мессеж.
- Үйл явдал ирнэ. Үйлчилгээ үзүүлэгч таны функцын хуулбарыг эхлүүлнэ (эсвэл бэлэн байгаа нэгийг ашиглана), ажиллуулж, үр дүнг буцаана.
- Өөрөө масштаблана. Нэг зуун хүсэлт зэрэг ирвэл үйлчилгээ үзүүлэгч олон хуулбарыг зэрэгцүүлэн ажиллуулна, таны дансны хязгаар хүртэл.
- Идэвхгүй болно. Ачаалал зогсоход хуулбарууд унтарна. Юу ч ажиллаагүй үед компьютерийн төлөө огт төлөхгүй.
JavaScript-ийн жижиг serverless функц ингэж харагдаж болно:
export default async function handler(request) {
const { name } = await request.json();
return Response.json({ message: `Hello, ${name}` });
}
Сервер эхлүүлэх, порт нээх, процессыг ажиллуулж байлгах код байхгүй. Платформ бүгдийг нь зохицуулна.
«Serverless» гэдгийг бусад автоматаар масштабладаг, хэрэглээгээр төлбөр авдаг удирдсан үйлчилгээнүүдэд бас илүү сул утгаар хэрэглэдэг — жишээ нь идэвхгүй үед түр зогсдог serverless өгөгдлийн сангууд.
Гол нэр томьёо
| Нэр томьёо | Утга |
|---|---|
| Функц (FaaS) | Үйлчилгээ үзүүлэгчийн хүсэлтээр ажилладаг жижиг кодын нэгж. |
| Өдөөгч / үйл явдал | Функцыг эхлүүлдэг зүйл — HTTP хүсэлт, файл байршуулалт, таймер, дарааллын мессеж. |
| Cold start | Шинэ хуулбар хүсэлт боловсруулахаасаа өмнө эхлэх хэрэгтэй үеийн саатал. |
| Warm | Аль хэдийн ажиллаж байгаа, шууд хариулж чадах хуулбар. |
| Stateless | Функц ажиллаж дууссаны дараа санах ойгоо хадгалдаггүй. Үлдэх ёстой зүйл бүр өгөгдлийн сан эсвэл хадгалалтад байна. |
| Timeout | Нэг ажиллагаанд зөвшөөрөгдөх дээд хугацаа. Жишээ нь AWS Lambda-ийн дээд нь 15 минут; олон платформ үүнээс хамаагүй бага байдаг. |
| Edge функц | Хэрэглэгчдэд ойрхон олон байршилд ажилладаг функц, ихэвчлэн илүү чанга хязгаартай. |
| Тэгт масштаблах (scale to zero) | Ачаалал байхгүй үед юу ч ажиллуулахгүй, компьютерийн төлөө огт төлөхгүй. |
Жишээ ажил: жижиг захиалгын сайт
Йогын студийн захиалгын сайт ням гарагийн оройд шинэ хуваарь гарахад үзэлтийн тэсрэлт авдаг бөгөөд долоо хоногийн бусад үед маш бага.
- Байнга асаалттай серверт, студи 24/7 машин төлдөг, ням гарагийн оргилд тохирсон хэмжээтэй, бусад үед ихэвчлэн идэвхгүй.
- Serverless функцүүдтэй бол,
GET /api/classesболонPOST /api/bookingsнь функцууд. Ням гарагийн хөдөлгөөн олон хуулбарыг автоматаар эхлүүлнэ; тайван мягмар гарагийн өглөө бараг юу ч ажиллахгүй, төлбөр бараг тэг.
Мөн хойно талын зардал гарна. Мягмар гарагийн өглөө сайтыг анх нээсэн хүн cold start-аас болж нэмэлт хором хүлээж магадгүй. Өгөгдлийн сан нь олон функцын хуулбаруудаас олон богино амьдралтай холболтыг зохицуулах ёстой бөгөөд энэ нь connection pooler шаардаж болно. Хэрэв студи дараа нь «бүх гишүүдийн жилийн ирцийн PDF» гэсэн ажил хүсвэл, энэ нь функцын хугацааны хязгаарыг давж, өөр газар ажиллах шаардлагатай болж болно.
Serverless тохирох үед — ба тохирохгүй үед
| Сайн тохирох | Бага тохирох |
|---|---|
| Ачаалал бага, тасархай эсвэл урьдчилан таамаглах боломжгүй | Байнгын их ачаалал, байнга асаалттай нь илүү хямд байж болох |
| Богино хүсэлт/хариултын ажил: API, маягт боловсруулагч, webhook | Урт хугацааны ажил: том видео боловсруулалт, их өгөгдөл импорт |
| Серверийг удирдахыг хүсдэггүй бага баг | Нээлттэй холболтыг барьдаг аппликейшн (зарим чат эсвэл олон тоглогчтой онцлог), платформ дэмжихгүй бол |
| Үйл явдлын боловсруулалт: «файл байршуулагдмагц thumbnail үүсгэ» | Хүсэлт хооронд их санах ойг хадгалах шаардлагатай аппликейшн |
Түгээмэл буруу ойлголт
- «Serverless гэдэг нь backend байхгүй гэсэн үг.» Энэ нь удирдах сервер байхгүй гэсэн үг. Та backend код бичиж, хамгаалсаар байна.
- «Serverless үргэлж хямд.» Бага хэмжээнд хямд, гэхдээ тогтмол өндөр хэмжээнд хүсэлт бүрийн үнэ нэмэгдэж болно.
- «Serverless хязгааргүй масштабладаг.» Платформууд зэрэгцээ ажиллах хязгаартай, мөн таны өгөгдлийн сан функцуудаас хамаагүй эрт саад болж магадгүй.
- «Функцэд хадгалсан файл дараагийн удаа байна.» Локал хадгалалт түр зуурын. Өгөгдлийн сан эсвэл файлын хадгалалт ашигла.
- «Scale-to-zero нь serverless-тэй ижил.» Холбоотой боловч яг адилгүй. Зарим платформ таны аппликейшнийг энгийн сервер шиг ажиллуулдаг бөгөөд идэвхгүй үед унтаж, дараагийн хүсэлтээр сэрдэг — ижил хэмнэлт, ижил эхний хүсэлтийн саатал, гэхдээ хүсэлт бүрт функцын хэв маягийн хугацааны хязгааргүйгээр.
AI бүтээгчээсээ юу асуух вэ
- «Энэ backend serverless функцуудаар ажиллах уу, эсвэл байнга асаалттай эсвэл унтдаг сервер дээр уу? Энэ зардалд юу гэсэн үг вэ?»
- «Зарим ажил платформын хугацааны хязгаараас урт болох магадлалтай юу? Тийм бол бид яаж зохицуулах ёстой вэ?»
- «Үлдэх ёстой бүх зүйлийг санах ой эсвэл локал файлд биш өгөгдлийн сан эсвэл файлын хадгалалтад хадгал.»
- «Олон хуулбар зэрэг ажиллахад өгөгдлийн сангийн холболтыг яаж удирдах ёстой вэ?»
- «Аппликейшн идэвхгүй байсны дараа эхний хүсэлтийн саатал ямар вэ?»
Mythex аппликейшнуудыг яаж hosting хийдэг вэ
Mythex өөрийн hosting-ийг serverless функц гэж тайлбарладаггүй. Таны нийтлэх үед аппликейшн нь Mythex таны төлөө удирддаг энгийн вэб аппликейшн эсвэл контейнер хэлбэрээр ажилладаг — тохируулах hosting байхгүй. Энэ нь тэгт масштаблах бөгөөд нийтлэгдсэн аппликейшнууд болон тэдгээрийн өгөгдлийн сангууд идэвхгүй үед унтаж, дараагийн зочлолоор сэрдэг; унтаж буй аппликейшн компьютерт огт зарцуулдаггүй, нэмэлт машинууд зөвхөн ачаалал ихтэй үед эхэлдэг (Pro нь үйлчилгээ тус бүрт 3 хүртэл зөвшөөрдөг). Холбогдсон Postgres өгөгдлийн сан ч 5 минут идэвхгүй байсны дараа унтдаг бөгөөд сэрэн байсан хугацаанд төлбөр авдаг. Тиймээс та «зөвхөн ашигласнаа төлөх» давуу талыг ихэнхийг нь авна, тайван хугацааны дараах эхний хүсэлтийн саатал ижил төрлөөр. Docs-ийн hosting хязгаарууд-ыг үзнэ үү, мөн бидний вэб hosting болон hosting-ийн зардлыг бууруулах гарын авлагууд.
Асуултууд
Serverless энгийнээр юу гэсэн үг вэ?
Serverless гэдэг нь та кодоо үүлэн үйлчилгээ үзүүлэгчид өгч, шаардлагатай үед л — жишээ нь хүсэлт ирэхэд — ажиллуулдаг гэсэн үг. Та ямар ч сервер тохируулах, хянах шаардлагагүй. Ихэвчлэн таны код жинхэнээр ажилласан хугацаанд төлдөг, байнга асаалттай байдаг машины төлөө биш.
Serverless-д жинхэнээр серверүүд байдаггүй юу?
Сервер байдаг; та л тэдгээрийг удирдахгүй. Үйлчилгээ үзүүлэгч таны кодыг өөрийн машинууд дээр ажиллуулж, хүсэлт ирэхэд эхлүүлж, ачаалал ихсэхэд нэмж, бүтэн зогсоход унтраадаг.
Cold start гэж юу вэ?
Cold start гэдэг нь serverless функц бүтэн зогссоны дараа ажиллахад нэмэлт саатал гарах явдал, учир нь үйлчилгээ үзүүлэгч эхлээд шинэ хуулбарыг эхлүүлэх ёстой. Платформ, хэл, кодын хэмжээнээс хамаараад бараг мэдрэгдэхгүй байснаас нэг секунд буюу түүнээс дээш хүртэл байж болно.
Serverless энгийн серверээс хямд уу?
Бага эсвэл жигд бус ачаалалтай аппликейшнд ихэвчлэн тийм, учир нь бүтэн зогсож байхад бараг юу ч төлдөггүй. Тасралтгүй, их ачаалалтай аппликейшнд байнга асаалттай сервер илүү хямд гарч болно. Энэ нь таны ашиглалтын хэв маяг, үйлчилгээ үзүүлэгчийн үнэд хамаарна.
Serverless платформын жишээ юу вэ?
Алдартай жишээнүүд нь AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers, мөн Vercel, Netlify зэрэг хостинг платформуудын функцын онцлогууд.