पाठ 25 / 26

केस स्टडी: कई Environments में Web App Deploy करना

ऐसा repository और workflow डिज़ाइन करें जो web app को staging और production में सुरक्षित रूप से deploy करे।

डिज़ाइन

Repository: inventories/staging और inventories/production, हर एक में hosts.ini और group_vars (ports, replica संख्या, अलग vault passwords के साथ vaulted secrets)। Roles: common (users, packages, firewall), nginx, app_deploy (release directory, systemd unit, template config, reload के लिए handler)। Pipeline: pull request पर syntax-check, ansible-lint और Molecule चलाएँ; merge पर staging में पहले --check --diff फिर असली deploy; production controller से, मंज़ूरी चरण के साथ, पहले canary host, फिर health checks और max_fail_percentage के साथ serial: 25%। Rollback पिछले release variable के साथ दोबारा चलाना है। हर run commit ID के साथ log होता है।

सुरक्षित deployment pipeline

Inventory, roles, secrets, tests और rolling rollout एक दिनचर्या के रूप में साथ काम करते हैं।

चार हिस्से: परिभाषित, सुरक्षित, जाँच, rollout।
चित्र 8.1 — परिभाषित, सुरक्षित, जाँच और rollout।

एक पन्ने पर setup

हर पंक्ति इस कोर्स के एक खंड से जुड़ती है।

Inventory      per-environment dirs + group_vars                 (Sec 1, 3)
Playbooks      idempotent, named tasks, handlers, check --diff     (Sec 2, 4)
Roles          common, nginx, app_deploy; pinned collections       (Sec 5)
Secrets        Vault per environment; no_log; least privilege      (Sec 6)
Quality        syntax-check, ansible-lint, Molecule in CI          (Sec 7)
Rollout        canary host, serial batches, health checks, rollback (Sec 7)

Rollback का अभ्यास करें

Staging में rollback का अभ्यास करें ताकि वह ज्ञात, तेज़ प्रक्रिया हो, किसी outage के दौरान तुरंत गढ़ी जाने वाली चीज़ नहीं।

त्वरित जाँच: Production में पहले canary host पर deploy क्यों करें?

  • यह health checks की ज़रूरत टालता है
  • Canary hosts तेज़ होते हैं
  • ताकि समस्याएँ तब पकड़ी जाएँ जब सिर्फ़ एक मशीन प्रभावित हो
  • Production batches अस्वीकार करता है
Answer

ताकि समस्याएँ तब पकड़ी जाएँ जब सिर्फ़ एक मशीन प्रभावित हो — छोटा पहला कदम ख़राब बदलाव के असर का दायरा सीमित करता है।