Azure Kubernetes Service (AKS) gibi yönetilen bir ortam kullanırken bile bulutta bir Kubernetes altyapısı oluşturmak ve yönetmek zor olabilir. Bulutta yerel bir uygulama tasarlarken, temeldeki sanal altyapıyı göz önünde bulundurmanız ve iş yükünüz için doğru sunucu sınıfını ve tahmin edilen ölçeklemenizi desteklemek için doğru numarayı sağlamanız gerekir. Ardından, ağ oluşturma ve güvenliği yönetmek için bir hizmet ağı oluşturma ve yönetme gereksinimi vardır.

Geliştirme ekibinize birkaç yeni devops katmanı ekleyen çok fazla iş var: biri fiziksel veya sanal altyapılar için, biri uygulamanız ve bununla ilişkili hizmetler için, diğeri ise Kubernetes veya başka herhangi bir düzenleme veya kapsayıcı olsun uygulama platformunuzu yönetmek için. yönetim katmanı. Hiper ölçekli bir bulut sağlayıcısına geçmenin birçok avantajını ortadan kaldıran önemli bir sorundur. Kubernetes’i yönetmek için bütçeniz yoksa bu teknolojilerin çoğundan yararlanamazsınız.

Bulutta yerel zor olabilir

Azure App Service gibi hizmet olarak arka uç teknolojilerini temel alan alternatifler var. Burada, Azure’ın yönetilen ortamı için kendi kullanıcı alanınızı değiştirerek yerleşik çalışma zamanlarına alternatif olarak kapsayıcıları kullanabilirsiniz. Ancak bu araçlar, Nesnelerin İnterneti veya diğer olay merkezli sistemlerle çalışmak için gereken mesajlaşmaya dayalı ölçeklenebilir ortamlara değil, web ve mobil uygulamaları destekleyen hizmetler oluşturmaya ve çalıştırmaya odaklanma eğilimindedir. Azure İşlevleri gibi sunucusuz teknolojileri kullanabilmenize rağmen, bir uygulamanın tüm öğelerini paketleme veya ağ ve güvenlik hizmetleriyle çalışma olanağına sahip değilsiniz.

Gerekli olan, Kubernetes hizmetlerini, temel sunucuların veya sanal altyapının işlemlerini bir bulut sağlayıcısına devretmenize olanak tanıyan sunucusuz bir şekilde sunmanın bir yoludur. Uygulama hizmetlerinizi ve ayrıca temeldeki sanal ağları ve sunucuları yönetmek için sağlayıcının altyapı uzmanlığından yararlanabilirsiniz. YAML oluşturmak ve Kubernetes’i yapılandırmak için zaman harcarken, şimdi sağlayıcınızın otomasyonuna güveniyor ve uygulamanızı oluşturmaya odaklanıyorsunuz.

Azure Container Apps ile Tanışın

Ignite’ta Microsoft, tam da bunu yapan ve sizin için ölçeklendirmeyi yöneten sunucusuz bir kapsayıcı hizmeti sunan yeni Azure platform hizmeti Azure Container Apps’ın (ACA) bir önizlemesini tanıttı. Tek yapmanız gereken paketlenmiş konteynerlerinizi çalıştırmaya hazır hale getirmek. Başlık altında, ACA, KEDA (Kubernetes tabanlı Olaya Dayalı Otomatik Ölçeklendirme) ve Envoy hizmet ağı desteğiyle tanıdık AKS hizmetlerinin üzerine inşa edilmiştir. Uygulamalar, kodunuz için uygulama kapsayıcılarının hem mevcut Kubernetes altyapılarında hem de yeni hizmette çalışmasına izin veren ortak bir hedef sağlayan Dapr’den (Dağıtılmış Uygulama Çalışma Zamanı) yararlanabilir.

Microsoft, Azure Container Apps’ın uygun olabileceği dört farklı senaryo önerir:

  • HTTP tabanlı API’leri işleme
  • Arka planda işlemeyi çalıştırma
  • Herhangi bir KEDA uyumlu kaynaktan gelen olaylarda tetikleme
  • Ölçeklenebilir mikro hizmet mimarilerini çalıştırma

Bu son seçenek, ACA’yı çok esnek bir araç haline getirir ve çoğu zaman kullanılmayabilecek uygulama bileşenleri için sıfıra ölçeklenen, kullandıkça öde araçları sunar. Bir uygulamayı birkaç farklı Azure hizmetinde barındırabilir, ACA hizmetlerinizi gerektiği zaman ve gerektiği zaman arayarak, bunlar hareketsizken herhangi bir ücret ödemeden hizmet verebilirsiniz.

Önizlemedeki maliyetler düşüktür. Doğu ABD 2 bölgesi için bazı rakamlar:

  • İstekler, her ay ilk 2 milyon ücretsiz olmak üzere, milyon başına 0,40 ABD doları tutarındadır.
  • vCPU maliyetleri: saniyede 0.000024$’da etkin ve saniyede 0.000003$’da boşta.
  • Bellek ayrıca saniyede GB başına fiyatlandırılır: hem etkin hem de boş kapsayıcılar için saniyede 0,00003 ABD doları.
  • Ayda 180.000 vCPU-saniye ve 360.000 GB-saniyelik ücretsiz bir hibe vardır.

Azure Container Apps kullanmak için ihtiyacınız olan tek şey, istediğiniz çalışma zamanını kullanan bir kapsayıcıda paketlenmiş bir uygulamadır. Tüm uygulama bağımlılıklarınızla yüklenecek şekilde yapılandırılmış ve durum bilgisi olmadan çalışacak şekilde tasarlanmış kapsayıcılarla Kubernetes’i çalıştırmakla hemen hemen aynıdır. Duruma ihtiyacınız varsa, AKS kullanımına yönelik en iyi uygulamalar doğrultusunda uygulama durumunu sizin için tutacak ve yönetecek bir Azure depolama veya veritabanı ortamı yapılandırmanız gerekecektir. Kubernetes API’lerine erişim yok; her şey platform tarafından yönetiliyor.

Azure İşlevleri ile sıfıra ölçeklenebilen sunucusuz seçeneklerle bazı benzerlikler olsa da, Azure Container Apps, İşlevlerin yerine geçmez. Bunun yerine, daha karmaşık uygulamalar için bir ev olarak düşünülür. Azure Container Apps kapsayıcılarının sınırlı bir ömrü yoktur, bu nedenle bunları uzun süre çalışan karmaşık uygulamaları barındırmak ve hatta arka plan uygulamaları için kullanabilirsiniz.

Azure Container Apps’ı kullanmaya başlama

Azure Container Apps’i kullanmaya başlamak, Azure Portal’ı kullanarak ve ARM şablonlarıyla veya Azure CLI aracılığıyla programlı olarak çalışarak nispeten basittir. Azure Portal’da, bir Azure kaynak grubunda uygulama ortamınızı ve ilişkili izleme ve depolamayı ayarlayarak başlayın. Uygulama ortamı, dağıtılan kapsayıcılar için otomatik olarak yerel bir ağ kuran, hizmetleriniz için yalıtım sınırıdır. Ardından ortamınız için bir Log Analytics çalışma alanı oluşturun.

Kapsayıcılara, 0,25 çekirdek ve kap başına 0,5 GB bellekten başlayarak 2 çekirdeğe ve 4 GB’a kadar bellek olmak üzere CPU çekirdekleri ve bellek atanır. Kesirli çekirdekler, çekirdek tabanlı hesaplamanın kullanıcılar arasında paylaşıldığı paylaşılan kiracıların kullanılmasının bir sonucudur. Bu, Microsoft’un çok yüksek yoğunluklu Azure Container Apps ortamlarını çalıştırmasına ve küçük olay güdümlü kapsayıcılar için Azure kaynaklarının verimli kullanımına olanak tanır.

Kapsayıcılar, Azure Container Registry veya Docker Hub dahil diğer herhangi bir genel kayıt defterinden yüklenir. Bu yaklaşım, Azure Container Apps içinde kullanıma hazır bir kayıt defterine paketlenmiş bir kapsayıcı sunarak mevcut CI/CD (sürekli tümleştirme ve sürekli teslim) işlem hattınızdan Azure Container Apps hedeflemenize olanak tanır. Şu anda yalnızca Linux tabanlı kapsayıcılar için destek var, ancak .NET, Node.js ve Python desteğiyle, herhangi bir uygulamayı veya hizmeti ACA’ya hazır bir kapsayıcıya hızlı bir şekilde aktarabilmeniz gerekir.

Bir kapsayıcı seçtikten sonra, HTTPS bağlantıları için harici erişime izin vermeyi seçebilirsiniz. VNet’ler veya yük dengeleyiciler gibi herhangi bir Azure ağ özelliği eklemeniz ve yapılandırmanız gerekmez; hizmet gerekirse bunları otomatik olarak ekleyecektir.

Dapr ile çalışmak ve ölçeklendirmek için Azure CLI’yi kullanma

Dapr kullanılarak oluşturulanlar gibi daha karmaşık uygulamaların Azure CLI aracılığıyla yapılandırılması gerekir. CLI ile çalışmak, bir uzantı eklemeyi ve yeni bir ad alanını etkinleştirmeyi gerektirir. Hizmet hâlâ önizleme aşamasında olduğundan, bir Microsoft Azure bloğundan CLI uzantısını yüklemeniz gerekecek. Portalda olduğu gibi, bir Azure Container Apps ortamı ve bir Log Analytics çalışma alanı oluşturun. Uygulamanız için uygun yapılandırma YAML dosyalarıyla birlikte hizmete dağıtılan tüm Dapr uygulamaları için bir Azure Blob Depolama hesabında bir durum deposu ayarlayarak başlayın. Bunlar, uygulama durumunu yöneten Dapr sepetine yönelik bir işaretçiyle birlikte uygulama kapsayıcınızın ayrıntılarını içermelidir.

Artık uygulama kapsayıcılarınızı, kaynak grubunuza eklemek ve herhangi bir Dapr özelliğini etkinleştirmek için tek bir kod satırı kullanarak uzak bir kayıt defterinden dağıtabilirsiniz. Aynı zamanda, hizmetin uygulamalarınızı nasıl ölçeklendirdiğini yönetebilmek için minimum ve maksimum sayıda replika yapılandırın. Şu anda sıfıra ölçekleme seçeneğiyle birlikte maksimum 25 kopya ile sınırlısınız. Herhangi bir yeni kopyanın başlatılmasıyla ilişkili bir başlangıç ​​zamanı olduğunu unutmamak önemlidir, bu nedenle her zaman tek bir kopyayı çalışır durumda tutmak isteyebilirsiniz. Ancak bu, Azure Container Apps’ın boşta ücreti üzerinden bu kaynağı kullanmak için faturalandırılacağı anlamına gelir.

Ardından ölçek tetikleyicilerinizi JSON yapılandırma dosyalarında kurallar olarak tanımlayabilirsiniz. HTTP istekleri için (örneğin, bir REST API mikro hizmeti çalıştırırken), bir örneğin hizmet verebileceği eşzamanlı istek sayısını seçebilirsiniz. Bu sınırı aştığınız anda Azure Container Apps, önceden ayarlanmış sınırınıza ulaşana kadar yeni bir kapsayıcı çoğaltması başlatır. Olaya dayalı ölçekleme, hangi kuralların uygulanacağını belirlemek için KEDA meta verilerini kullanır.

Uygulamanızı ölçeklendirmek için kullanılan olayın adını, kullandığınız hizmetin türünü ve ölçeklendirmek için kullanılan meta verileri ve tetikleyiciyi seçin. Örneğin, bir ileti kuyruğunun maksimum kuyruk uzunluğu olabilir, bu nedenle kuyruk maksimum uzunluğuna ulaştığında yeni bir kapsayıcı kopyası başlatılır ve kuyruğa eklenir. Diğer ölçeklendirme seçenekleri, standart Kubernetes işlevlerine dayalıdır, böylece ölçeklendirmek için CPU kullanımını ve bellek kullanımını kullanabilirsiniz. Bunun yalnızca bir ölçek genişletme sistemi olduğuna dikkat etmek önemlidir; bir kapsayıcıya atanan kaynakları değiştiremezsiniz.

Kubernetes basitleştirildi

Burada beğenilecek çok şey var. Azure Container Apps, Kubernetes uygulamalarını yapılandırmayı ve yönetmeyi basitleştirmek için uzun bir yol kat eder. Bir kapsayıcıyı varsayılan uygulama birimi olarak ele alarak ve Dapr gibi teknolojilerden yararlanarak, hem standart Kubernetes ortamlarında hem de Azure Kapsayıcı Uygulamalarında çalışan uygulamalar oluşturabilirsiniz. Uygulamanız için temel tanımlar ve nasıl ölçeklendirildiği ile yapılandırma basittir ve tam bir devops ekibine ihtiyaç duymadan ölçeklenebilir, bulutta yerel uygulamaları hızlı bir şekilde sunmanıza olanak tanır.

Azure, hizmet olarak platform araçları için bir ana bilgisayar olarak hayatına başladı ve Azure Container Apps bu vizyonun en son örneğidir. Orijinal Azure App Service’in sizi belirli bir API ve çalışma zamanları kümesiyle sınırladığı yerde, Azure Container Apps çok daha geniş bir erişime sahiptir ve kodunuzu bir kapsayıcıya koymak kadar basit bir buluta yerel geçişi sağlayan bir çerçeve sağlar.

#Geri #kalanımız #için #Microsoftun #Kubernetleri