Diğer

Kubernetes Nedir Ne İşe Yarar?

kubernetes-nedir-ne-ise-yarar

Google tarafından geliştirilen ve 2014’te açık kaynaklı hale getirilen konteyner kümeleme aracı Kubernetes, bulut platformların yaygınlaştığı bir dönemde geliştiriciler için yepyeni bir dönemin kapısını araladı. Bu yazıda dağıtım sürecinin tarihine kısa bir göz attıktan sonra konteyner dünyasına giriş yaparak Kubernetes nedir, Kubernetes ne işe yarar sorularına yanıt vermeye çalışacağız.

kubernetes-nedir

İnternet teknolojilerinin gelişimi konusunda öncü olmuş Google, 2000’li yılların başlarında uygulama geliştirme ve dağıtım süreçlerinde yeni bir yöntem kullanmaya, geleneksel dağıtım süreçlerini çok daha kolay hale getiren ve ölçeklenebilir yazılım mimarileri oluşturmaya yarayan bir yaklaşım izlemeye başladı. Bu yazıda konu edeceğimiz Kubernetes’in de atası sayılan Borg, her biri on binlerce makineye sahip bir dizi kümede (cluster), binlerce farklı uygulamadan yüz binlerce iş yükünü çalıştıran bir küme yöneticisi olarak ortaya çıktı. Uzun yıllar Google’ın sistemlerinin üzerinde koştuğu bu yapı, 2014’te açık kaynaklı olarak, Kubernetes ismiyle tüm geliştiricilerin hizmetine sunuldu ve o günden bu yana Cloud Native Computing Foundation tarafından destekleniyor. Global IT olarak Kubernetes nedir sorusuna yanıt aramadan önce, bu kavramlara yaklaşmayı kolaylaştıracak konteyner teknolojisinden ve dağıtımın kısa tarihinden biraz bahsedelim. 

 

Konteyner nedir? 

Konteynerler ya da kapsayıcılar, herhangi bir ortamda çalışmak için gerekli tüm öğeleri içeren yazılım paketleridir. Bir uygulamada işletim sistemini sanallaştırma vazifesi üstlenen konteynerler, bulut platformlarda, özel bir veri merkezinde ya da bir geliştiricinin dizüstü bilgisayarına kadar her yerde çalışabiliyor. Biraz daha açmak gerekirse, Google Arama ya da YouTube’da yaptığınız her bir sorgu ve eylem, bu konteynerler üzerinde çalışarak size ulaşıyor. Kapsamlı iş yüklerini ve uygulama mimarilerini birbirinden bağımsız yapı taşlarına ayırmaya yarayan ve mikro mimari yaklaşımının da temelini oluşturan konteyner kavramı, geliştiricilerin geliştirme ve dağıtım süreçlerinde hızlı hareket etmesine ve çok büyük ölçekli sistemlerde çalışmasına olanak tanıyor. 

Büyük ölçekli sistemleri anlamak için YouTube’u düşünelim. YouTube’da arama sorgularından video oynatıcısına, yorum yapma özelliğinden topluluk sayfalarına kadar her özellik, binlerce satır kod ve aynı anda gerçekleştirilen yüzlerce işlem anlamına gelir. Platformların kullanım alanı genişlediğinde ve kullanıcı sayısı arttığında uygulamanın ölçeği de büyümüş olur ve bu noktada geliştiriciler daha çevik müdahale stratejilerine, geliştirme süreçlerine ihtiyaç duyar. Konteyner, tam da bu noktada devreye girer. 

 

Dağıtım (deployment) sürecinin kısa tarihi

Genel anlamda dağıtım süreçlerini geleneksel, sanallaştırılmış ve konteyner olmak üzere üç aşamada inceleyebiliyoruz:

Geleneksel dağıtım dönemi: İnternetin ilk zamanlarında ve bulut teknolojilerinin ortaya çıkmadığı dönemlerde kuruluşlar, uygulamalarını fiziksel sunucularda çalıştırıyordu. Fakat fiziksel sunucularda birden çok uygulama çalışıyorsa uygulamalarda performans sorunları yaşanıyordu. Bu da büyüyen dijital ürün ve uygulamaların ölçeklenebilmesi önünde engel oluşturuyordu. 
Sanallaştırılmış dağıtım dönemi: Bu aşamada sanallaştırma teknolojisi ortaya çıktı ve bu sayede tek bir fiziksel sunucunun işlemcisinde birden çok sanal makine (virtual machine | VM) çalıştırılmaya başlandı. Fakat uygulamalar büyüdüğünde ve sistemler kapsamlı ve karmaşık hale geldiğinde bu yöntem de yetersiz kalmaya başladı.
Konteyner dağıtım dönemi: Konteynerler, VM’lerin işletim sistemini uygulamalar arasında daha kolay paylaşabileceği bir sistem sundu. Kendi dosya sistemini, işlemci payını, işlem alanını ve belleğini içeren konteynerler, temel altyapı üzerinden ayrılabilme özelliğiyle öne çıktı. Uygulama oluşturma ve devreye alma süreçlerinde daha çevik bir yöntem izlemeye olanak tanıyan bu kavram, sürekli geliştirme, entegrasyon ve dağıtım olanaklarına da sahip olduğundan benimsenmeye başladı.


Kubernetes nedir, ne işe yarar? 

Kubernetes, ismini Yunanca “kaptan” ya da “pilot” gibi anlamlara gelen bir kelimeden alan, otomasyonu kolaylaştıran, konteyner iş yüklerini ve hizmetleri yönetmek için sunulan bir platformdur. K8s kısaltmasıyla da tanınan Kubernetes’in Google tarafından geliştirilen Borg’un daha gelişmiş bir versiyonu olarak açık kaynaklı bir biçimde sunulduğunu belirtmiştik. 

Uygulamaları paketlemek ve çalıştırmak için bugün en iyi yollardan birini sunan konteynerleri kesintisiz bir biçimde yönetmeye olanak tanıyan Kubernetes, geliştiricilere aşağıdaki kolaylıkları sağlıyor:

Yük dengeleme: Gelişmiş uygulamalarda bazı iş yükleri daha çok performans gerektirir ve daha yüksek trafik çeker. Kubernetes, bu iş yüklerini konteynerler arasında pay etme, ağ trafiğini dağıtma ve sistemin kararlı çalışmasını sağlamak için yüksek trafikli konteynerleri açığa çıkarma gibi kolaylıklar sağlıyor. 
Depolama avantajları: Kubernetes, yerel depolama araçları ya da bulut sistemler fark etmeksizin, seçilen depolama sistemine otomatik olarak bağlanabiliyor. 
Otomasyon: Güncellemelerin, geliştirmelerin dağıtım süreçlerinde daha çok kontrol sağlama olanağı sunan Kubernetes, dağıtım durumunda yeni konteynerler oluşturma, mevcut konteynerleri silme ve tüm kaynakları yeni konteynere uyarlama gibi süreçleri otomatikleştirmeye yarıyor. 
Paketleme: Her bir konteynerin ne kadar işleme gücüne ve belleğe ihtiyaç duyduğunu belirtmeniz durumda Kubernetes, kaynaklardan en iyi şekilde yararlanmak için gerekli planlamayı yapabiliyor. 
Kendi kendini iyileştirme: Önemli bir iş yükünün çalıştığı konteynerde yaşanan problemi ortadan kaldırmak için konteyneri yeniden başlatabilen, gerektiğinde konteynerlerin yerini alan Kubernetes, uygulamalarınızı otomatik olarak kesintilere karşı koruyor. 
Güvenlik: Kubernetes, parolalar gibi hassas bilgileri depolamaya ve yönetmeye de olanak tanıyor. 

Kubernetes, e-ticaret ve perakende sektörlerinde nasıl kullanılır? 

E-ticaret ve perakende sektörleri düşünüldüğünde, tüketici alışkanlıkları, endüstri trendleri her geçen gün gelişiyor ve şirketlerin müşterilerine, paydaşlarına daima daha fazlasını sunması gereken bir çağ yaşanıyor. Arayüzler yalın olsa da arka planda gerçekleştirilen işlemler, yapılan sorgular, online platformlardan beklenen fonksiyonlar giderek karmaşıklaşıyor. Öte yandan işletmelerin müşterilerinden ve paydaşlarından elde ettikleri verileri daha iyi değerlendirmeleri ve tutarlı içgörülere dönüştürmeleri gerekiyor. 

Tüm bunlar, dijital dönüşüm kavramını gündeme taşıyor. Gartner bu yıl içinde müşteri etkileşimlerinin %70’inin akıllı sistemler tarafından yönetileceğini, akıllı sistemlerde gerçekleştirileceğini öngörürken, International Data Corporation (IDC) bu yılın sonuna kadar küresel  ekonominin %65’inin dijitalleşmiş olacağını öngörüyor. İş süreçleri bulut platformlara taşındıkça hem esas gelirin kaynağı ve müşteri etkileşiminin merkezi ön ofis, hem de katma değerli ürünlerin geliştirildiği arka ofis, dijitali daha çok kullanıyor. Bu da daha kapsamlı uygulamalar gerektiriyor ve Kubernetes tam da bu noktada işletmelere arzu ettikleri dijital dönüşümün anahtarını sunuyor. Dijitalleşme yolunda tutarlı adımlar atan şirketler, mutlaka Kubernetes’in uygulama geliştirme ve dağıtım süreçlerinde sağladığı kolaylıklarla temas ediyor. 

Cloud Native Computing Foundation’da yayımlanan bir vaka çalışması üzerinden örnekleyerek, La Redoute isimli e-ticaret markasının Kubernetes’i işlerini dönüştürmek için nasıl kullandığını somutlaştıralım. 2014’te iflasın eşiğine gelen ve o dönemde dijital dönüşüme yönelmesi gerçeğini fark eden bir marka, Kubernetes altyapısıyla bugün 10 milyondan fazla müşteriye hizmet veriyor. Bir proje ya da özelliğe karar verilmesiyle üretime geçmesi arasındaki süre, günlerden 10 dakikaya kadar düşüyor. Dağıtım sayıları ise %100’lük bir artışla 40’tan 80’e yükseliyor. Markanın yeni hizmetler oluşturması ve müşterilerinin kullanımına açması önceden haftalar sürerken, bugün dakikalar içinde gerçekleştirilebiliyor.  

Bugün geliştirici topluluğunun vazgeçilmezlerinden birine dönüşen Kubernetes, Google’ın 15 yılı aşan deneyimini taşıyan bir çözüm olma özelliği taşıyor. Türkiye’de Google Cloud denince akla ilk gelen marka olan Global IT, Türkiye’nin en eski ve uçtan uca hizmet veren tek Google Cloud İş Ortağı olarak 15 yıllık deneyimiyle Google ve çözüm ekosisteminin sunduğu tüm hizmetleri sağlıyoruz. Başta perakende ve e-ticaret sektörlerinde faaliyet gösteren işletmelerin performanslarını ve müşteri memnuniyetlerini Kubernetes’le güçlendirilen Google Cloud hizmetleriyle bir adım öteye taşımalarına yardım ediyoruz. 

Bir yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.