RE:NODE
ჰოსტინგი

ექსპლუატაცია6 წუთის საკითხავი

Zero-downtime დეპლოი სერვერზე, რომელსაც ყველაფრიდან თითო აქვს

კლასტერი არ გჭირდება. რა იწვევს სინამდვილეში პაუზას დეპლოის დროს და სამი ტექნიკა, რომელიც მას ერთ მანქანაზე აშორებს.


Zero-downtime დეპლოის ჩვეულებრივ load balancer-ებითა და rolling განახლებებით აღწერენ, რაც უსარგებლოა, თუ ერთი სერვერი გაქვს. ერთ მანქანაზე პაუზის მიზეზი უფრო მარტივია: ძველი პროცესი ჩერდება მანამ, სანამ ახალი პასუხის გაცემას მოასწრებდა.

დახურე პაუზა

  • ჯერ ახალი პროცესი გაუშვი მეორე პორტზე და გადართე მხოლოდ მაშინ, როცა ის პასუხობს.
  • დაე, ძველმა პროცესმა მიმდინარე მოთხოვნები დაასრულოს და არ ჩაყაროს — ეს signal handler-ია და დაახლოებით ათი ხაზი.
  • გაუშვი მიგრაციები დეპლოიმდე, დაწერილი ისე, რომ კოდის ორივე ვერსიას სქემასთან ცხოვრება შეეძლოს.

მიგრაცია ყველაზე რთული ნაწილია

სვეტის დამატება უსაფრთხოა. მისი გადარქმევა — არა, რადგან რამდენიმე წამის განმავლობაში ორივე ვერსია მუშაობს. დაამატე, დააყენე, შეავსე და მერე მოაშორე მოგვიანებით რელიზში: სამი მოსაწყენი დეპლოი ერთი საინტერესოს ნაცვლად.