ექსპლუატაცია6 წუთის საკითხავი
Zero-downtime დეპლოი სერვერზე, რომელსაც ყველაფრიდან თითო აქვს
კლასტერი არ გჭირდება. რა იწვევს სინამდვილეში პაუზას დეპლოის დროს და სამი ტექნიკა, რომელიც მას ერთ მანქანაზე აშორებს.
Zero-downtime დეპლოის ჩვეულებრივ load balancer-ებითა და rolling განახლებებით აღწერენ, რაც უსარგებლოა, თუ ერთი სერვერი გაქვს. ერთ მანქანაზე პაუზის მიზეზი უფრო მარტივია: ძველი პროცესი ჩერდება მანამ, სანამ ახალი პასუხის გაცემას მოასწრებდა.
დახურე პაუზა
- ჯერ ახალი პროცესი გაუშვი მეორე პორტზე და გადართე მხოლოდ მაშინ, როცა ის პასუხობს.
- დაე, ძველმა პროცესმა მიმდინარე მოთხოვნები დაასრულოს და არ ჩაყაროს — ეს signal handler-ია და დაახლოებით ათი ხაზი.
- გაუშვი მიგრაციები დეპლოიმდე, დაწერილი ისე, რომ კოდის ორივე ვერსიას სქემასთან ცხოვრება შეეძლოს.
მიგრაცია ყველაზე რთული ნაწილია
სვეტის დამატება უსაფრთხოა. მისი გადარქმევა — არა, რადგან რამდენიმე წამის განმავლობაში ორივე ვერსია მუშაობს. დაამატე, დააყენე, შეავსე და მერე მოაშორე მოგვიანებით რელიზში: სამი მოსაწყენი დეპლოი ერთი საინტერესოს ნაცვლად.