Kapsayıcıları tanımlama

Tamamlandı

Contoso çeşitli iş yüklerini geçirip sanallaştırdıkça, bazı iş yüklerini kapsayıcıya alma seçeneği ortaya çıkabilir. Windows Server yöneticisi kapsayıcıları değerlendirir, nasıl çalıştıklarını ve kullanmanın avantajlarının ne olabileceğini anlar. Avantajlar arasında hareketlilik, çeviklik, daha yüksek verimlilik ve sunucu yoğunlukları yer alabilir. Tüm bu avantajlar, daha iyileştirilmiş sunucu iş yüklerine ve geliştirme ortamlarının tutarlılığına katkıda bulunur.

Kapsayıcılar nedir?

Kapsayıcı, bir uygulamayı tüm bağımlılıklarıyla birlikte paketlemek ve çalıştırılacağı konak işletim sisteminden (OS) soyutlama amacıyla kullanılır. Kapsayıcılar, uygulamaların geliştirme sırasında kolayca çalıştırılıp paylaşılabildiği basit bir geliştirme ve çalışma zamanı ortamı sağlar. Yalnızca konak işletim sisteminden yalıtılmış bir kapsayıcı değil, aynı zamanda diğer kapsayıcılardan da yalıtılır. Yalıtılmış kapsayıcılar, içinde çalışan uygulamaların güvenliğini ve güvenilirliğini de geliştirebilen bir sanal çalışma zamanı sağlar.

Geleneksel olarak bir yazılım uygulaması desteklenen bir işlemci, donanım ve işletim sistemi platformunda çalışacak şekilde geliştirilmiştir. Yazılım uygulamaları genellikle farklı çalışma zamanı platformları için destek sağlamak için ek kodlama gerektirir. Birçok farklı bilgi işlem sistemiyle, birden çok bilgi işlem ortamı arasında taşınabilirliği desteklemek için daha verimli bir yazılım geliştirme ve yönetim platformu gerekir. Kapsayıcılar bu tür taşınabilirlik sağlamaya yardımcı olur.

Kapsayıcıları kullanmanın avantajları

Kapsayıcıları kullanmanın avantajları şunlardır:

  • Her yerde çalıştırabilme yeteneği. Kapsayıcılar Linux, Windows ve Mac işletim sistemleri gibi çeşitli platformlarda çalıştırılabilir. Bunlar yerel bir iş istasyonunda, şirket içi veri merkezlerindeki sunucularda barındırılabilir veya bulutta sağlanabilir.

  • Yalıtım. Bir uygulama için kapsayıcı tam bir işletim sistemi gibi görünür. CPU, bellek, depolama ve ağ kaynakları kapsayıcı içinde sanallaştırılır ve konak platformundan ve diğer uygulamalardan yalıtılır.

  • Daha yüksek verimlilik. Kapsayıcılar daha çevik bir geliştirme, test ve üretim yaşam döngüsünü destekleyecek şekilde hızla dağıtılabilir, güncelleştirilebilir ve ölçeklendirilebilir. Kullandıkları kaynaklar açısından daha verimli olduklarından, ayak izleri daha küçüktür ve bu da sunucularda daha fazla yoğunluk sağlar.

  • Tutarlı bir geliştirme ortamı. Geliştiriciler kapsayıcıları Java, .NET, Python ve Node.js gibi çeşitli geliştirme dillerini destekleyen tutarlı ve öngörülebilir bir geliştirme ortamı olarak kullanır. Geliştiriciler uygulamanın nereye dağıtıldığına bakılmaksızın kapsayıcının uygulamanın istenen şekilde çalışmasını sağlayacağını bilir.

Kapsayıcılar nasıl çalışır?

Standart bir Windows bilgisayardaki işlemcinin iki farklı modu vardır: çekirdek modu ve kullanıcı modu. Çekirdek işletim sistemi bileşenleri ve çoğu cihaz sürücüsü çekirdek modunda çalışırken, uygulamalar kullanıcı modunda çalışır.

Bir bilgisayara kapsayıcı teknolojisi yüklediğinizde, her kapsayıcı konak işletim sisteminde bir uygulama çalıştırmak için kullanılan yalıtılmış, basit bir silo oluşturur. Kapsayıcı, dosya sistemine ve kayıt defterine erişim elde etmek için konak işletim sisteminin çekirdeğinin çoğunu oluşturur ve paylaşır.

Her kapsayıcı, diğer kapsayıcılardan ve konağın kendi kullanıcı modu ortamından yalıtılmış olan kullanıcı modu sistem dosyalarının kendi kopyasına sahiptir. Kullanıcı modunu yalıtma özelliği, paketlenmiş bir uygulamayı desteklemek için gereken kullanıcı modu sistem dosyalarından oluşan bir kapsayıcı temel görüntüsü tarafından sağlanır. Kapsayıcı tabanlı görüntü şablonları, kapsayıcılı uygulama tarafından kullanılan ve konağın çekirdek modu katmanından sağlanmayan (veya kısıtlanmış) işletim sistemi hizmetlerinin temel katmanını sağlar.

Uygulama ve kod değişikliklerinin yapıldığı katman, bu önceden oluşturulmuş kapsayıcı temel işletim sistemi görüntü katmanlarının üzerinde yer alır. Bu temel işletim sistemi katmanları, uygulama veya kod değişiklikleri için etkin olarak kullanılan kapsayıcı katmanlarından ayrı olarak geliştirilir ve güncelleştirilir. Temel katmanlar güncelleştirilmeden yerel çalışma ortamına çekilir ve ardından temel katmanlarda çalışan kapsayıcı katmanlarında çalışma başlatılır. Bu, daha küçük, daha hafif ve daha taşınabilir geliştirme ortamları sağlar.

Aşağıdan yukarıya doğru bir yığında katmanlar içeren örnek bir kapsayıcı katmanı kümesini gösteren diyagram: Temel işletim sistemi katmanı, IIS Katmanı, ASP.NET Katmanı ve Web sitesi katmanınız.

Uygulamanızı barındırmak için kendi kapsayıcı görüntünüzü oluşturduğunuzda, ihtiyacınız olan bağımlılıklara sahip bir kapsayıcı temel işletim sistemi görüntüsünden veya önceden oluşturulmuş bir kapsayıcı görüntüsünden yararlanırsınız. Bu katmanların üzerinde, kapsayıcıda çalıştırmak istediğiniz uygulamayla kendi katmanlarınızı oluşturursunuz. Kapsayıcı görüntüsünü oluşturmaya yönelik her işlem, son görüntünün üzerine oluşturulur. Bu, görüntü boyutuna eklenir, ancak işletim sistemi, çerçeve, bağımlılıklar ve uygulama katmanlarını rahatça ayırmanıza olanak tanır.

Kapsayıcılar ve mikro hizmetler

Mikro hizmetler uygulamaları, tek bir uygulamanın gevşek bir şekilde bağlanmış ve bağımsız olarak dağıtılabilir küçük bileşenlerden veya hizmetlerden oluştuğu buluta özel mimari yaklaşım olarak tanımlanır. Bu küçük bileşenlerin veya hizmetlerin her biri bir kapsayıcı tarafından temsil edilebilir. Ancak kapsayıcılar mutlaka bir mikro hizmet mimarisi uygulamaz.

Kapsayıcı monolitik bir uygulama barındırabilir, ancak bu amaç için tasarlanmamıştır. Varsayılan olarak, Docker (veya başka bir kapsayıcı çalışma zamanı) ve kapsayıcı düzenleyicisi bir kapsayıcının her zaman güvenli bir şekilde silinebileceğini/kaldırılabildiğini ve gerekirse başka bir kapsayıcının yerini alabileceğini varsayar. Bir VM'de, bir uygulamayı VM diskine yazacak şekilde yapılandırdığınızda, VM'yi güvenli bir şekilde durdurabilir ve başlatabilirsiniz ve veriler, vm'nin güvenli bir şekilde önyüklenip işlemine devam edeceği gibi diskte kalır. Kapsayıcılarla, bir kapsayıcıyı kaldırır ve yerine başka bir kapsayıcı getirirseniz, yalnızca kapsayıcı görüntüsünün mevcut katmanları orada olur. Mikro hizmetler ortamında, durum ve veri kalıcılığınız varsa bu sorun olmamalıdır.

Bir kapsayıcıyı çalıştırıp vm gibi yönetebilirsiniz ancak durum ve veri ayrımı uygulamalarını benimsemeniz ve kapsayıcınızın silinmeye devam etmesini sağlamanız önerilir. Bu, DevOps gibi diğer uygulamalardan yararlanmanıza olanak sağlar.

Uygulamada, kapsayıcı görüntüsünün ve katmanlarının içinde herhangi bir veri veya durum depolamamalısınız. Bunun yerine, herhangi bir kapsayıcı örneğinin erişmesine izin veren dış kalıcı depolama alanı kullanmanız gerekir.