Водичи

Што е serverless? Serverless компјутерство објаснето едноставно

Serverless е начин на извршување код каде не поставувате и не управувате со сервери сами. Вашиот код му го предавате на облачен провајдер, а тој се извршува само кога нешто ќе го активира — веб-барање, прикачена датотека, известување за плаќање — и потоа застанува. Обично плаќате за времето кога кодот навистина работи, а не за машина што стои неактивна.

Зошто serverless е важен кога градите со AI

Кога градите апликација со AI и гледате опции за хостирање или код, ќе налетате на „serverless функции“, „edge функции“ или „cloud функции“. Многу платформи за хостирање ги нудат, а некои AI градители ги распоредуваат backend-ите на тој начин. Разбирањето на моделот ви помага со три практични прашања:

  • Трошоци. Дали апликацијата ќе чини пари додека никој не ја користи?
  • Брзина. Зошто првото барање по тивок период е побавно?
  • Ограничувања. Зошто една долга задача — генерирање голем извештај, обработка на видео — истече од времето?

Корисно е и да знаете што serverless не е: не е отсуство на backend. Сè уште имате серверски код; некој друг само ги управува машините. За основите, видете што е сервер.

Секојдневна аналогија

Традиционалниот сервер е како сопственост на автомобил. Секогаш е таму, спремен веднаш да тргне, но го плаќате — осигурување, паркинг, одржување — без разлика дали го возите или не.

Serverless е како да повикате такси. Плаќате само за возењата што ги правите, а ако стотина луѓе побараат превоз истовремено, доаѓаат стотина таксиња. Но, може да има кратко чекање додека автомобилот пристигне (cold start), секое возење има максимална должина, а возачот не ве памети од последното возење (функциите се stateless, без меморија помеѓу извршувањата).

Како работат serverless функциите

Во најчестата форма, наречена functions as a service:

  1. Напишете функција — мал дел код што се справува со еден вид настан, како „обработи POST на /api/bookings“.
  2. Распоредете ја. Провајдерот ја складира и ја поврзува со окидач: URL, распоред, нова датотека во складиште, порака во ред.
  3. Пристигнува настан. Провајдерот стартува копија на вашата функција (или повторно користи топла), ја извршува и ја враќа резултатот.
  4. Се зголемува сам. Ако илјада барања пристигнат истовремено, провајдерот извршува многу копии паралелно, до лимитите на вашата сметка.
  5. Се исклучува. Кога сообраќајот ќе престане, копиите се гасат. Кога ништо не работи, за пресметување не плаќате ништо.

Мала serverless функција во JavaScript може да изгледа вака:

export default async function handler(request) {
  const { name } = await request.json();
  return Response.json({ message: `Здраво, ${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 се функции. Недела вечер налетот автоматски стартува многу копии; во тивко вторниче наутро речиси ништо не работи и сметката е блиску до нула.

Компромисите исто така се појавуваат. Првиот човек што ќе ја отвори страницата во вторник наутро може да чека малку повеќе поради ладен старт. Базата мора да се справи со многу кратки врски од многу копии на функции, што може да бара pooler за врски. А ако студиото подоцна сака задача „генерирај годишен извештај за присуство за сите во PDF“, може да го надмине лимитот на времето на функцијата и да мора да се извршува на друго место.

Кога serverless одговара — а кога не

Добар изборПомалку добар избор
Сообраќај што е мал, налетан или непредвидливПостојан голем сообраќај, каде сервер што е секогаш вклучен може да е поевтин
Кратки задачи барање-одговор: API, обработувачи на формулари, webhook-овиДолги задачи: обработка на голем видео, големи увози на податоци
Мали тимови што не сакаат да управуваат со сервериАпликации што држат живи врски отворени (некои функции за разговор или повеќекорисничка игра), освен ако платформата го поддржува тоа
Обработка на настани: „кога се прикачува датотека, направи умален приказ“Апликации што треба да држат многу меморија помеѓу барањата

Чести заблуди

  • „Serverless значи нема backend.“ Значи нема сервери за управување. Сè уште пишувате и обезбедувате backend код.
  • „Serverless е секогаш поевтин.“ Евтин е при мал обем, но цената по барање може да се собере при голем, постојан обем.
  • „Serverless се зголемува бесконечно.“ Платформите имаат лимити на истовременост, а базата може да стане тесно грло многу пред функциите.
  • „Датотеките зачувани во функцијата ќе бидат таму следниот пат.“ Локалното складиште е привремено. Користете база или складиште за датотеки.
  • „Scale-to-zero е исто што и serverless.“ Поврзани се, но не се идентични. Некои платформи ја извршуваат апликацијата како обичен сервер што спие кога е неактивна и се буди на следното барање — слични заштеди и слично доцнење при првото барање, но без лимити на време по барање како кај функциите.

Што да прашате вашиот AI градител

  • „Дали овој backend ќе работи како serverless функции или како сервер што е секогаш вклучен или спие? Што тоа значи за трошоците?“
  • „Дали некои задачи веројатно ќе траат подолго од лимитот на времето на платформата? Ако да, како да ги решиме?“
  • „Чувај сè што мора да трае во базата или во складиштето за датотеки, а не во меморија или локални датотеки.“
  • „Како треба да се управуваат врските со базата ако работат многу копии истовремено?“
  • „Колкаво е доцнењето на првото барање откако апликацијата била неактивна?“

Како Mythex ги хостира апликациите

Mythex не го опишува своето хостирање како serverless функции. Кога ќе објавите, вашата апликација работи како обична веб-апликација или контејнер што Mythex го управува за вас — нема што да се поставува за хостирање. Тоа е scale-to-zero: објавените апликации и нивните бази спијат кога се неактивни и се будат при следната посета, спијачката апликација не троши ништо за пресметување, а дополнителни машини се стартуваат само кога сообраќајот е голем (Pro дозволува до 3 по сервис). Приклучената Postgres база исто така спие по 5 минути неактивност и се наплаќа за времето кога била будна. Значи добивате голем дел од придобивката „плаќате за она што го користите“, со истиот вид доцнење при првото барање по тивок период. Видете ограничувања на хостингот во документацијата, како и нашите водичи за веб-хостинг и како да ги намалите трошоците за хостинг.

Прашања

Што значи serverless едноставно кажано?

Serverless значи дека му го дадете вашиот код на облачен провајдер, а тој го извршува само кога е потребно — на пример кога ќе дојде барање — без да поставувате или да се грижите за какви било сервери. Обично плаќате за времето кога вашиот код навистина работи, наместо за машина што е секогаш вклучена.

Навистина ли нема сервери во serverless?

Серверите постојат; само не ги управувате вие. Провајдерот го извршува вашиот код на своите машини, го стартува кога ќе пристигнат барања, го зголемува под оптоварување и го исклучува кога е неактивен.

Што е ладен старт (cold start)?

Ладниот старт е дополнителното доцнење кога serverless функцијата се извршува по период на неактивност, бидејќи провајдерот прво мора да стартува нова копија. Може да биде речиси незабележливо или една секунда и повеќе, во зависност од платформата, јазикот и големината на кодот.

Дали serverless е поевтин од обичен сервер?

За апликации со малку или нерамномерен сообраќај, често да, бидејќи речиси ништо не плаќате додека се неактивни. За апликации со голем, постојан сообраќај, сервер што е секогаш вклучен може да излезе поевтин. Зависи од шемата на користење и од цените на провајдерот.

Кои се примери за serverless платформи?

Познати примери се AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers, како и функциите на платформи за хостирање како Vercel и Netlify.

Mythex · Pricing · Градете што било со AI · Шаблони за веб-страници и апликации · Mythex во споредба · Речник за градење апликации со AI · Бесплатни алатки за градење апликации со AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)