Kapsayıcılar ve Docker’a Giriş
İpucu
Bu içerik, .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sunulan Kapsayıcılı .NET Uygulamaları için .NET Mikro Hizmetler Mimarisi e-Kitabı'ndan bir alıntıdır.
Kapsayıcıya alma, bir uygulama veya hizmetin, bağımlılıklarının ve yapılandırmasının (dağıtım bildirim dosyaları olarak soyutlanmış) bir kapsayıcı görüntüsü olarak birlikte paketlendiği yazılım geliştirmeye yönelik bir yaklaşımdır. Kapsayıcılı uygulama bir birim olarak test edilebilir ve konak işletim sistemine (OS) kapsayıcı görüntüsü örneği olarak dağıtılabilir.
Kargo konteynerleri, içindeki kargoya bakılmaksızın malların gemi, tren veya kamyonla taşınmasına izin verdiği gibi, yazılım kapsayıcıları da farklı kod ve bağımlılıklar içerebilen standart bir yazılım dağıtım birimi görevi görür. Yazılımları bu şekilde kapsayıcılı hale getirmek, geliştiricilerin ve BT uzmanlarının çok az değişiklikle veya hiç değişiklik yapmadan bunları ortamlar arasında dağıtmasına olanak tanır.
Kapsayıcılar ayrıca paylaşılan bir işletim sisteminde uygulamaları birbirinden yalıtır. Kapsayıcılı uygulamalar, işletim sisteminde (Linux veya Windows) çalışan bir kapsayıcı konağı üzerinde çalışır. Bu nedenle kapsayıcılar, sanal makine (VM) görüntülerinden önemli ölçüde daha küçük bir ayak izine sahiptir.
Şekil 2-1'de gösterildiği gibi her kapsayıcı bir web uygulamasının veya hizmetin tamamını çalıştırabilir. Bu örnekte Docker konağı bir kapsayıcı konağıdır ve App1, App2, Svc 1 ve Svc 2 kapsayıcılı uygulamalar veya hizmetlerdir.
Şekil 2-1. Kapsayıcı konağı üzerinde çalışan birden çok kapsayıcı
Kapsayıcılı hale getirmenin bir diğer avantajı da ölçeklenebilirliktir. Kısa vadeli görevler için yeni kapsayıcılar oluşturarak ölçeği hızla genişletebilirsiniz. Uygulama açısından görüntü örneği oluşturmak (kapsayıcı oluşturmak), hizmet veya web uygulaması gibi bir işlemin örneğini oluşturmaya benzer. Ancak güvenilirlik için, aynı görüntünün birden çok örneğini birden çok konak sunucusunda çalıştırdığınızda, genellikle her kapsayıcının (görüntü örneği) farklı bir konak sunucusunda veya farklı hata etki alanlarındaki VM'de çalışmasını istersiniz.
Kısacası kapsayıcılar uygulama yaşam döngüsü iş akışının tamamında yalıtım, taşınabilirlik, çeviklik, ölçeklenebilirlik ve denetim avantajları sunar. En önemli avantajı, Geliştirme ve Operasyonlar arasında sağlanan ortamın yalıtımıdır.