Bosh sahifa Wiki Remote state

Remote state

Remote stateInfrastructure as Code vositasining resource identity va oxirgi ma’lum atributlarini lokal kompyuter o‘rniga umumiy masofaviy backend’da saqlash usuli. U jamoa va CI pipeline’lariga bitta authoritative state’dan foydalanish, locking, versiyalash va markaziy access nazoratini beradi. State konfiguratsiya kodi emas; real resource bilan logical address orasidagi bog‘lanish yozuvidir.

Zarurati

Lokal state faqat bitta operator uchun qulay. Fayl Gitga noto‘g‘ri qo‘shilishi, laptop yo‘qolishi yoki ikki muhandis turli nusxa bilan apply qilishi mumkin. Remote backend barcha run uchun bir manzil beradi va yangilanishni atomic yozishga harakat qiladi.

State yo‘qolsa cloud resurslar yo‘qolmaydi, ammo tool ularning qaysi logical addressga tegishli ekanini bilmaydi. Keyingi apply duplicate yaratishi yoki import talab qilishi mumkin. Shu sabab state kritik operational data hisoblanadi.

Locking

Ikki apply bir vaqtda bir state’ni yangilasa lost update va zid resource amallari yuz beradi. Backend lock olgan run tugamaguncha boshqasini kutadi yoki rad etadi. Plan faqat o‘qisa ham platforma va vositaga qarab lock olishi mumkin.

Process crash qilsa stale lock qoladi. Force-unlock faqat eski run haqiqatan tugaganiga ishonch bo‘lganda bajariladi. Aks holda parallel apply state’ni buzadi. Lock ID va owner auditda saqlanadi.

State mazmuni

Ma’lumot Maqsadi
Resource ID Logical va real obyektni bog‘lash
Atributlar Diff va dependency hisoblash
Provider metadata Schema va boshqaruvchi provider
Output Boshqa stack yoki operatorga qiymat
Dependency Amal tartibini tiklash

Sensitive atribut CLI’da yashirilsa ham state’da plain qiymat sifatida bo‘lishi mumkin. State maxfiy fayl kabi himoyalanadi.

Xavfsizlik

Backend transport va storage encryption’dan foydalanadi. Access identity bo‘yicha minimal: pipeline o‘z workspace state’ini o‘qib-yozadi, boshqa environment state’ini emas. Inson read access ham secret va infratuzilma topologiyasini oshkor qilishi mumkin.

Audit kim qachon state o‘qigan, yozgan yoki version tiklaganini qayd etadi. Public bucket, umumiy administrator key yoki uzoq muddatli CI credential katta xavf. Workload identity va qisqa token afzal.

Versiyalash va recovery

Object versioning noto‘g‘ri state yozuvi yoki o‘chirishdan oldingi nusxani tiklashga yordam beradi. Retention va immutable backup zararli o‘chirishga qarshi qo‘shimcha himoya beradi. Recovery faqat faylni almashtirish emas: real infratuzilma shu vaqtdan beri o‘zgargan bo‘lishi mumkin.

Restore oldidan current state, selected version va real resource inventari solishtiriladi. Eski state’ni ko‘r-ko‘rona qo‘yish keyingi apply’da yangi resource’ni o‘chirish yoki qayta yaratishi mumkin.

State boundary

Barcha tashkilot infratuzilmasini bitta state’da saqlash katta blast radius, uzun plan va keng ruxsat keltiradi. Environment, account, xizmat yoki lifecycle bo‘yicha alohida state ishlatiladi. Juda mayda bo‘linish esa ko‘p cross-state dependency va orchestration muammosini yaratadi.

Bir state’dagi resurslar odatda birga o‘zgaradigan va bir xil ownerga ega bo‘ladi. Database va application lifecycle’i farq qilsa ularni alohida state qilish mumkin. Output orqali zarur qiymatlar aniq contract sifatida uzatiladi.

State sharing

Bir stack boshqa stack outputini remote-state data source orqali o‘qishi mumkin. Bu consumerga ko‘pincha butun state’ni o‘qish huquqini beradi, hatto faqat bitta subnet ID kerak bo‘lsa ham. Sensitive boundary uchun kerakli qiymat service registry, parameter store yoki provider data source orqali e’lon qilinadi.

Output o‘zgarsa consumer planiga ta’sir qiladi. Producer va consumer release tartibi backward-compatible contractga tayanadi.

Drift va refresh

State real-time haqiqat emas, oxirgi ma’lum snapshot. Plan yoki refresh provider API’dan joriy holatni o‘qiydi. Console’da qilingan o‘zgarish state yangilanmaguncha ko‘rinmaydi.

Backend availability bo‘lmasa apply to‘xtaydi; lokal nusxa bilan aylanib o‘tish split ownership yaratishi mumkin. Remote state xizmati uchun availability, backup va disaster recovery infratuzilmaning o‘zi kabi rejalashtiriladi.

Bog‘liq tushunchalar

Infrastructure as Code, State locking, Backend, Encryption at rest, State file, Configuration drift, Output