Tun daga bara, kamfaninmu ya fara shirya hackathons. Irin wannan gasa ta farko ta yi nasara sosai, mun rubuta game da ita a ciki
An bai wa mahalarta aiki mai ban sha'awa tare da cikakken 'yanci a zabar tarin fasaha don aiwatar da shi. Ya zama dole don aiwatar da tsarin yanke shawara don dacewa da ƙaddamar da ayyuka na ƙima na abokin ciniki wanda zai iya aiki tare da saurin aikace-aikacen aikace-aikace, tsayayya da nauyi mai nauyi, kuma tsarin da kansa ya kasance mai sauƙi.
Aikin ba shi da mahimmanci kuma ana iya warware shi ta hanyoyi da yawa, kamar yadda muka gamsu a lokacin nunin gabatarwar karshe na ayyukan mahalarta. Akwai ƙungiyoyi 6 na mutane 5 a hackathon, duk mahalarta suna da ayyuka masu kyau, amma dandalinmu ya zama mafi yawan gasa. Muna da aiki mai ban sha'awa, wanda zan so in yi magana game da shi a cikin wannan labarin.
Maganin mu shine dandamali wanda ya dogara da tsarin gine-ginen Serverless a cikin Kubernetes, wanda ke rage lokacin da ake ɗauka don kawo sababbin abubuwa don samarwa. Yana ba masu sharhi damar rubuta lamba a cikin yanayin da ya dace da su da tura shi cikin samarwa ba tare da sa hannun injiniyoyi da masu haɓakawa ba.
Me ke zura kwallo
Tinkoff.ru, kamar yawancin kamfanoni na zamani, yana da maki abokin ciniki. Maki ƙima shine tsarin kima na abokin ciniki bisa hanyoyin ƙididdiga na ƙididdigar bayanai.
Misali, abokin ciniki ya juya gare mu tare da neman ba shi rance, ko kuma buɗe asusun ɗan kasuwa ɗaya tare da mu. Idan muka yi shirin ba shi lamuni, to muna buƙatar tantance ƙarfinsa, kuma idan asusun mutum ɗan kasuwa ne, to muna buƙatar tabbatar da cewa abokin ciniki ba zai gudanar da ma'amaloli na yaudara ba.
Tushen yin irin waɗannan shawarwarin su ne ƙirar lissafi waɗanda ke nazarin duka bayanai daga aikace-aikacen kanta da kuma bayanan daga ma'adanar mu. Baya ga zura kwallaye, ana iya amfani da irin waɗannan hanyoyin ƙididdiga a cikin sabis na samar da shawarwarin mutum ɗaya don sabbin samfura ga abokan cinikinmu.
Hanyar irin wannan kima na iya karɓar nau'ikan bayanan shigarwa iri-iri. Kuma a wani lokaci za mu iya ƙara sabon ma'auni zuwa shigarwar, wanda, bisa ga sakamakon bincike akan bayanan tarihi, zai ƙara yawan juzu'i na amfani da sabis.
Muna riƙe ɗimbin bayanai game da dangantakar abokan ciniki, kuma ƙarar wannan bayanin yana girma koyaushe. Don maki don yin aiki, sarrafa bayanai kuma yana buƙatar ƙa'idodi (ko ƙirar lissafi) waɗanda ke ba ku damar yanke shawarar da sauri wanda za ku amince da aikace-aikacen, wanda za ku ƙi, da waɗanda za ku ba da ƙarin samfuran ma'aurata, tantance yuwuwar sha'awar su.
Domin aikin da ke hannunmu, mun riga mun yi amfani da tsarin yanke shawara na musamman
Akwai shirye-shiryen da aka yi da yawa akan kasuwa, duka ƙirar ƙira da tsarin yanke shawara da kansu. Muna amfani da ɗayan waɗannan tsarin a cikin kamfaninmu. Amma kasuwancin yana haɓaka, haɓakawa, duka adadin abokan ciniki da adadin samfuran da aka bayar suna ƙaruwa, kuma tare da wannan, ra'ayoyin suna fitowa kan yadda za a inganta tsarin yanke shawara na yanzu. Tabbas mutanen da ke aiki tare da tsarin da ke akwai suna da ra'ayoyi da yawa game da yadda za a sauƙaƙe shi, mafi kyau, mafi dacewa, amma wani lokacin ra'ayoyin daga waje suna da amfani. An shirya Sabuwar Hackathon tare da manufar tattara ra'ayoyin sauti.
Aiki
An gudanar da hackathon a ranar 23 ga Fabrairu. An ba wa mahalarta aikin yaƙi: don haɓaka tsarin yanke shawara wanda ya dace da yanayi da yawa.
An gaya mana yadda tsarin da ake da shi ke aiki da irin matsalolin da ke tasowa yayin aikinsa, da kuma irin manufofin kasuwanci da dandalin da aka ci gaba ya kamata ya bi. Dole ne tsarin ya kasance yana da saurin lokaci-zuwa kasuwa don haɓaka ƙa'idodi ta yadda ka'idar aiki na manazarta ta shiga cikin samarwa da sauri. Kuma ga kwararar aikace-aikacen da ke shigowa, lokacin yanke shawara ya kamata ya kasance mafi ƙanƙanta. Hakanan, tsarin da ake haɓaka dole ne ya sami damar siyarwar giciye don ba abokin ciniki damar siyan wasu samfuran kamfani idan sun amince da mu kuma suna da yuwuwar sha'awa daga abokin ciniki.
A bayyane yake cewa ba shi yiwuwa a rubuta wani shiri na sakewa da daddare wanda tabbas zai shiga samarwa, kuma yana da wahala a rufe dukkan tsarin, don haka an nemi mu aiwatar da aƙalla ɓangarensa. An kafa wasu buƙatu da yawa waɗanda samfurin dole ne ya cika. Zai yiwu a gwada duka biyu don rufe duk buƙatun gaba ɗaya, da kuma yin aiki daki-daki a kan kowane sassan dandamali da ake haɓakawa.
Dangane da fasaha, duk mahalarta an ba su cikakken 'yancin zaɓi. Yana yiwuwa a yi amfani da kowane ra'ayi da fasaha: yawo bayanai, koyan injin, samar da taron, manyan bayanai da sauransu.
Maganin mu
Bayan ɗan ƙaramin tunani, mun yanke shawarar cewa maganin FaaS zai zama manufa don kammala aikin.
Don wannan bayani, ya zama dole a nemo tsarin da ya dace mara amfani da uwar garken don aiwatar da ka'idodin tsarin yanke shawara da ake haɓaka. Tun da Tinkoff yana amfani da Kubernetes sosai don gudanar da ababen more rayuwa, mun duba hanyoyin da aka yi shirye-shiryen da yawa dangane da shi; Zan ba ku ƙarin bayani game da shi daga baya.
Don nemo mafita mafi inganci, mun kalli samfurin da ake haɓaka ta idanun masu amfani da shi. Babban masu amfani da tsarinmu sune manazarta da ke da hannu a ci gaban mulki. Dole ne a tura dokoki zuwa uwar garken, ko, kamar yadda a cikin yanayinmu, a tura cikin gajimare, don yanke shawara na gaba. Ta fuskar manazarta, tsarin aiki yayi kama da haka:
- Manazarci yana rubuta rubutun, ƙa'ida, ko ƙirar ML dangane da bayanai daga sito. A matsayin wani ɓangare na hackathon, mun yanke shawarar amfani da Mongodb, amma zaɓin tsarin adana bayanai ba shi da mahimmanci a nan.
- Bayan gwada ƙa'idodin da aka haɓaka akan bayanan tarihi, manazarci yana loda lambar sa zuwa kwamitin gudanarwa.
- Don tabbatar da sigar, duk lambar za ta je wuraren ajiyar Git.
- Ta hanyar kwamitin gudanarwa zai yiwu a tura lambar a cikin gajimare a matsayin keɓantaccen nau'in Serverless mai aiki.
Bayanan farko daga abokan ciniki dole ne su wuce ta hanyar sabis na Haɓakawa na musamman da aka tsara don wadatar da buƙatun farko tare da bayanai daga ma'ajiyar. Yana da mahimmanci don aiwatar da wannan sabis ɗin ta yadda zai yi aiki tare da ma'ajin ajiya guda ɗaya (wanda mai sharhi ke ɗaukar bayanai lokacin haɓaka ƙa'idodi) don kiyaye tsarin haɗin kai.
Tun kafin hackathon, mun yanke shawarar tsarin tsarin mara amfani da za mu yi amfani da shi. A yau akwai fasahohi da yawa a kasuwa waɗanda ke aiwatar da wannan hanyar. Shahararrun mafita a cikin gine-ginen Kubernetes sune Fission, Open FaaS da Kubeless. Akwai ma
Bayan mun auna duk ribobi da fursunoni, mun zaɓi
Don yin aiki tare da Fission, kuna buƙatar fahimtar mahimman ra'ayoyi guda biyu: aiki da yanayi. Aiki wani yanki ne na lamba da aka rubuta a cikin ɗayan yarukan waɗanda ke da yanayin Fission.
Fission kuma yana da ikon aiwatar da ayyuka da aka raba zuwa fayiloli da yawa, an riga an shirya su cikin ma'ajiyar bayanai. Ana tabbatar da aikin Fission a cikin gungu na Kubernetes ta hanyar kwasfa na musamman, waɗanda tsarin da kansa ke sarrafawa. Don yin hulɗa tare da kwas ɗin cluster, kowane aiki dole ne a sanya nasa hanya, kuma zuwa gare ta zaku iya wuce sigogin GET ko buƙatar jiki a yanayin buƙatun POST.
A sakamakon haka, mun shirya don samun mafita wanda zai ba da damar manazarta su tura rubutun ƙa'idodin da aka haɓaka ba tare da halartar injiniyoyi da masu haɓakawa ba. Hanyar da aka kwatanta kuma tana kawar da buƙatar masu haɓakawa don sake rubuta lambar nazari zuwa wani harshe. Misali, don tsarin yanke shawara na yanzu da muke amfani da shi, dole ne mu rubuta dokoki a cikin fasaha na musamman da harsuna, waɗanda iyakarsu ta iyakance, kuma akwai dogaro mai ƙarfi ga uwar garken aikace-aikacen, tunda duk daftarin dokokin banki. ana tura su a wuri guda. A sakamakon haka, don ƙaddamar da sababbin dokoki wajibi ne a saki tsarin gaba ɗaya.
A cikin shawarwarin da muka gabatar, babu buƙatar sakin dokoki; ana iya tura lambar cikin sauƙi a danna maɓallin. Hakanan, gudanar da ayyukan ababen more rayuwa a Kubernetes yana ba ku damar yin tunani game da kaya da ƙima; ana warware irin waɗannan matsalolin daga cikin akwatin. Kuma yin amfani da rumbun adana bayanai guda ɗaya yana kawar da buƙatar kwatanta bayanan lokaci-lokaci tare da bayanan tarihi, wanda ke sauƙaƙe aikin mai sharhi.
Abin da muka samu
Tun da muka zo hackathon tare da shirye-shiryen da aka yi (a cikin tunaninmu), duk abin da za mu yi shi ne canza duk tunaninmu zuwa layin code.
Makullin samun nasara a kowane hackathon shine shiri da ingantaccen tsarin da aka rubuta. Saboda haka, abu na farko da muka yi shi ne yanke shawarar wane nau'ikan tsarin gine-ginen tsarin mu zai kunsa da waɗanne fasahohin da za mu yi amfani da su.
Tsarin gine-ginen aikin namu ya kasance kamar haka:
Wannan zane yana nuna wuraren shigarwa guda biyu, mai nazari (babban mai amfani da tsarin mu) da abokin ciniki.
An tsara tsarin aikin kamar haka. Manazarci yana haɓaka aikin ƙa'ida da aikin haɓaka bayanai don ƙirar sa, yana adana lambar sa a cikin ma'ajiyar Git, kuma ya tura samfurinsa zuwa gajimare ta hanyar aikace-aikacen gudanarwa. Bari mu yi la'akari da yadda za a kira aikin da aka tura kuma mu yanke shawara kan buƙatun masu shigowa daga abokan ciniki:
- Abokin ciniki ya cika fom akan gidan yanar gizon kuma ya aika buƙatarsa ga mai sarrafawa. Aikace-aikacen da ake buƙatar yanke shawara ya zo ga shigar da tsarin kuma ana yin rikodin shi a cikin ma'ajin bayanai a cikin asalinsa.
- Bayan haka, ana aika da ɗanyen buƙatar don haɓakawa, idan ya cancanta. Kuna iya ƙara buƙatun farko tare da bayanai duka daga sabis na waje da kuma daga ma'ajiya. Ana kuma adana ingantaccen tambayar da aka samu a cikin ma'ajin bayanai.
- An ƙaddamar da aikin manazarci, wanda ke ɗaukar ingantacciyar tambaya azaman shigarwa kuma ya samar da mafita, wanda kuma aka rubuta zuwa wurin ajiya.
Mun yanke shawarar yin amfani da MongoDB azaman ajiya a cikin tsarinmu saboda bayanan da aka yi amfani da su a cikin nau'ikan takaddun JSON, tunda ayyukan haɓakawa, gami da buƙatun asali, sun tattara duk bayanai ta hanyar masu sarrafa REST.
Don haka, muna da sa'o'i XNUMX don aiwatar da dandalin. Mun rarraba ayyukan cikin nasara; kowane memba na ƙungiyar yana da nasa yanki na alhaki a cikin aikinmu:
- Ƙungiyoyin gudanarwa na gaba-gaba don aikin manazarci, ta inda zai iya zazzage dokoki daga tsarin sarrafa sigar rubutun rubutun, zaɓi zaɓuɓɓuka don wadatar bayanan shigarwa da kuma gyara rubutun ƙa'ida akan layi.
- Mai gudanarwa na baya, gami da REST API don gaba da haɗin kai tare da VCS.
- Kafa abubuwan more rayuwa a cikin Google Cloud da haɓaka sabis don wadatar bayanan tushen.
- Module don haɗa aikace-aikacen mai gudanarwa tare da tsarin uwar garke don ƙaddamar da dokoki na gaba.
- Rubutun ka'idoji don gwada aikin gabaɗayan tsarin da tara ƙididdiga akan aikace-aikacen da ke shigowa (yanke shawarar da aka yanke) don zanga-zangar ƙarshe.
Bari mu fara cikin tsari.
An rubuta gabanmu a cikin Angular 7 ta amfani da Kit ɗin UI na banki. Sigar karshe na admin panel yayi kama da haka:
Tun da akwai ɗan lokaci kaɗan, mun yi ƙoƙarin aiwatar da ayyuka masu mahimmanci kawai. Don ƙaddamar da aiki a cikin gungu na Kubernetes, ya zama dole don zaɓar wani taron (sabis ɗin da ake buƙatar yin amfani da doka a cikin girgije) da lambar aikin da ke aiwatar da dabarun yanke shawara. Ga kowane tura doka don sabis ɗin da aka zaɓa, mun rubuta log ɗin wannan taron. A cikin admin panel za ka iya ganin logs na duk abubuwan da suka faru.
An adana duk lambar aikin a cikin wurin ajiyar Git mai nisa, wanda kuma dole ne a saita shi a cikin kwamitin gudanarwa. Don sigar lambar, an adana duk ayyuka a cikin rassa daban-daban na ma'ajiyar. Kwamitin gudanarwa kuma yana ba da damar yin gyare-gyare ga rubuce-rubucen rubuce-rubuce, ta yadda kafin ƙaddamar da aiki don samarwa, ba za ku iya kawai duba lambar da aka rubuta ba, amma kuma ku yi canje-canje masu dacewa.
Baya ga ayyukan ƙa'idodin, mun kuma aiwatar da ikon haɓaka bayanan tushen sannu a hankali ta amfani da ayyukan Haɓakawa, lambar su ma rubutun ne wanda zai yiwu a je ma'ajiyar bayanai, kiran sabis na ɓangare na uku da yin lissafin farko. . Don nuna mafitarmu, mun ƙididdige alamar zodiac na abokin ciniki wanda ya bar buƙatar kuma ya ƙaddara ma'aikacin wayar sa ta amfani da sabis na REST na ɓangare na uku.
An rubuta ƙarshen dandalin a cikin Java kuma an aiwatar da shi azaman aikace-aikacen Boot Spring. Mun fara shirin yin amfani da Postgres don adana bayanan gudanarwa, amma, a matsayin ɓangare na hackathon, mun yanke shawarar iyakance kanmu zuwa H2 mai sauƙi don adana lokaci. A bangon baya, an aiwatar da haɗin kai tare da Bitbucket don siffanta ayyukan haɓakar tambaya da rubutun ƙa'ida. Don haɗin kai tare da wuraren ajiyar Git mai nisa, mun yi amfani da su
Don aiwatar da ra'ayinmu, muna buƙatar abubuwan da suka dace. Mun yanke shawarar tura gungu na Kubernetes a cikin gajimare. Zaɓin mu shine Google Cloud Platform. An shigar da tsarin mara sabar uwar garken Fission akan gungu na Kubernetes, wanda muka tura a cikin Gcloud. Da farko, an aiwatar da sabis na haɓaka bayanan tushen azaman aikace-aikacen Java daban wanda aka naɗe a cikin Pod a cikin tarin k8s. Amma bayan nuni na farko na aikin mu a tsakiyar hackathon, an ba mu shawarar yin sabis na Ƙarfafawa mafi sauƙi don ba da damar zaɓar yadda za a wadatar da albarkatun albarkatun aikace-aikace masu shigowa. Kuma ba mu da wani zaɓi face mu sanya sabis ɗin haɓakawa kuma maras Server.
Don yin aiki tare da Fission, mun yi amfani da Fission CLI, wanda dole ne a sanya shi a saman Kubernetes CLI. Aiwatar da ayyuka cikin gungu k8s abu ne mai sauƙi; kawai kuna buƙatar sanya hanya ta ciki da shiga cikin aikin don ba da izinin zirga-zirga mai shigowa idan ana buƙatar samun dama ga gungu. Aiwatar da aiki ɗaya yawanci yana ɗaukar fiye da daƙiƙa 10.
Gabatarwar ƙarshe na aikin da taƙaitawa
Don nuna yadda tsarinmu ke aiki, mun sanya fom mai sauƙi akan uwar garken nesa inda zaku iya ƙaddamar da aikace-aikacen ɗaya daga cikin samfuran banki. Don nema, dole ne ka shigar da baƙaƙe, ranar haihuwa da lambar waya.
Bayanai daga fom ɗin abokin ciniki sun tafi zuwa ga mai sarrafawa, wanda a lokaci guda ya aika buƙatun don duk ƙa'idodin da ake da su, tun da a baya sun wadatar da bayanan bisa ga ƙayyadaddun sharuɗɗan, kuma ya adana su a cikin ma'adana gama gari. Gabaɗaya, mun ƙaddamar da ayyuka uku waɗanda ke yanke shawara kan aikace-aikacen masu shigowa da sabis na haɓaka bayanai guda 4. Bayan ƙaddamar da aikace-aikacen, abokin ciniki ya karɓi shawararmu:
Baya ga ƙi ko yarda, abokin ciniki kuma ya karɓi jerin wasu samfuran, buƙatun waɗanda muka aika a layi daya. Wannan shine yadda muka nuna yuwuwar siyarwar giciye a dandalinmu.
Akwai jimillar samfuran banki guda 3 da aka samu:
- Kiredit.
- Abin wasan yara
- jinginar gida.
A yayin zanga-zangar, mun ƙaddamar da shirye-shiryen ayyuka da rubutun haɓaka don kowane sabis.
Kowace doka tana buƙatar saitin bayanan shigarta. Don haka, don amincewa da jinginar gida, mun ƙididdige alamar zodiac na abokin ciniki kuma mun haɗa wannan tare da basirar kalandar wata. Don amincewa da abin wasan yara, mun bincika cewa abokin ciniki ya kai shekarun girma, kuma don ba da lamuni, mun aika da buƙatu zuwa sabis na buɗewa na waje don ƙayyade ma'aikacin salula, kuma an yanke shawara a kai.
Mun yi ƙoƙari mu sanya zanga-zangar mu ta zama mai ban sha'awa da ma'amala, duk wanda ya halarta zai iya zuwa fom ɗin mu ya duba samuwar hidimomin mu na almara gare su. Kuma a ƙarshen gabatarwar, mun nuna ƙididdiga na aikace-aikacen da aka karɓa, wanda ya nuna mutane nawa ne suka yi amfani da sabis ɗinmu, adadin yarda, da ƙi.
Don tattara nazari akan layi, mun kuma tura wani buɗaɗɗen kayan aikin BI
A sakamakon haka, mun sami kyakkyawan tsari na dandamali na yanke shawara, kuma yayin zanga-zangar, kowane mai sauraro zai iya bincika ayyukansa. Wani bayani mai ban sha'awa, samfurin da aka gama da kuma zanga-zangar nasara ya ba mu damar cin nasara, duk da gagarumar gasa daga wasu ƙungiyoyi. Na tabbata cewa ana iya rubuta labarin mai ban sha'awa akan aikin kowace ƙungiya.
source: www.habr.com