Bulut ortamında yazılım yüklemek ve yazılımları yönetmek için konteynerler sıklıkla tercih edilen bir çözüm olarak karşımıza çıkıyor. Konteynerlerin asli amacı ise yazılımları, çalışmakta oldukları fiziksel ortamdan dışarı çıkarmaktır. Bir konteyner paketi, taşıdığı yazılımla tamamlandığı için tamamen izole bir ortamda çalışmaktadır.
Konteynerler genellikle Docker Konteyner motorunu kullanarak neredeyse her türlü ortamda istikrarlı bir şekilde uygulamaları çalıştırabilir. İster özel ister genel bir bulut ortamı, isterse de fiziki bir bilgisayarın içinde olması konteyner açısından hiç fark yaratmaz. Ancak konteyner üzerinde çalışan bir uygulamanın bulut ortamına aktarılması daha kolay bir süreçtir. Buna ek olarak, konteynerlerin bulut üzerinde geniş otomasyon özellikleri bulunmaktadır. Bu nedenle kolaylıkla bir konteyner klonlanıp değiştirilebilir. Bu tarz işlemleri gerçekleştirmek içinse konteyner motorunun sunduğu API’ler tercih edilir.
Bulut ortamında konteynerlerin kullanıldığı durumlar
Bulut çevreleri için konteynerler, her geçen gün daha da önemli bir hale geliyor. Birçok kurum konteynerleri sanal makinelere (VM) alternatif olarak değerlendiriyor. Bilindiği gibi VM’ler büyük ölçekli kurumların iş yükünü sırtlanmakla biliniyor. Aşağıdaki örnekler ise bulut ortamında konteyner çalıştırmak için son derece uygun çözümler olarak karşımıza çıkıyor:
- Microservice — Konteynerler sistemi yormayan küçük yazılımlar oldukları için microservice mimarisi içerisinde birbirinden bağımsız modüllerle çalışmaya son derece uygundur.
- DevOps — Birçok DevOps ekibi microservice mimarisini kullanarak yazılım geliştiriyor ve ardından bu yazılımları konteyner kullanarak çalıştırıyor. Konteynerler gerekli görüldüğü takdirde DevOps altyapısının CI/CD gibi araçlarının geliştirilmesinde de rol oynayabiliyor.
- Hibrit ve çoklu bulut — Rahatlıkla taşınabildiği için birden fazla bulut ortamında çalışan kurumlar konteynerleri tercih ediyor. Kurum bünyesinde yer alan veri merkezleri ile bulut arasında konteyner üzerinde taşınma gerçekleşmesi son derece pratik bir çözümdür.
- Uygulama modernizasyonu — Eski uygulamaları modernize etmenin en ideal yollarından biri onu konteynere yerleştirmek ve ardından buluta taşımaktır. Bu yönteme “Lift and shift” adı veriliyor.
Bulut konteynerleri nasıl çalışır?
Konteyner teknolojisi Linux’un bir parçası olarak hayatımıza girdi. Buna göre, diski oluşturan bölümler birbirinden ayrılıp bağımsız hale getirildi. Docker gibi uygulamaları konteynere taşıyan ya da Linux konteynerleri gibi direkt olarak sistemi taşıyan motorlar bu teknolojinin temelini oluşturuyor.
Konteynerler işletim sisteminin çekirdek seviyesinde kontrol edilip uygulamaları çalıştırabilen bağımsız yapılardır. Her bir konteyner aslında işletim sisteminin çekirdeğini taşıdığı için tam bir işletim sistemine ihtiyaç duymaz. Sistem kütüphanesi gibi gerekli birkaç dosya, konteynerin çalışması için yeterlidir. İşletim sistemi ile konteynerin ne kadar fiziksel kaynak kullanacağı sınırlandırılabilir. Örneğin, bulutta bir konteyner üzerinde sadece tek bir yazılımı çalıştıracak kadar sistem harcanır. Bu da bir microservice ya da veritabanı gibi arka uç uygulaması olabilir.
Bulut VM üzerinde konteynerler sayesinde birden fazla uygulamayı çalıştırabilirsiniz. Bu sayede bir konteyner yani bir uygulamada yaşanan sorun diğerine etki etmez. Bulut sağlayıcıları, konteynerini çalıştırmak için farklı hizmet seçenekleri sunar. Bunlardan bazıları:
- Sunucu konteyner — Bu şekilde konteyner, direkt olarak herhangi bir bulut VM gerektirmeden bulut altyapısında çalışabilir.
- Hizmet olarak konteyner (CaaS) — Bu yöntem ile büyük ölçekli ancak sınırlı idare kapasitesine sahip olursunuz.
- Hizmet olarak Kubernetes (KaaS) — Bu hizmet tipi ile en popüler yönetim aracı olan Kubernetes devreye girer. Farklı konteynerleri bulut üzerinde kullanması ile öne çıkar.
Bulut ortamındaki sanal makineler ve konteynerler
Birçok bulut bilişim çevresinde, en basit iş yükü sanal makine (VM) ile halledilir. Konteynerler ya da sanal makinelerde olduğu gibi donanımdan bağımsız olarak çalışabilirler. VM’ler işletim sisteminin tamamına sahip olarak çalışabilir.
VM’ler sunucu sistemlerinden farklı bir ziyaretçi işletim sistemini çalıştırabilir. Örneğin, sunucu Windows ile çalışıyorsa VM, Linux ya da farklı bir işletim sistemi kullanabilir. Birçok teknik senaryo dahilinde VM’ler konteynerlere göre daha izole ve güvenlikli bir çözüm olarak bilişim sektöründe rağbet görüyor. Fakat bir VM, yapı itibariyle kendi işletim sistemine sahip bağımsız bir makine olduğu için konteynerlere nazaran çok daha uzun sürede çalışır hale gelebilirler. VM’nin yedek dosyalarından yeni bir VM oluşturmak, konteynere kıyasla çok daha yavaş ve otomasyon açısından sıkıntılı bir süreçtir. Bulut ortamında, en sık rastlanılan senaryoda konteynerler sanal makine olarak tercih edilirler. Bu nedenle bulut sağlayıcıları artık direkt olarak konteynerlere fiziksel sunucular üzerinde çalışacak şekilde yani herhangi bir VM’ye ihtiyaç duymadan destekliyor. Buna da “container instances” adı veriliyor.
Konteyner Ağı
Konteyner ağları çok karmaşık bir konudur. Konunun karmaşıklığı bile güvenlik açıklarının oluşmasını sağlayabilir. Konteyner ortamında geleneksel ağ tekniklerini kullanamazsınız çünkü konteyner ağı, Konteyner Ağ Arabirimi (CNI) gibi kendi standartlarına sahip olarak ağın üzerinde çalışır. Zaten ağın üzerinde olması izole bir ortam oluşturarak konteynerler arası iletişimi mümkün kılabilir.
Bulut ortamına geldiğimizde, işlerin daha da karmaşık hale geldiğini görürsünüz çünkü bulut, sanal özel bulut (VPC) gibi bambaşka bir terminolojiye sahiptir. Bulut üzerinde bağımsız konteyner çalıştırmak istediğinizde iki farklı sistemin birbiriyle doğru iletişim kurması için çok hassas bir ayarlama yapmanız gerekir. Eğer kontrolü kaybederseniz bir anda konteynerinizi herkese açık hale getirebilirsiniz.
Bu ve benzeri sorunların üstesinden gelmek için kurumlar, profesyonel konteyner hizmeti almayı ya da konteynerler için dahili ağ yönetim araçlarına sahip çözümleri kullanmayı tercih ediyor. Her ihtiyaca uygun olarak sunulan yerli bulut teknolojisi NSC Cloud ürünlerini incelemek ve uzman ekiplerden detaylı bilgi almak için tıklayın.