Image — cloud, container va virtualizatsiya muhitida operatsion tizim, application, dependency va konfiguratsiyaning ishga tushiriladigan tayyor shabloni. Bu tushuncha oddiy grafik rasm emas, balki machine yoki container yaratish uchun ishlatiladigan immutable yoki versionlangan artifactni anglatadi.
Image’dan bir nechta instance, virtual machine yoki container yaratilishi mumkin.
Machine image
Virtual machine uchun machine image odatda quyidagilarni saqlaydi:
- operatsion tizim;
- boot disk;
- package;
- agent;
- application;
- konfiguratsiya;
- metadata.
Image’dan yangi virtual disk va VM yaratiladi.
Hardware-specific ma’lumotlar imkon qadar olib tashlanadi.
Container image
Container image layerlardan tashkil topgan filesystem va runtime metadata’ni saqlaydi.
Unda:
- base image;
- application;
- library;
- command;
- environment defaultlari;
- user;
- working directory
mavjud bo‘lishi mumkin.
Container ishga tushganda image ustiga writable layer qo‘shiladi.
Layer
Har build bosqichi yangi layer yaratishi mumkin.
Bir xil layerlar registry va host cache’da qayta ishlatiladi.
Bu download va storage’ni tejaydi.
Oldingi layerga secret yozib, keyingi layerda o‘chirish secretni tarixdan olib tashlamaydi.
Immutable artifact
Image builddan keyin o‘zgartirilmasligi kerak.
Yangi package yoki configuration uchun yangi version build qilinadi.
Running instance ichida qo‘lda o‘zgarish qilish drift yaratadi.
Immutable image deploymentni qayta takrorlashni osonlashtiradi.
Base image
Application image boshqa base image’dan boshlanishi mumkin.
Masalan:
Base image kichik va ishonchli manbadan olinadi.
Undagi zaiflik barcha child image’ga o‘tishi mumkin.
Image build
Build jarayoni source va manifest asosida artifact yaratadi.
Container uchun Dockerfile yoki boshqa build specification ishlatilishi mumkin.
Machine image uchun image builder, provisioning script yoki golden VM ishlatiladi.
Build CI’da avtomatlashtiriladi.
Golden image
Tashkilot security, monitoring va configuration standardlariga mos asosiy image tayyorlaydi.
Unda:
bo‘lishi mumkin.
Application jamoalari shu baseline’dan foydalanadi.
Golden image muntazam yangilanadi.
Image ID
Image content digest, UUID yoki provider ID bilan aniqlanadi.
Human-readable tag o‘zgarishi mumkin.
Exact deployment uchun immutable digest yoki version ID saqlanadi.
“latest” tag production reproducibility uchun xavfli.
Tag
Tag image’ga qulay nom beradi:
app:1.4.2
app:stable
app:latest
Bir tag boshqa digestga ko‘chirilishi mumkin.
Release manifest tag bilan birga digestni ham saqlashi mumkin.
Registry
Container image registry’da saqlanadi.
- push;
- pull;
- tag;
- access control;
- retention;
- scan;
- replication
imkoniyatlarini beradi.
Machine image esa cloud image catalog yoki template repository’da bo‘lishi mumkin.
Image va instance
Image — shablon.
Instance — shu shablondan ishga tushgan hisoblash muhiti.
Bir image’dan ko‘p instance yaratiladi.
Instance ichidagi runtime state image’ni avtomatik o‘zgartirmaydi.
Configuration
Environmentga xos secret va endpointni image ichiga qattiq yozish ma’qul emas.
Image bir xil artifact sifatida staging va productionda ishlaydi.
Farq deployment configuration, secret manager va environment variable orqali beriladi.
Build once, deploy many tamoyili qo‘llanadi.
Cloud-init
Machine image’dan VM yaratilganda startup metadata orqali hostname, SSH key, user va script qo‘llanishi mumkin.
Bu image’ni umumiy saqlab, instance-specific sozlash beradi.
Startup script idempotent bo‘lishi kerak.
Sensitive ma’lumot metadata’da himoyalanadi.
Image scanning
Image package va library zaifliklari bo‘yicha tekshiriladi.
Scanner:
- OS package;
- application dependency;
- secret;
- malware;
- license;
- configuration
signalini berishi mumkin.
Scan natijasi build va deploy gate’ga ulanadi.
Signature
Image digital signature yoki attestation bilan tasdiqlanishi mumkin.
Runtime faqat ishonchli pipeline yaratgan artifactni ishga tushiradi.
Digest o‘zgarsa signature mos kelmaydi.
Signing key secure service’da saqlanadi.
SBOM
Software Bill of Materials image ichidagi componentlar ro‘yxatini beradi.
Incident paytida zaif library qaysi image’larda borligi topiladi.
SBOM build jarayonida yaratiladi va artifact digestiga bog‘lanadi.
Faqat scanner natijasiga tayanish yetarli emas.
Patch
Running serverni qo‘lda patch qilish o‘rniga yangilangan image build qilinib instance almashtiriladi.
Bu driftni kamaytiradi.
Favqulodda hotfix bo‘lsa keyin source image pipeline’ga qaytarilishi kerak.
Aks holda keyingi deploy fixni yo‘qotadi.
Hajm
Katta image:
- sekin download;
- uzoq startup;
- ko‘p storage;
- katta attack surface
yaratadi.
Keraksiz package, build tool va cache olib tashlanadi.
Multi-stage build runtime artifactni kichraytiradi.
Portability
Container image bir xil architecture va compatible runtime’da ko‘chishi mumkin.
Machine image provider formatiga bog‘liq bo‘lishi ehtimoli yuqori.
Architecture, kernel, driver va virtualization type compatibility tekshiriladi.
“Image bor” degani barcha platformada o‘zgarmasdan ishlaydi degani emas.
Architecture
Image ma’lum CPU architecture uchun build qilinadi:
- x86_64;
- arm64;
- boshqa platforma.
Multi-architecture manifest clientga mos variantni tanlashga yordam beradi. Native dependency va compiled binary barcha architecture uchun mavjud bo‘lishi kerak.
Image retention
Registry’da eski tag va unreferenced layerlar storage egallaydi. Retention faqat active deployment va rollback oynasidan tashqaridagi artifactlarni o‘chiradi. Release digestlari audit va incident uchun ma’lum muddat saqlanadi.
Bog‘liq tushunchalar
Machine image, Container image, Golden image, Base image, Image layer, Registry, Image tag, Digest, Instance, Immutable infrastructure, SBOM