Serverless Computing: Mga pangunahing tampok at kung paano ito gumagana

Gustong maging serverless? Magbasa para matutunan kung paano ito gumagana, ang maraming benepisyo nito, mga karaniwang kaso ng paggamit, at kung paano ito makakatulong sa iyong bumuo ng mabilis at nasusukat na mga application.

Ang serverless computing ay isang natatanging diskarte sa pagho-host ng mga web application na tumatagal ng lahat ng gawain sa pamamahala ng server, na nagbibigay-daan sa mga builder na gawin kung ano ang alam nila.

Ang kakayahang umangkop, kadalian ng pamamahala, kadalian ng pag-scale, at mas mababang gastos ay ilan sa mga highlight na ginagawang talagang kaakit-akit ang serverless computing para sa mga dev team at kumpanya.

Ang isang serverless computing environment ay nagpapatakbo ng server-side code on demand, at hindi nangangailangan ng dedikadong server, virtual machine, o kahit isang container na patuloy na gumagana.

Ginalugad ng post na ito ang mundo ng serverless computing para ipakita kung paano ito makikinabang sa iyong kumpanya o sa susunod na proyekto.

Paano Gumagana ang Serverless Computing?

Ang walang server na serbisyo ay isang computing environment na ganap na pinamamahalaan ng service provider. Ang kailangan lang gawin ng developer ay likhain ang kanyang function at i-upload ito sa platform, at pagkatapos ay awtomatikong mapangasiwaan ang lahat. Narito kung paano ito napupunta.

  • Trigger: Ang bawat walang server na function ay may trigger ng kaganapan na tumatawag dito sa pagkilos. Maaaring ito ay isang HTTP o kahilingan sa database, cron job, pag-upload ng file, o kung ano pa man. Ang punto ay alam ng lahat kung ano ang kailangang mangyari para maisagawa ang script.
  • Paglalaan ng Mapagkukunan: Kung maganap ang inaasahang kaganapan/trigger, nasa platform na ang mabilis na pag-ikot ng kapaligiran ng pagpapatupad na may CPU, memorya, at networking sa loob ng millisecond. Ito ay karaniwang nagagawa sa lalagyan.
  • Pagpapatupad ng Function: Ang platform ay naglilipat ng execution sa script pagkatapos ng resource allocation, kaya ang application ay maaari na ngayong i-execute sa execution environment ng service provider.
  • Scaling: Kung may pangangailangan para sa higit pang mga mapagkukunan, pagkatapos ay awtomatikong mag-scale ang system, sa pamamagitan ng pag-ikot ng higit pang mga lalagyan na may application upang balansehin ang pagkarga.
  • Mga Resulta at Pamamahala: Depende sa provider at serbisyo, maaaring magpatuloy ang iba't ibang gawain, resulta, tugon, pagsubaybay, at proseso ng pag-log. Ang mga ginamit na mapagkukunan ay naitala din para sa pagsingil na pay-as-you-go.

Mga Pangunahing Tampok ng Walang Server na Sistema

Mayroong ilang mga tampok na ibinabahagi ng karamihan sa mga platform ng walang server na computing sa isa't isa, anuman ang kanilang iba pang mga pagkakaiba. Kaya, para mas maunawaan ang serverless computing, narito ang mga pangunahing feature na ito.

  • Batay sa Cloud: Ang serverless computing ay isang cloud-native na application development at deployment technology.
  • Pamamahala ng Zero Server: Pinapadali ng isang serverless computing platform para sa mga user na bumuo at mag-deploy ng mga app nang hindi kinakailangang pamahalaan ang mga server. I-upload lang ang iyong code at lahat ng iba pa ay awtomatikong inaalagaan.
  • Hinimok ng Kaganapan/Trigger: Hindi tulad ng mga virtual machine at container services, hindi palaging tumatakbo ang mga serverless system. Sa halip, ina-activate lang ang mga ito kapag kailangan sila ng isang kaganapan o trigger.
  • Pay-As-You-Go: Ang serverless computing ay gumagamit lamang ng mga mapagkukunan kapag na-trigger. Dahil dito, mas mura silang patakbuhin kaysa sa mga container, na palaging kailangang maging aktibo, ginagamit man ang mga ito o hindi. Samakatuwid, ang mga serbisyong walang server ay sinisingil sa pamamagitan ng paggamit sa isang pay-as-you-go na format.
  • Auto Scaling: Awtomatikong isusukat ng walang server na platform ang paglalaan ng mapagkukunan sa isang application pataas o pababa upang balansehin ang mga hinihingi sa pagkarga nito.
  • Stateless By Default: Karamihan sa mga platform na walang server ay stateless bilang default, ibig sabihin, hindi sila nag-iimbak ng anumang data sa pagitan ng mga invocation. Ang feature na ito ay ginagawa silang panandalian at perpekto para sa asynchronous na diskarte sa programming ng paghawak ng maraming gawain nang sabay-sabay.

Ang Mga Benepisyo sa Negosyo ng Serverless Computing

Narito ang ilan sa mga benepisyo ng negosyo ng serverless computing.

  • Pinasimpleng Pag-unlad: Hindi na kailangang pangasiwaan ang imprastraktura. Walang configuration ng server, walang environment, walang budget, at walang ise-set up. Ang kailangan mo lang gawin ay tumuon sa iyong pag-develop ng app at ang iyong walang server na platform ang bahala sa iba.
  • Mas Mabilis na Oras sa Market: Ang paggugol ng mas kaunting oras sa pamamahala ng imprastraktura ay nagbibigay-daan sa iyong koponan na bumuo at magdala ng higit pang mga feature at application sa merkado.
  • Kahusayan ng Gastos: Ang mga serverless system ay perpekto para sa mga application na hindi palaging ginagamit. Sa ganitong paraan, makakatipid ka ng mga gastos na napunta sana sa pagpapanatili ng palaging available na server o container.
  • Auto Scaling: Hindi na kailangang mag-alala tungkol sa pagbabadyet para sa pamamahala ng mga pag-load ng server. Awtomatikong na-scale ang iyong application at sisingilin ka lang para sa ginamit mo.

Walang Server Kumpara sa Mga Container

Serverless computing at lalagyan ay dalawang cloud-native na teknolohiya na nagbibigay-daan sa iyong makatipid ng mga gastos, mag-deploy ng mga application nang mabilis at mapagkakatiwalaan, i-automate ang iyong mga operasyon, at madaling sukatin ang mga bagay kung kinakailangan.

Bagama't nagsisilbi ang mga ito sa tila magkatulad na layunin, iba ang mga container at serverless system. Una, kailangan ng developer na magsimula at magpanatili ng container na nagbibigay ng kanyang kapaligiran sa pagpapatupad, habang ginagawa ng service provider ang lahat ng iyon sa mga serverless setup.

Pangalawa, ang mga container ay mas angkop para sa mas malalaking application, na kailangang tumakbo sa mahabang panahon, habang ang serverless ay mas mahusay para sa mas maliliit na app na hindi madalas na ginagamit. Higit pa rito, nag-aalok ang mga lalagyan ng kumpletong kontrol sa kapaligiran ng pagpapatupad, habang ang serverless ay nag-aalok ng kaunti o walang mga kontrol sa kapaligiran.

Sa wakas, ang mga container ay portable, dahil maaari mong dalhin ang iyong container mula sa isang provider patungo sa isa pa nang walang anumang mga isyu, habang ang mga serverless na app ay maaaring magdusa mula sa vendor lock-in, dahil ang kapaligiran ng pagpapatupad ng bawat vendor ay natatangi.

Walang Server Kumpara sa FaaS Kumpara sa BaaS

Ang isa pang pangkat ng magkatulad ngunit magkaibang mga termino ay walang server, FaaS, at BaaS. Ang FaaS ay nangangahulugang Function bilang isang Serbisyo, habang ang BaaS ay nangangahulugang Backend bilang isang Serbisyo. Ang parehong mga teknolohiya ay mga subset ng walang server, ngunit magkaiba ang mga ito sa diskarte.

Ang Function bilang isang Serbisyo ay ang terminong kadalasang nauugnay sa serverless computing. Ito ay isang sistema kung saan ang provider ay nag-aalok ng lahat ng mga mapagkukunang kailangan upang maisagawa ang isang application sa cloud. Ang mga application ng FaaS ay karaniwang partikular sa isang programming language at kadalasang nagsasagawa ng isang solong, partikular na aksyon sa bawat invocation.

Ang Backend bilang isang Serbisyo, sa kabilang banda, ay kinabibilangan ng lahat ng mga serbisyo na kailangang gumana ng isang cloud-based na app. Maaaring kabilang dito ang pagho-host, mga serbisyo sa database, mga serbisyo sa pagpapatunay, scalability, at iba pa. Tinatanggal din ng mga serbisyo ng BaaS ang pangangailangan para sa mga server, virtual machine, at pamamahala ng container, tulad ng FaaS.

Mga Uri ng Serverless System at Mga Application sa Industriya

Ang teknolohiyang walang server ay nagbibigay ng karamihan sa mga pag-andar sa pag-compute na kinakailangan ng mga user sa isang cloud environment nang hindi kailangang pamahalaan ang kanilang pinagbabatayan na imprastraktura. Ang mga sumusunod ay ilan sa maraming paraan kung saan iniaalok ang mga serbisyong walang server na ito.

  1. FaaS (Function as a Service): Mula sa PHP hanggang sa JavaScript o GO function, maraming provider ang nag-aalok ng iba't ibang mga package ng FaaS para sa iba't ibang wika na awtomatikong mag-i-scale.
  2. BaaS (Backend bilang isang Serbisyo): Mula sa netlify sa AWS Palakihin, Firebase, AppWrite, at marami pang iba, ginagawang madali ng backend-as-a-service ang pagbuo ng mga partikular na uri ng web app.
  3. Static Web Hosting: Ang mga static na website ay hindi nangangailangan ng backend server tulad ng PHP at MySQL. Naghahatid lang sila ng mga paunang nai-render na HTML at JavaScript na mga file, na ginagawang madali at murang mapanatili ang mga ito. Sila rin ang pinakamabilis na naglo-load na mga site at mahusay para sa SEO.
  4. Pag-stream ng Data Processing: Ang mga serverless na application ay mainam para sa streaming na pagpoproseso ng data, dahil maaari nilang sukatin kung kinakailangan at perpekto para sa lahat ng uri ng real-time na pagsusuri.
  5. Mobile at Web Apps: Ang mga hindi gaanong ginagamit na mobile at web app ay pantay na makikinabang sa mga walang server na pag-deploy.
  6. Databases: Ang mga database application na may variable o unpredictable load ay maaaring pantay na magamit ang maraming benepisyo ng serverless computing.
  7. Mga Micro-Service at API: Ang mga serverless system ay ang perpektong platform para sa pagbuo at pag-deploy ng mga micro-service at API na may hindi inaasahang pangangailangan.
  8. On-demand/Mga Proseso na Batay sa Kaganapan: Anumang hindi matatag na kaganapan na nangangailangan ng pagproseso ay makikinabang sa walang server.
  9. IoT Apps: Ang mga application ng Internet of Things na may maliit na kargamento at iba pang minimal na mga kinakailangan ay mahusay na makakonekta sa mga application na walang server.
  10. Cron/Mga Naka-iskedyul na Gawain: Isa pang magandang pagkakataon para sa walang server.
  11. Mga Asynchronous na Gawain at Batch Processing: Ang isang stateless, serverless na kapaligiran ay parehong perpekto para sa paghawak ng mga asynchronous na gawain at batch processing ng data na may hindi nahuhulaang demand.

Mga Hamon Ng Walang Server na Sistema

Ang serverless computing ay mayroon ding mga hamon at disadvantage nito. Ito ang iba't ibang dahilan na maaaring nililimitahan ang pagpapatupad nito o ginagawang imposibleng magamit sa ilang partikular na proyekto. Ang mga ito ay ang mga sumusunod.

  • Malamig na simula: Ang isang serverless na application ay makakaranas ng ilang mga pagkaantala sa pagsisimula kapag hindi ito madalas na ginagamit. Nangyayari ang pagkaantala o malamig na pagsisimula na ito dahil ang platform ay awtomatikong maglalagay ng isang serverless na application upang matulog kapag hindi ito ginagamit, sa libreng mga mapagkukunan. Kapag hiniling muli ang app, mabilis na muling gagawa ang platform ng kapaligiran ng pagpapatupad nito.
  • Lock-In ng Vendor: Hindi tulad ng virtual machine at mga teknolohiya ng container, ang teknolohiya ng serverless computing ay ganap na nakasalalay sa service provider. Nagbibigay sila ng kapaligiran, nagtakda ng mga pahintulot sa aplikasyon, memorya at kapasidad ng CPU, mga limitasyon sa pagpapatupad, at iba pa. Ang ganitong sitwasyon ay may posibilidad na umasa ang mga developer sa platform ng service provider dahil nagiging mas mahirap ang paglipat ng mga provider.
  • Pagkawala ng kontrol: Bilang isang developer, mayroon kang limitadong kontrol sa kapaligiran ng pagpapatupad. Ang pinakamainam na madalas mong gawin ay ang pumili ng service provider na may eksaktong execution environment, mga variable, at mga pahintulot na kailangan mo.
  • Mga Isyu sa Pagsubok at Pag-debug: Ang pagpapatupad at mga error sa system sa isang walang server na kapaligiran ay nakasalalay sa platform. Ang ilan ay mas mahusay kaysa sa iba, ngunit hindi kasing ganda ng container o VM setup.
  • Mga Limitasyon: Ang memorya at mga limitasyon sa oras ng pagpapatupad ay itinakda ng provider at hindi maaaring baguhin.

Listahan ng Mga Sikat na Serbisyong Walang Server

Ang mga sumusunod ay ilan sa mga pinakasikat na serbisyong walang server sa net.

Mga Madalas Itanong

Narito ang mga madalas itanong tungkol sa serverless computing.

Q: Ano ang pangunahing benepisyo ng isang serverless system?

A: Ang pangunahing benepisyo ay ang kadalian ng paggamit ng hindi kinakailangang mag-set up o pamahalaan ang isang server habang nagpapatakbo ng maaasahang mga web application na maaaring sukatin.

Q: Ano ang malamig na simula sa mga serverless system?

A: Ang malamig na pagsisimula ng system na walang server ay tumutukoy sa paunang pagkaantala sa pagsasagawa ng isang application o function kung hindi ito nagamit nang ilang sandali. Ang pagkaantala na ito ay sanhi ng system na kailangang mag-set up ng mga bagong mapagkukunan upang patakbuhin ang code.

Q: Maaari ba akong gumamit ng serverless system para sa anumang uri ng application?

A: Ang limitadong oras ng pagpapatupad ay ginagawang imposibleng patakbuhin ang lahat ng uri ng mga application nang walang server. Maaari ka lamang magpatakbo ng mga application na tumatagal ng ilang minuto o mas kaunti nang walang server dahil ang mga service provider ay karaniwang naglalagay ng mga limitasyon sa oras.

Q: Aling mga programming language ang magagamit ko para sa serverless computing?

A: Maaari kang gumamit ng anumang programming language para sa isang serverless na app, gayunpaman, kailangan mo munang tiyakin na sinusuportahan ng iyong service provider ang wikang iyon. Inilista ng karamihan sa mga provider ang mga wikang sinusuportahan nila.

Q: Posible bang i-debug ang isang serverless na application?

A: Maaari itong maging posible, depende sa mga tool na ibinigay ng service provider. Sa pangkalahatan, mas mahirap i-debug kaysa sa isang containerized na application.

Q: Maaari ko bang pagsamahin ang walang server sa mga serbisyong nakabatay sa server?

A: Oo, sigurado.

Konklusyon

Ang serverless computing ay isang rebolusyonaryong diskarte sa pagbuo at pagho-host ng mga application sa cloud. Ginagawa nitong mas madaling pamahalaan ang mga bagay, mas murang patakbuhin at kasama ang kakayahan para sa pag-scale ng antas ng enterprise.

Kaya, kung ikaw ay isang developer na naghahanap upang pasimplehin ang iyong daloy ng trabaho o isang negosyo na sinusubukang i-optimize ang iyong imprastraktura sa IT, sasang-ayon ka na ang serverless computing ay narito upang manatili at makakatulong sa iyong pagbutihin ang iyong susunod na proyekto.

Nnamdi Okeke

Nnamdi Okeke

Si Nnamdi Okeke ay isang mahilig sa computer na mahilig magbasa ng malawak na hanay ng mga libro. Mas gusto niya ang Linux kaysa sa Windows/Mac at gumagamit na siya
Ubuntu mula noong mga unang araw nito. Mahuhuli mo siya sa twitter via bongotrax

Mga Artikulo: 298

Tumanggap ng mga kagamitan sa teknolohiya

Mga tech na trend, mga uso sa pagsisimula, mga review, online na kita, mga tool sa web at marketing nang isang beses o dalawang beses bawat buwan