Momwe tidapangira mtambo FaaS mkati mwa Kubernetes ndikupambana Tinkoff hackathon

Momwe tidapangira mtambo FaaS mkati mwa Kubernetes ndikupambana Tinkoff hackathon
Kuyambira chaka chatha, kampani yathu idayamba kukonza ma hackathon. Mpikisano woyamba wotere unali wopambana kwambiri, tinalemba za izo mu nkhani. Hackathon yachiwiri inachitika mu February 2019 ndipo sizinachite bwino. Za zolinga za kugwira chomaliza osati kale kwambiri analemba wolinganiza.

Ophunzirawo adapatsidwa ntchito yosangalatsa kwambiri yokhala ndi ufulu wonse pakusankha kuchuluka kwaukadaulo kuti akwaniritse. Zinali zofunikira kukhazikitsa nsanja yopangira zisankho kuti atumize bwino ntchito zogoletsa makasitomala zomwe zitha kugwira ntchito mwachangu, kupirira zolemetsa zolemetsa, ndipo dongosolo lokhalo linali losavuta kuwonongeka.

Ntchitoyi si yaing'ono ndipo ikhoza kuthetsedwa m'njira zambiri, monga momwe tidakhudzidwira panthawi yowonetsera mawonetsero omaliza a ntchito za otenga nawo mbali. Panali magulu 6 a anthu 5 pa hackathon, onse omwe anali nawo anali ndi ntchito zabwino, koma nsanja yathu inakhala yopikisana kwambiri. Tili ndi polojekiti yosangalatsa kwambiri, yomwe ndikufuna kuti tikambirane m'nkhaniyi.

Yankho lathu ndi nsanja yozikidwa pa zomangamanga za Serverless mkati mwa Kubernetes, zomwe zimachepetsa nthawi kuti zibweretse zatsopano pakupanga. Imalola akatswiri kuti alembe ma code m'malo abwino kwa iwo ndikuyiyika pakupanga popanda kutenga nawo mbali mainjiniya ndi opanga.

Kugoletsa ndi chiyani

Tinkoff.ru, monga makampani ambiri amakono, ali ndi zigoli zamakasitomala. Scoring ndi njira yowunikira makasitomala potengera njira zowerengera za data.

Mwachitsanzo, kasitomala akutembenukira kwa ife ndi pempho loti amupatse ngongole, kapena kutsegula akaunti yabizinesi payekha. Ngati tikukonzekera kumupatsa ngongole, ndiye kuti tiyenera kuwunika momwe alili, ndipo ngati akauntiyo ndi wabizinesi payekha, ndiye kuti tikuyenera kutsimikiza kuti kasitomala sangachite zachinyengo.

Maziko opangira zisankho zotere ndi masamu a masamu omwe amasanthula zonse zomwe zili mu pulogalamuyo komanso zomwe timasungira. Kuphatikiza pa kugoletsa, njira zowerengera zofananira zitha kugwiritsidwanso ntchito popanga malingaliro amunthu pazinthu zatsopano kwa makasitomala athu.

Njira yowunikirayi imatha kuvomereza mitundu yosiyanasiyana ya data. Ndipo panthawi ina tikhoza kuwonjezera parameter yatsopano pazolowera, zomwe, pogwiritsa ntchito zotsatira za kusanthula pa mbiri yakale, zidzawonjezera kutembenuka kwa kugwiritsa ntchito ntchitoyo.

Tili ndi zambiri zokhudzana ndi ubale wamakasitomala, ndipo kuchuluka kwa chidziwitsochi kukukulirakulira nthawi zonse. Kuti zigoli zigwire ntchito, kukonza deta kumafunanso malamulo (kapena masamu) omwe amakulolani kusankha mwachangu yemwe angavomereze pulogalamuyo, yemwe mungakane, ndi yemwe angapatseko zinthu zina zingapo, ndikuwunika zomwe zingawasangalatse.

Pantchito yomwe tili nayo, timagwiritsa ntchito kale njira yapadera yopangira zisankho IBM WebSphere ILOG JRules BRMS, yomwe, malinga ndi malamulo omwe amaperekedwa ndi akatswiri, akatswiri a zamakono ndi opanga mapulogalamu, amasankha kuvomereza kapena kukana chinthu china cha banki kwa kasitomala.

Pali mayankho ambiri okonzeka pamsika, onse opangira zigoli ndi machitidwe opangira zisankho okha. Timagwiritsa ntchito imodzi mwamakinawa pakampani yathu. Koma bizinesi ikukula, kusiyanasiyana, kuchuluka kwa makasitomala komanso kuchuluka kwa zinthu zomwe zimaperekedwa zikuchulukirachulukira, ndipo pamodzi ndi izi, malingaliro akubwera amomwe mungasinthire zisankho zomwe zilipo. Ndithudi anthu omwe akugwira ntchito ndi dongosolo lomwe alipo ali ndi malingaliro ambiri a momwe angapangire kukhala kosavuta, bwino, kosavuta, koma nthawi zina malingaliro ochokera kunja ndi othandiza. New Hackathon inakonzedwa ndi cholinga chosonkhanitsa malingaliro abwino.

Ntchito

The hackathon inachitika pa February 23. Ophunzirawo adapatsidwa ntchito yolimbana ndi nkhondo: kupanga njira yopangira zisankho zomwe zimayenera kukwaniritsa zinthu zingapo.

Tinauzidwa momwe dongosolo lomwe lilipo likugwirira ntchito ndi zovuta zomwe zimachitika panthawi yogwira ntchito, komanso zolinga zamalonda zomwe nsanja yopangidwa iyenera kutsata. Dongosololi liyenera kukhala ndi nthawi yofulumira ku msika popanga malamulo kuti ma code ogwira ntchito a akatswiri azitha kupanga mwachangu momwe angathere. Ndipo pamayendedwe omwe akubwera, nthawi yopangira zisankho iyenera kukhala yochepa. Komanso, dongosolo lomwe likupangidwa liyenera kukhala ndi mphamvu zogulitsa zinthu zosiyanasiyana kuti apatse kasitomala mwayi wogula zinthu zina zamakampani ngati avomerezedwa ndi ife komanso ali ndi chidwi ndi kasitomala.

Zikuwonekeratu kuti ndizosatheka kulemba pulojekiti yokonzeka kumasulidwa usiku wonse yomwe idzapangidwe, ndipo ndizovuta kuphimba dongosolo lonse, choncho tinafunsidwa kuti tigwiritse ntchito gawo lina. Zofunikira zingapo zidakhazikitsidwa zomwe prototype iyenera kukwaniritsa. Zinali zotheka kuyesa zonse ziwiri kuti zikwaniritse zofunikira zonse, ndikugwira ntchito mwatsatanetsatane pazigawo za pulatifomu yomwe ikupangidwa.

Ponena za ukadaulo, onse omwe adatenga nawo gawo adapatsidwa ufulu wosankha. Zinali zotheka kugwiritsa ntchito malingaliro ndi matekinoloje aliwonse: Kusakatula kwa data, kuphunzira pamakina, kufufuza zochitika, deta yayikulu ndi zina.

Yathu yothetsera

Titakambirana pang'ono, tidaganiza kuti njira ya FaaS ingakhale yabwino kumaliza ntchitoyi.

Pa yankho ili, kunali kofunikira kupeza dongosolo loyenera la Serverless kuti ligwiritse ntchito malamulo a dongosolo lopangira zisankho lomwe likupangidwa. Popeza Tinkoff amagwiritsa ntchito Kubernetes mwachangu pakuwongolera zomangamanga, tidayang'ana mayankho angapo okonzeka kutengera izi; Ndikuuzani zambiri pambuyo pake.

Kuti tipeze yankho lothandiza kwambiri, tidayang'ana zomwe zidapangidwa kudzera m'maso mwa ogwiritsa ntchito. Ogwiritsa ntchito kwambiri dongosolo lathu ndi akatswiri omwe akukhudzidwa ndi chitukuko cha malamulo. Malamulowa ayenera kutumizidwa ku seva, kapena, monga momwe ziliri, kutumizidwa mumtambo, kuti apange chisankho chotsatira. Malinga ndi akatswiri, njira yogwirira ntchito ikuwoneka motere:

  1. Wofufuzayo amalemba script, lamulo, kapena chitsanzo cha ML kutengera deta kuchokera ku nyumba yosungiramo katundu. Monga gawo la hackathon, tinaganiza zogwiritsa ntchito Mongodb, koma kusankha njira yosungiramo deta sikofunikira pano.
  2. Pambuyo poyesa malamulo opangidwa pazidziwitso zakale, katswiriyo amaika code yake ku gulu la admin.
  3. Kuti muwonetsetse kuti zasinthidwa, ma code onse amapita ku Git repositories.
  4. Kupyolera mu gulu la admin zidzatheka kutumiza kachidindo mumtambo ngati gawo lapadera la Serverless module.

Zoyambira zoyambira kuchokera kwamakasitomala ziyenera kudutsa muntchito yapadera ya Enrichment yokonzedwa kuti iwonjezere pempho loyambira ndi data yochokera kumalo osungira. Zinali zofunikira kukhazikitsa ntchitoyi m'njira yoti idzagwire ntchito ndi malo amodzi (omwe katswiri amatenga deta popanga malamulo) kuti asunge deta yogwirizana.

Ngakhale isanayambe hackathon, tinaganiza za Serverless framework yomwe tidzagwiritse ntchito. Masiku ano pali umisiri wambiri pamsika womwe umagwiritsa ntchito njirayi. Mayankho odziwika kwambiri pamapangidwe a Kubernetes ndi Fission, Open FaaS ndi Kubeless. Pali ngakhale nkhani yabwino ndi kufotokozera kwawo komanso kusanthula kofananiza.

Titatha kuyeza zabwino zonse ndi zoyipa, tinasankha Kupereka. Izi Serverless chimango ndi yosavuta kuwongolera ndi kukwaniritsa zofunikira za ntchitoyo.

Kuti mugwire ntchito ndi Fission, muyenera kumvetsetsa mfundo ziwiri: ntchito ndi chilengedwe. Ntchito ndi kachidutswa kakang'ono kolembedwa m'chinenero chimodzi chomwe chili ndi malo a Fission. Mndandanda wa malo omwe akhazikitsidwa mkati mwa chimangochi zikuphatikiza Python, JS, Go, JVM ndi zilankhulo zina zambiri zodziwika bwino komanso matekinoloje.

Fission imathanso kuchita ntchito zogawika m'mafayilo angapo, zosungidwa kale kukhala zakale. Kugwira ntchito kwa Fission mu gulu la Kubernetes kumatsimikiziridwa ndi ma pod apadera, omwe amayendetsedwa ndi chimango chokha. Kuti mulumikizane ndi ma pods amagulu, ntchito iliyonse iyenera kupatsidwa njira yake, ndi komwe mungadutse magawo a GET kapena kupempha thupi pafunso la POST.

Chotsatira chake, tinakonza zopezera yankho lomwe lingalole akatswiri kuti agwiritse ntchito malemba opangidwa ndi malamulo popanda kutenga nawo mbali mainjiniya ndi omanga. Njira yofotokozedwayi imachotsanso kufunikira kwa okonza kuti alembenso kachidindo kakatswiri m'chinenero china. Mwachitsanzo, pakupanga zisankho zomwe timagwiritsa ntchito pano, tiyenera kulemba malamulo muukadaulo wapamwamba kwambiri ndi zilankhulo, zomwe kuchuluka kwake kuli kochepa kwambiri, komanso kudalira kwambiri seva yofunsira, popeza malamulo onse amabanki amalembedwa. amayikidwa mu chikhalidwe chimodzi. Zotsatira zake, kuyika malamulo atsopano ndikofunikira kumasula dongosolo lonse.

Mu yankho lathu lomwe tikufuna, palibe chifukwa chotulutsa malamulo; code ikhoza kutumizidwa mosavuta pakadina batani. Komanso, kasamalidwe ka zomangamanga ku Kubernetes amakulolani kuti musamaganizire za katundu ndi makulitsidwe; mavuto otere amathetsedwa m'bokosi. Ndipo kugwiritsa ntchito malo amodzi osungiramo deta kumathetsa kufunika kofananitsa deta yeniyeni ndi mbiri yakale, zomwe zimachepetsa ntchito ya wofufuzayo.

Zomwe ife tiri nazo

Popeza tidabwera ku hackathon ndi yankho lokonzekera (m'malingaliro athu), zomwe tidayenera kuchita ndikutembenuza malingaliro athu onse kukhala mizere yamakhodi.

Chinsinsi cha kupambana pa hackathon iliyonse ndikukonzekera ndi ndondomeko yolembedwa bwino. Chifukwa chake, chinthu choyamba chomwe tidachita ndikusankha ma module omwe dongosolo lathu lingaphatikizidwe ndi matekinoloje atiti tigwiritse ntchito.

Mamangidwe a polojekiti yathu anali motere:

Momwe tidapangira mtambo FaaS mkati mwa Kubernetes ndikupambana Tinkoff hackathon
Chithunzichi chikuwonetsa mfundo ziwiri zolowera, katswiri (wogwiritsa ntchito wamkulu wa dongosolo lathu) ndi kasitomala.

Njira yogwirira ntchito imapangidwa motere. Katswiriyo amapanga ntchito yaulamuliro ndi ntchito yolemeretsa deta yachitsanzo chake, amasunga kachidindo kake mu nkhokwe ya Git, ndikugwiritsa ntchito chitsanzo chake pamtambo kudzera pakugwiritsa ntchito kwa woyang'anira. Tiyeni tiwone momwe ntchito yotumizidwa idzayitanidwe ndikupanga zisankho pazopempha zomwe zikubwera kuchokera kwa makasitomala:

  1. Wofuna chithandizo amalemba fomu pa webusaitiyi ndikutumiza pempho lake kwa woyang'anira. Ntchito yomwe chigamulo chikuyenera kupangidwa imabwera kuzinthu zolowetsamo ndipo zimalembedwa mu database mu mawonekedwe ake oyambirira.
  2. Kenako, pempho laiwisi limatumizidwa kuti liwonjezeke, ngati kuli kofunikira. Mutha kuwonjezera pempho loyambirira ndi data kuchokera kuzinthu zakunja komanso kuchokera kosungirako. Funso lolemetsedwa limasungidwanso mu database.
  3. Ntchito ya analyst imayambitsidwa, yomwe imatenga funso lolemetsedwa monga chothandizira ndikupanga yankho, lomwe limalembedwanso kusungirako.

Tidaganiza zogwiritsa ntchito MongoDB ngati chosungira m'dongosolo lathu chifukwa cha kusungirako zolemba zomwe zili m'makalata a JSON, popeza ntchito zolemetsa, kuphatikiza pempho loyambirira, zidaphatikiza zonse kudzera mwa oyang'anira REST.

Chifukwa chake, tinali ndi maola XNUMX kuti tigwiritse ntchito nsanja. Tidagawa bwino magawowa; membala aliyense wagulu anali ndi gawo lake laudindo pantchito yathu:

  1. Makanema oyang'anira akutsogolo a ntchito ya wowunika, momwe amatha kutsitsa malamulo kuchokera pamakina owongolera a zolembedwa, sankhani zosankha zolemeretsa zolowa ndikusintha zolemba zamalamulo pa intaneti.
  2. Backend admin, kuphatikiza REST API yakutsogolo ndikuphatikiza ndi VCS.
  3. Kukhazikitsa maziko mu Google Cloud ndikupanga sevisi yolemeretsa deta yochokera.
  4. Gawo lophatikizira pulogalamu ya admin ndi Serverless framework kuti mutumizenso malamulo.
  5. Zolemba zamalamulo zoyesa momwe dongosolo lonse limagwirira ntchito komanso kuphatikizika kwa analytics pamapulogalamu omwe akubwera (zisankho zopangidwa) pachiwonetsero chomaliza.

Tiyeni tiyambe mwadongosolo.

Kutsogolo kwathu kudalembedwa mu Angular 7 pogwiritsa ntchito UI Kit yaku banki. Mtundu womaliza wa gulu la admin umawoneka motere:

Momwe tidapangira mtambo FaaS mkati mwa Kubernetes ndikupambana Tinkoff hackathon
Popeza panali nthawi yochepa, tinayesetsa kugwiritsa ntchito zofunikira zokha. Kuti agwiritse ntchito gulu la Kubernetes, kunali kofunikira kusankha chochitika (ntchito yomwe lamulo liyenera kuikidwa mumtambo) ndi ndondomeko ya ntchito yomwe imagwiritsa ntchito malingaliro opanga zisankho. Pa kutumizidwa kulikonse kwa lamulo la ntchito yosankhidwa, tinalemba chipika cha chochitika ichi. Mu gulu la admin mutha kuwona zipika za zochitika zonse.

Nambala yonse yogwira ntchito idasungidwa kunkhokwe yakutali ya Git, yomwe idayeneranso kukhazikitsidwa pagulu la admin. Kuti musinthe ma code, ntchito zonse zidasungidwa m'magawo osiyanasiyana ankhokwe. Gulu la admin limaperekanso kuthekera kosintha zolemba zolembedwa, kotero kuti musanatumize ntchito yopanga, simungangoyang'ana ma code olembedwa, komanso kusintha kofunikira.

Momwe tidapangira mtambo FaaS mkati mwa Kubernetes ndikupambana Tinkoff hackathon
Kuphatikiza pa ntchito zamalamulo, tidakhazikitsanso kuthekera kolemeretsa pang'onopang'ono magwero pogwiritsa ntchito ntchito za Enrichment, zomwe zidalinso zolemba zomwe zinali zotheka kupita kumalo osungiramo zinthu, kuyimbira mautumiki a chipani chachitatu ndikuwerengera koyambirira. . Kuti tiwonetse yankho lathu, tidawerengera chizindikiro cha zodiac cha kasitomala yemwe adasiya pempho ndikutsimikiza wogwiritsa ntchito foni yake pogwiritsa ntchito gulu lachitatu la REST.

Kumbuyo kwa nsanja kunalembedwa ku Java ndikukhazikitsidwa ngati ntchito ya Spring Boot. Poyamba tinakonzekera kugwiritsa ntchito Postgres kusunga deta ya admin, koma, monga gawo la hackathon, tinaganiza zodzichepetsera ku H2 yosavuta kuti tisunge nthawi. Kumbuyo, kuphatikiza ndi Bitbucket kunakhazikitsidwa kuti kumasulire ntchito zowonjezeretsa mafunso ndi zolemba zamalamulo. Kuti tiphatikize ndi nkhokwe zakutali za Git, tidagwiritsa ntchito JGit library, womwe ndi mtundu wa zokutira pamalamulo a CLI, kukulolani kuti mupereke malangizo aliwonse a git pogwiritsa ntchito mawonekedwe osavuta apulogalamu. Kotero tinali ndi nkhokwe ziwiri zosiyana za ntchito zolemeretsa ndi malamulo, ndipo zolemba zonse zinagawidwa m'mabuku. Kupyolera mu UI zinali zotheka kusankha chopereka chaposachedwa cha script ya nthambi yokhazikika yankhokwe. Mukasintha ma code kudzera pagulu la admin, ma code omwe adasinthidwa adapangidwa m'malo osungira akutali.

Kuti tikwaniritse malingaliro athu, tinkafunikira zida zoyenera. Tinaganiza zotumiza gulu lathu la Kubernetes mumtambo. Chosankha chathu chinali Google Cloud Platform. Fission serverless framework idayikidwa pagulu la Kubernetes, lomwe tidatumiza ku Gcloud. Poyambirira, ntchito yopititsa patsogolo deta idakhazikitsidwa ngati pulogalamu yosiyana ya Java yomwe idakulungidwa mu Pod mkati mwa gulu la k8s. Koma titatha chiwonetsero choyambirira cha polojekiti yathu pakati pa hackathon, tinalimbikitsidwa kuti ntchito ya Enrichment ikhale yosinthika kuti tipereke mwayi wosankha momwe mungalemeretsere deta yaiwisi ya mapulogalamu omwe akubwera. Ndipo tinalibe chochita koma kupanga ntchito yolemetsa nayonso Serverless.

Kuti tigwire ntchito ndi Fission, tidagwiritsa ntchito Fission CLI, yomwe iyenera kukhazikitsidwa pamwamba pa Kubernetes CLI. Kuyika ntchito mumagulu a k8s ndikosavuta; mumangofunika kupatsa njira yamkati ndikulowetsa ntchitoyo kuti mulole magalimoto obwera ngati kulowa kunja kwa gululo kukufunika. Kuyika ntchito imodzi sikumatengera masekondi 10.

Chiwonetsero chomaliza cha polojekitiyi ndikumaliza

Kuti tiwonetse momwe dongosolo lathu limagwirira ntchito, tayika fomu yosavuta pa seva yakutali komwe mungatumize zofunsira chimodzi mwazinthu zakubanki. Kuti mufunse, mumayenera kuyika zilembo zanu, tsiku lobadwa ndi nambala yafoni.

Deta yochokera ku fomu yamakasitomala idapita kwa woyang'anira, yemwe nthawi yomweyo adatumiza zopempha za malamulo onse omwe alipo, atalemeretsa detayo molingana ndi zomwe zafotokozedwazo, ndikuzisunga mosungira wamba. Pazonse, tapereka ntchito zitatu zomwe zimasankha pa mapulogalamu omwe akubwera ndi ntchito 4 zolemeretsa deta. Pambuyo potumiza fomuyo, kasitomala adalandira chisankho chathu:

Momwe tidapangira mtambo FaaS mkati mwa Kubernetes ndikupambana Tinkoff hackathon
Kuphatikiza pa kukana kapena kuvomereza, kasitomala adalandiranso mndandanda wazinthu zina, zopempha zomwe tinatumiza mofanana. Umu ndi momwe tidawonetsera kuthekera kogulitsa papulatifomu yathu.

Panali zinthu 3 zabodza zamabanki zomwe zidapezeka:

  • Ngongole.
  • Chidole
  • Ngongole.

Pachiwonetserocho, tinatumiza ntchito zokonzekera ndi zolemba zolemetsa pa ntchito iliyonse.

Lamulo lirilonse linkafuna seti yakeyake ya data yolowera. Chifukwa chake, kuti tivomereze ngongole yanyumba, tidawerengera chizindikiro cha zodiac cha kasitomala ndikulumikiza izi ndi malingaliro a kalendala yoyendera mwezi. Kuti tivomereze chidole, tidawona kuti kasitomala wafika zaka zambiri, ndipo kuti tipereke ngongole, tidatumiza pempho ku ntchito yotseguka yakunja kuti tidziwe woyendetsa ma cellular, ndipo chigamulo chinapangidwa.

Tidayesetsa kupanga chiwonetsero chathu kukhala chosangalatsa komanso cholumikizana, aliyense wopezekapo amatha kupita ku fomu yathu ndikuwona kupezeka kwa ntchito zathu zopeka kwa iwo. Ndipo kumapeto kwenikweni kwa nkhaniyo, tinasonyeza kupendekera kwa mafomu olandiridwa, amene anasonyeza kuchuluka kwa anthu amene anagwiritsira ntchito utumiki wathu, kuchuluka kwa zivomerezo, ndi zokana.

Kuti tipeze ma analytics pa intaneti, tidayikanso chida chotseguka cha BI Metabase ndikuyikokera ku malo athu osungira. Metabase imakupatsani mwayi wopanga zowonera ndi ma analytics pazambiri zomwe zimatisangalatsa; muyenera kungolembetsa kulumikizana ndi nkhokwe, sankhani matebulo (kwathu, kusonkhanitsa deta, popeza tidagwiritsa ntchito MongoDB), ndikufotokozerani zomwe tikufuna .

Chotsatira chake, tinapeza chitsanzo chabwino cha pulatifomu yopangira zisankho, ndipo panthawi yachiwonetsero, womvera aliyense akhoza kuyang'ana yekha momwe akugwirira ntchito. Yankho losangalatsa, fanizo lomalizidwa ndi chiwonetsero chopambana zidatilola kuti tipambane, ngakhale tikulimbana ndi magulu ena. Ndikukhulupirira kuti nkhani yosangalatsa ikhoza kulembedwanso pa ntchito ya gulu lirilonse.

Source: www.habr.com

Kuwonjezera ndemanga