Sobes.tech
Junior

რა არის უწყვეტი განთავსება (continuous deployment)?

sobes.tech AI

პასუხი AI-სგან

კონტინუალური ინტეგრაცია და დელივერი (CI/CD) — ეს არის პროგრამული უზრუნველყოფის განვითარების მიდგომა, რომლის დროსაც ყოველი ავტომატიზებული ტესტირების ხაზი გადის და დამტკიცებული ცვლილებები ავტომატურად განთავსდება წარმოების გარემოში. მთავარი განსხვავება Continuous Delivery-სგან — ხელით დამტკიცების ნაბიჯის არარსებობა.

ძირითადი ეტაპები:

  1. Commit: დეველოპერი ახდენს ცვლილებების შეტანას ვერსიების კონტროლის სისტემაში (მაგალითად, Git).
  2. Build: ავტომატურად იკეთება არტეფაქტი (სურათი, პაკეტი და ა.შ.).
  3. Test: ავტომატური ტესტების გავლა (უნიტ-ტესტები, ინტეგრაციული, ფუნქციონალური, დატვირთვის და სხვა).
  4. Deploy: თუ ყველა ტესტი წარმატებით გაიარა, არტეფაქტი ავტომატურად განთავსდება სამუშაო გარემოში.

ძირითადი კომპონენტები:

  • მაღალი დონის ავტომატიზაცია.
  • საიმედო ინფრასტრუქტურა.
  • გამოყენება Continuous Integration (CI) და Continuous Delivery (CD) პრაქტიკების.
  • მონიტორინგი და ლოგირება — პრობლემების სწრაფად გამოვლენისათვის.
  • სწრაფი დაბრუნების შესაძლებლობა.
# GitLab CI/CD-ის ნაწილობრივი პაიპლაინი
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "აპლიკაციის მშენებლობა..."
    - # მშენებლობის ბრძანებები

test_job:
  stage: test
  script:
    - echo "ტესტების ჩატარება..."
    - # ტესტის ბრძანებები
  only:
    - main # მხოლოდ მთავარი ფილიარისთვის

deploy_job:
  stage: deploy
  script:
    - echo "წარმოების განთავსება..."
    - # განთავსების ბრძანებები
  when: on_success # განთავსება მხოლოდ თუ წინამორბედი ეტაპები წარმატებით დასრულდა
  only:
    - main
უპირატესობები ნაკლოვანებები
ახალი ფუნქციების/შეცდომების სწრაფი გამოშვება მაღალი მოთხოვნები ტესტების ხარისხზე
TTM (Time To Market) შემცირება შესაძლო რისკი არასასურველი ცვლილებების განთავსებაზე
რისკის შემცირება ყოველ განთავსებაზე რთული დანერგვა უვითარებელი CI/CD პროცესების გარეშე
სწრაფი უკუკავშირი მომხმარებლებისგან საიმედო მონიტორინგი და დაბრუნების საჭიროება