Legacy masevhisi muzvivakwa zvako

Mhoro! Zita rangu ndinonzi Pasha Chernyak, ndiri mugadziri anotungamirira kuQIWI, uye nhasi ndinoda kutaura pamusoro pezvisingadzivisiki. About Legacy.

Ngatitange nemubvunzo: chii chinonzi Legacy service? Sevhisi yenhaka ibasa iro mugadziri asina kubata kwevhiki/mwedzi/gore? Kana kuti ibasa rakanyorwa neasina ruzivo programmer, semuenzaniso, newe zvakananga, asi gore rapfuura? Uye zvino watonhoresa uye une ruzivo rwakanyanya. Kana kuti iyo Legacy sevhisi ibasa rawafunga kusazoita zvakare uye uri kugadzirira zvishoma nezvishoma kuritsiva? Chero zvazvingava, kusiya basa rakadaro risina kutarisirwa uye kwete kuvandudza ibhomba renguva rinogona kuputika gare gare.

Legacy masevhisi muzvivakwa zvako

Tisati taenderera mberi nemashandiro atinoita kuQIWI nemasevhisi edu eLegacy, ini ndichakuudza kuti takaunza sei kurongeka kumasevhisi muWallet. Kwemakore maviri ikozvino ndave ndiine mutoro wekuita kwayo. Kana pane dambudziko, vanotanga vandifonera. Ini kazhinji handina simba rekufonera mumwe munhu na11 pm, saka ndaifanira kugara pasi ndofunga masevhisi ese padura redu.

Asi ini, kufanana nomunhu upi noupi, ndinoda kurara usiku, naizvozvo ndakaedza kubata nokudzvinyirirwa: “Varume, muri kundidei?” Kwandakagamuchira mhinduro yakanyatsojeka senge "Ndiani mumwe?" Nekuti ini ndinogadzirisa masevhisi, uye vakomana vacho havazivi wekufonera.

Naizvozvo, pane imwe yezvakadzokororwa yeWallet backend timu, takafunga kuti taifanira kuita chikwangwani chine runyorwa rwemasevhisi edu, mamicroservices uye wallet monoliths, uye avo vanovatarisira. Zviratidzo zvinowanzobatsira, mukati memiganhu inonzwisisika.

Mukuwedzera kune ruzivo rwekuti ndiani ane mhosva yei, pakanga paine mhinduro kumibvunzo: ndiani muridzi webasa, uyo ane basa rekusimudzira, kuvaka uye kutenderera kwehupenyu. Vanhu vane basa rebasa iri ndivo vanhu vanokwanisa kuzvigadzirisa kana pakaitika chimwe chinhu. Muridzi wesevhisi ane kodzero yekusiya +2 ​​mukuita, avo vane mhosva vanofanirwa kunge varipo pawongororo iyi sevhisi isati yagamuchira chibvumirano chitsva.

Nekufamba kwenguva, miitiro mitsva yakatanga kushandiswa, semuenzaniso, kutamira kuKubernetes, marudzi ese echeki, spotbugs, ktlint, kuvapo kwematanda muKibana, autodiscovery services pane kutsanangura zvakananga kero nezvimwe zvinhu zvinobatsira. Uye kwese kwese tafura yedu yakatibvumira kuchengetedza kukosha kwesevhisi yedu. Kwatiri, iyi imhando yerondedzero inotaura kuti sevhisi iyi inogona kuita izvi, asi haisati yasvika. uko mabasa egungano anotangwa muTeamCity, mafambisirwo aanoitwa, uko masosi e end2end bvunzo anochengetwa, mapikicha kubva kumisangano yekushambidzika nezvekuvaka, nezvesarudzo dzakaitwa. Zvakanaka, ndinoda kuti ruzivo rwese urwu rwurare kumwe uye rwuve pedyo kana rwuchidiwa. Naizvozvo, chikwangwani chedu chakava nzvimbo yekutanga yekutsvaga ruzivo.

Asi QIWI, kunyangwe ichichengeta mweya wekutanga, ikambani hombe. Tatova nemakore gumi nemaviri, uye zvikwata zviri kuchinja: vanhu vanobva, vanhu vanouya, zvikwata zvitsva zvinoumbwa. Uye isu takawana masevhisi akati wandei pane yedu domain yatakagara nhaka. Zvimwe zvakabva kune vanogadzira kubva kune zvimwe zvikwata, zvimwe zvakangoita zvisina kunanga kune Wallet, saka isu tave nesevhisi pabalance sheet. Kunzwisisa chii uye kuti inoshanda sei - nei? Iyo sevhisi inoshanda, uye isu tine zvigadzirwa zvemhando izvo zvinoda kuvandudzwa.

Zvinoitika sei

Asi pane imwe nguva nekufamba kwenguva tinoona kuti sevhisi inomira kuita basa rayo, chimwe chinhu chakatyoka - chii chekuita mumamiriro ezvinhu akadaro? Basa racho rakangomira kushanda. Zvachose. Uye takaziva nezve izvi, kutanga, netsaona, uye kechipiri, mwedzi mitanhatu gare gare. Zvinoitika. Chinhu chimwe chete chataiziva ndechekuti ndeapi machina chaiwo iyo sevhisi yaizoiswa, uko kwaiwanikwa masosi, uye ndizvo zvese. Isu tinoita git clone uye tinonyura mupfungwa dzemunhu akanyora izvi makore mashoma apfuura, asi chii chatinoona? Hapana yeChitubu Boot yatinoziva, kunyangwe isu takajaira kune zvese, isu tine yakazara stack uye zvese izvo. Pamwe pane Spring Framework ipapo? Asi kwete.

Murume akanyora zvose izvi akanga akaoma uye akanyora zvose muJava yakachena. Iko hakuna maturusi akajairwa emugadziri, uye pfungwa inomuka: isu tinofanirwa kunyora zvese izvi. Isu tine mamicroservices, uye kubva kune yega toaster inouya yakajairwa "Guys, microservices ndizvo zvaunoda!" Kana kamwe kamwe chimwe chinhu chikatadza, unogona kutora wakadzikama chero mutauro uye zvese zvichave zvakanaka.

Chinhu ndechekuti iye zvino hatina mutengi ane mutoro webasa iri. Ndezvipi zvinodiwa zvebhizimisi zvaaive nazvo, basa iri rinofanira kuitei? Uye iyo sevhisi yakanyatsobatanidzwa mumabhizinesi ako maitiro.

Zvino ndiudze, zviri nyore sei kunyorazve sevhisi usingazive zvarinoda zvebhizinesi? Hazvina kujeka kuti sevhisi yakarogwa sei; kana paine metrics hazvizivikanwe. Izvo zvavari, kana zviripo, zvakanyanya kuzivikanwa. Uye panguva imwecheteyo, sevhisi ine nhamba huru yemakirasi ezvisinganzwisisike bhizinesi logic. Chimwe chinhu chinosanganisirwa mune imwe mhando yedatabase, yatisina kuziva chero chinhu nezvayo parizvino.

Ndotangira papi?

Kubva pane zvakanyanya kunzwisisika - kuwanikwa kwebvunzo. Panowanzo kuve nechero pfungwa yakanyorwa ipapo uye unogona kutora mhedziso nezve zviri kuitika. Iye zvino TDD ine fashoni, asi tinoona kuti 5 makore apfuura zvinhu zvose zvakanga zvakangofanana nezviri iye zvino: pane inenge isina bvunzo dzeyuniti, uye havazotiudzi chero chinhu. Zvakanaka, kunze kwekunge imwe mhando yekusimbisa, imwe xml inosainwa sei neimwe chitupa chetsika.

Hatina kukwanisa kunzwisisa chero chinhu kubva kukodhi, saka takaenda kunoona zvaive mumushini chaiwo. Takavhura matanda ebasa tikawana http kukanganisa mutengi mukati mawo; chitupa chega chakasaina icho chakanyudzwa muzvishandiso zvekushandisa chakaora zvisina nyadzi. Takabata vaongorori vedu, vakakumbira gwaro idzva, vakatipa uye basa riri kushanda zvakare. Zvingaita sekuti ndizvo chete. Kana kuti kwete? Mushure mezvose, sevhisi inoshanda, inoita rimwe basa rinodiwa nebhizinesi redu. Isu tine mamwe maitiro ekuvandudza application, izvo zvingangove zvauinazvowo. Semuenzaniso, usachengete matanda pane node mune dhairekitori, asi achengete mune imwe mhando yekuchengetedza, senge elastic, uye tarisa iwo muKibana. Iwe unogona zvakare kurangarira mametric egoridhe. Ndiko kuti, mutoro uri pasevhisi, nhamba yezvikumbiro zvebasa, angave mupenyu kana kwete, kuti HealthCheck yake iri kufamba sei. Pazvishoma, aya metrics achakubatsira iwe kuziva painogona kubviswa pabasa nehana yakachena uye kukanganwa sehope dzakaipa.

Zvaunofanira kuita

Naizvozvo, isu tinowedzera sevhisi yekare yakadaro patafura, uye tobva taenda tichitsvaga vanozvipira kubva pakati pevagadziri vanozotarisira sevhisi uye nekuiisa muhurongwa: ivo vanonyora kanenge rumwe ruzivo nezve sevhisi, wedzera zvinongedzo kune. dashboards mugrafana, kumabasa egungano, uye nzwisisa kuti Deploy application sei, usaite kurodha mafaera uchishandisa ftp.

Chinhu chikuru ndechekuti zvese izvi zvinobatsira zvekuzvipira zvichatora nguva yakareba sei? Imwe sprint yeakawanda kana mashoma ane ruzivo mugadziri, semuenzaniso, panguva ye20% yechikwereti chehunyanzvi. Zvakatora nguva yakareba sei kuti tinzwisise zvese zvakadzika midzi zvekutaurirana neimwe nyika system uye kuiunza kune hutsva hwetekinoroji? Ini handikwanise kuvimbisa izvi, pamwe mwedzi kana maviri ebasa rechikwata. Ndinotaura izvi kubva muruzivo rwekubatanidzwa kwazvino neimwe sevhisi nyowani.

Panguva imwecheteyo, hapana kusunungurwa kwekukosha kwebhizimisi. Zvachose. Zvakajairika kuhaya sevhisi yekutsigira uye kupedza nguva shoma pairi. Asi mushure mekutamba kwedu kwakajairwa nesevhisi, takaiwedzera patafura, tikawedzera ruzivo pamusoro payo uye, pamwe, tichainyora zvakare rimwe zuva. Asi iye zvino yava kuenderana nezviyero zvedu zvebasa.

Nekuda kwaizvozvo, ndinoda kuuya nehurongwa hwekuita neLegacy services.

Kunyorazve nhaka kubva mukutanga ipfungwa yakaipa
Zvakaoma, haufanirwe kumbofunga nezvazvo. Zviri pachena kuti ndingazvida, uye kune zvimwe zvakanakira, asi kazhinji hapana anozvida, kusanganisira iwe pachako.

Revhisi bhuku
Cheka makodhi makodhi ezvikumbiro zvako, gadzira bhuku rereferenzi iro rinoratidza kuti kupi uye kuti rinoshanda sei, isa tsananguro yepurojekiti ipapo (conditional readme.md) kuti unzwisise nekukurumidza kuti matanda uye metrics anowanikwa kupi. Mugadziri achabata neizvi mushure mekunge wangoti maita basa.

Nzwisisa domain
Kana iwe uine domain, edza kuchengeta chigunwe chako pamhepo. Zvinonzwika sezvidiki, hongu, asi havasi vese vanove nechokwadi chekuti masevhisi ari mukiyi imwechete. Asi kushanda mune imwe chiyero kuri nyore chaizvo.

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Unoitei nenhaka yako?

  • 31.5%Ndiri kunyora kubva pakutanga, ndizvo chaizvo 12

  • 52.6%Zvinenge zvakafanana newe20

  • 10.5%Hatina nhaka, tiri vakuru4

  • 5.2%Ndichanyora mumacomments2

38 vashandisi vakavhota. 20 vashandisi vakaramba.

Source: www.habr.com

Tenga inovimbika yekutambira kwemasaiti ane DDoS dziviriro, VPS VDS maseva 🔥 Tenga webhusaiti yakavimbika ine dziviriro yeDDoS, maseva eVPS VDS | ProHoster