Zothandizira zolowa m'magawo anu

Moni! Dzina langa ndi Pasha Chernyak, ndine katswiri wotsogola ku QIWI, ndipo lero ndikufuna kulankhula za zosapeŵeka. Za Legacy.

Tiyeni tiyambe ndi funso: Kodi Legacy service ndi chiyani? Kodi ntchito yolandira cholowa ndi ntchito yomwe wopanga sanakhudze kwa sabata/mwezi/chaka? Kapena kodi ndi ntchito yomwe idalembedwa ndi wopanga mapulogalamu osadziwa zambiri, mwachitsanzo, ndi inu makamaka, koma chaka chapitacho? Ndipo tsopano ndinu ozizira komanso odziwa zambiri. Kapena kodi ntchito ya Legacy ndi ntchito yomwe mwasankha kuti musadzachitenso ndipo mukukonzekera pang'onopang'ono ina? Mulimonse momwe zingakhalire, kusiya ntchito yotereyi mosasamala komanso kusasintha ndi bomba lomwe lingathe kuphulika pambuyo pake.

Zothandizira zolowa m'magawo anu

Tisanapitirire ku momwe ife ku QIWI timagwirira ntchito ndi ntchito zathu za Legacy, ndikuuzani momwe tidabweretsera mautumiki mu Wallet. Kwa zaka ziwiri tsopano ndakhala ndikuyang'anira ntchito yake. Ngati pali vuto, nthawi zonse amandiimbira foni kaye. Nthawi zambiri ndilibe mphamvu yoyimbira munthu wina nthawi ya 11 pm, kotero ndimayenera kukhala pansi ndikuwunika ntchito zonse zomwe zili patsamba lathu.

Koma ine, mofanana ndi munthu wina aliyense, ndimakonda kugona usiku, chotero ndinayesa kulimbana ndi kugwiriridwa: “Anyamata, nchifukwa ninji mukundiitana?” Kumene ndinalandira yankho lachikoka ngati "Ndaninso?" Chifukwa ndimakonza mautumiki, ndipo anyamata samadziwa kuti amuimbire ndani.

Chifukwa chake, pa chimodzi mwazotsatira za gulu la Wallet backend, tinaganiza kuti tifunika kupanga chikwangwani ndi mndandanda wa mautumiki athu, ma microservices ndi monoliths wallet, ndi omwe amawatsogolera. Zizindikiro nthawi zambiri zimakhala zothandiza, mkati mwa malire oyenera.

Kuphatikiza pa chidziwitso cha yemwe ali ndi udindo pa chiyani, panali mayankho a mafunso: mwiniwake wa utumiki ndi ndani, yemwe ali ndi udindo pa chitukuko chake, zomangamanga ndi kayendetsedwe ka moyo. Anthu amene ali ndi udindo pa ntchitoyi ndi anthu amene angathe kukonza zinthu zikachitika. Mwiniwake wa ntchitoyo ali ndi ufulu wosiya +2 ​​muzochita, omwe ali ndi udindo ayeneranso kupezeka pakuwunika ntchito iyi isanavomereze kudzipereka kwatsopano.

M'kupita kwa nthawi, machitidwe atsopano anayamba kugwiritsidwa ntchito, mwachitsanzo, kusamukira ku Kubernetes, mitundu yonse ya checkstyle, spotbugs, ktlint, kukhalapo kwa zipika ku Kibana, ntchito autodiscovery m'malo mwachindunji maadiresi ndi zinthu zina zothandiza. Ndipo kulikonse tebulo lathu linkatilola kusunga kufunikira kwa mautumiki athu. Kwa ife, uwu ndi mndandanda wa mndandanda womwe umanena kuti ntchitoyi ingathe kuchita izi, koma sichinachitikebe. kumene ntchito za msonkhano zimayambika ku TeamCity, momwe zimagwiritsidwira ntchito, kumene magwero a mayesero a end2end amasungidwa, zithunzi zochokera kumagulu okonzekera za zomangamanga, za zisankho zomwe zapangidwa. Moyenera, ndikufuna kuti chidziwitso chonsechi chigone penapake ndikukhala pafupi pakafunika. Chifukwa chake, chikwangwani chathu chidakhala poyambira kusaka zambiri.

Koma QIWI, ngakhale imasungabe mzimu woyambira, ndi kampani yayikulu. Tili kale zaka 12, ndipo magulu akusintha: anthu amachoka, anthu amabwera, magulu atsopano amapangidwa. Ndipo tidapeza mautumiki angapo patsamba lathu omwe tidatengera. Ena adachokera kwa omanga magulu ena, ena amangogwirizana mwanjira ina ndi Wallet, ndiye tsopano tili ndi ntchitoyi pamasamba athu. Kumvetsetsa chiyani komanso momwe zimagwirira ntchito - chifukwa chiyani? Ntchitoyi imagwira ntchito, ndipo tili ndi zinthu zomwe zimayenera kukonzedwanso.

Momwe zimachitikira

Koma nthawi ina timapeza kuti ntchitoyo imasiya kugwira ntchito yake, china chake chasweka - choti tichite muzochitika zotere? Ntchitoyi inangosiya kugwira ntchito. Ayi. Ndipo tidazindikira izi, choyamba, mwangozi, ndipo chachiwiri, miyezi isanu ndi umodzi pambuyo pake. Zimachitika. Chinthu chokha chomwe tinkadziwa ndi makina omwe ntchitoyo idzatumizidwa, kumene magwero ake anali, ndipo ndizo zonse. Timapanga git clone ndikulowa m'malingaliro a munthu yemwe adalemba izi zaka zingapo zapitazo, koma tikuwona chiyani? Palibe mwa Spring Boot yomwe timaidziwa bwino, ngakhale kuti tazolowera chilichonse, tili ndi zodzaza ndi zonse. Mwina pali Spring Framework pamenepo? Koma ayi.

Mnyamata yemwe analemba zonsezi anali wolimba ndipo analemba zonse mu Java yoyera. Palibe zida zanthawi zonse za wopanga, ndipo lingaliro limatuluka: tiyenera kulembanso zonsezi. Tili ndi ma microservices, ndipo kuchokera ku chowotcha chilichonse kumabwera "Anyamata, ma microservices ndizomwe mukufuna!" Ngati mwadzidzidzi chinachake sichikuyenda bwino, mukhoza kutenga chinenero chilichonse mwakachetechete ndipo zonse zikhala bwino.

Chowonadi ndi chakuti tsopano tilibe kasitomala yemwe ali ndi udindo pa ntchitoyi. Kodi ndi zofunikira ziti zabizinesi zomwe anali nazo, kodi ntchitoyi iyenera kuchita chiyani? Ndipo ntchitoyo imaphatikizidwa mwamphamvu muzochita zanu zamabizinesi.

Tsopano ndiuzeni, ndizosavuta bwanji kulembanso ntchito popanda kudziwa zofunikira zamabizinesi? Sizikudziwika kuti ntchitoyo imalowetsedwa bwanji; ngati pali ma metric sadziwika. Zomwe iwo ali, ngati alipo, sizidziwika kwambiri. Ndipo nthawi yomweyo, ntchitoyi ili ndi magulu ambiri osamvetsetseka abizinesi. Chinachake chikuphatikizidwa mumtundu wina wa database, zomwe sitikudziwanso kalikonse.

Mumayamba kuti?

Kuchokera pa mfundo zomveka kwambiri - kupezeka kwa mayesero. Nthawi zambiri pamakhala zomveka zolembedwa pamenepo ndipo mutha kuzindikira zomwe zikuchitika. Tsopano TDD ndi yapamwamba, koma tikuwona kuti zaka 5 zapitazo zonse zinali zofanana ndi zomwe zilipo tsopano: palibe pafupifupi mayesero a unit, ndipo sadzatiuza kalikonse. Chabwino, kupatula mtundu wina wotsimikizira, momwe xml ina imasaina ndi satifiketi yanthawi zonse.

Sitinathe kumvetsetsa kalikonse kuchokera pa code, kotero tinapita kukawona zomwe zinali mu makina enieni. Tidatsegula zipika zautumiki ndikupeza cholakwika cha kasitomala wa http mwa iwo; satifiketi yodzisainira yokha yomwe idayikidwa pazogwiritsa ntchito idavunda mopanda manyazi. Tidalumikizana ndi akatswiri athu, adapempha satifiketi yatsopano, adatipatsa ndipo ntchitoyi ikugwiranso ntchito. Zingawoneke kuti ndizo zonse. Kapena osati? Kupatula apo, ntchitoyo imagwira ntchito, imagwira ntchito zina zomwe bizinesi yathu imafunikira. Tili ndi miyezo ina yopangira mapulogalamu, omwe mwina inunso muli nawo. Mwachitsanzo, musasunge zipika pa mfundo mu chikwatu, koma kusunga mu mtundu wina yosungirako, monga zotanuka, ndipo yang'anani iwo mu Kibana. Mutha kukumbukiranso ma metric agolide. Ndiko kuti, katundu pautumiki, chiwerengero cha zopempha za utumiki, kaya ali moyo kapena ayi, momwe HealthCheck yake ikuyendera. Osachepera, ma metric awa adzakuthandizani kudziwa nthawi yomwe ingachotsedwe ntchito ndi chikumbumtima choyera ndikuyiwalika ngati maloto oyipa.

Chochita

Chifukwa chake, timawonjezera ntchito yakale yotere patebulo, ndiyeno timapita kukafunafuna odzipereka kuchokera kwa omwe akutukula omwe angasamalire ntchitoyi ndikuyiyika bwino: adzalemba zambiri zantchitoyo, kuwonjezera maulalo ku. dashboards mu grafana, ku ntchito zapagulu, ndikumvetsetsa momwe Ikani pulogalamuyi, musakweze mafayilo pogwiritsa ntchito ftp.

Chachikulu ndichakuti ntchito yodziperekayi itenga nthawi yayitali bwanji? Kuthamanga kumodzi kwa wopanga mapulogalamu odziwa zambiri, mwachitsanzo, pa ngongole yaukadaulo ya 20%. Zinatenga nthawi yayitali bwanji kuti timvetsetse malingaliro onse okhazikika a kulumikizana ndi dongosolo linalake la boma ndi kulibweretsa ku matekinoloje atsopano? Sindingathe kutsimikizira izi, mwina mwezi kapena ntchito ziwiri za gululo. Ndikunena izi kuchokera pazomwe ndakumana nazo ndikuphatikizana ndi ntchito ina yatsopano.

Panthawi imodzimodziyo, palibe kumasulidwa kwa mtengo wamalonda. Ayi. Ndi zachilendo kubwereka ntchito yothandizira ndikugwiritsa ntchito nthawi yochepa. Koma titavina mokhazikika ndi ntchitoyo, tidawonjezera patebulo, ndikuwonjezera zambiri za izo ndipo, mwina, tidzalembanso tsiku lina. Koma tsopano ikukwaniritsa miyezo yathu yautumiki.

Zotsatira zake, ndikufuna kupanga dongosolo lazochita ndi ntchito za Legacy.

Kulembanso cholowa kuyambira pachiyambi ndi lingaliro loipa
Zowona, simuyenera ngakhale kuziganizira. Zikuwonekeratu kuti ndikanakonda, ndipo pali zabwino zina, koma nthawi zambiri palibe amene amazifuna, kuphatikizapo inuyo.

Directory
Fufuzani magwero a mapulogalamu anu, pangani bukhu lofotokozera lomwe lidzasonyeze komwe kuli ndi momwe limagwirira ntchito, lowetsani ndondomeko ya polojekitiyo (conditional readme.md) kuti mumvetse mwamsanga kumene mitengo ndi ma metrics ali. Wopanga mapulogalamu omwe athana ndi izi mukangonena zikomo.

Kumvetsa ankalamulira
Ngati muli ndi domeni, yesetsani kusunga chala chanu pamtima. Zikumveka ngati zazing'ono, inde, koma si aliyense amene amaonetsetsa kuti mautumikiwa ali mu kiyi imodzi. Koma kugwira ntchito mulingo umodzi ndikosavuta.

Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu. Lowani muakauntichonde.

Mumatani ndi cholowa chanu?

  • 31.5%Ndikulembanso kuyambira pachiyambi, ndizolondola 12

  • 52.6%Pafupifupi zofanana ndi inu20

  • 10.5%Tilibe cholowa, ndife opambana4

  • 5.2%Ndilemba mu comment2

Ogwiritsa 38 adavota. Ogwiritsa ntchito 20 adakana.

Source: www.habr.com

Kuwonjezera ndemanga