Magadzirirwo atakaita gore FaaS mukati meKubernetes uye takahwina iyo Tinkoff hackathon

Magadzirirwo atakaita gore FaaS mukati meKubernetes uye takahwina iyo Tinkoff hackathon
Kutanga gore rapfuura, kambani yedu yakatanga kuronga hackathons. Makwikwi akadai ekutanga akabudirira kwazvo, takanyora nezvazvo mukati chinyorwa. Yechipiri hackathon yakaitika muna Kukadzi 2019 uye haina kubudirira zvishoma. Nezve zvinangwa zvekubata iyo yekupedzisira kwete kare kare akanyora organiser.

Vatori vechikamu vakapihwa basa rinonakidza rine rusununguko rwakakwana pakusarudza tekinoroji stack yekushandiswa kwayo. Zvaive zvakafanira kuita sarudzo yekuita sarudzo yekuendesa zviri nyore kwevatengi zvibodzwa mabasa ayo anogona kushanda nekukurumidza kuyerera kwezvikumbiro, kumirisana nemitoro inorema, uye sisitimu pachayo yaigona scalable nyore.

Basa racho harisi diki uye rinogona kugadziriswa nenzira dzakawanda, sezvatakanga tine chokwadi panguva yekuratidzwa kwekupedzisira mharidzo yezvirongwa zvevatori vechikamu. Pakanga paine zvikwata zvitanhatu zvevanhu vashanu pahackathon, vese vatori vechikamu vaive nemapurojekiti akanaka, asi chikuva chedu chakazonyanya kukwikwidza. Tine chirongwa chinonakidza kwazvo, chandinoda kutaura nezvazvo munyaya ino.

Mhinduro yedu ipuratifomu yakavakirwa paServerless architecture mukati meKubernetes, iyo inoderedza nguva inotora kuunza zvitsva mukugadzira. Inobvumira vanoongorora kunyora kodhi munzvimbo yakavaitira uye kuiisa mukugadzira pasina kutora chikamu kweinjiniya nevagadziri.

Chii chinonzi scoring

Tinkoff.ru, kufanana nemakambani mazhinji emazuva ano, ane mutengi scoring. Scoring inzira yekuongorora mutengi yakavakirwa pahuwandu nzira dzekuongorora data.

Semuenzaniso, mutengi anotendeukira kwatiri nechikumbiro chekumupa chikwereti, kana kuvhura account yemunhu muzvinabhizimusi nesu. Kana tikaronga kumupa chikwereti, saka tinofanira kuongorora solvency yake, uye kana iyo account iri munhu muzvinabhizimusi, saka isu tinofanirwa kuve nechokwadi chekuti mutengi haazoiti zvehutsotsi.

Hwaro hwekuita sarudzo dzakadai masvomhu mamodheru anoongorora ese ari maviri data kubva kuchishandiso pachacho uye data kubva mudura redu. Pamusoro pekupa zvibodzwa, nzira dzakafanana dzenhamba dzinogonawo kushandiswa musevhisi yekugadzira kurudziro yemunhu kune zvigadzirwa zvitsva zvevatengi vedu.

Nzira yekuongorora kwakadaro inogona kugamuchira zvakasiyana-siyana zvekupinza data. Uye pane imwe nguva tinogona kuwedzera parameter itsva kune inopinza, iyo, zvichienderana nemigumisiro yekuongorora pane zvakaitika kare, ichawedzera chiyero chekushandura kwekushandisa basa.

Isu tine hupfumi hwe data nezve hukama hwevatengi, uye huwandu hweruzivo urwu huri kuramba huchikura. Kuti zvibore zvishande, kugadzirisa data kunodawo mitemo (kana masvomhu) iyo inokutendera iwe kukurumidza kusarudza kuti ndiani wekubvumidza chikumbiro, wekuramba, uye ndiani wekupa vaviri zvimwe zvigadzirwa, uchiongorora zvavanogona kufarira.

Kune basa riripo, isu tatoshandisa yakasarudzika sarudzo yekuita sarudzo IBM WebSphere ILOG JRules BRMS, iyo, zvichienderana nemitemo yakagadzwa nevanoongorora, technologists uye vagadziri, vanosarudza kubvumirana kana kuramba chimwe chigadzirwa chebhangi kune mutengi.

Kune akawanda akagadzirira-akagadzirwa mhinduro pamusika, ese ezvibodzwa mamodheru uye masisitimu ekuita sarudzo ivo pachavo. Isu tinoshandisa imwe yeaya masisitimu mukambani yedu. Asi bhizinesi riri kukura, kusiyanisa, huwandu hwevatengi uye huwandu hwezvigadzirwa zvinopihwa zviri kuwedzera, uye pamwe neizvi, mazano ari kubuda ekuti angavandudza sei maitiro ekuita sarudzo. Chokwadi vanhu vanoshanda nehurongwa huripo vane mazano akawanda ekuita kuti zvive nyore, zvirinani, zviri nyore, asi dzimwe nguva mazano kubva kunze anobatsira. Iyo New Hackathon yakarongwa nechinangwa chekuunganidza pfungwa dzine ruzha.

Basa

Iyo hackathon yakaitwa muna Kukadzi 23. Vatori vechikamu vakapihwa basa rekurwisa: kugadzira hurongwa hwekuita sarudzo hwaifanira kusangana nemamiriro akati wandei.

Takaudzwa kuti hurongwa huripo hunoshanda sei uye matambudziko api anomuka panguva yekushanda kwayo, pamwe nezvinangwa zvebhizinesi izvo zvakagadziridzwa chikuva chinofanira kutevedzera. Iyo sisitimu inofanirwa kuve nekukasira-ku-ku-musika yekugadzira mitemo kuitira kuti kodhi yekushanda yevanoongorora ipinde mukugadzira nekukurumidza sezvinobvira. Uye nekuyerera kuri kuuya kwezvikumbiro, nguva yekuita sarudzo inofanirwa kuita shoma. Zvakare, sisitimu iri kugadzirwa inofanirwa kunge iine muchinjiko-kutengesa hunyanzvi kuitira kupa mutengi mukana wekutenga zvimwe zvigadzirwa zvekambani kana zvakatenderwa nesu uye zvine mukana wekufarira kubva kumutengi.

Zviripachena kuti hazvibviri kunyora purojekiti yakagadzirira-kuburitsa-husiku humwe iyo inozopinda mukugadzirwa, uye zvakanyanya kuoma kuvhara iyo yese system, saka isu takakumbirwa kuita kanenge chikamu chayo. Zvakawanda zvezvinodiwa zvakasimbiswa izvo prototype inofanirwa kugutsa. Kwakanga kuchibvira kuedza zvose zviri zviviri kufukidza zvose zvinodikanwa mukukwana kwazvo, uye kushanda zvizere pazvikamu zvoga zvepuratifomu zviri kugadzirwa.

Kana iri tekinoroji, vatori vechikamu vese vakapihwa rusununguko rwakakwana rwekusarudza. Zvaigoneka kushandisa chero pfungwa uye matekinoroji: kutenderera data, kudzidza muchina, kutsvaga chiitiko, hombe data uye nezvimwe.

Mhinduro yedu

Mushure mekufunga zvishoma, takasarudza kuti mhinduro yeFaaS yaizove yakakodzera kupedzisa basa.

Kune iyi mhinduro, zvaive zvakafanira kutsvaga yakakodzera Serverless framework yekushandisa mitemo yesarudzo-yekuita sarudzo inogadzirwa. Sezvo Tinkoff achishingairira kushandisa Kubernetes kune manejimendi manejimendi, takatarisa akati wandei akagadzirira-akagadzirwa mhinduro zvichibva pazviri; Ini ndichakuudza zvimwe nezvazvo gare gare.

Kuti tiwane mhinduro inonyanya kushanda, takatarisa chigadzirwa chiri kugadzirwa kuburikidza nemaziso evashandisi vayo. Vanonyanya kushandisa sisitimu yedu vaongorori vanobatanidzwa mukuvandudza mitemo. Mitemo inofanirwa kuiswa kune sevha, kana, sezvatiri isu, yakaiswa mugore, kuitira kunotevera kuita sarudzo. Kubva pakuona kwemuongorori, mafambiro ebasa anoita seizvi:

  1. Muongorori anonyora script, mutemo, kana ML modhi zvichibva pane data kubva mudura. Sechikamu chehackathon, takasarudza kushandisa Mongodb, asi sarudzo yekuchengetedza data haina kukosha pano.
  2. Mushure mekuyedza iyo yakagadziridzwa mitemo pane nhoroondo data, muongorori anoisa kodhi yake kune admin panel.
  3. Kuti uve nechokwadi chekushandura, kodhi yese ichaenda kuGit repositories.
  4. Kuburikidza neye admin panel zvinogoneka kuendesa iyo kodhi mugore seyakasiyana inoshanda Serverless module.

Yekutanga data kubva kune vatengi inofanirwa kupfuura neyakasarudzika Enrichment sevhisi yakagadzirirwa kupfumisa chikumbiro chekutanga nedata kubva mudura. Zvakanga zvakakosha kuita sevhisi iyi nenzira yekuti yaizoshanda neiyo imwe chete repository (kubva iyo muongorori anotora data paanenge achigadzira mitemo) kuchengetedza yakabatana data chimiro.

Kunyangwe pamberi pehackathon, takasarudza pane Serverless chimiro chataizoshandisa. Nhasi kune akawanda matekinoroji pamusika anoshandisa nzira iyi. Iwo anonyanya kufarirwa mhinduro mukati meKubernetes architecture ndeye Fission, Vhura FaaS uye Kubeless. Kune kunyange chinyorwa chakanaka netsanangudzo yavo uye kuenzanisa kuongorora.

Mushure mekuyera zvese zvakanakira nezvayakaipira, isu takasarudza Kuzvitsaura. Iyi Serverless framework iri nyore kubata uye inosangana nezvinodiwa zvebasa racho.

Kuti ushande neFission, unofanirwa kunzwisisa mazano maviri ekutanga: basa uye nharaunda. Basa chidimbu chekodhi yakanyorwa mune imwe yemitauro ine nzvimbo yeFission. Rondedzero yenzvimbo dzakaitwa mukati meiyo framework inosanganisira Python, JS, Go, JVM nemimwe mitauro yakawanda yakakurumbira uye matekinoroji.

Fission zvakare inokwanisa kuita mabasa akakamurwa kuita akati wandei mafaera, akafanorongedzerwa mudura. Kushanda kweFission muboka reKubernetes kunovimbiswa nemapodhi akasarudzika, ayo anotungamirwa nehurongwa pachahwo. Kudyidzana nemapodhi emasumbu, basa rega rega rinofanirwa kupihwa nzira yaro, uye kwaunogona kupfuudza GET paramita kana kukumbira muviri kana paine chikumbiro chePOST.

Somugumisiro, takaronga kuwana mhinduro yaizobvumira vaongorori kuti vashandise zvinyorwa zvemitemo zvakagadziriswa pasina kubatanidzwa kweinjiniya nevagadziri. Iyo yakatsanangurwa nzira inobvisa zvakare kudiwa kwevagadziri kuti vanyorezve muongorori kodhi mune mumwe mutauro. Semuyenzaniso, kune yazvino kuita sarudzo sisitimu yatinoshandisa, isu tinofanirwa kunyora mitemo muhunyanzvi tekinoroji nemitauro, chiyero chayo chakanyanya kushomeka, uye kune zvakare kutsamira kwakasimba pane sevha yekushandisa, sezvo zvese zvinonyorwa mitemo yebhangi. dzinoiswa munzvimbo imwe chete. Somugumisiro, kuisa mitemo mitsva inofanirwa kusunungura hurongwa hwose.

Mumhinduro yedu yakarongwa, hapana chikonzero chekuburitsa mitemo; iyo kodhi inogona kuiswa nyore nekudzvanya bhatani. Zvakare, manejimendi ezvivakwa muKubernetes inobvumidza iwe kuti usafunge nezve mutoro uye kuyera; matambudziko akadai anogadziriswa kunze kwebhokisi. Uye kushandiswa kwenzvimbo imwe chete yekuchengetera data kunobvisa kudikanwa kwekuenzanisa data-chaiyo nedata renhoroondo, iyo inorerutsa basa remuongorori.

Zvatakawana

Sezvo takasvika kune hackathon nemhinduro yakagadzirira (mumafungiro edu), zvose zvataifanira kuita kwaiva kushandura pfungwa dzedu dzose mumitsara yekodhi.

Chinokosha chekubudirira pane chero hackathon kugadzirira uye chirongwa chakanyorwa zvakanaka. Naizvozvo, chinhu chekutanga chatakaita chaive kusarudza kuti ndeapi mamodule ehurongwa hwekuvaka angave nawo uye kuti ndeapi matekinoroji ataizoshandisa.

Mavakirwo eprojekiti yedu aive akadai:

Magadzirirwo atakaita gore FaaS mukati meKubernetes uye takahwina iyo Tinkoff hackathon
Iyi dhizaini inoratidza maviri ekupinda mapoinzi, muongorori (mushandisi mukuru wesystem yedu) uye mutengi.

Basa rekushanda rakarongwa seizvi. Muongorori anovandudza basa rekutonga uye basa rekuvandudza data remuenzaniso wake, anochengeta kodhi yake muGit repository, uye anotumira modhi yake kune gore kuburikidza nemushandisi wekushandisa. Ngatitarisei kuti basa rakaiswa richadaidzwa sei uye kuita sarudzo pane zvinouya zvikumbiro kubva kune vatengi:

  1. Mutengi anozadza fomu pawebhusaiti uye anotumira chikumbiro chake kune controller. Chikumbiro icho sarudzo inoda kuitwa chinouya kune iyo system yekuisa uye inonyorwa mudhatabhesi mune yayo yekutanga fomu.
  2. Tevere, chikumbiro chakasvibirira chinotumirwa kupfumisa, kana zvichidikanwa. Iwe unogona kuwedzera chikumbiro chekutanga nedata zvese kubva kune ekunze masevhisi uye kubva pakuchengetedza. Muvhunzo wakafumiswa unozochengetwawo mudhatabhesi.
  3. Iyo muongorori basa inotangwa, iyo inotora yakafumiswa mubvunzo sekuisa uye inoburitsa mhinduro, iyo zvakare inonyorerwa kune yekuchengetedza.

Isu takasarudza kushandisa MongoDB sechichengetedzo muhurongwa hwedu nekuda kwegwaro-rinotungamirwa chengetedzo yedata mumhando yemagwaro eJSON, sezvo masevhisi ekupfumisa, kusanganisira chikumbiro chepakutanga, akaunganidza data rese kuburikidza neRST controllers.

Saka, takava nemaawa XNUMX ekushandisa chikuva. Isu takagovera mabasa zvakabudirira; nhengo yega yega yechikwata yaive neyayo nzvimbo yebasa muprojekiti yedu:

  1. Pamberi-yekupedzisira admin mapaneru ebasa remuongorori, kuburikidza neaaigona kudhawunirodha mitemo kubva kushanduro yekudzora sisitimu yezvinyorwa zvakanyorwa, sarudza sarudzo dzekupfumisa data rekuisa uye kugadzirisa zvinyorwa zvemitemo online.
  2. Backend admin, kusanganisira REST API yekumberi uye kubatanidzwa neVCS.
  3. Kumisikidza zvivakwa muGoogle Cloud uye kugadzira sevhisi yekupfumisa sosi data.
  4. A module yekubatanidza iyo admin application neServerless framework yekuzotevera kutumirwa kwemitemo.
  5. Scripts yemitemo yekuedza kushanda kwehurongwa hwose uye kuunganidzwa kweanalytics pazvikumbiro zvinouya (zvisarudzo zvakaitwa) zvekuratidzira kwekupedzisira.

Ngatitangei kurongeka.

Yedu yekumberi yakanyorwa muAngular 7 tichishandisa banking UI Kit. Iyo yekupedzisira vhezheni ye admin panel yaitaridzika seizvi:

Magadzirirwo atakaita gore FaaS mukati meKubernetes uye takahwina iyo Tinkoff hackathon
Sezvo pakanga paine nguva shoma, takaedza kuita basa rinokosha chete. Kuti uise basa muboka reKubernetes, zvaive zvakakodzera kuti usarudze chiitiko (sevhisi iyo mutemo unofanirwa kuisirwa mugore) uye kodhi yebasa rinoshandisa pfungwa yekuita sarudzo. Pakutumirwa kwega kwega kwemutemo webasa rakasarudzwa, takanyora chinyorwa chechiitiko ichi. Mune admin panel iwe unogona kuona matanda ezviitiko zvese.

Yese kodhi yebasa yakachengetwa mune iri kure Git repository, iyo zvakare yaifanira kuiswa mune admin panel. Kushandura kodhi, mabasa ese akachengetwa mumapazi akasiyana eiyo repository. Iyo admin panel inopawo kugona kugadzirisa kune zvinyorwa zvakanyorwa, kuitira kuti usati waisa basa pakugadzira, haugone kungotarisa kodhi yakanyorwa, asi zvakare kuita shanduko dzinodiwa.

Magadzirirwo atakaita gore FaaS mukati meKubernetes uye takahwina iyo Tinkoff hackathon
Pamusoro pemabasa emitemo, isu takaitawo kugona kupfumisa zvishoma nezvishoma iyo sosi data tichishandisa Enrichment mabasa, iyo kodhi yaive zvakare zvinyorwa umo zvaikwanisika kuenda kunzvimbo yekuchengetera data, kufonera wechitatu-bato masevhisi uye kuita masvomhu ekutanga. . Kuti tiratidze mhinduro yedu, isu takaverenga chiratidzo chezodiac chemutengi akasiya chikumbiro uye akafunga nharembozha yake achishandisa yechitatu-bato REST sevhisi.

Iyo yekumashure yepuratifomu yakanyorwa muJava uye yakashandiswa seSpring Boot application. Isu takatanga kuronga kushandisa Postgres kuchengetedza admin data, asi, sechikamu chehackathon, takasarudza kuzviganhurira kune iri nyore H2 kuitira kuchengetedza nguva. Pakumashure, kubatanidzwa neBitbucket kwakashandiswa kushandura bvunzo dzekusimudzira mabasa uye kutonga zvinyorwa. Kubatanidzwa neGit repositories kure, isu takashandisa JGit raibhurari, inova rudzi rwekuputira pamusoro pemirairo yeCLI, ichikubvumidza kuti uite chero git mirairo uchishandisa iri nyore software interface. Saka isu takanga tine mbiri dzakasiyana dzekuchengetedza mabasa uye mitemo, uye zvese zvinyorwa zvakakamurwa kuita madhairekitori. Kuburikidza neUI zvaigoneka kusarudza yazvino kuzvipira kwechinyorwa chebazi rekupokana renzvimbo. Paunenge uchiita shanduko kukodhi kuburikidza nepaneru ye admin, kuzvipira kweiyo yakashandurwa kodhi yakagadzirwa munzvimbo dziri kure.

Kuti tishandise pfungwa yedu, taida zvivakwa zvakakodzera. Isu takafunga kuendesa yedu Kubernetes cluster mugore. Sarudzo yedu yaive Google Cloud Platform. Iyo Fission serverless framework yakaiswa pane Kubernetes cluster, iyo yatakaisa muGcloud. Pakutanga, iyo sosi yekuvandudza data sevhisi yakaitwa seyakaparadzana Java application yakaputirwa muPod mukati me k8s cluster. Asi mushure mekutanga kuratidzwa kweprojekiti yedu pakati pehackathon, isu takakurudzirwa kuita kuti Enrichment sevhisi iwedzere kuchinjika kuti ipe mukana wekusarudza nzira yekupfumisa iyo mbishi data yezvikumbiro zvinouya. Uye isu takanga tisina sarudzo kunze kwekuita sevhisi yekupfumisa zvakare Serverless.

Kuti tishande neFission, takashandisa Fission CLI, iyo inofanirwa kuiswa pamusoro peKubernetes CLI. Kuisa mabasa muk8s cluster iri nyore; iwe unongoda kupa nzira yemukati uye ingress kune basa kuti ubvumire inouya traffic kana kupinda kunze kwesumbu kuchidiwa. Kuendesa basa rimwe chete kazhinji hakutore kupfuura masekonzi gumi.

Mhedziso yekupedzisira yeprojekiti uye kupfupisa

Kuratidza kuti sisitimu yedu inoshanda sei, takaisa fomu rakapfava pane iri kure server kwaunogona kuendesa chikumbiro chechimwe chezvigadzirwa zvebhangi. Kuti ukumbire, waifanira kuisa mainitials ako, zuva rekuzvarwa uye nhamba yefoni.

Dhata kubva kufomu yemutengi yakaenda kune controller, iyo panguva imwe chete yakatumira zvikumbiro zvemitemo yese iripo, yakambopfumisa iyo data maererano neyakatsanangurwa mamiriro, uye akaichengeta mune imwechete yekuchengetedza. Pakazara, takaisa mabasa matatu anoita sarudzo pazvikumbiro zvinouya uye masevhisi mana ekuvandudza data. Mushure mekuendesa chikumbiro, mutengi akagamuchira sarudzo yedu:

Magadzirirwo atakaita gore FaaS mukati meKubernetes uye takahwina iyo Tinkoff hackathon
Pamusoro pekuramba kana kubvumidzwa, mutengi akagamuchirawo runyoro rwezvimwe zvigadzirwa, zvikumbiro zvatakatumira zvakafanana. Aya ndiwo maitiro atakaratidza mukana wekuyambuka-kutengesa mupuratifomu yedu.

Paive ne3 yakazara yezvigadzirwa zvebhangi zvemanyepo zvaivepo:

  • Credit.
  • Toy Toy
  • Mortgage.

Panguva yekuratidzira, takatumira mabasa akagadzirirwa uye zvinyorwa zvekusimudzira zvesevhisi yega yega.

Mutemo wega wega waida seti yayo yedata rekuisa. Saka, kuti tibvumire chikwereti, takaverenga chiratidzo chemutengi zodiac uye tikabatanidza izvi nemafungiro ekarenda yemwedzi. Kuti tibvumire toyi, takatarisa kuti mutengi akange asvika zera reruzhinji, uye kuti tipe chikwereti, takatumira chikumbiro kune yekunze yakavhurika sevhisi yekuona iyo cellular opareta, uye sarudzo yakaitwa pazviri.

Takaedza kuita kuti kuratidzira kwedu kunakidze uye kupindirana, munhu wese aripo aigona kuenda kune fomu redu uye kutarisa kuwanikwa kwemasevhisi edu ekunyepedzera kwavari. Uye pakupera chaiko kwemharidzo, takaratidzira ongororo yezvikumbiro zvakagamuchirwa, izvo zvakaratidza kuti vanhu vangani vakashandisa basa redu, nhamba yemvumo, uye zvakarambwa.

Kuunganidza analytics pamhepo, isu takaisa zvakare yakavhurika sosi BI chishandiso Metabase ndokuiputira kune yedu yekuchengetedza unit. Metabase inokutendera iwe kuti uvake masikirini ane analytics pane iyo data inotifarira; iwe unongoda kunyoresa chinongedzo kune dhatabhesi, sarudza matafura (munyaya yedu, kuunganidzwa kwedata, sezvo takashandisa MongoDB), uye tsanangura minda yatinofarira. .

Nekuda kweizvozvo, takawana yakanaka prototype yepuratifomu yekuita sarudzo, uye panguva yekuratidzira, mutereri wega wega aigona kuzviongorora ega kuita kwayo. Mhinduro inonakidza, yakapedzwa prototype uye kuratidzwa kwakabudirira kwakatibvumira kukunda, kunyangwe kukwikwidza kwakasimba kubva kune mamwe zvikwata. Ndine chokwadi chekuti chinyorwa chinonakidza chinogonawo kunyorwa pachirongwa chechikwata chega chega.

Source: www.habr.com

Voeg