← Tüm yazılar

Platform Migration

Kubernetes, bir moda sözcük mü?

Platformumuzu yıllarca inceledikten ve Google'ın Site Reliability Engineering uygulamalarını araştırdıktan ve araçlarını denedikten sonra, Google'ın Borg dağıtım mimarisine dayanan Kubernetes'in, Lighthouse platformumuzun bir sonraki sürümü için en uygun seçenek olduğuna karar verdik.

Kubernetes nedir?

Kubernetes, Google'ın uzun yıllar dahili olarak kullandığı ve daha sonra kamuya açıklanan dahili Borg mimarisine dayanan açık kaynaklı bir teknolojidir. Konteyner orkestrasyonunun gücünden yararlanan en son teknolojidir.

Konteyner orkestrasyonu yüklü bir terimdir, ancak karmaşık olsa da anlaşılması zor değildir.

Yapı taşlarıyla başlayalım:

Bir konteyner yalnızca uygulamanızı çalıştırmak için ihtiyaç duyduğunuz yazılımı ve bağımlılıkları içerir. Bu, yazılımınızın harici bağımlılıkları indirmeye veya içe aktarmaya gerek kalmadan kendi ortamında çalıştığı anlamına gelir. Bu bir sanal makineye benzer, ancak yalnızca ihtiyaç duyduğu şeyi içerir ve bu nedenle hafif ve basittir.

Sonuç olarak, benim bilgisayarımda çalışıyorsa sizin bilgisayarınızda da çalışır, çünkü konteyner ihtiyaç duyulan her şeyi bağımsız olarak sağlar.

Konteynerlerimizi nerede çalıştırıyoruz?

Genellikle konteynerlerin çalışmak için kendi ortamlarına ihtiyacı vardır. Tek bir makinede geliştirme yapıyorsanız, uygulama genellikle Docker gibi bir şeyde çalışır. Ancak birden fazla imajı birden fazla düğüm veya bir küme arasında çalıştırmak istiyorsanız, Kubernetes tercih edilen seçenektir.

Kubernetes en esnek seçenektir çünkü tüm yapılandırma (yalnızca konteynerler değil), ortam, uygulama yapılandırmaları, ağ yapılandırmaları kod olarak tanımlanabilir.

Bu neden iyi bir şey?

Yapılandırmalarımızı kod olarak depolayarak tek bir doğruluk kaynağına sahip olabilir ve yapılandırmalarımızı Git'te depolayabiliriz. Bu, değişiklikleri çok daha kolay, güvenli ve daha fazla hız ve verimlilikle dağıtmamızı sağlar.

Bunun bize sağladığı birçok fayda vardır:

Ölçeklenebilirlik: kolayca ölçeklendirebiliriz ve yükümüz performansı artıracak birçok düğüm arasında dağıtılabilir

Kullanılabilirlik: bu aynı zamanda güvenilirlikle de ilgilidir çünkü bir pod veya konteyner çalışmıyorsa ya da düğüm çökerse, yükü üstlenecek başka konteynerler kalır

Basitlik: Küçük yinelemeli değişikliklere odaklanan extreme programming ve sürekli teslimat çalışma modelimize mükemmel şekilde uyar

Kontrol: her şeyin kodda olması, nasıl ve nerede çalıştığını kontrol etmeyi kolaylaştırır

Gözlemlenebilirlik: nasıl ve nerede çalıştığına dair daha fazla içgörü elde ederiz ve içgörü sağlama işinde olduğumuz için, topladığımız bilgiler ürünümüze aktarılır ve sağladığımız bilgileri zenginleştirir

Teknoloji: daha iyi erişimimiz olduğu ve her şey basitleştirildiği için, makine öğrenimi, büyük veri, yapay zeka ve yolda olan her şey gibi yeni yıkıcı teknolojilerle entegre olmamız daha kolay olacaktır.

Bu kapsamlı değildir, ancak daha güvenilir bir geleceğe doğru birlikte büyürken bu teknolojiyi benimseyerek kullanıma sunulacak gücü küçük bir şekilde göstermektedir.