DevOps და ინფრასტრუქტურა
ჩვენ განლაგების (deployment) პროცესს საუკეთესო გაგებით მოსაწყენს ვხდით: პროცესები, რომლებიც აგებს და ამოწმებს ყოველ commit-ს, კოდში აღწერილი ინფრასტრუქტურა ხელით აწყობის ნაცვლად, კონტეინერები, რომლებიც ერთნაირად მუშაობს ყველგან, და მონიტორინგი, რომელიც ხარვეზს თქვენს მომხმარებელზე ადრე გატყობინებთ.
რას ვაკეთებთ
- CI/CD პროცესები GitHub Actions-სა და GitLab CI-ზე, პირველივე commit-იდან პროდაქშენამდე.
- AWS ინფრასტრუქტურა აღწერილი Terraform-ში, რათა გარემოს ხელახლა აგება ნებისმიერ დროს იყოს შესაძლებელი.
- კონტეინერიზაცია Docker-ით, მათ შორის ლოკალური დეველოპმენტის გარემო, რომელიც ზუსტად ემთხვევა პროდაქშენს.
- მონიტორინგი, ლოგების აგრეგაცია და შეტყობინებები, რომლებიც ინჟინერს მხოლოდ მაშინ აწუხებს, როდესაც ეს მართლაც აუცილებელია.
- ავტომატიზებული განლაგება სერვისის შეფერხების გარეშე (zero-downtime) და წინა ვერსიაზე დაბრუნების (rollback) გამოცდილი მექანიზმით.
როგორ ვმუშაობთ
გუნდების უმეტესობას არ სჭირდება გადატვირთული პლატფორმები. მათ სჭირდებათ განლაგება, რომელიც რამდენიმე წუთს იკავებს, გარემო, რომლის აღდგენაც სწრაფად შეიძლება, და შეტყობინება, რომელიც მომხმარებლის ზარამდე მოდის. ვიწყებთ ყველაზე მტკივნეული წერტილით (ჩვეულებრივ ეს არის deploy), ვაქცევთ მას სრულად ავტომატიზებულად, შემდეგ კი გადავდივართ გარემოებზე, მონიტორინგსა და სარეზერვო ასლებზე, რომელთა აღდგენაც რეგულარულად მოწმდება.
ტექნოლოგიური დასტა
GitHub Actions და GitLab CI პროცესებისთვის, AWS და Terraform ინფრასტრუქტურისთვის, Docker აწყობისა და გარემოების იდენტურობისთვის, nginx გარე ფენაზე, მეტრიკებით, ლოგების აგრეგაციითა და შეტყობინებებით აღჭურვილი სისტემები.
ხშირად დასმული კითხვები
რომელ ღრუბლოვან (Cloud) პროვაიდერებთან მუშაობთ?
AWS არის სტანდარტული არჩევანი, რომელსაც ვუწევთ რეკომენდაციას და რომელსაც საუკეთესოდ ვიცნობთ. მცირე პროვაიდერები და ჩვეულებრივი ვირტუალური სერვერებიც თანაბრად მისაღებია, როდესაც პროექტი უკვე ამ რესურსებს იყენებს. CI/CD პროცესი, კონტეინერები და მონიტორინგი ნებისმიერ შემთხვევაში ერთნაირად ეფექტურია, რაც არჩევანს მოქნილს ტოვებს.
შეგიძლიათ განლაგების (deploy) პროცესის გამოსწორება სისტემის თავიდან აწყობის გარეშე?
უმეტეს შემთხვევაში, დიახ. განლაგების სირთულეებს ხშირად იწვევს ავტომატიზაციის ნაკლებობა, დაუწერელი მექანიკური ნაბიჯები ან გარემო, რომლის ხელახლა შექმნაც რთულია. თითოეული მათგანის მოგვარება შესაძლებელია ადგილზევე. თუ რომელიმე სტრუქტურის საიმედოობა შეუძლებელია, ამას თავიდანვე პირდაპირ ვამბობთ.
აგრძელებთ თანამშრომლობას ინფრასტრუქტურის აწყობის შემდეგ?
ეს თქვენს გადაწყვეტილებაზეა დამოკიდებული. პროექტის ჩაბარება მოიცავს დეტალურ ინსტრუქციებს (runbooks), რათა თქვენმა გუნდმა შეძლოს სისტემის დამოუკიდებლად მართვა. თუ გირჩევნიათ ამ პასუხისმგებლობის დელეგირება, ჩვენ მზად ვართ უზრუნველვყოთ განახლებები, ინციდენტებზე რეაგირება და ინფრასტრუქტურის გაფართოება დატვირთვის ზრდასთან ერთად. ჩვენ მიერ აწყობილი არცერთი სისტემა არ არის ჩვენზე ხელოვნურად მიბმული.
გაქვთ პროექტი? მოგვწერეთ: hello@longisoft.com