Mawazo na mikutano kuhusu michakato mingine inaweza kuwa kiotomatiki hujitokeza katika biashara za ukubwa mbalimbali kila siku. Lakini pamoja na ukweli kwamba muda mwingi unaweza kutumika katika kuunda mfano, unahitaji kuitumia kwa kutathmini na kuangalia kwamba matokeo yaliyopatikana sio random. Baada ya utekelezaji, mtindo wowote lazima ufuatiliwe na uangaliwe mara kwa mara.
Na hizi ni hatua zote zinazohitajika kukamilika katika kampuni yoyote, bila kujali ukubwa wake. Ikiwa tunazungumza juu ya kiwango na urithi wa Sberbank, idadi ya urekebishaji mzuri huongezeka sana. Kufikia mwisho wa 2019, Sber ilikuwa tayari imetumia mifano zaidi ya 2000. Haitoshi tu kuendeleza mfano; ni muhimu kuunganishwa na mifumo ya viwanda, kuendeleza mifumo ya data kwa mifano ya ujenzi, na kuhakikisha udhibiti wa uendeshaji wake kwenye nguzo.
Timu yetu inatengeneza jukwaa la Sber.DS. Inakuwezesha kutatua matatizo ya kujifunza kwa mashine, kuharakisha mchakato wa kupima hypotheses, kwa kanuni hurahisisha mchakato wa kuendeleza na kuthibitisha mifano, na pia kudhibiti matokeo ya mfano katika PROM.
Ili sio kudanganya matarajio yako, nataka kusema mapema kwamba chapisho hili ni la utangulizi, na chini ya kukata, kwa mwanzo, tunazungumzia juu ya nini, kimsingi, ni chini ya hood ya jukwaa la Sber.DS. Tutasimulia hadithi kuhusu mzunguko wa maisha wa modeli kutoka kwa uumbaji hadi utekelezaji tofauti.
Sber.DS ina vipengele kadhaa, muhimu ni maktaba, mfumo wa maendeleo na mfumo wa utekelezaji wa mfano.
Maktaba hudhibiti mzunguko wa maisha wa modeli kutoka wakati wazo la kuikuza linaonekana hadi utekelezaji wake katika PROM, ufuatiliaji na uondoaji. Uwezo mwingi wa maktaba unaagizwa na sheria za mdhibiti, kwa mfano, kuripoti na kuhifadhi sampuli za mafunzo na uthibitishaji. Kwa kweli, hii ni rejista ya mifano yetu yote.
Mfumo wa maendeleo umeundwa kwa ajili ya maendeleo ya kuona ya mifano na mbinu za kuthibitisha. Mifano zilizotengenezwa hupitia uthibitisho wa awali na hutolewa kwa mfumo wa utekelezaji ili kufanya kazi zao za biashara. Pia, katika mfumo wa kukimbia, mfano unaweza kuwekwa kwenye kufuatilia kwa madhumuni ya kuzindua mara kwa mara mbinu za uthibitishaji ili kufuatilia uendeshaji wake.
Kuna aina kadhaa za nodi kwenye mfumo. Baadhi zimeundwa kuunganishwa na vyanzo mbalimbali vya data, nyingine zimeundwa ili kubadilisha data ya chanzo na kuiboresha (markup). Kuna nodi nyingi za kujenga mifano tofauti na nodi za kuzithibitisha. Msanidi anaweza kupakia data kutoka kwa chanzo chochote, kubadilisha, kuchuja, kuibua data ya kati, na kuivunja katika sehemu.
Jukwaa pia lina moduli zilizotengenezwa tayari ambazo zinaweza kuburutwa na kuangushwa kwenye eneo la muundo. Vitendo vyote vinafanywa kwa kutumia kiolesura cha taswira. Kwa kweli, unaweza kutatua tatizo bila mstari mmoja wa kanuni.
Ikiwa uwezo wa kujengwa hautoshi, mfumo hutoa uwezo wa kuunda moduli zako haraka. Tulitengeneza modi iliyojumuishwa ya ukuzaji kulingana na
Usanifu wa Sber.DS umejengwa kwenye huduma ndogo. Kuna maoni mengi kuhusu microservices ni nini. Watu wengine wanafikiri kuwa ni ya kutosha kugawanya msimbo wa monolithic katika sehemu, lakini wakati huo huo bado huenda kwenye hifadhidata sawa. Huduma yetu ndogo lazima iwasiliane na huduma nyingine ndogo kupitia REST API. Hakuna njia za kufikia hifadhidata moja kwa moja.
Tunajaribu kuhakikisha kuwa huduma zisiwe kubwa sana na zenye utata: mfano mmoja haupaswi kutumia zaidi ya gigabaiti 4-8 za RAM na lazima utoe uwezo wa kuongeza maombi kwa mlalo kwa kuzindua matukio mapya. Kila huduma huwasiliana na wengine kupitia REST API pekee (
Msingi wa programu imeandikwa katika Java kwa kutumia Mfumo wa Spring. Suluhisho hapo awali liliundwa kwa kupelekwa kwa haraka katika miundombinu ya wingu, kwa hivyo programu ilijengwa kwa kutumia mfumo wa uwekaji vyombo.
Moja ya vipengele vya jukwaa letu ni kwamba tunaweza kukimbia msimbo uliotengenezwa katika interface ya kuona kwenye mfumo wowote wa utekelezaji wa mfano wa Sberbank. Sasa tayari kuna mbili kati yao: moja kwenye Hadoop, nyingine kwenye OpenShift (Docker). Hatuishii hapo na kuunda moduli za ujumuishaji ili kuendesha msimbo kwenye miundombinu yoyote, pamoja na msingi na katika wingu. Kuhusu uwezekano wa kuunganishwa kwa ufanisi katika mfumo wa ikolojia wa Sberbank, tunapanga pia kusaidia kazi na mazingira yaliyopo ya utekelezaji. Katika siku zijazo, suluhisho linaweza kuunganishwa kwa urahisi "nje ya sanduku" katika mazingira yoyote ya shirika lolote.
Wale ambao wamewahi kujaribu kuunga mkono suluhisho ambalo linaendesha Python kwenye Hadoop katika PROM wanajua kuwa haitoshi kuandaa na kutoa mazingira ya mtumiaji wa Python kwa kila datanodi. Idadi kubwa ya maktaba za C/C++ za kujifunza kwa mashine zinazotumia moduli za Python hazitakuruhusu kupumzika kwa urahisi. Ni lazima tukumbuke kusasisha vifurushi tunapoongeza maktaba au seva mpya, huku tukidumisha upatanifu wa nyuma na msimbo wa kielelezo uliotekelezwa tayari.
Kuna mbinu kadhaa za jinsi ya kufanya hivyo. Kwa mfano, tayarisha maktaba kadhaa zinazotumiwa mara kwa mara mapema na uzitekeleze katika PROM. Usambazaji wa Hadoop ya Cloudera kawaida hutumia
Benki inachukua usalama wa kuendesha msimbo wa watu wengine kwa umakini sana, kwa hivyo tunanufaika zaidi na vipengele vipya vya Linux kernel, ambapo mchakato unaendeshwa katika mazingira ya pekee.
Mwaka huu tunapanga kukamilisha MVP ya kuzindua miundo iliyoandikwa kwa Python/R/Java kwenye Hadoop. Tumejiwekea jukumu kubwa la kujifunza jinsi ya kuendesha mazingira yoyote maalum kwenye Hadoop, ili tusiwawekee kikomo watumiaji wa jukwaa letu kwa njia yoyote ile.
Kwa kuongezea, kama ilivyotokea, wataalam wengi wa DS ni bora katika hisabati na takwimu, hutengeneza mifano nzuri, lakini hawajui sana mabadiliko makubwa ya data, na wanahitaji msaada wa wahandisi wetu wa data kuandaa sampuli za mafunzo. Tuliamua kusaidia wenzetu na kuunda moduli zinazofaa za mabadiliko ya kawaida na utayarishaji wa huduma za mifano kwenye injini ya Spark. Hii itakuruhusu kutumia muda mwingi kutengeneza miundo na sio kungoja wahandisi wa data watayarishe mkusanyiko mpya wa data.
Tunaajiri watu wenye ujuzi katika maeneo tofauti: Linux na DevOps, Hadoop na Spark, Java na Spring, Scala na Akka, OpenShift na Kubernetes. Wakati ujao tutazungumza juu ya maktaba ya mfano, jinsi mtindo unapitia mzunguko wa maisha ndani ya kampuni, jinsi uthibitishaji na utekelezaji hutokea.
Chanzo: mapenzi.com