ʻO Sber.DS kahi kahua e hiki ai iā ʻoe ke hana a hoʻokō i nā hiʻohiʻona me ka ʻole o ke code

Kū mai nā manaʻo a me nā hālāwai e pili ana i nā kaʻina hana ʻē aʻe i nā ʻoihana o nā ʻano nui i kēlā me kēia lā. Akā i ka ʻoiaʻiʻo he nui ka manawa e hiki ke hoʻohana ʻia i ka hana ʻana i kahi hoʻohālike, pono ʻoe e hoʻolilo iā ia i ka loiloi ʻana a me ka nānā ʻana ʻaʻole ka hopena. Ma hope o ka hoʻokō ʻana, pono e nānā ʻia kekahi kumu hoʻohālike a nānā i kēlā me kēia manawa.

A ʻo kēia nā pae āpau e pono ai ʻoe e hele i kēlā me kēia ʻoihana, me ka ʻole o kona nui. Inā mākou e kamaʻilio e pili ana i ka pālākiō a me ka hoʻoilina o Sberbank, piʻi nui ka helu o nā hoʻoponopono maikaʻi. I ka hopena o 2019, ua hoʻohana mua ʻo Sberbank ma mua o 2000 mau hiʻohiʻona. ʻAʻole lawa wale ka hoʻomohala ʻana i kahi kumu hoʻohālike, pono e hoʻohui pū me nā ʻōnaehana ʻoihana, hoʻomohala i nā hale kūʻai ʻikepili no ke kūkulu ʻana i nā kumu hoʻohālike, a e hōʻoia i ka mana o kāna hana ma kahi hui.

ʻO Sber.DS kahi kahua e hiki ai iā ʻoe ke hana a hoʻokō i nā hiʻohiʻona me ka ʻole o ke code

Ke kūkulu nei kā mākou hui i ka papahana Sber.DS. Hāʻawi ia iā ʻoe e hoʻoponopono i nā pilikia aʻo mīkini, wikiwiki i ke kaʻina hana o ka hoʻāʻo ʻana i nā kuhiakau, ma ke kumu e hoʻomaʻamaʻa i ke kaʻina hana o ka hoʻomohala ʻana a me ka hōʻoia ʻana i nā hiʻohiʻona, a me ka hoʻomalu ʻana i ka hopena o ke kumu hoʻohālike ma PROM.

I mea e hoʻopunipuniʻole ai i kou mau manaʻo, makemake wau e haʻi mua i kēia pou he mea hoʻomaka, a ma lalo o kaʻokiʻana, no ka hoʻomakaʻana, ua haʻiʻia e pili ana i ka mea ma lalo o ka puʻupuʻu o ka Sber.DS anuu. E haʻi mākou i ka moʻolelo e pili ana i ke kaʻina ola o kahi kumu hoʻohālike mai ka hana ʻana a hiki i ka hoʻokō kaʻawale.

Aia i loko o Sber.DS kekahi mau ʻāpana, ʻo nā mea nui ka waihona, ka ʻōnaehana hoʻomohala, a me ka ʻōnaehana hoʻokō hoʻohālike.

ʻO Sber.DS kahi kahua e hiki ai iā ʻoe ke hana a hoʻokō i nā hiʻohiʻona me ka ʻole o ke code

Mālama ka waihona i ke ola o ke kumu hoʻohālike mai ka manawa i ʻike ʻia ai ka manaʻo e hoʻomohala a hiki i kona hoʻokō ʻana i ka PROM, ka nānā ʻana a me ka wehe ʻana. Nui nā hiʻohiʻona o ka hale waihona puke i kuhikuhi ʻia e nā lula o ka mea hoʻoponopono, no ka laʻana, ka hōʻike ʻana a me ka mālama ʻana i nā hōʻailona hoʻomaʻamaʻa a me ka hōʻoia. ʻOiaʻiʻo, he papa inoa kēia o kā mākou mau hiʻohiʻona a pau.

Hoʻolālā ʻia ka ʻōnaehana hoʻomohala no ka hoʻomohala ʻana i nā hiʻohiʻona a me nā ʻano hōʻoia. Loaʻa i nā hiʻohiʻona i kūkulu ʻia i ka hōʻoia mua a hāʻawi ʻia i ka ʻōnaehana hoʻokō e hana i kā lākou mau hana ʻoihana. Eia kekahi, i ka ʻōnaehana hoʻokō, hiki ke kau ʻia ke kumu hoʻohālike i ka nānā ʻana i mea e hoʻomaka ai i nā ʻano hana hōʻoia e kāohi i kāna hana.

Nui nā ʻano nodes i loko o ka ʻōnaehana. Hoʻolālā ʻia kekahi e hoʻopili i nā kumu ʻikepili like ʻole, nā mea ʻē aʻe - e hoʻololi i ka ʻikepili kumu a hoʻonui iā ia (markup). Nui nā nodes no ke kūkulu ʻana i nā hiʻohiʻona like ʻole a me nā nodes no ka hōʻoia ʻana. Hiki i ka mea hoʻomohala ke hoʻouka i ka ʻikepili mai kekahi kumu, hoʻololi, kānana, ʻike i ka ʻikepili waena, hoʻokaʻawale i nā ʻāpana.

Aia i loko o ka paepae nā modula i hoʻomākaukau ʻia e hiki ke kauo ma luna o ka ʻāpana o ka papahana. Hana ʻia nā hana a pau me ka hoʻohana ʻana i kahi interface i ʻike ʻia. ʻOiaʻiʻo, hiki iā ʻoe ke hoʻoponopono i ka pilikia me ka ʻole o kahi laina code.

Inā ʻaʻole lawa nā mana i kūkulu ʻia, a laila hāʻawi ka ʻōnaehana i ka hiki ke hana wikiwiki i kāu mau modules. Ua hana mākou i kahi ʻano hoʻomohala hoʻohui ʻia ma muli o ʻO Jupyter Kernel Gateway no ka poʻe i hana i nā modula hou mai ka wā ʻōpio.

ʻO Sber.DS kahi kahua e hiki ai iā ʻoe ke hana a hoʻokō i nā hiʻohiʻona me ka ʻole o ke code

Kūkulu ʻia ka hale hoʻolālā Sber.DS ma nā microservices. Nui nā manaʻo e pili ana i nā microservices. Manaʻo kekahi poʻe ua lawa ka hoʻokaʻawale ʻana i ka code monolithic i mau ʻāpana, akā hele mau lākou i ka waihona like. Pono kā mākou microservice e kamaʻilio me kekahi microservice ma o ka REST API wale nō. ʻAʻohe mea hana no ke komo pololei ʻana i ka waihona.

Ke hoʻāʻo nei mākou e mālama i nā lawelawe mai ka lilo ʻana i mea nui a lohi: ʻaʻole pono e hoʻopau i kahi manawa hoʻokahi ma mua o 4-8 gigabytes o RAM a hiki iā ia ke hoʻonui i nā noi ma ka hoʻomaka ʻana i nā manawa hou. Ke kamaʻilio nei kēlā me kēia lawelawe me nā poʻe ʻē aʻe ma o ka REST API (E wehe i ka API). Pono ka hui e mālama i ka API i hope a hiki i ka mea hoʻohana hope loa.

Ua kākau ʻia ke kumu o ka noi ma Java me ka hoʻohana ʻana i ka Spring Framework. Ua hoʻolālā mua ʻia ka hoʻonā no ka hoʻolaha wikiwiki ʻana i ka ʻōnaehana kapua, no laila ua kūkulu ʻia ka noi me ka hoʻohana ʻana i kahi ʻōnaehana containerization ʻO Red Hat OpenShift (Kubernetes). Ke ulu mau nei ka paepae, ma ke ʻano o ka hoʻonui ʻana i ka hana ʻoihana (nā mea hoʻohui hou, hoʻohui ʻia ʻo AutoML), a ma ke ʻano o ka pono ʻenehana.

ʻO kekahi o nā "chips" o kā mākou paepae e hiki iā mākou ke holo i ke code i kūkulu ʻia i ka ʻike maka ma kekahi ʻōnaehana hoʻokō hoʻohālike Sberbank. I kēia manawa aia ʻelua o lākou: hoʻokahi ma Hadoop, ʻo kekahi ma OpenShift (Docker). ʻAʻole mākou e hoʻōki i laila a hana i nā modula hoʻohui e holo i nā code ma nā ʻōnaehana, me ka hale a me ke ao. Ma ke ʻano o ka hiki ke hoʻohui maikaʻi ʻia i loko o ka kaiaola Sberbank, hoʻolālā pū mākou e kākoʻo i ka hana me nā kaiapuni runtime. I ka wā e hiki mai ana, hiki ke hoʻohui maʻalahi ka hopena "ma waho o ka pahu" i kekahi ʻāina o kekahi hui.

ʻO ka poʻe i hoʻāʻo e mālama i kahi hopena e holo ana i ka Python ma Hadoop ma PROM ʻike ʻaʻole lawa ia e hoʻomākaukau a hāʻawi i kahi ʻano python maʻamau i kēlā me kēia datanode. ʻO ka nui o nā hale waihona puke C / C ++ no ke aʻo ʻana i nā mīkini e hoʻohana ana i nā modules Python ʻaʻole e hoʻomaha iā ʻoe me ka maluhia. ʻAʻole pono mākou e poina i ka hoʻonui ʻana i nā pūʻolo i ka wā e hoʻohui ai i nā hale waihona puke a i ʻole nā ​​​​server, ʻoiai e mālama ana i ka hoʻohālikelike hope me nā code kumu hoʻohālike i hoʻokō ʻia.

Nui nā ala e hana ai i kēia. No ka laʻana, e hoʻomākaukau i kekahi mau hale waihona puke i hoʻohana pinepine ʻia ma mua a hoʻokō iā lākou ma PROM. Hoʻohana maʻamau ʻo Cloudera's Hadoop distribution paa pu. I kēia manawa ma Hadoop aia kahi manawa e holo ai ka loea- nā ipu. I kekahi mau hihia maʻalahi hiki ke hāʻawi i ke code me ka pūʻolo python.eggs.

Mālama ka panakō i ka palekana o ka holo ʻana i nā code ʻaoʻao ʻekolu, no laila ke hana nei mākou i ka hapa nui o nā hiʻohiʻona hou o ka kernel Linux, kahi e holo ai kahi kaʻina hana i kahi kaʻawale. inoa inoa Linux, hiki iā ʻoe ke kaupalena, no ka laʻana, ke komo ʻana i ka pūnaewele a me ka disk kūloko, kahi e hōʻemi nui ai i ka hiki ke loaʻa i nā code malicious. Mālama ʻia nā wahi ʻikepili o kēlā me kēia keʻena a loaʻa wale i nā mea nona ia ʻikepili. Hoʻomaopopo ka paepae i ka hiki ke komo i ka ʻikepili mai kahi kikowaena i kahi kikowaena ʻē aʻe ma o ke kaʻina hana hoʻopuka ʻikepili me ka mana ma nā pae āpau mai ka loaʻa ʻana o nā kumu a hiki i ka pae ʻana i ka ʻikepili i ka mākeke target.

ʻO Sber.DS kahi kahua e hiki ai iā ʻoe ke hana a hoʻokō i nā hiʻohiʻona me ka ʻole o ke code

I kēia makahiki, hoʻolālā mākou e hoʻopau i ka MVP o nā hiʻohiʻona holo i kākau ʻia ma Python/R/Java ma Hadoop. Hoʻonoho mākou iā mākou iho i ka hana nui o ke aʻo ʻana pehea e holo ai i kahi mea hoʻohana ma Hadoop, i ʻole e kaupalena i nā mea hoʻohana o kā mākou kahua ma kekahi ʻano.

Eia kekahi, e like me ka mea i ʻike ʻia, ʻoi aku ka maikaʻi o nā loea DS i ka makemakika a me nā helu, hana i nā hiʻohiʻona ʻoluʻolu, akā ʻaʻole maopopo loa i ka hoʻololi ʻana i ka ʻikepili nui, a pono lākou i ke kōkua o kā mākou ʻenekini data e hoʻomākaukau i nā laʻana aʻo. Ua hoʻoholo mākou e kōkua i kā mākou mau hoa hana a hana i nā modula kūpono no ka hoʻololi maʻamau a me ka hoʻomākaukau ʻana i nā hiʻohiʻona no nā hiʻohiʻona ma ka mīkini Spark. E hāʻawi kēia i ka manawa hou e hoʻolaʻa ʻia i ka hoʻomohala ʻana i nā hiʻohiʻona a ʻaʻole e kali i nā ʻenekini data e hoʻomākaukau i kahi dataset hou.

Loaʻa iā mākou ka poʻe me ka ʻike ma nā wahi like ʻole: Linux a me DevOps, Hadoop a me Spark, Java a me Spring, Scala a me Akka, OpenShift a me Kubernetes. ʻO ka manawa aʻe e kamaʻilio mākou e pili ana i ka waihona o nā hiʻohiʻona, pehea e hele ai ke kumu hoʻohālike i ka pōʻai ola i loko o ka hui, pehea e hoʻokō ʻia ai ka hōʻoia a me ka hoʻokō.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka