Биз жакында эле Буферде системаларыбыздын бөлүктөрү көшөгө артында кантип байланышып жатканын тазалоо үчүн чакан долбоорду баштадык. Кээ бир тез контекст: биз SQS (Amazon Simple Queue Service) деп аталган нерсени колдонобуз. Бул кезектер тапшырмалар үчүн күтүү бөлмөлөрү сыяктуу иштейт. Биздин тутумубуздун бир бөлүгү билдирүүнү түшүрүп, экинчи бөлүгү аны кийинчерээк кабыл алат. Аны кесиптешиңизге эскертме калтыргандай элестетиңиз, ал бул процессти сиз кесиптешиңизге жөнөтүп жатканда: " a. Note жоопту күтүүнүн кереги жок. Биздин долбоор күнүмдүк тейлөөнү ишке ашыруу болчу: биз кезектерди локалдык түрдө сынап, алардын конфигурациясын тазалоо үчүн колдонгон куралдарды жаңыртабыз. Бирок биз чындыгында кандай кезектерди колдонуп жатканыбызды картага түшүрүп жатып, биз күтпөгөн нерсени таптык: жети түрдүү фондо процесстер (же автоматтык түрдө аткарылуучу пландалган тапшырмалар) жана алардын бардыгы беш жылдан бери эч кандай пайдалуу эмес Бул эмне үчүн маанилүү, биз аларды кантип таптык жана бул тууралуу эмне кылдык? Мен бул маселенин эң кичинекей бөлүгү деп эсептейм. Жаңы инженер командага кирип, системаларды изилдеген сайын, алар бул табышмактуу процесстерге туш болушат: "Бул жумушчу эмне кылат? Инфраструктурага кээде көңүл бурулат, башка нерсе өзгөргөндө, бул биздин команданын эч кандай максатка кызмат кылбаган техникалык тейлөө циклине алып келди. бирок чындыгында бул ар кандай узакка созулган системада табигый түрдө болот. Бир функция иштебей калат, бирок кимдир бирөө миграцияны чечүү үчүн жумушчуну "убактылуу" айлантат жана ал эч качан бузулбайт Учурдагы датага дал келген туулган күндөрдүн бардык маалымат базасын текшерген жана кардарларга жекелештирилген электрондук почтаны жөнөткөн пландаштырылган тапшырма 2020-жылы рефактор учурунда биз транзакциялык электрондук почта куралыбызды өчүрүп койдук — ал дагы беш жыл иштей берди. Булардын бири дагы жеке адамдардын каталары эмес — алар көптөгөн компанияларга кандайча иштээрин көрсөткөн. Буфер микросервистердин кыймылын (компаниялар өз коддорун көптөгөн кичинекей, көз карандысыз кызматтарга бөлгөн популярдуу ыкма) жыл мурун кабыл алган. Биз монолитибизди ар биринин өзүнүн репозиторийине, жайылтуу түтүгүнө жана инфраструктурасына ээ болгон өзүнчө кызматтарга бөлгөнбүз. Бул биздин чоңдуктагы бир топ үчүн артыкчылыктардан ашып түштү. Ошентип, кызматтар дагы эле логикалык чектер катары бар, бирок алар бир жерде чогуу жашайт. Бир репозиторийде эмне бар экенине бирдиктүү көз караш жок. Акыры, биз ар бир кезекти анын керектөөчүлөрүнө жана өндүрүүчүлөрүнө карай алдык, бирок эч кандай керектөөчүлөргө кайрыла алган жокпуз.ачылыш дээрлик сөзсүз. Биз эмне кылдык, биз жетим процесстерди аныктагандан кийин, алар менен эмне кылууну чечишибиз керек болчу. Бул жерде биз ага кантип кайрылдык. Биринчиден, биз алардын ар биринин келип чыгышына көз салдык. Ар бир жумушчунун эмне үчүн жаратылганын түшүнүү үчүн биз гит тарыхын жана эски документтерди карап чыктык. Көпчүлүк учурларда, баштапкы максат айкын болгон: бир жолку берилиштерди көчүрүү, күн баткан функция, анын пайдалуулугунан ашып кеткен убактылуу чечүү. Андан кийин биз алар чындап колдонулбаганын ырастадык. Эч нерсени алып салуудан мурун, биз бул процесстер биз өткөрүп жиберген маанилүү нерсени акырындап аткарбагандыгын текшерүү үчүн журналды коштук. Биз бир нече күн алардын такыр чалбаганын текшерип, акырындап алып салдык. Биз баарын дароо өчүргөн жокпуз. Биз күтүлбөгөн терс таасирлерди байкап, процесстерди бир-бирден алып салдык. (Бактыга жараша, андай болгон жок.) Акыры, биз билгендерибизди документтештирдик. Биз ички документтерибизге ар бир процесстин башында эмне кылганы жана ал эмне үчүн алынып салынганы тууралуу эскертүүлөрдү коштук, ошондуктан болочок инженерлер маанилүү бир нерсе жок болуп кеттиби деп таң калбашы үчүн. Тазалангандан кийин эмне өзгөрдү. Биз таасирди толук өлчөөгө али эртебиз, бирок бул жерде буга чейин көргөн нерселер. Биздин инфраструктуранын инвентаризациясы азыр так. Кимдир бирөө «кандай жумушчуларды иштетебиз?» деп сураса. Биз бул суроого ишенимдүү жооп бере алабыз. Жаңы инженерлер табышмактуу процесстерге мүдүрүлүп, контекстти жок кылып жатабы деп ойлонушпайт. Код базасы беш жыл мурун жасаган ишибизди эмес, иш жүзүндө эмне кылып жатканыбызды чагылдырат. Рефакторлорго археология жана алдын алуу катары мамиле кылыңыз Бул долбоордогу эң чоң нерсем: ар бир маанилүү рефактор – археология үчүн мүмкүнчүлүк. Сиз системанын тереңинде болуп, бөлүктөр кантип туташып турганын чындап түшүнгөндө, дагы эле эмне керек экенине шек келтире турган идеалдуу абалда болосуз. Бул эски долбоордон келген кезек? Кимдир бирөө бир жолку маалымат миграциясы үчүн түзүлгөн жумушчубу? Сиз эч качан укпаган функцияга шилтеме берген пландалган тапшырма? Алар дагы эле иштеп жатышы мүмкүн. Бул жерде биз процессибизге эмнени салып жатабыз: Кайсы бир рефактордо, биз көптөн бери карабаган бул системага дагы эмнелер тийип жатат деп сураңыз? Функцияны жокко чыгарып жатканда, аны колдонуучуга караган код эле эмес, анын фондук процесстерине чейин байкаңыз. Кимдир бирөө командадан чыкканда, алар эмне үчүн жооптуу болгонун документтештириңиз, айрыкча биздин коддун эски бөлүктөрү дагы эле бар. азырынча бирдиктүү репозиторийге көчүрүлө элек. Консолидациялоону уланта берсек, биз бул жашыруун калдыктардын көбүн табабыз деп ишенебиз. Бирок азыр биз аларды кармап, жаңыларынын пайда болушуна жол бербөө үчүн жөндөлдүк. Кодуңуздун баары бир жерде жашаганда, жетим инфраструктуранын жашыра турган жери жок.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free