Gun fhrithealaiche air racaichean

Gun fhrithealaiche air racaichean
Chan eil Serverless mu dheidhinn neo-làthaireachd corporra luchd-frithealaidh. Chan e marbhadh container no gluasad a tha a’ dol seachad a tha seo. Is e dòigh-obrach ùr a tha seo airson siostaman togail san sgòth. Anns an artaigil an-diugh bruidhnidh sinn air ailtireachd thagraidhean Serverless, chì sinn dè a’ phàirt a th’ aig solaraiche seirbheis Serverless agus pròiseactan stòr fosgailte. Mu dheireadh, bruidhnidh sinn mu na cùisean a thaobh a bhith a 'cleachdadh Serverless.

Tha mi airson pàirt frithealaiche de thagradh (no eadhon stòr air-loidhne) a sgrìobhadh. Dh’ fhaodadh seo a bhith mar chat, seirbheis foillseachaidh susbaint, no mar chothromaiche luchdan. Ann an suidheachadh sam bith, bidh tòrr cinn-cinn ann: feumaidh tu am bun-structar ullachadh, eisimeileachd an tagraidh a dhearbhadh, agus smaoineachadh air an t-siostam obrachaidh aoigheachd. An uairsin feumaidh tu co-phàirtean beaga ùrachadh nach eil a 'toirt buaidh air obrachadh a' chòrr den monolith. Uill, na dìochuimhnich sinn mu bhith a ’sgèileadh fo luchd.

Dè ma ghabhas sinn soithichean geàrr-ùine, anns a bheil na h-eisimeileachdan riatanach air an cur a-steach ro-làimh, agus na soithichean fhèin air an sgaradh bho chèile agus bhon OS aoigheachd? Roinnidh sinn am monolith gu microservices, agus faodar gach fear dhiubh ùrachadh agus sgèile gu neo-eisimeileach bhon fheadhainn eile. Le bhith a 'cur a' chòd ann an soitheach mar sin, is urrainn dhomh a ruith air bun-structar sam bith. Nas fheàrr mar-thà.

Dè mura h-eil thu airson soithichean a rèiteachadh? Chan eil mi airson smaoineachadh air sgèileadh an tagraidh. Chan eil mi airson pàigheadh ​​​​airson soithichean ruith leisg nuair a tha an luchd air an t-seirbheis cho beag. Tha mi airson còd a sgrìobhadh. Fòcas air loidsig gnìomhachais agus thoir bathar chun mhargaidh aig astar solais.

Thug smuaintean mar seo mi gu coimpiutaireachd gun fhrithealaiche. Serverless sa chùis seo a 'ciallachadh chan e neo-làthaireachd corporra luchd-frithealaidh, ach dìth cinn-cinn stiùireadh bun-structair.

Is e am beachd gu bheil loidsig tagraidh air a bhriseadh sìos gu gnìomhan neo-eisimeileach. Tha structar tachartais aca. Bidh gach gnìomh a’ coileanadh aon “microtask”. Is e a h-uile càil a tha a dhìth bhon leasaiche na gnìomhan a luchdachadh a-steach don consol a thug an solaraiche sgòthan seachad agus an ceangal ri stòran tachartais. Thèid an còd a chuir gu bàs ma thèid iarraidh ann an soitheach a chaidh ullachadh gu fèin-ghluasadach, agus cha phàigh mi ach airson an ùine cur gu bàs.

Chì sinn cò ris a bhios am pròiseas leasachaidh tagraidh coltach a-nis.

Bho thaobh an leasaiche

Na bu thràithe thòisich sinn a’ bruidhinn mu dheidhinn tagradh airson stòr air-loidhne. Anns an dòigh thraidiseanta, tha prìomh loidsig an t-siostaim air a choileanadh le tagradh monolithic. Agus tha am frithealaiche leis an tagradh an-còmhnaidh a’ ruith, eadhon ged nach eil luchd ann.

Gus gluasad gu frithealaiche gun fhrithealaiche, bidh sinn a’ briseadh an aplacaid gu microtasks. Bidh sinn a’ sgrìobhadh ar gnìomh fhèin airson gach aon dhiubh. Tha na gnìomhan neo-eisimeileach bho chèile agus chan eil iad a’ stòradh fiosrachadh stàite (gun stàite). Faodaidh iad eadhon a bhith air an sgrìobhadh ann an diofar chànanan. Ma thuiteas fear dhiubh, cha stad an tagradh gu lèir. Bidh ailtireachd an tagraidh a’ coimhead mar seo:

Gun fhrithealaiche air racaichean
Tha an sgaradh gu gnìomhan ann an Serverless coltach ri bhith ag obair le microservices. Ach faodaidh microservice grunn ghnìomhan a choileanadh, agus bu chòir dha gnìomh aon a choileanadh. Smaoinichidh sinn gur e an obair staitistig a chruinneachadh agus an taisbeanadh air iarrtas an neach-cleachdaidh. Anns an dòigh-obrach microservice, tha gnìomh air a choileanadh le aon sheirbheis le dà àite inntrigidh: sgrìobhadh agus leughadh. Ann an coimpiutaireachd gun fhrithealaiche, bidh iad sin nan dà ghnìomh eadar-dhealaichte nach eil càirdeach dha chèile. Sàbhailidh an leasaiche goireasan coimpiutaireachd ma tha, mar eisimpleir, staitistig air an ùrachadh nas trice na tha iad air an luchdachadh sìos.

Feumar gnìomhan gun fhrithealaiche a chuir an gnìomh ann an ùine ghoirid (ùine-ama), a tha air a dhearbhadh leis an t-solaraiche seirbheis. Mar eisimpleir, airson AWS tha an ùine-ama 15 mionaidean. Tha seo a’ ciallachadh gum feumar gnìomhan fad-ùine atharrachadh gus freagairt air na riatanasan - is e seo a tha eadar-dhealaichte bho Serverless bho theicneòlasan mòr-chòrdte eile an-diugh (soithichean agus Àrd-ùrlar mar Sheirbheis).

Bidh sinn a’ sònrachadh tachartas airson gach gnìomh. Tha tachartas na adhbhar brosnachaidh airson gnìomh:

Tachartas
An gnìomh a tha an gnìomh a 'coileanadh

Chaidh ìomhaigh toraidh a luchdachadh suas chun stòr.
Dèan teannachadh air an ìomhaigh agus luchdaich suas gu eòlaire

Chaidh seòladh an stòr corporra ùrachadh san stòr-dàta
Luchdaich a-nuas mapaichean airson àite

Bidh an neach-dèiligidh a’ pàigheadh ​​​​airson am bathar
Tòisich pròiseas pàighidh

Faodaidh tachartasan a bhith nan iarrtasan HTTP, dàta sruthadh, ciudha teachdaireachd, agus mar sin air adhart. Is e stòran tachartais atharrachaidhean no tachartasan dàta. A bharrachd air an sin, faodar gnìomhan a bhrosnachadh le timer.

Chaidh an ailtireachd obrachadh a-mach, agus cha mhòr nach robh an aplacaid gun fhrithealaiche. An uairsin thèid sinn chun t-solaraiche seirbheis.

Bho thaobh an t-solaraiche

Mar as trice, bidh solaraichean seirbheis sgòthan a’ tabhann coimpiutaireachd gun fhrithealaiche. Tha iad air an ainmeachadh ann an dòigh eadar-dhealaichte: Gnìomhan Azure, AWS Lambda, Google Cloud Functions, IBM Cloud Functions.

Cleachdaidh sinn an t-seirbheis tro chonsail no cunntas pearsanta an t-solaraiche. Faodar còd gnìomh a luchdachadh sìos ann an aon de na dòighean a leanas:

  • sgrìobh còd ann an luchd-deasachaidh togte tron ​​​​chonsól lìn,
  • Luchdaich a-nuas an stòr-dàta le còd,
  • ag obair le stòran git poblach no prìobhaideach.

An seo stèidhich sinn na tachartasan ris an canar an gnìomh. Faodaidh na seataichean de thachartasan a bhith eadar-dhealaichte airson diofar sholaraichean.

Gun fhrithealaiche air racaichean

Thog agus rinn an solaraiche an siostam Function as a Service (FaaS) air a bhun-structair:

  1. Bidh an còd gnìomh a’ tighinn gu crìch ann an stòradh air taobh an t-solaraiche.
  2. Nuair a thachras tachartas, thèid soithichean le àrainneachd ullaichte a chuir gu fèin-ghluasadach air an fhrithealaiche. Tha a shoitheach iomallach fhèin aig gach eisimpleir gnìomh.
  3. Bhon stòradh, thèid an gnìomh a chuir chun bhogsa, air a thomhas, agus air ais an toradh.
  4. Tha an àireamh de thachartasan co-shìnte a 'fàs - tha an àireamh de shoithichean a' fàs. Bidh an siostam a ’sgèileadh gu fèin-ghluasadach. Mura faigh luchd-cleachdaidh cothrom air a’ ghnìomh, bidh e neo-ghnìomhach.
  5. Bidh an solaraiche a’ suidheachadh an ùine leisg airson soithichean - mura h-eil gnìomhan aig an àm seo a’ nochdadh anns a’ ghobhar, thèid a sgrios.

San dòigh seo gheibh sinn Serverless a-mach às a’ bhogsa. Pàighidh sinn airson na seirbheis a’ cleachdadh a’ mhodail pay-as-you-go agus dìreach airson nan gnìomhan sin a thathas a’ cleachdadh, agus dìreach airson an àm a chaidh an cleachdadh.

Gus luchd-leasachaidh a thoirt a-steach don t-seirbheis, bidh solaraichean a’ tabhann suas ri 12 mìosan de dheuchainn an-asgaidh, ach a’ cuingealachadh an ùine àireamhachaidh iomlan, an àireamh de dh’ iarrtasan gach mìos, airgead no caitheamh cumhachd.

Is e am prìomh bhuannachd a bhith ag obair le solaraiche an comas gun a bhith draghail mu bhun-structar (frithealaichean, innealan brìgheil, soithichean). Airson a phàirt, faodaidh an solaraiche FaaS a chuir an gnìomh an dà chuid a ’cleachdadh na leasachaidhean aige fhèin agus a’ cleachdadh innealan stòr fosgailte. Bruidhnidh sinn mun deidhinn nas fhaide.

Bho thaobh stòr fosgailte

Tha a’ choimhearsnachd stòr fosgailte air a bhith ag obair gu gnìomhach air innealan Serverless airson an dà bhliadhna a dh’ fhalbh. Bidh na cluicheadairean margaidh as motha cuideachd a’ cur ri leasachadh àrd-ùrlaran gun fhrithealaiche:

  • Ghoogle a’ tabhann inneal stòr fosgailte do luchd-leasachaidh - sgeimheach. Ghabh IBM, RedHat, Pivotal agus SAP pàirt san leasachadh aige;
  • IBM ag obair air àrd-ùrlar Serverless OpenWhisk, a thàinig gu bhith na phròiseact aig an Apache Foundation;
  • Microsoft dh’ fhosgail e còd an àrd-ùrlair gu ìre Gnìomhan Azure.

Tha leasachaidhean cuideachd a’ dol air adhart a thaobh frèaman gun fhrithealaiche. Gun chiùb и Eamhrachadh air a chleachdadh taobh a-staigh cruinneachaidhean Kubernetes ro-ullaichte, Fosgail FaaS ag obair leis an dà chuid Kubernetes agus Docker Swarm. Tha am frèam ag obair mar sheòrsa de rianadair - ma thèid iarraidh, bidh e ag ullachadh àrainneachd runtime taobh a-staigh a’ bhuidheann, agus an uairsin a ’cur air bhog gnìomh an sin.

Bidh frèaman a’ fàgail rùm airson an inneal a rèiteachadh a rèir do fheumalachdan. Mar sin, ann an Kubeless, faodaidh leasaiche an ùine cur an gnìomh gnìomh a rèiteachadh (is e an luach bunaiteach 180 diogan). Tha dòrtadh, ann an oidhirp air fuasgladh fhaighinn air an duilgheadas tòiseachaidh fuar, a’ moladh cumail cuid de shoithichean a’ ruith fad na h-ùine (ged a tha seo a’ toirt a-steach cosgaisean ùine downt stòrais). Agus tha OpenFaaS a’ tabhann seata de luchd-brosnachaidh airson a h-uile blas agus dath: HTTP, Kafka, Redis, MQTT, Cron, AWS SQS, NATn agus feadhainn eile.

Gheibhear stiùireadh airson tòiseachadh ann an sgrìobhainnean oifigeil nam frèaman. Feumaidh a bhith ag obair còmhla riutha beagan a bharrachd sgilean na bhith ag obair le solaraiche - tha seo co-dhiù an comas cruinneachadh Kubernetes a chuir air bhog tron ​​​​CLI. Aig a’ char as motha, cuir a-steach innealan stòr fosgailte eile (mar eisimpleir, manaidsear ciudha Kafka).

A dh'aindeoin mar a bhios sinn ag obair le Serverless - tro sholaraiche no a 'cleachdadh stòr fosgailte, gheibh sinn grunn bhuannachdan agus eas-bhuannachdan bhon dòigh-obrach Serverless.

Bho shealladh buannachdan agus eas-bhuannachdan

Bidh Serverless a’ leasachadh bheachdan mu bhun-structar container agus dòigh-obrach microservice, anns am faod sgiobaidhean obrachadh ann am modh ioma-chànanach gun a bhith ceangailte ri aon àrd-ùrlar. Tha togail an t-siostam air a dhèanamh nas sìmplidhe agus tha e nas fhasa mearachdan a cheartachadh. Leigidh ailtireachd microservice leat comas-gnìomh ùr a chuir ris an t-siostam fada nas luaithe na ann an cùis tagradh monolithic.

Bidh Serverless a’ lughdachadh ùine leasachaidh eadhon nas fhaide, a’ leigeil leis an leasaiche fòcas a-mhàin air loidsig gnìomhachais agus còdadh an tagraidh. Mar thoradh air an sin, tha an ùine gu margaidheachd airson leasachaidhean air a lughdachadh.

Mar bhuannachd, gheibh sinn sgèileadh fèin-ghluasadach airson luchd, agus bidh sinn a 'pàigheadh ​​​​a-mhàin airson na goireasan a thathar a' cleachdadh agus dìreach aig an àm nuair a bhios iad gan cleachdadh.

Coltach ri teicneòlas sam bith, tha eas-bhuannachdan aig Serverless.

Mar eisimpleir, is dòcha gur e an leithid de ana-cothrom an ùine tòiseachaidh fuar (gu cuibheasach suas ri 1 diog airson cànanan leithid JavaScript, Python, Go, Java, Ruby).

Air an aon làimh, gu fìrinneach, tha an ùine tòiseachaidh fuar an urra ri mòran caochladairean: an cànan anns a bheil an gnìomh air a sgrìobhadh, an àireamh de leabharlannan, an ìre de chòd, conaltradh le goireasan a bharrachd (na h-aon stòran-dàta no frithealaichean dearbhaidh). Leis gu bheil smachd aig an leasaiche air na caochladairean sin, faodaidh e an ùine tòiseachaidh a lughdachadh. Ach air an làimh eile, chan urrainn don leasaiche smachd a chumail air àm tòiseachaidh an t-soithich - tha e uile an urra ris an t-solaraiche.

Faodaidh tòiseachadh fuar tionndadh gu bhith na thoiseach tòiseachaidh nuair a bhios gnìomh ag ath-chleachdadh soitheach a chaidh a chuir air bhog le tachartas roimhe. Bidh an suidheachadh seo ag èirigh ann an trì cùisean:

  • ma bhios luchd-dèiligidh a’ cleachdadh na seirbheis gu tric agus gu bheil an àireamh de ghlaodhan chun ghnìomh ag àrdachadh;
  • ma leigeas an solaraiche, àrd-ùrlar no frèam leat cuid de shoithichean a chumail a’ dol fad na h-ùine;
  • ma bhios an leasaiche a’ ruith ghnìomhan air timer (can a h-uile 3 mionaidean).

Airson mòran thagraidhean, chan eil tòiseachadh fuar na dhuilgheadas. An seo feumaidh tu togail air an t-seòrsa agus gnìomhan na seirbheis. Chan eil dàil tòiseachaidh diog an-còmhnaidh deatamach airson tagradh gnìomhachais, ach faodaidh e a bhith deatamach airson seirbheisean meidigeach. Anns a 'chùis seo, is dòcha nach bi an dòigh-obrach gun fhrithealaiche freagarrach tuilleadh.

Is e an ath eas-bhuannachd de Serverless beatha ghoirid gnìomh (ùine a-mach nuair a dh’ fheumar an gnìomh a chuir gu bàs).

Ach, ma dh'fheumas tu a bhith ag obair le gnìomhan fad-ùine, faodaidh tu ailtireachd tar-chinealach a chleachdadh - cuir Serverless còmhla ri teicneòlas eile.

Cha bhith e comasach dha a h-uile siostam obrachadh a’ cleachdadh an sgeama Serverless.

Bidh cuid de thagraidhean fhathast a’ stòradh dàta agus staid aig àm cur gu bàs. Bidh cuid de dh'ailtireachd fhathast monolithic agus bidh cuid de fheartan fada beò. Ach (mar theicneòlasan sgòthan agus an uairsin soithichean), tha Serverless na theicneòlas le àm ri teachd math.

San dòigh seo, bu mhath leam gluasad air adhart gu rèidh gu cùis cleachdadh an dòigh Serverless.

Bho thaobh an tagraidh

Airson 2018, an àireamh sa cheud de chleachdadh Serverless dh'fhàs e uair gu leth. Am measg nan companaidhean a tha mar-thà air an teicneòlas a chuir an gnìomh anns na seirbheisean aca tha fuamhairean margaidh leithid Twitter, PayPal, Netflix, T-Mobile, Coca-Cola. Aig an aon àm, feumaidh tu tuigsinn nach e panacea a th ’ann an Serverless, ach inneal airson fuasgladh fhaighinn air raon sònraichte de dhuilgheadasan:

  • Lùghdaich ùine dìth stòrais. Chan eil feum air inneal brìgheil a chumail gu cunbhalach airson seirbheisean aig nach eil mòran gairmean.
  • Pròiseas dàta air an itealan. Dèan teannachadh air dealbhan, gearradh a-mach cùl-fhiosrachadh, atharraich còdachadh bhidio, obraich le mothachairean IoT, dèan gnìomhachd matamataigeach.
  • “Glue” seirbheisean eile còmhla. Stòr Git le prògraman a-staigh, cabadaich bot ann an Slack le Jira agus mìosachan.
  • Cothromaich an t-uallach. Bheir sinn sùil nas mionaidiche an seo.

Canaidh sinn gu bheil seirbheis ann a tha a’ tàladh 50 neach. Fon e tha inneal brìgheil le bathar-cruaidh lag. Bho àm gu àm, bidh an luchd air an t-seirbheis ag àrdachadh gu mòr. An uairsin chan urrainn dha bathar-cruaidh lag dèiligeadh.

Faodaidh tu inneal-cothromachaidh a thoirt a-steach don t-siostam a sgaoilidh an luchd, can, thairis air trì innealan brìgheil. Aig an ìre seo, chan urrainn dhuinn ro-innse ceart a dhèanamh air an luchd, agus mar sin bidh sinn a’ cumail cuid de ghoireasan a’ ruith “ann an tèarmann.” Agus bidh sinn a’ pàigheadh ​​cus airson ùine downt.

Ann an suidheachadh mar sin, is urrainn dhuinn an siostam a bharrachadh tro dhòigh-obrach tar-chinealach: bidh sinn a’ fàgail aon inneal brìgheil air cùl a’ chothromachadh luchdan agus a’ cur ceangal ris an Serverless Endpoint le gnìomhan. Ma tha an luchd nas àirde na an stairsneach, bidh an cothromaiche a’ cur air bhog suidheachaidhean gnìomh a ghabhas thairis pàirt de ghiullachd an iarrtais.

Gun fhrithealaiche air racaichean
Mar sin, faodar Serverless a chleachdadh far a bheil feum air àireamh mhòr de dh’ iarrtasan a phròiseasadh chan ann ro thric, ach gu dian. Anns a 'chùis seo, tha e nas prothaidiche a bhith a' ruith grunn ghnìomhan airson 15 mionaidean na bhith a 'cumail inneal mas-fhìor no frithealaiche fad na h-ùine.

Leis na buannachdan uile bho choimpiutaireachd gun fhrithealaiche, mus tèid a bhuileachadh, bu chòir dhut an toiseach measadh a dhèanamh air loidsig an tagraidh agus tuigsinn dè na duilgheadasan a dh’ fhaodas Serverless fhuasgladh ann an cùis shònraichte.

Gun fhrithealaiche agus Selectel

Aig Selectel tha sinn mu thràth obair nas sìmplidhe le Kubernetes tro ar pannal smachd. A-nis tha sinn a’ togail an àrd-ùrlar FaaS againn fhèin. Tha sinn airson gum bi e comasach do luchd-leasachaidh na duilgheadasan aca fhuasgladh le bhith a’ cleachdadh Serverless tro eadar-aghaidh goireasach, sùbailte.

Ma tha beachdan agad air dè an àrd-ùrlar FaaS air leth a bu chòir a bhith agus mar a tha thu airson Serverless a chleachdadh anns na pròiseactan agad, roinn iad anns na beachdan. Bheir sinn aire do na miannan agad nuair a bhios sinn a’ leasachadh an àrd-ùrlar.
 
Stuthan air an cleachdadh san artaigil:

Source: www.habr.com

Cuir beachd ann