Serverless ma nā pā

Serverless ma nā pā
ʻAʻole pili ka Serverless i ka nele kino o nā kikowaena. ʻAʻole kēia he mea pepehi ipu a i ʻole he ʻano hele. He ala hou kēia i ke kūkulu ʻana i nā ʻōnaehana ma ke ao. Ma ka ʻatikala o kēia lā e hoʻopā mākou i ka hoʻolālā ʻana o nā noi Serverless, e ʻike kākou i ke kuleana o ka mea lawelawe Serverless a me nā papahana open-source. ʻO ka hope, e kamaʻilio e pili ana i nā pilikia o ka hoʻohana ʻana iā Serverless.

Makemake wau e kākau i kahi kikowaena o kahi noi (a i ʻole kahi hale kūʻai pūnaewele). He kamaʻilio paha kēia, he lawelawe hoʻopuka maʻiʻo, a i ʻole he mea kaulike ukana. I kēlā me kēia hihia, e nui nā poʻo: pono ʻoe e hoʻomākaukau i ka ʻōnaehana, e hoʻoholo i nā hilinaʻi noi, a noʻonoʻo e pili ana i ka ʻōnaehana hana hoʻokipa. A laila pono ʻoe e hōʻano hou i nā ʻāpana liʻiliʻi e pili ʻole i ka hana o ke koena o ka monolith. ʻAe, mai poina e pili ana i ka hoʻonui ʻana ma lalo o ka ukana.

He aha inā inā mākou e lawe i nā pahu ephemeral, kahi i hoʻokomo mua ʻia nā mea hilinaʻi i koi ʻia, a ua hoʻokaʻawale ʻia nā pahu iā lākou iho mai kekahi i kekahi a mai ka OS host? E hoʻokaʻawale mākou i ka monolith i nā microservices, hiki ke hoʻonui a hoʻonui ʻia kēlā me kēia o nā mea ʻē aʻe. Ma ke kau ʻana i ke code i loko o ia pahu, hiki iaʻu ke holo ma luna o kekahi ʻano hana. Ua ʻoi aku ka maikaʻi.

He aha inā ʻaʻole ʻoe makemake e hoʻonohonoho i nā pahu? ʻAʻole wau makemake e noʻonoʻo e pili ana i ka hoʻonui ʻana i ka noi. ʻAʻole wau makemake e uku no nā pahu holo ʻole i ka wā liʻiliʻi ka ukana ma ka lawelawe. Makemake au e kākau code. E nānā i ka loiloi ʻoihana a lawe i nā huahana i ka mākeke ma ka wikiwiki o ka māmā.

ʻO ia mau manaʻo i alakaʻi iaʻu i ka helu serverless. Serverless i keia hihia 'o ia hoʻi ʻaʻole ka nele kino o nā kikowaena, akā ka nele o nā poʻo o ka hoʻokele waiwai.

ʻO ka manaʻo, ua wāwahi ʻia ka loiloi noi i nā hana kūʻokoʻa. He hanana hanana ko lākou. Hana kēlā me kēia hana i hoʻokahi "microtask". ʻO nā mea āpau e koi ʻia mai ka mea hoʻomohala e hoʻouka i nā hana i loko o ka console i hāʻawi ʻia e ka mea hāʻawi kapua a hoʻopili iā lākou me nā kumu hanana. E hoʻokō ʻia ke code ma ke koi ʻana i kahi pahu i hoʻomākaukau ʻia, a e uku wale wau no ka manawa hoʻokō.

E ʻike kākou i ke ʻano o ke kaʻina hana hoʻomohala noi i kēia manawa.

Mai ka ʻaoʻao o ka mea hoʻomohala

Ma mua ua hoʻomaka mākou e kamaʻilio e pili ana i kahi noi no kahi hale kūʻai pūnaewele. Ma keʻano kuʻuna, hanaʻia ka loiloi nui o ka pūnaewele e kahi noi monolithic. A ke holo mau nei ke kikowaena me ka noi, ʻoiai inā ʻaʻohe ukana.

No ka neʻe ʻana i ka serverless, wāwahi mākou i ka noi i nā microtasks. Kākau mākou i kā mākou hana ponoʻī no kēlā me kēia o lākou. Kūʻokoʻa nā hana i kekahi i kekahi a ʻaʻole mālama i ka ʻike mokuʻāina (stateless). Hiki ke kākau ʻia ma nā ʻōlelo like ʻole. Inā "hāʻule" kekahi o lākou, ʻaʻole e pau ka noi holoʻokoʻa. E like me kēia ka papa hana hoʻolālā:

Serverless ma nā pā
ʻO ka mahele ʻana i nā hana ma Serverless e like me ka hana ʻana me nā microservices. Akā hiki i kahi microservice ke hana i nā hana he nui, a pono e hana i kahi hana. E noʻonoʻo kākou ʻo ka hana e hōʻiliʻili i nā helu helu a hōʻike iā lākou ma ke noi a ka mea hoʻohana. Ma ke ala microservice, hana ʻia kahi hana e hoʻokahi lawelawe me ʻelua mau helu komo: kākau a heluhelu. I loko o ka serverless computing, ʻelua mau hana like ʻole i pili ʻole kekahi i kekahi. Mālama ka mea hoʻomohala i nā kumuwaiwai helu helu inā, no ka laʻana, hoʻonui pinepine ʻia nā ʻikepili ma mua o ka hoʻoiho ʻana.

Pono e hoʻokō ʻia nā hana serverless i kahi manawa pōkole (timeout), i hoʻoholo ʻia e ka mea lawelawe. No ka laʻana, no AWS he 15 mau minuke ka manawa. ʻO ia ke ʻano o nā hana lōʻihi e hoʻololi ʻia e kūpono i nā koi - ʻo ia ka mea e hoʻokaʻawale ai iā Serverless mai nā ʻenehana kaulana ʻē aʻe i kēia lā (nā pahu a me ka Platform as a Service).

Hāʻawi mākou i kahi hanana i kēlā me kēia hana. He mea hoʻomaka ka hanana no kahi hana:

Hoʻoikaika
ʻO ka hana e hana ai ka hana

Ua hoʻouka ʻia kahi kiʻi huahana i ka waihona.
E kaomi i ke kiʻi a hoʻouka i kahi papa kuhikuhi

Ua hōʻano hou ʻia ka helu hale kūʻai kino ma ka waihona
Hoʻouka i kahi wahi hou i nā palapala ʻāina

Uku ka mea kūʻai i ka waiwai
E hoʻomaka i ka hana uku

Hiki i nā hanana ke noi HTTP, kahe ʻana i ka ʻikepili, nā queues memo, a pēlā aku. ʻO nā kumu hanana nā hoʻololi a i ʻole ka hanana ʻana o ka ʻikepili. Eia kekahi, hiki ke hoʻoulu ʻia nā hana e kahi manawa.

Ua hana ʻia ka hoʻolālā ʻana, a ua ʻaneʻane lilo ka palapala noi i serverless. A laila hele mākou i ka mea lawelawe.

Mai ka ʻaoʻao o ka mea hoʻolako

ʻO ka maʻamau, hāʻawi ʻia ka serverless computing e nā mea lawelawe kapuaʻi. Ua kapa ʻia lākou he ʻokoʻa: Azure Functions, AWS Lambda, Google Cloud Functions, IBM Cloud Functions.

E hoʻohana mākou i ka lawelawe ma o ka console o ka mea hoʻolako a i ʻole moʻokāki pilikino. Hiki ke hoʻoiho ʻia ka code function ma kekahi o kēia mau ala:

  • e kākau i ke code i loko o nā mea hoʻoponopono i kūkulu ʻia ma o ka console pūnaewele,
  • hoʻoiho i ka waihona me ke code,
  • hana me nā waihona waihona git lehulehu a pilikino paha.

Maʻaneʻi mākou i hoʻonohonoho i nā hanana i kapaʻia ka hana. ʻOkoʻa paha nā pūʻulu hanana no nā mea hoʻolako like ʻole.

Serverless ma nā pā

Ua kūkulu ka mea hoʻolako i ka ʻōnaehana Function as a Service (FaaS) ma kāna ʻoihana:

  1. Hoʻopau ke code hana i ka waiho ʻana ma ka ʻaoʻao o ka mea hāʻawi.
  2. Ke hiki mai kahi hanana, hoʻonohonoho ʻia nā ipu me kahi kaiapuni i hoʻomākaukau ʻia ma ke kikowaena. Loaʻa i kēlā me kēia hiʻohiʻona hana kona pahu kaʻawale.
  3. Mai ka waihona, hoʻouna ʻia ka hana i ka pahu, helu ʻia, a hoʻihoʻi i ka hopena.
  4. Ke ulu nei ka nui o nā hanana like - ke ulu nei ka nui o nā ipu. ʻOkoʻa ka ʻōnaehana. Inā ʻaʻole komo nā mea hoʻohana i ka hana, ʻaʻole ia.
  5. Hoʻonohonoho ka mea hoʻolako i ka manawa hana ʻole no nā ipu - inā ʻaʻole ʻike ʻia nā hana i loko o ka pahu, ua luku ʻia.

Ma kēia ala mākou e kiʻi ai iā Serverless mai ka pahu. E uku mākou no ka lawelawe me ka hoʻohana ʻana i ke kumu hoʻohālike uku-like a no kēlā mau hana i hoʻohana ʻia, a no ka manawa wale nō i hoʻohana ʻia.

No ka hoʻolauna ʻana i nā mea hoʻomohala i ka lawelawe, hāʻawi nā mea hoʻolako a hiki i 12 mau mahina o ka hoʻāʻo manuahi, akā e kaupalena i ka manawa helu helu, helu o nā noi i kēlā me kēia mahina, kālā a i ʻole ka hoʻohana mana.

ʻO ka pōmaikaʻi nui o ka hana ʻana me kahi mea hoʻolako ʻo ia ka hiki ke hopohopo ʻole e pili ana i nā ʻōnaehana (nā kikowaena, nā mīkini virtual, nā ipu). No kāna ʻāpana, hiki i ka mea hāʻawi ke hoʻokō i ka FaaS me ka hoʻohana ʻana i kāna mau hoʻomohala ponoʻī a me ka hoʻohana ʻana i nā mea hana open-source. E kamaʻilio hou e pili ana iā lākou.

Mai ka aoao hamama

Ke hana ikaika nei ke kaiāulu open-source i nā mea hana Serverless no nā makahiki ʻelua i hala. Hāʻawi pū nā mea pāʻani mākeke nui loa i ka hoʻomohala ʻana i nā kikowaena serverless:

  • Google hāʻawi i nā mea hoʻomohala i kāna mea hana open-source - knative. Ua komo ʻo IBM, RedHat, Pivotal a me SAP i kāna hoʻomohala ʻana;
  • IBM hana ma kahi kahua Serverless OpenWhisk, a laila lilo i papahana no ka Apache Foundation;
  • Microsoft wehe hapa i ke code anuu Nā Hana Azure.

Ke hoʻomau ʻia nei nā hoʻomohala ʻana ma ke ʻano o nā ʻōnaehana serverless. Kubeless и Kūpono kau ʻia i loko o nā pūʻulu Kubernetes i mākaukau mua ʻia, OpenFaaS hana pū me nā Kubernetes a me Docker Swarm. Hana ʻia ka framework ma ke ʻano he mea hoʻoponopono - ma ke noi ʻana, hoʻomākaukau ia i kahi kaiapuni runtime i loko o ka pūpū, a laila hoʻomaka i kahi hana ma laila.

Hāʻawi nā Frameworks i ka lumi no ka hoʻonohonoho ʻana i ka hāmeʻa e kūpono i kāu mau pono. No laila, ma Kubeless, hiki i kahi mea hoʻomohala ke hoʻonohonoho i ka manawa hoʻokō hana (ʻo 180 kekona ka waiwai paʻamau). ʻO Fission, i ka hoʻāʻo ʻana e hoʻoponopono i ka pilikia hoʻomaka anuanu, manaʻo e mālama i kekahi mau pahu e holo mau i nā manawa a pau (ʻoiai e pili ana kēia i nā kumukūʻai haʻahaʻa waiwai). A hāʻawi ʻo OpenFaaS i kahi hoʻonohonoho o nā mea hoʻowalewale no kēlā me kēia ʻono a me nā kala: HTTP, Kafka, Redis, MQTT, Cron, AWS SQS, NAT a me nā mea ʻē aʻe.

Hiki ke loaʻa nā ʻōlelo aʻoaʻo no ka hoʻomaka ʻana ma ka palapala kūhelu o nā frameworks. Pono e hana pū me lākou e loaʻa nā mākau ʻoi aʻe ma mua o ka hana ʻana me kahi mea hoʻolako - ʻo ia ka liʻiliʻi o ka hiki ke hoʻomaka i kahi pūʻulu Kubernetes ma o ka CLI. ʻO ka hapa nui, e hoʻokomo i nā mea hana open-source ʻē aʻe (no ka laʻana, ka luna queue Kafka).

ʻO ke ʻano o kā mākou hana ʻana me Serverless - ma o kahi mea hoʻolako a hoʻohana paha i ka open-source, e loaʻa iā mākou kekahi mau pono a me nā hemahema o ke ala Serverless.

Mai ka manaʻo o nā pono a me nā pōʻino

Hoʻokumu ʻo Serverless i nā manaʻo o kahi ʻenehana pahu a me kahi ʻano microservice, kahi e hiki ai i nā hui ke hana ma ke ʻano ʻōlelo lehulehu me ka ʻole o ka hoʻopaʻa ʻana i hoʻokahi kahua. Ua maʻalahi ke kūkulu ʻana i kahi ʻōnaehana a maʻalahi ka hoʻoponopono ʻana i nā hewa. Hiki iā ʻoe ke hoʻohui i nā hana hou i ka ʻōnaehana ma mua o ke ʻano o kahi noi monolithic.

Hoʻemi ʻo Serverless i ka manawa hoʻomohala hou aʻe, e ʻae ana i ka mea hoʻomohala e kālele wale i ka loiloi pāʻoihana a me ka coding. ʻO ka hopena, ua hoʻemi ʻia ka manawa e kūʻai aku ai no nā hoʻomohala.

Ma ke ʻano he bonus, loaʻa iā mākou ka scaling maʻalahi no ka ukana, a ke uku wale nei makou no na waiwai i hoohanaia a i ka manawa i hoohanaia ai.

E like me kekahi ʻenehana, Serverless loaʻa nā hemahema.

No ka laʻana, ʻo ia ka hemahema ka manawa hoʻomaka anuanu (ma ka awelika a hiki i 1 kekona no nā ʻōlelo e like me JavaScript, Python, Go, Java, Ruby).

Ma kekahiʻaoʻao, i ka ʻoiaʻiʻo, pili ka manawa hoʻomaka anu i nā ʻano like ʻole: ka ʻōlelo i kākau ʻia ai ka hana, ka helu o nā hale waihona puke, ka nui o ke code, kamaʻilio me nā kumuwaiwai hou aʻe (nā waihona like a i ʻole nā ​​kikowaena hōʻoia). Ma muli o ka mālama ʻana o ka mea hoʻomohala i kēia mau ʻano, hiki iā ia ke hōʻemi i ka manawa hoʻomaka. Akā ma ka ʻaoʻao ʻē aʻe, ʻaʻole hiki i ka mea hoʻomohala ke hoʻomalu i ka manawa hoʻomaka o ka ipu - pili ia i ka mea hāʻawi.

Hiki i ka hoʻomaka anuanu ke lilo i hoʻomaka mahana ke hoʻohana hou kahi hana i kahi pahu i hoʻokuʻu ʻia e kahi hanana mua. E kū mai kēia kūlana i ʻekolu mau hihia:

  • inā hoʻohana pinepine nā mea kūʻai aku i ka lawelawe a piʻi ka helu o nā kelepona i ka hana;
  • inā ʻae ka mea hāʻawi, platform a i ʻole ka hoʻolālā e mālama i kekahi mau pahu i nā manawa a pau;
  • inā holo ka mea hoʻomohala i nā hana ma kahi manawa (e ʻōlelo i kēlā me kēia 3 mau minuke).

No nā noi he nui, ʻaʻole pilikia ka hoʻomaka anu. Maanei pono ʻoe e kūkulu i ke ʻano a me nā hana o ka lawelawe. ʻAʻole koʻikoʻi ka hoʻomaka ʻana o ke kekona no kahi noi ʻoihana, akā hiki ke lilo i mea koʻikoʻi no nā lawelawe olakino. I kēia hihia, ʻaʻole kūpono hou ke ala serverless.

ʻO ka hemahema aʻe o Serverless ʻo ia ka pōkole o ke ola o kahi hana (manawa i ka wā e pono ai ka hana).

Akā, inā pono ʻoe e hana me nā hana lōʻihi, hiki iā ʻoe ke hoʻohana i kahi hoʻolālā hybrid - hoʻohui i Serverless me kahi ʻenehana ʻē aʻe.

ʻAʻole hiki i nā ʻōnaehana āpau ke hana me ka hoʻohana ʻana i ka papahana Serverless.

E mālama mau kekahi mau noi i ka ʻikepili a me ka mokuʻāina i ka wā e hoʻokō ai. E noho monolithic kekahi mau hale hana a lōʻihi kekahi mau hiʻohiʻona. Eia naʻe (e like me nā ʻenehana kapua a laila nā ipu), ʻo Serverless kahi ʻenehana me ka wā e hiki mai ana.

Ma kēia ʻano, makemake wau e neʻe mālie i ka pilikia o ka hoʻohana ʻana i ke ala Serverless.

Mai ka ʻaoʻao noi

No 2018, ka pākēneka o ka hoʻohana ʻole Serverless ua ulu hoʻokahi a me ka hapa manawa. Ma waena o nā hui i hoʻokō mua i ka ʻenehana i kā lākou lawelawe ʻana, ʻo ia nā mākeke mākeke e like me Twitter, PayPal, Netflix, T-Mobile, Coca-Cola. I ka manawa like, pono ʻoe e hoʻomaopopo ʻaʻole ʻo Serverless kahi panacea, akā he mea hana no ka hoʻoponopono ʻana i kekahi mau pilikia:

  • E hoemi i ka manawa hoopau waiwai. ʻAʻohe pono e mālama mau i kahi mīkini virtual no nā lawelawe i liʻiliʻi nā kelepona.
  • E hana i ka ʻikepili ma ka lele. Hoʻopili i nā kiʻi, ʻoki i nā ʻaoʻao, hoʻololi i ka hoʻopili wikiō, hana pū me nā mea ʻike IoT, hana i nā hana makemakika.
  • "Hoʻopili" i nā lawelawe ʻē aʻe. ʻO ka waihona waihona ʻo Git me nā polokalamu kūloko, kamaʻilio bot ma Slack me Jira a me ka kalena.
  • E kaulike i ka ukana. E nana pono kakou maanei.

E ʻōlelo kākou aia kahi lawelawe e huki ai i nā kānaka he 50. Aia ma lalo o ia mea he mīkini uila me nā lako nāwaliwali. Mai kēlā manawa kēia manawa, piʻi nui ka ukana ma ka lawelawe. A laila, ʻaʻole hiki ke hoʻokō ʻia nā hāmeʻa nāwaliwali.

Hiki iā ʻoe ke hoʻokomo i kahi mea kaulike ma ka ʻōnaehana e puʻunaue i ka ukana, e ʻōlelo, ma luna o ʻekolu mau mīkini virtual. I kēia manawa, ʻaʻole hiki iā mākou ke wānana pololei i ka ukana, no laila ke mālama nei mākou i kahi nui o nā kumuwaiwai e holo ana "ma kahi mālama." A ʻoi aku kā mākou uku no ka manawa hoʻomaha.

Ma ia ʻano kūlana, hiki iā mākou ke hoʻonui i ka ʻōnaehana ma o kahi ʻano hybrid: waiho mākou i hoʻokahi mīkini virtual ma hope o ka mea kaulike ukana a kau i kahi loulou i ka Serverless Endpoint me nā hana. Inā ʻoi aku ka ukana ma mua o ka paepae, hoʻomaka ka mea kaulike i nā hanana hana e lawe i kahi ʻāpana o ka hana noi.

Serverless ma nā pā
No laila, hiki ke hoʻohana ʻia ʻo Serverless i kahi e pono ai e hoʻoponopono i ka nui o nā noi ʻaʻole pinepine, akā ikaika. I kēia hihia, ʻoi aku ka maikaʻi o ka holo ʻana i kekahi mau hana no 15 mau minuke ma mua o ka mālama ʻana i kahi mīkini virtual a i ʻole server i nā manawa āpau.

Me nā mea maikaʻi a pau o ka serverless computing, ma mua o ka hoʻokō ʻana, pono ʻoe e loiloi mua i ka loiloi noi a hoʻomaopopo i nā pilikia e hiki ai iā Serverless ke hoʻoponopono i kekahi hihia.

Serverless a me Selectel

Aia mākou ma Selectel hana maʻalahi me Kubernetes ma o kā mākou papa hoʻomalu. I kēia manawa ke kūkulu nei mākou i kā mākou kahua FaaS ponoʻī. Makemake mākou e hiki i nā mea hoʻomohala ke hoʻoponopono i kā lākou mau pilikia me ka hoʻohana ʻana i Serverless ma o kahi maʻalahi a maʻalahi.

Inā loaʻa iā ʻoe nā manaʻo e pili ana i ka paepae FaaS kūpono a pehea ʻoe e makemake ai e hoʻohana i ka Serverless i kāu mau papahana, e kaʻana iā lākou i nā manaʻo. E noʻonoʻo mākou i kāu mau makemake i ka wā e hoʻomohala ai i ka paepae.
 
Nā mea i hoʻohana ʻia ma ka ʻatikala:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka