Mar a rinneamar scamall FaaS taobh istigh de Kubernetes agus bhuaigh muid an hackathon Tinkoff

Mar a rinneamar scamall FaaS taobh istigh de Kubernetes agus bhuaigh muid an hackathon Tinkoff
Ag tosú anuraidh, thosaigh ár gcuideachta ag eagrú hackathons. D’éirigh thar barr leis an gcéad chomórtas dá leithéid, scríobhamar faoi i Airteagal. Tharla an dara hacathon i mí Feabhra 2019 agus níor éirigh chomh maith sin leis. Maidir leis na spriocanna a bhfuil an dara ceann nach bhfuil chomh fada ó shin писал eagraí.

Tugadh tasc sách suimiúil do na rannpháirtithe le saoirse iomlán maidir le stoic teicneolaíochta a roghnú lena chur i bhfeidhm. Bhí sé riachtanach ardán cinnteoireachta a chur i bhfeidhm maidir le himscaradh áisiúil feidhmeanna scórála custaiméirí a d'fhéadfadh oibriú le sreabhadh tapa iarratas, ualaí trom a sheasamh, agus bhí an córas féin inscálaithe go héasca.

Is tasc neamhfhánach é an tasc agus is féidir é a réiteach ar go leor bealaí, mar a bhí muid cinnte de le linn na léirithe deiridh de thionscadail na rannpháirtithe a léiriú. Bhí 6 fhoireann de 5 duine ag an hackathon, bhí tionscadail mhaith ag gach rannpháirtí, ach d'éirigh lenár n-ardán a bheith ar an gceann is iomaíche. Tá tionscadal an-suimiúil againn, ar mhaith liom labhairt faoi san Airteagal seo.

Is ardán é ár réiteach atá bunaithe ar ailtireacht Serverless taobh istigh de Kubernetes, rud a laghdaíonn an t-am a thógann sé gnéithe nua a thabhairt chuig táirgeadh. Ligeann sé d'anailísithe cód a scríobh i dtimpeallacht atá áisiúil dóibh agus é a imscaradh i dtáirgeadh gan rannpháirtíocht innealtóirí agus forbróirí.

Cad is scóráil

Tá scóráil custaiméirí ag Tinkoff.ru, cosúil le go leor cuideachtaí nua-aimseartha. Is córas measúnaithe custaiméara é an scóráil atá bunaithe ar mhodhanna staidrimh anailíse sonraí.

Mar shampla, casann cliant chugainn le hiarratas chun iasacht a eisiúint dó, nó cuntas fiontraí aonair a oscailt linn. Má tá sé beartaithe againn iasacht a eisiúint dó, ansin ní mór dúinn a shócmhainneacht a mheas, agus más fiontraí aonair an cuntas, ansin ní mór dúinn a bheith cinnte nach ndéanfaidh an cliant idirbhearta calaoiseacha.

Is samhlacha matamaitice an bunús le cinntí den sórt sin a dhéanamh a dhéanann anailís ar na sonraí ón bhfeidhmchlár féin agus ar na sonraí ónár stóráil. Chomh maith le scóráil, is féidir modhanna staidrimh comhchosúla a úsáid freisin chun moltaí aonair a ghiniúint do tháirgí nua dár gcliaint.

Is féidir le modh measúnaithe den sórt sin glacadh le héagsúlacht sonraí ionchuir. Agus ag pointe éigin is féidir linn paraiméadar nua a chur leis an ionchur, a ardóidh, bunaithe ar thorthaí anailíse ar shonraí stairiúla, ráta comhshó úsáid na seirbhíse.

Tá saibhreas sonraí againn faoi chaidrimh le custaiméirí, agus tá méid na faisnéise seo ag fás i gcónaí. Chun scóráil chun oibre, éilíonn próiseáil sonraí freisin rialacha (nó samhlacha matamaitice) a ligeann duit cinneadh a dhéanamh go tapa cé a cheadóidh iarratas, cé a dhiúltóidh, agus cé a thairgeann cúpla táirge eile, ag measúnú a n-ús féideartha.

Don tasc atá ar láimh, úsáidimid córas cinnteoireachta speisialaithe cheana féin IBM WebSphere ILOG JRules BRMS, a chinneann, bunaithe ar na rialacha arna leagan síos ag anailísithe, teicneolaithe agus forbróirí, cibé acu a cheadú nó a dhiúltú ar tháirge baincéireachta ar leith don chliant.

Tá go leor réitigh réamhdhéanta ar an margadh, idir mhúnlaí scórála agus córais cinnteoireachta iad féin. Bainimid úsáid as ceann de na córais seo inár gcuideachta. Ach tá an gnó ag fás, ag éagsúlú, tá méadú ag teacht ar líon na gcliant agus ar líon na dtáirgí a thairgtear, agus in éineacht leis seo, tá smaointe ag teacht chun cinn maidir le conas an próiseas cinnteoireachta atá ann cheana féin a fheabhsú. Cinnte tá go leor smaointe ag daoine atá ag obair leis an gcóras atá ann cheana féin maidir le conas é a dhéanamh níos simplí, níos fearr, níos áisiúla, ach uaireanta bíonn smaointe ón taobh amuigh úsáideach. Eagraíodh an Hacaton Nua agus é mar aidhm aige smaointe fónta a bhailiú.

Tasc

Bhí an hackathon ar siúl ar 23 Feabhra. Tairgeadh tasc comhraic do na rannpháirtithe: córas cinnteoireachta a fhorbairt a raibh air roinnt coinníollacha a chomhlíonadh.

Dúradh linn conas a fheidhmíonn an córas atá ann faoi láthair agus cad iad na deacrachtaí a thagann chun cinn le linn a fheidhmiú, chomh maith leis na spriocanna gnó ar cheart don ardán forbartha a shaothrú. Ní mór go mbeadh am tapa go dtí an margadh ag an gcóras chun rialacha a fhorbairt ionas go gcuirfear cód oibre na n-anailísithe i bhfeidhm chomh tapa agus is féidir. Agus maidir le sreabhadh na n-iarratas isteach, ba cheart go mbeadh an t-am cinnteoireachta chomh híseal agus is féidir. Chomh maith leis sin, ní mór go mbeadh cumas tras-díola ag an gcóras atá á fhorbairt chun deis a thabhairt don chliant táirgí eile de chuid na cuideachta a cheannach má tá siad faofa againn agus má tá suim ionchasach acu ón gcliant.

Is léir go bhfuil sé dodhéanta tionscadal réidh le scaoileadh a scríobh thar oíche a rachaidh i mbun táirgthe go cinnte, agus tá sé deacair go leor an córas iomlán a chlúdach, agus mar sin iarradh orainn cuid de ar a laghad a chur i bhfeidhm. Bunaíodh roinnt riachtanas nach mór don fhréamhshamhail a shásamh. Bhíothas in ann iarracht a dhéanamh an dá riachtanas a chlúdach ina n-iomláine, agus oibriú go mion ar chodanna aonair den ardán a bhí á fhorbairt.

Maidir leis an teicneolaíocht, tugadh saoirse iomlán rogha do na rannpháirtithe go léir. Bhíothas in ann aon choincheapa agus teicneolaíochtaí a úsáid: Sruthú sonraí, foghlaim meaisín, foinsiú imeachtaí, sonraí móra agus eile.

Ár réiteach

Tar éis roinnt tobsmaointeoireachta, chinneamar go mbeadh réiteach FaaS oiriúnach chun an tasc a chur i gcrích.

Ar mhaithe leis an réiteach seo, bhí sé riachtanach creat oiriúnach Serverless a aimsiú chun rialacha an chórais cinnteoireachta a bhí á fhorbairt a chur chun feidhme. Ós rud é go n-úsáideann Tinkoff Kubernetes go gníomhach le haghaidh bainistíocht bonneagair, d'fhéachamar ar roinnt réitigh réamhdhéanta bunaithe air; inseoidh mé tuilleadh duit faoi níos déanaí.

Chun teacht ar an réiteach is éifeachtaí, d'fhéachamar ar an táirge atá á fhorbairt trí shúile a úsáideoirí. Is iad príomhúsáideoirí ár gcóras anailísithe a bhfuil baint acu le forbairt rialacha. Ní mór na rialacha a imscaradh chuig an bhfreastalaí, nó, mar atá inár gcás, a imscaradh sa scamall, le haghaidh cinnteoireachta ina dhiaidh sin. Ó thaobh anailísí de, tá cuma mar seo ar an sreabhadh oibre:

  1. Scríobhann an anailísí script, riail, nó samhail ML bunaithe ar shonraí ón stóras. Mar chuid den hackathon, shocraigh muid Mongodb a úsáid, ach níl an rogha córas stórála sonraí tábhachtach anseo.
  2. Tar éis na rialacha forbartha ar shonraí stairiúla a thástáil, uaslódálann an t-anailísí a chód chuig an bpainéal riaracháin.
  3. Chun leagan a chinntiú, rachaidh an cód go léir chuig stórtha Git.
  4. Tríd an bpainéal riaracháin beifear in ann an cód a imscaradh sa scamall mar mhodúl feidhme ar leith gan Freastalaí.

Caithfidh sonraí tosaigh ó chliaint dul trí sheirbhís speisialaithe Saibhrithe atá deartha chun an t-iarratas tosaigh a shaibhriú le sonraí ón stóras. Bhí sé tábhachtach an tseirbhís seo a chur i bhfeidhm sa chaoi is go n-oibreodh sé le stór amháin (as a dtógann an t-anailísí sonraí agus rialacha á bhforbairt) chun struchtúr sonraí aontaithe a choinneáil.

Fiú roimh an hackathon, shocraigh muid ar an gcreat Serverless a d'úsáidfimid. Sa lá atá inniu ann tá go leor teicneolaíochtaí ar an margadh a chuireann an cur chuige seo i bhfeidhm. Is iad na réitigh is coitianta laistigh d'ailtireacht Kubernetes ná Fission, Open FaaS agus Kubeless. Tá fiú alt maith lena gcur síos agus anailís chomparáideach.

Tar éis dúinn na buntáistí agus na míbhuntáistí go léir a mheá, roghnaigh muid Scagadh. Tá an creat Freastalaí seo éasca go leor le bainistiú agus comhlíonann sé riachtanais an taisc.

Chun oibriú le hEisimint, ní mór duit dhá choincheap bhunúsacha a thuiscint: feidhm agus timpeallacht. Is éard is feidhm ann ná píosa cód a scríobhtar i gceann de na teangacha a bhfuil timpeallacht Fheisiúcháin ann ina leith. Liosta de na timpeallachtaí a cuireadh i bhfeidhm laistigh den chreat seo áirítear Python, JS, Go, JVM agus go leor teangacha agus teicneolaíochtaí móréilimh eile.

Tá an t-eamhnú in ann feidhmeanna atá roinnte ina roinnt comhad a chomhlíonadh, agus iad réamhphacáistithe i gcartlann. Áirithítear oibriú an Imeasctha i mbraisle Kubernetes le pods speisialaithe, atá á mbainistiú ag an gcreat féin. Chun idirghníomhú le pods braisle, ní mór a bealach féin a shannadh do gach feidhm, agus is féidir leat paraiméadair GET a phasáil nó comhlacht iarratais i gcás iarratais POST.

Mar thoradh air sin, bhí sé beartaithe againn réiteach a fháil a chuirfeadh ar chumas anailísithe scripteanna rialacha forbartha a imscaradh gan rannpháirtíocht innealtóirí agus forbróirí. Cuireann an cur chuige a thuairiscítear deireadh leis an ngá atá le forbróirí cód anailísí a athscríobh i dteanga eile. Mar shampla, maidir leis an gcóras cinnteoireachta atá in úsáid againn faoi láthair, ní mór dúinn rialacha a scríobh i dteicneolaíochtaí agus i dteangacha an-speisialaithe, a bhfuil raon feidhme an-teoranta acu, agus tá spleáchas láidir ar fhreastalaí an fheidhmchláir freisin, ós rud é go bhfuil gach dréacht-rialacha bainc. a imscartar i dtimpeallacht amháin. Mar thoradh air sin, chun rialacha nua a úsáid is gá an córas iomlán a scaoileadh.

Sa réiteach atá beartaithe againn, níl aon ghá le rialacha a scaoileadh; is féidir an cód a úsáid go héasca ach cliceáil ar chnaipe. Chomh maith leis sin, cuireann bainistíocht bonneagair i Kubernetes ar do chumas gan smaoineamh ar ualach agus ar scálú; réitítear fadhbanna den sórt sin as an mbosca. Agus cuireann úsáid stóras sonraí amháin deireadh leis an ngá atá le sonraí fíor-ama a chur i gcomparáid le sonraí stairiúla, rud a shimplíonn obair an anailísí.

Cad a fuair muid

Ó tháinig muid go dtí an hackathon le réiteach réidh de dhéantús an duine (inár fantasies), ní raibh le déanamh againn ach ár smaointe go léir a thiontú ina línte cód.

Is í an eochair do rathúlacht ag aon hackathon ná ullmhúchán agus plean dea-scríofa. Mar sin, ba é an chéad rud a rinneamar ná cinneadh a dhéanamh ar na modúil a bheadh ​​inár n-ailtireacht chórais agus cad iad na teicneolaíochtaí a d'úsáidfimid.

Seo a leanas ailtireacht ár dtionscadal:

Mar a rinneamar scamall FaaS taobh istigh de Kubernetes agus bhuaigh muid an hackathon Tinkoff
Taispeánann an léaráid seo dhá phointe iontrála, an anailísí (príomhúsáideoir ár gcóras) agus an cliant.

Tá an próiseas oibre struchtúrtha mar seo. Forbraíonn an anailísí feidhm riail agus feidhm shaibhrithe sonraí dá mhúnla, stórálann sé a chód i stór Git, agus imscarann ​​sé a mhúnla chuig an scamall tríd an bhfeidhmchlár riarthóra. Déanaimis machnamh ar an gcaoi a dtabharfar an fheidhm imlonnaithe agus déanfaimid cinntí ar iarratais a thagann isteach ó chliaint:

  1. Líonann an cliant foirm ar an suíomh Gréasáin agus cuireann sé a iarratas chuig an rialaitheoir. Tagann iarratas ar gá cinneadh a dhéanamh ina leith chuig ionchur an chórais agus déantar é a thaifeadadh sa bhunachar sonraí ina bhunfhoirm.
  2. Ansin, seoltar an t-iarratas amh le haghaidh saibhrithe, más gá. Is féidir leat an t-iarratas tosaigh a fhorlíonadh le sonraí ó sheirbhísí seachtracha agus ón stóras araon. Stóráiltear an fiosrúchán saibhrithe sa bhunachar sonraí freisin.
  3. Seoltar feidhm an anailísí, a ghlacann ceist shaibhrithe mar ionchur agus a tháirgeann réiteach, a scríobhtar chuig an stóráil freisin.

Shocraigh muid MongoDB a úsáid mar stóras inár gcóras mar gheall ar stóráil sonraí atá dírithe ar dhoiciméid i bhfoirm doiciméid JSON, ós rud é gur chomhiomlánaigh na seirbhísí saibhrithe, lena n-áirítear an bhuniarratas, na sonraí go léir trí rialtóirí REST.

Mar sin, bhí XNUMX uair againn chun an t-ardán a chur i bhfeidhm. D’éirigh go maith linn na róil a dháileadh; bhí a réimse freagrachta féin ag gach ball foirne inár dtionscadal:

  1. Painéil riaracháin tosaigh le haghaidh obair an anailísí, trína bhféadfadh sé rialacha a íoslódáil ón gcóras rialaithe leagan de scripteanna scríofa, roghanna a roghnú chun sonraí ionchuir a shaibhriú agus scripteanna rialacha a chur in eagar ar líne.
  2. Riarthóir backend, lena n-áirítear REST API don tosaigh agus comhtháthú le VCS.
  3. Bonneagar a bhunú in Google Cloud agus seirbhís a fhorbairt chun sonraí foinse a shaibhriú.
  4. Modúl chun an feidhmchlár riaracháin a chomhtháthú leis an gcreat Serverless chun rialacha a imscaradh ina dhiaidh sin.
  5. Scripteanna rialacha chun feidhmíocht an chórais iomláin a thástáil agus anailísíocht a chomhiomlánú ar iarratais isteach (cinntí déanta) don léiriú deiridh.

A ligean ar tús in ord.

Scríobhadh ár n-aghaidh tosaigh in uilleach 7 ag baint úsáide as an trealamh UI baincéireachta. Bhí cuma mar seo ar leagan deiridh an phainéil riaracháin:

Mar a rinneamar scamall FaaS taobh istigh de Kubernetes agus bhuaigh muid an hackathon Tinkoff
Ós rud é nach raibh mórán ama ann, rinneamar iarracht gan ach an phríomhfheidhmíocht a chur i bhfeidhm. Chun feidhm a imscaradh i mbraisle Kubernetes, bhí sé riachtanach imeacht a roghnú (seirbhís a bhfuil gá le riail a imscaradh sa scamall) agus cód na feidhme a chuireann an loighic cinnteoireachta i bhfeidhm. Maidir le gach imscaradh riail don tseirbhís roghnaithe, scríobhamar loga den imeacht seo. Sa phainéal riaracháin d'fhéadfá logaí de na himeachtaí go léir a fheiceáil.

Stóráladh gach cód feidhme i stór Git cianda, a bhí le socrú sa phainéal riaracháin freisin. Chun an cód a leagan, coinníodh na feidhmeanna go léir i mbrainsí éagsúla den stór. Soláthraíonn an painéal riaracháin an cumas freisin coigeartuithe a dhéanamh ar scripteanna scríofa, ionas gur féidir leat ní hamháin an cód scríofa a sheiceáil, ach na hathruithe riachtanacha a dhéanamh sula n-imscartar feidhm don táirgeadh.

Mar a rinneamar scamall FaaS taobh istigh de Kubernetes agus bhuaigh muid an hackathon Tinkoff
Chomh maith leis na feidhmeanna rialacha, chuireamar i bhfeidhm freisin an cumas na sonraí foinse a shaibhriú de réir a chéile ag baint úsáide as feidhmeanna Saibhrithe, a raibh an cód freisin scripteanna inar féidir dul chuig an stóras sonraí, glaoch ar sheirbhísí tríú páirtí agus réamh-ríomh a dhéanamh. . Chun ár réiteach a léiriú, rinneamar comhartha stoidiaca an chliaint a d'fhág an t-iarratas a ríomh agus a chinn a oibreoir soghluaiste ag baint úsáide as seirbhís REST tríú páirtí.

Scríobhadh inneall an ardáin i Java agus cuireadh i bhfeidhm é mar fheidhmchlár Spring Boot. Bhí sé beartaithe againn ar dtús Postgres a úsáid chun sonraí riaracháin a stóráil, ach, mar chuid den hackathon, bheartaíomar sinn féin a theorannú go H2 simplí chun am a shábháil. Ar an inneall, cuireadh comhtháthú le Bitbucket i bhfeidhm chun feidhmeanna saibhrithe na gceisteanna agus na scripteanna rialacha a leagan. Le haghaidh comhtháthú le stórtha iargúlta Git, d'úsáideamar Leabharlann JGit, atá ina chineál fillteáin thar orduithe CLI, rud a ligeann duit aon treoracha git a fhorghníomhú ag baint úsáide as comhéadan bogearraí áisiúil. Mar sin bhí dhá stór ar leith againn le haghaidh feidhmeanna agus rialacha saibhrithe, agus roinneadh na scripteanna go léir ina n-eolairí. Tríd an Chomhéadain bhíothas in ann an tiomantas is déanaí de script brainse treallach den stór a roghnú. Nuair a rinneadh athruithe ar an gcód tríd an bpainéal riaracháin, cruthaíodh gealltanais an chóid athraithe i stórtha cianda.

Chun ár smaoineamh a chur i bhfeidhm, bhí bonneagar oiriúnach ag teastáil uainn. Shocraigh muid ár mbraisle Kubernetes a imscaradh sa scamall. Ba é an rogha a bhí againn ná Google Cloud Platform. Suiteáladh an creat gan fhreastalaí Fission ar bhraisle Kubernetes, a d'imlonníomar in Gcloud. Ar dtús, cuireadh an tseirbhís saibhrithe sonraí foinse i bhfeidhm mar iarratas Java ar leith fillte i Pod taobh istigh den bhraisle k8s. Ach tar éis réamhléiriú ar ár dtionscadal i lár an hackathon, moladh dúinn an tseirbhís Saibhrithe a dhéanamh níos solúbtha chun an deis a sholáthar a roghnú conas sonraí amh na n-iarratas isteach a shaibhriú. Agus ní raibh aon rogha againn ach an tseirbhís saibhrithe a dhéanamh gan Fhreastalaí freisin.

Chun oibriú le Fission, d'úsáideamar an Fission CLI, a chaithfear a shuiteáil ar bharr an Kubernetes CLI. Tá sé simplí go leor feidhmeanna a imscaradh i gcnuasach k8s; ní gá duit ach bealach inmheánach a shannadh agus bealach isteach chuig an bhfeidhm chun trácht ag teacht isteach a cheadú má tá rochtain lasmuigh den bhraisle ag teastáil. De ghnáth ní thógann sé níos mó ná 10 soicind feidhm amháin a imscaradh.

Cur i láthair deiridh an tionscadail agus achoimre

Chun a léiriú conas a oibríonn ár gcóras, chuireamar foirm shimplí ar chianfhreastalaí inar féidir leat iarratas a chur isteach ar cheann de tháirgí an bhainc. Chun iarratas a dhéanamh, bhí ort do chuid ceannlitreacha, dáta breithe agus uimhir theileafóin a chur isteach.

Chuaigh sonraí ón bhfoirm chliaint chuig an rialtóir, a sheol iarratais ar na rialacha go léir a bhí ar fáil ag an am céanna, tar éis na sonraí a shaibhriú roimhe seo de réir na gcoinníollacha sonraithe, agus iad a shábháil i stór coiteann. San iomlán, chuireamar trí fheidhm i bhfeidhm a dhéanann cinntí ar iarratais isteach agus 4 sheirbhís saibhrithe sonraí. Tar éis an t-iarratas a chur isteach, fuair an cliant ár gcinneadh:

Mar a rinneamar scamall FaaS taobh istigh de Kubernetes agus bhuaigh muid an hackathon Tinkoff
Chomh maith le diúltú nó formheas, fuair an cliant liosta de tháirgí eile freisin, iarratais a sheolamar go comhthreomhar. Seo mar a léirigh muid an fhéidearthacht tras-díol inár n-ardán.

Bhí 3 tháirge bainc bhréige san iomlán ar fáil:

  • Creidmheas.
  • Toy
  • Morgáiste.

Le linn an taispeántais, rinneamar feidhmeanna ullmhaithe agus scripteanna saibhrithe a imscaradh do gach seirbhís.

Bhí a sraith sonraí ionchuir féin ag teastáil ó gach riail. Mar sin, chun morgáiste a cheadú, rinneamar comhartha stoidiaca an chliaint a ríomh agus cheangail sé seo le loighic an fhéilire gealaí. Chun bréagán a cheadú, rinneamar seiceáil go raibh aois an tromlaigh bainte amach ag an gcliant, agus chun iasacht a eisiúint, chuireamar iarratas chuig seirbhís sheachtrach oscailte chun an t-oibreoir ceallach a chinneadh, agus rinneadh cinneadh ina leith.

Rinneamar iarracht ár dtaispeántas a dhéanamh suimiúil agus idirghníomhach, d'fhéadfadh gach duine a bhí i láthair dul chuig ár bhfoirm agus seiceáil an raibh ár seirbhísí ficseanúla ar fáil dóibh. Agus ag deireadh an cur i láthair, léirigh muid anailísíocht na n-iarratas a fuarthas, a léirigh cé mhéad duine a d'úsáid ár seirbhís, líon na gceaduithe, agus diúltaithe.

Chun anailísíocht a bhailiú ar líne, chuireamar uirlis foinse oscailte BI in úsáid freisin Metabase agus screwed chuig ár n-aonad stórála é. Ligeann Metabase duit scáileáin a thógáil le hanailís ar na sonraí a bhfuil suim againn iontu; ní gá duit ach nasc a chlárú leis an mbunachar sonraí, táblaí a roghnú (ár gcás, bailiúcháin sonraí, ó d’úsáideamar MongoDB), agus sonraigh na réimsí spéise dúinn. .

Mar thoradh air sin, fuair muid fréamhshamhail maith ardán cinnteoireachta, agus le linn an taispeántais, d'fhéadfadh gach éisteoir a fheidhmíocht a sheiceáil go pearsanta. Thug réiteach suimiúil, fréamhshamhail críochnaithe agus taispeántas rathúil deis dúinn an bua a fháil, in ainneoin iomaíocht láidir ó fhoirne eile. Táim cinnte gur féidir alt suimiúil a scríobh freisin ar thionscadal gach foirne.

Foinse: will.com

Add a comment