Container'lı hâle getirme nedir?

Container'lı hâle getirme, bir uygulamanın kodunu herhangi bir altyapı üzerinde çalıştırmak için gereken tüm dosya ve kütüphanelerle paket hâline getiren bir yazılım dağıtım işlemidir. Geleneksel olarak, bilgisayarınızdaki uygulamaları çalıştırmak için makinenizin işletim sistemiyle eşleşen sürümü yüklemeniz gerekiyordu. Örneğin, bir yazılım paketinin Windows sürümünü bir Windows bilgisayarına yüklemeniz gerekiyordu. Ancak container'lı hâle getirme sayesinde her tür cihazda ve işletim sisteminde çalışan tek bir yazılım paketi veya container oluşturabilirsiniz. 

Container'lı hâle getirmenin avantajları nelerdir?

Geliştiriciler, aşağıdaki avantajlardan dolayı modern uygulamaları oluşturmak ve dağıtmak için container'lı hâle getirmeyi kullanır. 

Taşınabilirlik

Yazılım geliştiricileri, program kodunu yeniden yazmadan uygulamaları birden çok ortamda dağıtmak için container'lı hâle getirmeyi kullanır. Bir kez bir uygulama oluştururlar ve birden çok işletim sistemine dağıtırlar. Örneğin, Linux ve Windows işletim sistemlerinde aynı container'ları çalıştırırlar. Geliştiriciler ayrıca dağıtım için container'ları kullanarak eski uygulama kodunu modern sürümlere yükseltir.

Ölçeklenebilirlik

Container'lar, verimli şekilde çalışan hafif yazılım bileşenleridir. Örneğin, bir sanal makine, bir işletim sistemini önyüklemesi gerekmediğinden container'lı bir uygulamayı daha hızlı başlatabilir. Bu nedenle, yazılım geliştiricileri farklı uygulamalar için tek bir makinede kolayca birden fazla container ekleyebilir. Container kümesi, aynı paylaşılan işletim sistemindeki bilgi işlem kaynaklarını kullanır, ancak bir container diğer container'ların çalışmasını engellemez.  

Hata toleransı

Yazılım geliştirme ekipleri hata toleranslı uygulamalar oluşturmak için container'lar kullanır. Bulutta mikro hizmetleri çalıştırmak için birden fazla container kullanırlar. Container'lı mikro hizmetler yalıtılmış kullanıcı alanlarında çalıştığından, tek bir hatalı container diğer container'ları etkilemez. Bu, uygulamanın dayanıklılığını ve kullanılabilirliğini artırır.

Çeviklik

Container'lı uygulamalar yalıtılmış bilgi işlem ortamlarında çalışır. Yazılım geliştiricileri, işletim sistemine, donanıma veya diğer uygulama hizmetlerine müdahale etmeden uygulama kodunu değiştirebilir ve kodla ilgili sorunları giderebilir. Container modeli ile yazılım yayınlama döngülerini kısaltabilir ve güncellemeler üzerinde hızlı bir şekilde çalışabilirler.

Container'lı hâle getirme kullanımı örnekleri nelerdir?

Aşağıda, container'lı hâle getirme kullanımına örnekler bulabilirsiniz.

Buluta geçiş

Buluta taşıma veya olduğu gibi taşıma yaklaşımı, eski uygulamaları container'lara koymayı ve bunları bir bulut bilgi işlem ortamında dağıtmayı içeren bir yazılım stratejisidir. Kuruluşlar, tüm yazılım kodunu yeniden yazmadan uygulamalarını modern hâle getirebilirler.

Mikro hizmet mimarisinin benimsenmesi

Mikro hizmetlerle bulut uygulamaları oluşturmak isteyen kuruluşlar, container'lı hâle getirme teknolojisine ihtiyaç duyar. Mikro hizmet mimarisi, işlevsel bir uygulama sunmak için birden fazla bağımlı yazılım bileşeni kullanan bir yazılım geliştirme yaklaşımıdır. Her mikro hizmette benzersiz ve özel bir işlev bulunur. Modern bir bulut uygulaması, birden fazla mikro hizmetten oluşur. Örneğin bir video akışı uygulamasında veri işleme, kullanıcı izleme, faturalandırma ve kişiselleştirme için mikro hizmetler olabilir. Container'lı hâle getirme, mikro hizmetleri farklı platformlarda dağıtılabilir programlar olarak paketlemek için kullanılacak yazılım aracını sağlar.

IoT cihazları

Nesnelerin İnterneti (IoT) cihazları, sınırlı bilgi işlem kaynakları içerdiğinden manuel yazılımı güncelleme işlemi karmaşık bir süreçtir. Container'lı hâle getirme, geliştiricilerin uygulamaları IoT cihazlarında kolayca dağıtmasına ve güncellemesine olanak tanır.

Container'lı hâle getirme nasıl çalışır?

Container'lı hâle getirme, üzerinde çalıştıkları makinelerden bağımsız olarak tutarlı bir şekilde performans gösteren kendi kendine yeten yazılım paketleri oluşturmayı içerir. Yazılım geliştiricileri, container'lı bir uygulamayı çalıştırmak için gerekli bilgileri içeren dosyalar olan container görüntüleri oluşturur ve dağıtır. Geliştiriciler, Open Container Initiative (OCI) görüntü teknik özelliklerine göre container görüntüleri oluşturmak için container'lı hâle getirme araçlarını kullanır. OCI, container görüntüleri oluşturmak için standartlaştırılmış biçim sağlayan açık kaynaklı bir gruptur. Container görüntüleri salt okunurdur ve bilgisayar sistemi tarafından değiştirilemez.

Container görüntüleri, aşağıdaki katmanlardan oluşan container'lı bir sistemdeki en üst katmandır.

Altyapı

Altyapı, container modelinin donanım katmanıdır. Container'lı uygulamayı çalıştıran fiziksel bilgisayar veya çıplak metal sunucuyu ifade eder. 

İşletim sistemi

Container'lı hâle getirme mimarisinin ikinci katmanı işletim sistemidir. Linux, şirket içi bilgisayarlarla container'lı hâle getirme için popüler bir işletim sistemidir. Bulut bilgi işlem alanında, geliştiriciler container'lı uygulamaları çalıştırmak için AWS EC2 gibi bulut hizmetlerini kullanır. 

Container motoru

Container motoru veya container çalışma zamanı, container görüntülerine göre container'lar oluşturan bir yazılım programıdır. Container'lar ve işletim sistemi arasında aracı olarak hareket ederek uygulamanın ihtiyaç duyduğu kaynakları sağlar ve yönetir. Örneğin, container motorları aynı işletim sistemindeki birden fazla container'ı temel altyapıdan ve birbirinden bağımsız tutarak yönetebilir. 

Uygulama ve bağımlılıklar

Container'laştırma mimarisinin en üst katmanı, uygulama kodu ve kütüphane bağımlılıkları ve ilgili yapılandırma dosyaları gibi çalıştırılması gereken diğer dosyalardır. Bu katman, ana bilgisayar işletim sistemine yüklenen hafif bir konuk işletim sistemi de içerebilir.

Container düzenlemesi nedir?

Container düzenleme, container'ların otomatik olarak yönetilmesini sağlayan bir yazılım teknolojisidir. Bu, modern bulut uygulaması geliştirme için gereklidir çünkü bir uygulama kendi container'larında binlerce mikro hizmet içerebilir. Çok sayıda container'lı mikro hizmet, yazılım geliştiricilerinin bunları manuel olarak yönetmesini imkansız kılar.

Container düzenlemesinin avantajları

Geliştiriciler, container'ları otomatik olarak başlatmak, durdurmak ve yönetmek için container düzenleme araçlarını kullanır. Container düzenleyiciler, geliştiricilerin bulut uygulamalarını hassas bir şekilde ölçeklendirmesine ve insan hatalarından kaçınmasına olanak tanır. Örneğin, container'ların ana bilgisayar platformundan yeterli kaynaklarla dağıtıldığını doğrulayabilirsiniz. 

Container teknolojisinin türleri nelerdir?

Aşağıdakiler, geliştiricilerin container'lı hâle getirme için kullandıkları popüler teknolojilerin bazı örnekleridir.

Docker

Docker veya Docker Engine, yazılım geliştiricilerin çeşitli platformlarda container'lı uygulamalar oluşturmasına, dağıtmasına ve test etmesine olanak tanıyan popüler bir açık kaynaklı container çalışma zamanıdır. Docker container'ları, Docker çerçevesiyle oluşturulan bağımsız uygulama paketleri ve ilgili dosyalardır.

Linux

Linux, yerleşik container teknolojisine sahip açık kaynaklı bir işletim sistemidir. Linux container'ları, birden çok Linux tabanlı uygulamanın tek bir ana makinede çalışmasına izin veren bağımsız ortamlardır. Yazılım geliştiricileri, büyük miktarda veri yazan veya okuyan uygulamaları dağıtmak için Linux container'larını kullanır. Linux container'ları, tüm işletim sistemini sanallaştırılmış ortamlarına kopyalamaz. Bunun yerine, container'lar Linux ad alanında ayrılmış gerekli işlevlerden oluşur.  

Kubernetes

Kubernetes, yazılım geliştiricilerinin çok sayıda mikro hizmeti dağıtmak, ölçeklendirmek ve yönetmek için kullandıkları popüler bir açık kaynaklı container düzenleyicidir. Container'ları otomatikleştirmeyi kolaylaştıran bildirim tabanlı bir modele sahiptir. Bildirim tabanlı model, Kubernetes'in yapılandırma dosyalarına dayalı gereksinimleri yerine getirmek için uygun eylemi gerçekleştirmesini sağlar. 

Sanal makine nedir?

Sanal makine (VM), ana makinenin fiziksel donanımı ve işletim sisteminin dijital bir kopyasıdır. Bir ana makinede CPU, depolama alanı ve belleği paylaşan birkaç VM olabilir. VM'leri izleyen bir yazılım olan bir hipervizör, uygulamaların kullanıp kullanmadığına bakılmaksızın bilgi işlem kaynaklarını tüm VM'lere tahsis eder.

Sanal makineler ve container'lı hâle getirme karşılaştırması

Container'lı hâle getirme, benzer ancak geliştirilmiş bir sanal makine kavramıdır. Donanım katmanını kopyalamak yerine, container'lı hâle getirme, işletim sistemi katmanını bağımsız ortamdan kaldırır. Bu, uygulamanın ana bilgisayar işletim sisteminden bağımsız olarak çalışmasını sağlar. Container'lı hâle getirme kaynak israfını önler çünkü uygulamalara ihtiyaç duydukları kaynakların tam olarak sunulmasını sağlanır. 

Sunucusuz bilişim nedir?

Sunucusuz bilişim, bulut satıcısının bir uygulamaya güç veren sunucu altyapısını tam olarak yönettiği bir bulut bilgi işlem teknolojisini ifade eder. Bu, geliştiricilerin ve kuruluşların bulut sunucusunda kaynakları yapılandırması, bakımlarını yapması veya tedarik etmesi gerekmediği anlamına gelir. Sunucusuz bilişim, kuruluşların bilişim kaynaklarını iş yüküne göre otomatik olarak ölçeklendirmesine olanak tanır. 

Sunucusuz bilişim ile karşılaştırıldığında container'lı hâle getirme

Sunucusuz bilişim, ilgili kütüphaneler veya yapılandırma dosyaları gibi bağımlılıklar olmadığından uygulamaların anında dağıtılmasını sağlar. Sunucusuz uygulama kullanılmadığında bulut satıcısı bilişim kaynakları için ücret almaz. Öte yandan container'lar, daha taşınabilir olduklarından geliştiricilere uygulama ortamının tam kontrolünü sağlar. 

Bulut temelli nedir?

Bulut temelli, bulutta bir uygulama oluşturan, test eden ve dağıtan bir yazılım geliştirme yöntemidir. Bulut temelli terimi, uygulamanın bir bulut bilgi işlem ortamında oluşturulduğu ve bulunduğu anlamına gelir. Kuruluşlar, yüksek oranda ölçeklenebilir, dayanıklı ve esnek oldukları için bulut temelli uygulamalar oluşturur.

Bulut temelli ve container'lı hâle getirme karşılaştırması

Bulut temelli uygulama geliştirme, geleneksel tek parça uygulamalara göre farklı teknolojiler ve yaklaşımlar gerektirir. Container'lı hâle getirme, geliştiricilerin bulut temelli uygulamalar oluşturmasına olanak tanıyan teknolojilerden biridir. Hizmet ağı ve API'ler gibi mikro hizmetlerin bulut temelli bir uygulamada uyumlu bir şekilde çalışmasını sağlamak için diğer bulut temelli teknolojilerle çalışır. 

AWS App2Container nedir?

AWS App2Container, yazılım geliştiricilerinin eski uygulamaları modern hâle getirmelerine olanak tanıyan bir container'lı hâle getirme aracıdır. Geliştiriciler, Java ve .NET uygulamalarını container'lı uygulamalara dönüştürmek için App2Container'ı kullanırlar:

  • App2Container, mevcut platform tabanlı uygulamaları AWS ortamına taşımak için standart araçlar sağlar.
  • App2Container sayesinde geliştiriciler, bulut uygulamalarını ölçeklendirirken güvenliklerini garanti altına alırlar.
  • Geliştiriciler, container görüntüleri oluştururken bağımlılıkları ve yapılandırmaları belirlemeyi kolaylaştırmak için App2Container kullanırlar.

 Hemen bir AWS hesabına kaydolarak AWS üzerinde container'lı hâle getirmeye başlayın.

AWS container'lı hale getirme için sonraki adımlar

Ürünle ilgili diğer kaynaklara göz atın
İşlem hizmetleri hakkında daha fazla bilgi edinin 
Ücretsiz bir hesap için kaydolun

AWS ücretsiz kullanım için anında erişim elde edin. 

Kaydolun 
Konsolda oluşturmaya başlayın

AWS Management Console'da AWS ile oluşturmaya başlayın.

Oturum açın