ჩვენ ახლახან დავიწყეთ პატარა პროექტი, რათა გავასუფთავოთ ჩვენი სისტემების ნაწილების კულისებში კომუნიკაცია Buffer-ში. გარკვეული სწრაფი კონტექსტი: ვიყენებთ რაღაც სახელწოდებით SQS (Amazon Simple Queue Service. ეს რიგები მოქმედებს როგორც მოსაცდელები ამოცანების შესასრულებლად. ჩვენი სისტემის ერთი ნაწილი ტოვებს შეტყობინებას, მეორე კი მას მოგვიანებით იღებს. იფიქრეთ იმაზე, როგორც გაუგზავნეთ შენიშვნა კოლეგას, რომ დამუშავდეს ეს შანსი. პასუხს არ უნდა ველოდოთ. ჩვენი პროექტი იყო რუტინული მოვლა: განაახლეთ ინსტრუმენტები, რომლებსაც ვიყენებთ რიგების ლოკალურად შესამოწმებლად და მათი კონფიგურაციის გასასუფთავებლად. მაგრამ სანამ ჩვენ ვაფიქსირებდით რა რიგებს რეალურად ვიყენებთ, აღმოვაჩინეთ ის, რასაც არ ველოდით: შვიდი განსხვავებული ფონური პროცესი (ან კრონის სამუშაოები, რომლებიც დაგეგმილია ამოცანები, რომლებიც სრულდება აბსოლუტური ხუთი წლის განმავლობაში). სასარგებლოა. აი, რატომ არის ეს მნიშვნელოვანი, როგორ ვიპოვნეთ ისინი და რა გავაკეთეთ ამის შესახებ. რატომ არის ეს უფრო მნიშვნელოვანი, ვიდრე თქვენ გგონიათ, დიახ, არასაჭირო ინფრასტრუქტურის გაშვება ჯდება ფულზე. გაწმენდა, მე ვიტყოდი, რომ ფინანსური ხარჯები რეალურად პრობლემის ყველაზე მცირე ნაწილია. ყოველ ჯერზე, როდესაც ახალი ინჟინერი უერთდება გუნდს და იკვლევს ჩვენს სისტემებს, ისინი ხვდებიან ამ იდუმალ პროცესებს. ხანდახან სჭირდება უსაფრთხოების განახლებები, თავსებადობის შესწორებები, როცა რაღაც სხვაგვარად იცვლება. ბუნებრივად ხდება ნებისმიერ ხანგრძლივ სისტემაში. ფუნქცია მოძველებულია, მაგრამ ფონური სამუშაო, რომელიც მას მხარს უჭერდა, აგრძელებს მუშაობას მთელი მონაცემთა ბაზა დაბადების დღეებისთვის, რომელიც ემთხვევა მიმდინარე თარიღს და გავუგზავნეთ კლიენტებს პერსონალიზებული ელფოსტა 2020 წელს, ჩვენ შევცვალეთ ჩვენი ტრანზაქციის ელფოსტის ინსტრუმენტი - ის გაგრძელდა კიდევ ხუთი წლის განმავლობაში. მოძრაობა (პოპულარული მიდგომა, სადაც კომპანიებმა დაყვეს თავიანთი კოდი მრავალ მცირე, დამოუკიდებელ სერვისებად) წლების წინ. ჩვენ დავყავით ჩვენი მონოლითი ცალკეულ სერვისებად, თითოეულს თავისი საცავი, განლაგების მილსადენი და ინფრასტრუქტურა გაერთიანდა მრავალ სერვისულ საცავში. სერვისები ჯერ კიდევ არსებობს, როგორც ლოგიკური საზღვრები, მაგრამ ისინი ერთად ცხოვრობენ. აღმოჩნდა, რომ ეს აღმოჩენა გახდა შესაძლებელი. მიკროსერვისების სამყაროში, დავიწყებული მუშაკი ერთ რეპოში შეიძლება არასოდეს შეამჩნიონ. ერთ საცავში ჩვენ შეგვეძლო გვენახა სრული სურათი. ჩვენ შეგვეძლო მივაკვლიოთ რიგები მწარმოებლებთან, მაგრამ ვერ ვიპოვნეთ რიგები, რომლებიც აღარ არსებობდა.აღმოჩენა თითქმის გარდაუვალია. რა გავაკეთეთ სინამდვილეში მას შემდეგ რაც დავადგინეთ ობოლი პროცესები, უნდა გადაგვეწყვიტა, რა გვექნა მათთან. აი, როგორ მივუდექით მას. პირველ რიგში, ჩვენ მივაკვლიეთ თითოეულს მის წარმოშობას. ჩვენ გავთხარეთ git ისტორია და ძველი დოკუმენტაცია, რათა გავიგოთ, რატომ შეიქმნა თითოეული მუშაკი თავდაპირველად. უმეტეს შემთხვევაში, თავდაპირველი მიზანი ნათელი იყო: მონაცემთა ერთჯერადი მიგრაცია, ფუნქცია, რომელიც ჩასვლას იღებს, დროებითი გამოსავალი, რომელიც გადააჭარბა მის სარგებლობას. შემდეგ ჩვენ დავადასტურეთ, რომ ისინი ნამდვილად გამოუყენებელი იყო. რაიმეს წაშლამდე, ჩვენ დავამატეთ ჟურნალი, რათა დაგვედასტურებინა, რომ ეს პროცესები ჩუმად არ აკეთებდნენ რაღაც მნიშვნელოვანს, რაც გამოგვრჩა. რამდენიმე დღის განმავლობაში ვაკვირდებოდით, რომ საერთოდ არ დარეკეს და ეტაპობრივად მოვხსენით. ჩვენ არ წავშალეთ ყველაფერი ერთდროულად. ჩვენ სათითაოდ ამოიღეთ პროცესები, ვაკვირდებოდით რაიმე მოულოდნელ გვერდით მოვლენებს. (საბედნიეროდ, არ იყო არცერთი.) საბოლოოდ, ჩვენ დავაფიქსირეთ ის, რაც ვისწავლეთ. ჩვენ დავამატეთ შენიშვნები ჩვენს შიდა დოკუმენტებში იმის შესახებ, თუ რა გააკეთა თავდაპირველად თითოეულმა პროცესმა და რატომ იქნა ამოღებული, ასე რომ მომავალ ინჟინრებს არ აინტერესებთ, დაიკარგა თუ არა რაიმე მნიშვნელოვანი. რა შეიცვალა გაწმენდის შემდეგ ჩვენ ჯერ კიდევ ადრე ვართ სრული ზემოქმედების გაზომვაში, მაგრამ აი, რა ვნახეთ აქამდე. ჩვენი ინფრასტრუქტურის ინვენტარი ახლა ზუსტია. როდესაც ვინმე კითხულობს: "რომელ მუშაკებს ვატარებთ?" ჩვენ შეგვიძლია რეალურად ვუპასუხოთ ამ კითხვას დარწმუნებით. საბორტო საუბრები ასევე გამარტივდა. ახალი ინჟინრები არ წააწყდებიან იდუმალ პროცესებს და არ აინტერესებთ, აკლიათ თუ არა კონტექსტი. კოდების ბაზა ასახავს იმას, რასაც ჩვენ რეალურად ვაკეთებთ და არა იმას, რაც გავაკეთეთ ხუთი წლის წინ. მიაქციეთ რეფაქტორებს, როგორც არქეოლოგიას და პრევენციას ჩემი ყველაზე დიდი შედეგი ამ პროექტიდან: ყოველი მნიშვნელოვანი რეფაქტორი არის შესაძლებლობა არქეოლოგიისთვის. როდესაც ღრმად ხართ სისტემაში, ნამდვილად გესმით, როგორ აკავშირებთ ნაწილებს, თქვენ იდეალურ მდგომარეობაში ხართ, რომ კითხოთ რა არის ჯერ კიდევ საჭირო. ეს რიგი ძველი პროექტისგან? მუშაკი ვინმემ შექმნა მონაცემთა ერთჯერადი მიგრაციისთვის? დაგეგმილი დავალება, რომელიც მიუთითებს ფუნქციაზე, რომლის შესახებაც არასოდეს გსმენიათ? ისინი შეიძლება ჯერ კიდევ მუშაობდნენ. აი, რას ვაშენებთ ჩვენს შემდგომ პროცესებში: ნებისმიერი რეფაქტორის დროს, იკითხეთ: კიდევ რა ეხება ამ სისტემას, რომელსაც დიდი ხანია არ ვუყურებდით? ფუნქციის გაუქმებისას, მიადევნეთ თვალი მის ფონურ პროცესებს და არა მხოლოდ მომხმარებლის წინაშე არსებულ კოდს. როდესაც ვინმე ტოვებს გუნდს, დააფიქსირეთ ის, რაც ფონურ კოდს ევალებოდა ჩვენ ჯერ კიდევ გვაქვს. რომლებიც ჯერ არ არის გადატანილი ერთ საცავში. როგორც ვაგრძელებთ კონსოლიდაციას, ჩვენ დარწმუნებულები ვართ, რომ ამ ფარული რელიქვიების მეტს ვიპოვით. მაგრამ ახლა ჩვენ შექმნილია იმისთვის, რომ დავიჭიროთ ისინი და თავიდან ავიცილოთ ახლის წარმოქმნა. როცა მთელი თქვენი კოდი ერთ ადგილას ცხოვრობს, ობოლი ინფრასტრუქტურას დასამალი არსად აქვს.

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