Başlangıç > VMware > 179: Cloud Native Applications

179: Cloud Native Applications

CloudNativeAppsKendinizi bundan 15 sene öncesinde düşünün, ancak evinizi taşırken hareket ettirme ihtiyacı hissettiğiniz “ağır ve hantal” PC’nizi bir dizüstü bilgisayar ile değiştirdiğiniz günleri ve duyduğunuz tarifsiz mutluluğu. Şimdi ise kim bir yere giderken “ağır ve hantal” dizüstü bilgisayarlarını taşımak ister, tablet ile her işi yapabilmek varken.

IT’nin, uygulamaları destekleme misyonunda kullandığı enstrumanlarda da aynı değişimi gözlemlemek mümkün, fiziksel sunuculardan sanal sunuculara geçişde olduğu gibi. Artık sanal sunucuların bile ağır ve hantal kabul edildiği, development yaşam döngülerinin son derece çevik olması gereken dönemlerdeyiz. İşte bu noktada, aslında uzun zamandır Unix dünyasında var olan ancak piyasanın yakın zamanlarda önemini farkedip endüstri standardı yapma yolunda hızla ilerlediği container teknolojisi devreye giriyor.

Peki nedir bu container? “Bir uygulamanın geliştirildiği platformdan başka bir platforma taşındığında aynı şekilde çalışacağından nasıl emin olabilirim?” sorusuna getirilen bir çözümdür, işletim sistemi seviyesinde farklı bir sanallaştırma katmanından faydalanarak. Aşina olduğumuz sunucu sanallaştırmada donanım ile işletim sistemi katmanları birbirinden soyutlanmıştır. Container teknolojisinde ise uygulama ile işletim sistemi (kernel) birbirinden soyutlanmakta. Linux platformunda bunu gerçekleştirmek için “namespace isolation” adı verilen bir teknik uygulanır. Bu teknik ile, her bir container için sanal bir namespace oluşturulur ve bu namespace ilgili uygulamanın çalışabilmesi için gerekli tüm dosyalar, network portları, çalışan prosesler gibi kaynakları barındırır. Bu şekilde bir container, başka bir container için oluşturulan namespace’e erişemez, böylelikle kendisi işletim sistemi üzerinde çalışan tek uygulama olarak düşünür. Verimliliği artırmak adına arka tarafta, bir takım işletim sistemi dosyaları, klasörleri ve servisleri namespace’ler arasında paylaştırılır. Bir container, bu paylaşılmış dosyalar üzerinde değişiklik yapmak istediğinde ise, bunu sadece kendi namespace’i içerisinde yapar. Linux/Docker tüm bunları UnionFS (union file systems) adını verdiği bir servis ile yapar.

Containers1

Sonuç olarak, aynı kernel’ı paylaşan ancak birbirlerinden bağımsız çalışan uygulamaları hayata geçirmek mümkün. Peki bu durum neden bu kadar önemli? Madde madde incelemeye çalışalım;

  • Düşük ayakizi: Bir VM’de bir uygulama çalıştırdığınızı varsayarsak, uygulamanın en iyi ihtimalde 20-30GB’lık bir ayakizi olacaktır. Container teknolojisinde ise bir uygulamanın ayakizi MB mertebelerine inebilecek.
  • Çok hızlı üretilebilme: Bir uygulamanın ayağa kalkması için işletim sisteminin ayağa kalkması zorunluluğundan sizi kurtarıp, saniye mertebesinde uygulamayı devreye alma imkanı sağlayabilecek. Özellikle uygulamanızda kapasite artışı ihtiyacı hissettiğinizde saniyeler içerisinde bu talebe cevap verebilecek.
  • Kolay yönetim: Özellikle troubleshoot sorununa vereceği net cevap; “Problem çözmekle uğraşma, yok et ve yeniden deploy et” olacak.
  • Daha verimli development: API destekli yönetim modülleri ile developer’lara esnek hareket etme imkanı sağlayacak ve dev ortamında geliştirilen  bir uygulamanın aynı şekilde SDLC sürecinde yer alan diğer ortamlarda çalışacağı da garanti edilebilecek.

Tüm bu avantajları düşündüğümüzde, piyasanın container teknolojilerine olan ilgisi artık daha anlaşılır hale geliyor. Şimdiden birçok teknoloji devi, bu teknolojiyi bünyesinde barındırmak için açık kaynak projelere çok ciddi destek vermeye başladı. Örneğin Microsoft, Windows Server 2016 Technical Preview 3 (TP3) ile Docker motorunu bünyesine eklemeye başladı. TP4 ile birlikte de Hyper-V container gelmesi bekleniyor.

Peki, VMware tarafında durum nedir? VMware’ın konu ile ilgili farklı yaklaşımları var.

vSphere Integrated Containers:

vSphere Integrated Containers (VIC), Docker Linux container yapısının esnekliği ve taşınabilirliği ile vSphere platformunun stabilite, izolasyon, yönetilebilirlik gibi özelliklerini bir araya getiren bir çözüm. Şu anda, o da Technical Preview seviyesinde.

[SCM]actwin,0,0,0,0;Zoom Player zplayer 9/2/2015 , 9:06:28 AM

Tüm avantajlarının yanı sıra, standard Docker çözümlerinde iki konu kritik noktaya ulaşıyor, biri güvenlik diğeri ise izlenebilirlik. Önce güvenlik konusunu ele alalım. Soru; eğer bir container üzerindeki uygulama ele geçirilirse ne olacağı? Ortak paylaşılan bileşenler, geri kalan container uygulamalarının da ele geçirilmesini çok zor kılmayacaktır. UnionFS bu konuda komple bir izolasyon sağlayamıyor. VMware bu sorunu, container yapısını 1:1 olacak şekilde düzenleyerek çözme niyetinde, yani eskisi gibi bir sunucu üzerinde bir uygulama çalıştırarak, ancak standard bir VM üzerinde değil, jeVM dediği (just enough VM) özel bir Linux kernel’i kullanarak. Bu platform’a PhotonOS ismi verildi ve yaklaşık 25MB’lık bir ayakizi ile çalışan, tamamen container çalıştırabilmek amacı ile optimize edilmiş, son derece verimli bir platform.

Şu ana kadar bahsettiklerimiz doğrultusunda, VMware, güvenlik konusunda yol katetmemizi sağlamış görünüyor, izolasyon konusunda en becerikli bileşenini araya sokarak yani hipervizörünü, hele bir de NSX ile entegre edersek. Ancak container mimarisinden beklenen çevikliği henüz göremedik. Burada da VMware, vSphere6 ile birlikte gelen instant clone (VM-Fork) özelliğini kullanmak niyetinde. Bu şekilde bir jeVM, instant clone özelliği ile anında fork edilip, üzerinde çalışan container uygulaması ayağa kaldırılıp devreye alınabilir. Buyrun size saniyeler içerisinde, çalışan uygulamanızın yeni bir instance’ı.

Containers5

İkinci konunun da izlenebilirlik olduğundan bahsetmiştik. Sanal platformda standard bir linux üzerinde container yapısının kullanıldığını düşünün. Bir troubleshoot durumunda, VMware adminleri bu yapı içerisinde hangi container uygulamasının probleme sebebiyet verdiğini bilemeyecek, developer ise hangi platform üzerine kod deploy ettiğini. Ancak VIC iki parti için de bu izlenebilirlik problemini ortadan kaldıracaktır.

Mimariyi anlatırken önemli bir bileşenden de bahsetmenin faydalı olacağını düşünüyorum; Virtual Container Host (VCH). Container servislerini kontrol etmeye yarayan, bir Docker API endpoint olarak tanımlayabiliriz. Normal bir Docker çözümünde bu katman işletim sistemi üzerinde bulunur. VIC’de ise bir VM’in ötesinde, resource pool yada dedicated host bu görevi görebilir.

Photon Platform:

VIC, halihazırda vSphere kullanan, normal uygulamalarının yanında container uygulamalarını da kullanmak isteyen firmalar için gayet kullanışlı bir yöntem. Ancak VMware, Photon Platform ile vSphere katmanını tamamen aradan çıkartarak ve ESXi katmanından elde ettiği tecrübe ile sadece container uygulamalarını çalıştırmak için optimize edilmiş bir katman (microvizör) ile önümüzdeki zamanlarda karşımıza çıkacak gibi görünüyor. Bu platform API-driven bir yapıda olacak ve yüksek oranda Docker, Mesos, Cloud Foundry, Kubernetes desteği olacak.

Containers3

Bu platformun iki adet bileşeni olacak. Bunlar;

  • Photon Machine: Docker container uygulamalarının direk olarak üzerinde çalıştırabileceği, yeni bir ESX Microvizör katmanı.
  • Photon Controller: Tüm bu platformu yönetecek, dağıtık bir yönetim katmanı.

İki yöntemi karşılaştırdığımızda aşağıdaki şekilde bir manzara karşımıza çıkıyor. Özetle, ihtiyacınız geleneksel VM’ler ile birlikte container yapısını da kullanmak ve container yapınız 100’ler ile ifade edilebilecek ölçeklerde ise VIC size daha uygun görünüyor. Ancak container uygulama sayınız 10 binler ile ölçülecek, hız ve çeviklik sizin birinci önceliğiniz olacak ise, Photon Platform size istediğinizi sunacaktır.

Containers4

Hangi yaklaşım belirlenirse belirlensin, container uygulamaları ve cloud native apps hızla hayatımıza giriyor. Şimdiden keyfini çıkarın :)

Kategoriler:VMware Etiketler:, ,
  1. Henüz yorum yapılmamış.
  1. 25.06.2016, 19:21

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s

%d blogcu bunu beğendi: