containerization

Containerization, bir uygulamanın kodunu, kitaplıklarını ve bağımlılıklarını tek bir birimde toplayan, farklı ortamlarda tutarlı bir yürütme sağlayan bir yazılım paketleme biçimidir.

Containerization, uygulamaları temel altyapıdan izole ederek, nerede dağıtıldıklarına bakılmaksızın tutarlı bir şekilde çalışmasını sağlar. Bu, hafif, bağımsız ve yürütülebilir yazılım paketleri olan container'lar kullanılarak başarılır. Container'lar, bir uygulamayı çalıştırmak için gereken her şeyi içerir: kod, çalışma zamanı, sistem araçları, sistem kitaplıkları ve ayarlar. Bu yaklaşım, tüm işletim sistemini sanallaştıran geleneksel sanal makinelerle çelişir ve container'ları daha verimli ve taşınabilir hale getirir.

Containerization, taşınabilirliği, ölçeklenebilirliği ve kaynak verimliliğini teşvik eder. Uygulamaların dağıtımını ve yönetimini basitleştirerek, bunları geliştirme, test etme ve üretim gibi farklı ortamlar arasında taşımayı kolaylaştırır. Kubernetes gibi container orkestrasyon araçları, containerized uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini daha da otomatikleştirir.

        graph LR
  Center["containerization"]:::main
  Rel_cloud_computing["cloud-computing"]:::related -.-> Center
  click Rel_cloud_computing "/terms/cloud-computing"
  Rel_serverless["serverless"]:::related -.-> Center
  click Rel_serverless "/terms/serverless"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Bilgi testi

1 / 3

🧒 5 yaşındaki gibi açıkla

Oyuncaklarınızı ve tüm talimatlarını özel bir kutuya koymak gibidir, böylece onları herhangi bir odaya kolayca taşıyabilir ve diğer oyuncakları bozmadan tam olarak aynı şekilde çalışmalarını sağlayabilirsiniz.

🤓 Expert Deep Dive

Konteynerleştirme, OS düzeyinde sanallaştırma özelliklerinden yararlanır; öncelikle izolasyon için ad alanları (örneğin, PID, ağ, bağlama, kullanıcı) ve kaynak sınırlaması (CPU, bellek, G/Ç) için kontrol grupları (cgroups) kullanılır. Bu, donanımı emüle etme ve ayrı OS çekirdekleri çalıştırma nedeniyle önemli bir ek yük getiren VM'ler tarafından kullanılan donanım sanallaştırmasından keskin bir şekilde farklıdır. containerd ve CRI-O gibi konteyner çalışma zamanları (genellikle Kubernetes gibi üst düzey orkestratörler tarafından yönetilir), konteyner yaşam döngülerini yönetmek için ana bilgisayar OS çekirdeği ile etkileşime girer. Konteynerler ana bilgisayar çekirdeğini paylaştığı için güvenlik kritik bir husustur; çekirdekteki güvenlik açıkları veya uygunsuz izolasyon yapılandırmaları güvenliği tehlikeye atabilir. SELinux ve AppArmor gibi teknolojiler ek güvenlik katmanları sağlar. Konteynerlerin geçici doğası, kalıcı depolama ve durum yönetimi için sağlam stratejiler gerektirir, bu da genellikle harici birimler veya özel depolama sürücüleri içerir.

📚 Kaynaklar