Bosh sahifa Wiki Plan

Plan

Plan — Infrastructure as Code vositasi desired konfiguratsiya, saqlangan state va provider’dan o‘qilgan joriy holatni solishtirib, apply bajarilsa qanday o‘zgarishlar kutilishini ko‘rsatadigan natija. Unda resource yaratish, joyida yangilash, almashtirish yoki o‘chirish amallari ko‘rinadi. Plan review uchun muhim dalil, ammo real bajarilishning mutlaq kafolati emas.

Hisoblash manbalari

Tool konfiguratsiyani parse qiladi, module va variable’larni yechadi, dependency graph tuzadi va state’ni o‘qiydi. Refresh yoqilgan bo‘lsa provider real API’dan resource atributlarini oladi. So‘ng desired va current qiymatlar schema qoidalari bo‘yicha taqqoslanadi.

Plan vaqtida hali yaratilmagan resource outputi noma’lum bo‘lishi mumkin. Masalan, yangi load balancer IP’i apply’dan keyin API tomonidan beriladi. Tool uni known after apply kabi belgilaydi; unga bog‘liq ayrim diff ham to‘liq aniqlanmaydi.

Amal turlari

Belgilanish Mazmuni
Create Yangi real resource yaratiladi
Update in place Mavjud resource o‘zgartiriladi
Replace Eski va yangi identity almashadi
Destroy Resource o‘chiriladi
Read Data source yoki refresh o‘qiladi
No-op Desired va current mos

Replace ayniqsa e’tiborli: immutable atribut o‘zgarishi database yoki instance’ni qayta yaratishi mumkin. Tool create-before-destroy ishlatadimi yoki avval o‘chiradimi lifecycle va providerga bog‘liq.

Review

Reviewer faqat “nechta add/change/destroy” summary’siga qaramaydi. Resource address, environment, account, region, public exposure, encryption, tag, backup va dependency ko‘riladi. Kutilmagan destroy yoki ko‘p replace sabab aniqlanmaguncha apply qilinmaydi.

Sensitive qiymat yashirilgan bo‘lishi mumkin. sensitive label diff mavjudligini ko‘rsatib, mazmunni yashiradi; reviewer policy va source orqali o‘zgarishning ruxsat etilganini tekshiradi. Plan artefaktining o‘zi ham sensitive state ma’lumotini saqlashi mumkin.

Saqlangan plan

CI plan’ni binary artefakt sifatida saqlab, approvaldan keyin aynan shu plan’ni apply qilishi mumkin. Bu review qilingan konfiguratsiya bilan bajariladigan konfiguratsiya orasidagi farqni kamaytiradi. Artefakt commit, provider lock va environment identity bilan bog‘lanadi.

Plan va apply orasida real infratuzilma o‘zgarsa provider xato berishi yoki natija kutilganidan farq qilishi mumkin. Uzoq approval oynasi drift ehtimolini oshiradi. Ayrim pipeline apply oldidan plan eskirmaganini tekshiradi yoki qayta plan talab qiladi.

Exit code va avtomatlashtirish

Detailed exit code no-change, change mavjud va error holatini ajratadi. Pipeline faqat output matnini parse qilmasdan shu statusdan foydalanadi. Change mavjudligi o‘zi failure emas; policy yoki approval bosqichini ishga tushiradi.

Plan JSON formati policy engine, cost estimation va custom checker uchun ishlatilishi mumkin. Human-readable outputga mo‘ljallangan format versionlar orasida o‘zgarishi mumkin, mashina integratsiyasi rasmiy structured formatga tayanadi.

Policy va xarajat

Policy as Code plan ichidagi public ingress, ruxsatsiz region, shifrlanmagan storage yoki majburiy tagsiz resource’ni aniqlaydi. Policy inputida unknown qiymatlar bo‘lsa fail-open yoki fail-closed xatti-harakati aniq belgilanadi.

Cost estimator instance turi, disk va xizmat parametridan taxmin qiladi. Usage-based request, egress va discount to‘liq ma’lum bo‘lmagani uchun bu forecast, invoice emas. Katta oshish review signalidir.

Cheklovlar

Provider API defaulti, eventual consistency va runtime side effect plan’da to‘liq ko‘rinmasligi mumkin. Provisioner script nimalar qilishini plan faqat command sifatida ko‘rishi ehtimol. External systemda operator qilgan parallel o‘zgarish ham race yaratadi.

Apply’dan keyin output, resource health va policy qayta tekshiriladi. Plan xavfni kamaytiradi, lekin test, backup, rollout va observability o‘rnini bosmaydi.

Bog‘liq tushunchalar

Infrastructure as Code, Apply, Provider, State, Resource graph, Policy as Code, Configuration drift