Sèvis eritaj nan enfrastrikti ou

Bonjou! Non mwen se Pasha Chernyak, mwen se yon pwomotè dirijan nan QIWI, e jodi a mwen vle pale sou inevitab la. Konsènan Legacy.

Ann kòmanse ak kesyon an: ki sa sèvis Legacy ye? Èske yon sèvis eritaj se yon sèvis ke pwomotè a pa te manyen pou yon semèn / mwa / ane? Oswa èske se yon sèvis ki te ekri pa yon pwogramè mwens ki gen eksperyans, pou egzanp, pa ou espesyalman, men yon ane de sa? Epi kounye a ou pi fre ak plis eksperyans. Oswa èske sèvis Legacy la se yon sèvis ke ou deside pa janm komèt ankò epi tou dousman ap prepare yon ranplasman pou li? Nan nenpòt ka, kite yon sèvis konsa poukont li epi yo pa mete ajou se yon bonm refwadisman ki ka eksploze pita.

Sèvis eritaj nan enfrastrikti ou

Anvan w ale sou fason nou nan QIWI travay ak sèvis Legacy nou yo, mwen pral di w ki jan nou te pote lòd nan sèvis yo nan Wallet la. Depi dezan kounye a mwen responsab pèfòmans li. Si gen nenpòt pwoblèm, yo toujou rele m 'an premye. Mwen anjeneral pa gen nè pou rele yon lòt moun a 11 pm, kidonk mwen te oblije chita epi kalkile tout sèvis yo sou domèn nou an.

Men, mwen menm, tankou nenpòt moun, renmen dòmi nan mitan lannwit, kidonk mwen te eseye fè fas ak eksplwatasyon an: "Mesye, poukisa w ap rele m?" Pou ki mwen te resevwa yon repons byen lakonik tankou "Ki lòt moun?" Paske mwen ranje sèvis yo, ak mesye yo tou senpleman pa konnen ki moun yo rele.

Se poutèt sa, nan youn nan retrospektiv yo nan ekip la backend Wallet, nou deside ke nou te bezwen fè yon siy ak yon lis sèvis nou yo, mikwosèvis ak monolit bous, ak moun ki responsab pou yo. Siy yo jeneralman itil, nan limit rezonab.

Anplis de enfòmasyon sou ki moun ki responsab pou sa, te gen repons a kesyon yo: ki moun ki se pwopriyetè sèvis la, ki moun ki responsab pou devlopman li yo, achitekti ak sik lavi. Moun ki responsab sèvis sa a se moun ki ka ranje li si yon bagay rive. Pwopriyetè sèvis la gen dwa kite +2 nan komite, moun ki responsab yo dwe prezan tou nan revizyon an anvan sèvis sa a aksepte yon nouvo komite.

Kòm tan te pase, nouvo pratik yo te kòmanse aplike, pou egzanp, migrasyon nan Kubernetes, tout kalite checkstyle, spotbugs, ktlint, prezans nan mòso bwa nan Kibana, sèvis otodekouvèt olye pou yo espesifye dirèkteman adrès ak lòt bagay itil. Ak tout kote tab nou an te pèmèt nou kenbe enpòtans sèvis nou yo. Pou nou, sa a se yon kalite lis verifikasyon ki di ke sèvis sa a ka fè sa, men li pa ankò Men, nou te deplase sou, reyalize ke nou manke enfòmasyon sou sèvis nou yo, ki nou kontwole, ki kote sous sèvis yo ye. kote travay asanble yo lanse nan TeamCity, ki jan yo deplwaye, kote sous tès end2end yo estoke, foto ki soti nan sesyon goumin sou achitekti a, sou desizyon yo pran. Idealman, mwen ta renmen tout enfòmasyon sa yo kouche yon kote epi yo dwe nan men lè sa nesesè. Se poutèt sa, siy nou an te vin pwen depa pou chèche enfòmasyon.

Men, QIWI, byenke li kenbe lespri yon demaraj, se yon gwo konpayi. Nou gen 12 lane deja, ekip yo ap chanje: moun ale, moun vini, nouvo ekip yo fòme. Epi nou dekouvri plizyè sèvis sou domèn nou an ke nou eritye. Gen kèk ki soti nan devlopè nan lòt ekip, kèk tou senpleman yon jan kanmenm endirèkteman ki gen rapò ak bous la, kidonk nou kounye a gen sèvis la sou fèy balans nou an. Konprann ki sa ak ki jan li fonksyone - poukisa? Sèvis la ap travay, epi nou gen karakteristik pwodwi ki definitivman bezwen amelyore.

Ki jan sa rive

Men, nan kèk pwen nan tan nou dekouvri ke sèvis la sispann fè fonksyon li yo, yon bagay kase - kisa yo dwe fè nan yon sitiyasyon konsa? Sèvis la tou senpleman sispann travay. Nan tout. Apre sa, nou te jwenn enfòmasyon sou sa a, premye, pa aksidan, ak dezyèmman, sis mwa pita. Li rive. Bagay la sèlman nou te konnen se sou ki machin vityèl sèvis la ta dwe deplwaye, ki kote sous li yo te lokalize, ak sa a tout. Nou fè yon script git ak plonje nan lespri moun ki te ekri sa a kèk ane de sa, men ki sa nou wè? Okenn nan Spring Boot ki abitye pou nou, byenke nou abitye ak tout bagay, nou gen yon pil plen ak tout sa. Petèt gen yon Spring Framework la? Men non.

Nèg ki te ekri tout bagay sa yo te difisil e li te ekri tout bagay nan pi Java. Pa gen okenn zouti nòmal pou yon pwomotè, ak yon lide rive: nou bezwen reekri tout bagay sa yo. Nou gen mikwosèvis, epi nan chak griyaj soti abityèl "Mesye, mikwosèvis yo se sa ou bezwen!" Si toudenkou yon bagay ale mal, ou ka avèk kalm pran nenpòt lang ak tout bagay pral anfòm.

Bagay la se ke kounye a nou pa gen yon kliyan ki responsab pou sèvis sa a. Ki kondisyon biznis li te genyen, kisa sèvis sa a ta dwe fè? Ak sèvis la byen entegre nan pwosesis biznis ou.

Koulye a, di m ', ki jan li fasil pou reekri yon sèvis san yo pa konnen kondisyon biznis li yo? Li pa klè ki jan sèvis la konekte si wi ou non gen mezi se enkoni. Ki sa yo ye, si genyen, se pi plis enkoni. Ak an menm tan an, sèvis la gen yon gwo kantite klas nan lojik biznis enkonpreyansib. Gen yon bagay ki enkli nan kèk kalite baz done, ki nou menm tou nou pa konnen anyen sou ankò.

Ki kote yo kòmanse?

Soti nan pwen ki pi lojik - disponiblite a nan tès yo. Gen anjeneral omwen kèk lojik ekri la epi ou ka tire konklizyon sou sa k ap pase. Koulye a, TDD se alamòd, men nou wè ke 5 ane de sa tout bagay te prèske menm jan li ye kounye a: pa gen prèske pa gen tès inite, epi yo pa pral di nou anyen ditou. Oke, eksepte petèt kèk kalite verifikasyon, ki jan kèk xml siyen ak kèk sètifika koutim.

Nou pa t 'kapab konprann anyen nan kòd la, se konsa nou te ale nan wè sa ki te nan machin nan vityèl. Nou te louvri mòso bwa sèvis yo epi yo te jwenn yon erè kliyan http nan yo, sètifika ki te siyen pwòp tèt ou ki te entegre nan resous aplikasyon yo te san wont. Nou kontakte analis nou yo, yo mande yon nouvo sètifika, yo ba nou li epi sèvis la ap travay ankò. Li ta sanble ke se tout. Ou pa? Apre yo tout, sèvis la ap travay, li fè kèk fonksyon ke biznis nou an bezwen. Nou gen sèten estanda pou devlopman aplikasyon, ki gen plis chans ou genyen tou. Pou egzanp, pa estoke mòso bwa sou ne la nan yon katab, men estoke yo nan kèk kalite depo, tankou elastik, epi gade yo nan Kibana. Nou ka sonje tou metrik an lò. Sa vle di, chaj la sou sèvis la, kantite demann pou sèvis la, si li vivan oswa ou pa, ki jan HealthCheck li prale. Omwen, mezi sa yo pral ede w konnen ki lè yo ka retire li nan sèvis ak yon konsyans klè ak bliye tankou yon move rèv.

Ki sa ki fè

Se poutèt sa, nou ajoute tankou yon sèvis ansyen sou tab la, epi Lè sa a, nou ale chèche volontè nan mitan devlopè yo ki pral pran swen nan sèvis la epi mete l 'nan lòd: yo pral ekri omwen kèk enfòmasyon sou sèvis la, ajoute lyen nan tablodbò nan grafana, pou asanble travay, epi konprann ki jan Deplwaye aplikasyon an, pa manyèlman telechaje fichye lè l sèvi avèk ftp.

Bagay pwensipal lan se konbyen tan tout aktivite volontè itil sa a pral pran? Yon sprint pou yon pwomotè plis oswa mwens ki gen eksperyans, pou egzanp, pandan yon dèt teknik 20%. Konbyen tan li te pran pou w konprann tout lojik anrasinen nan kominike ak yon sèten sistèm leta epi mennen l nan nouvo teknoloji? Mwen pa ka garanti pou sa a, petèt yon mwa oswa petèt de nan travay ekip la. Mwen di sa nan eksperyans nan entegrasyon aktyèl ak kèk nouvo sèvis.

An menm tan an, pa gen okenn liberasyon valè biznis. Nan tout. Li nòmal pou anboche yon sèvis pou sipò epi pase yon ti tan sou li. Men, apre dans estanda nou yo ak sèvis la, nou te ajoute li sou tab la, te ajoute enfòmasyon sou li epi, petèt, nou pral reekri li yon jou. Men kounye a li satisfè estanda sèvis nou yo.

Kòm rezilta, mwen ta renmen vini ak yon plan pou sa pou m fè ak sèvis Legacy.

Reekri eritaj nan grate se yon move lide
Seryezman, ou pa menm bezwen reflechi sou li. Li klè ke mwen ta renmen li, e gen kèk avantaj, men anjeneral pa gen moun ki bezwen li, ki gen ladan tèt ou.

Anyè
Fouye kòd sous aplikasyon ou yo, fè yon liv referans ki pral endike ki kote ak ki jan li fonksyone, antre yon deskripsyon pwojè a la (kondisyonèl readme.md) pou byen vit konprann ki kote mòso bwa yo ak mezi yo ye. Pwomotè a ki pral fè fas ak sa a apre ou pral sèlman di mèsi.

Konprann domèn nan
Si ou posede yon domèn, eseye kenbe dwèt ou sou batman kè a. Li son trivial, wi, men se pa tout moun asire w ke sèvis yo nan yon sèl kle. Men, travay nan yon estanda se aktyèlman siyifikativman pi fasil.

Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.

Kisa ou fè ak eritaj ou a?

  • 31.5%Mwen reekri depi nan grafouyen, li pi kòrèk 12

  • 52.6%Prèske menm jan ak ou20

  • 10.5%Nou pa gen eritaj, nou gran4

  • 5.2%Mwen pral ekri nan kòmantè yo 2

38 itilizatè yo te vote. 20 itilizatè te absteni.

Sous: www.habr.com

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster