Aracılığıyla paylaş


Azure'da görev açısından kritik iş yükleri için uygulama platformunda dikkat edilmesi gerekenler

Azure, yüksek oranda kullanılabilir uygulamaları barındırmak için birçok işlem hizmeti sağlar. Hizmetler yetenek ve karmaşıklık açısından farklılık gösterir. Aşağıdakilere göre hizmetleri seçmenizi öneririz:

  • Güvenilirlik, kullanılabilirlik, performans ve güvenlik için işlevsel olmayan gereksinimler.
  • Ölçeklenebilirlik, maliyet, çalışabilirlik ve karmaşıklık gibi karar faktörleri.

Bir uygulama barındırma platformu seçimi, diğer tüm tasarım alanlarını etkileyen kritik bir karardır. Örneğin, eski veya özel geliştirme yazılımları PaaS hizmetlerinde veya kapsayıcılı uygulamalarda çalışmayabilir. Bu sınırlama, işlem platformu seçiminizi etkileyebilir.

Görev açısından kritik bir uygulama, her biri farklı gereksinimlere sahip birden çok bileşik iş yükünü ve mikro hizmeti desteklemek için birden fazla işlem hizmeti kullanabilir.

Bu tasarım alanı işlem seçimi, tasarım ve yapılandırma seçenekleriyle ilgili öneriler sağlar. İşlem karar ağacını tanımanızı da öneririz.

Önemli

Bu makale, Azure Well-Architected Framework görev açısından kritik iş yükü serisinin bir parçasıdır. Bu seriyi bilmiyorsanız görev açısından kritik iş yükü nedir? ile başlamanızı öneririz.

Platform kaynaklarının genel dağıtımı

Görev açısından kritik bir iş yükü için tipik bir desen, küresel kaynakları ve bölgesel kaynakları içerir.

Belirli bir Azure bölgesiyle sınırlandırılmayan Azure hizmetleri genel kaynak olarak dağıtılır veya yapılandırılır. Bazı kullanım örnekleri trafiği birden çok bölgeye dağıtmayı, uygulamanın tamamı için kalıcı durumu depolamayı ve genel statik verileri önbelleğe almayı içerir. Hem ölçek birimi mimarisine hem de genel dağıtıma uyum sağlamanız gerekiyorsa, kaynakların Azure bölgeleri arasında en uygun şekilde nasıl dağıtıldığını veya çoğaltıldığını göz önünde bulundurun.

Diğer kaynaklar bölgesel olarak dağıtılır. Dağıtım damgasının parçası olarak dağıtılan bu kaynaklar genellikle bir ölçek birimine karşılık gelir. Ancak, bir bölgede birden fazla damga pulu ve bir damga pulu birden fazla birim olabilir. Ana iş yükünü çalıştırmak onların sorumluluğunda olduğundan bölgesel kaynakların güvenilirliği çok önemlidir.

Aşağıdaki görüntüde üst düzey tasarım gösterilmektedir. Kullanıcı uygulamaya merkezi bir genel giriş noktası üzerinden erişir ve ardından istekleri uygun bir bölgesel dağıtım damgasına yönlendirir:

Görev açısından kritik bir mimariyi gösteren diyagram.

Görev açısından kritik tasarım metodolojisi çok bölgeli dağıtım gerektirir. Bu model bölgesel hataya dayanıklılık sağlar, böylece tüm bölge kapalı olduğunda bile uygulamanın kullanılabilir durumda kalmasını sağlar. Çok bölgeli bir uygulama tasarlarken, her yaklaşım için önemli dengeler olduğundan, uygulama gereksinimleriyle birlikte etkin/etkin ve etkin/pasif gibi farklı dağıtım stratejilerini göz önünde bulundurun. Görev açısından kritik iş yükleri için etkin/etkin modeli kesinlikle öneririz.

Her iş yükü birden çok bölgenin aynı anda çalıştırılmasını desteklemez veya gerektirmez. En uygun tasarım kararını belirlemek için belirli uygulama gereksinimlerini dezavantajlara karşı tartmalısınız. Daha düşük güvenilirlik hedeflerine sahip belirli uygulama senaryoları için etkin/pasif veya parçalama uygun alternatifler olabilir.

Kullanılabilirlik alanları , bir bölgedeki farklı veri merkezlerinde yüksek oranda kullanılabilir bölgesel dağıtımlar sağlayabilir. Neredeyse tüm Azure hizmetleri, hizmetin belirli bir bölgeye temsilci olarak atandığı bölgesel bir yapılandırmada veya platformun hizmetin bölgeler arasında otomatik olarak yayılmasını ve bir bölge kesintisine dayanabilmesini sağladığı alanlar arası yedekli bir yapılandırmada kullanılabilir. Bu yapılandırmalar veri merkezi düzeyine kadar hataya dayanıklılık sağlar.

Tasarım konusunda dikkat edilmesi gerekenler

  • Bölgesel ve bölgesel özellikler. Tüm hizmetler ve özellikler her Azure bölgesinde kullanılamaz. Bu önemli nokta seçtiğiniz bölgeleri etkileyebilir. Ayrıca kullanılabilirlik alanları her bölgede kullanılamaz.

  • Bölgesel çiftler. Azure bölgeleri, tek bir coğrafyada iki bölgeden oluşan bölgesel çiftler halinde gruplandırılır. Bazı Azure hizmetleri, iş sürekliliğini sağlamak ve veri kaybına karşı bir koruma düzeyi sağlamak için eşleştirilmiş bölgeler kullanır. Örneğin Azure coğrafi olarak yedekli depolama (GRS), verileri otomatik olarak ikincil bir eşleştirilmiş bölgeye çoğaltır ve birincil bölge kurtarılamazsa verilerin dayanıklı olmasını sağlar. Bir kesinti birden çok Azure bölgesini etkiliyorsa, kurtarma için her çiftteki en az bir bölgeye öncelik atanır.

  • Veri tutarlılığı. Tutarlılık güçlükleri için genel olarak dağıtılmış bir veri deposu, damgalı bölgesel mimari ve kısmen etkin/etkin bir dağıtım kullanmayı göz önünde bulundurun. Kısmi dağıtımda, bazı bileşenler tüm bölgelerde etkinken, diğerleri birincil bölge içinde merkezi olarak bulunur.

  • Güvenli dağıtım. Azure güvenli dağıtım uygulaması (SDP) çerçevesi, Azure platformundaki tüm kod ve yapılandırma değişikliklerinin (planlı bakım) aşamalı bir dağıtımdan geçirilmesini sağlar. Yayın sırasında sistem durumu düşüşü için analiz edilir. Kanarya ve pilot aşamaları başarıyla tamamlandıktan sonra platform güncelleştirmeleri bölgesel çiftler arasında seri hale getirilir, bu nedenle her çiftteki tek bir bölge belirli bir zamanda güncelleştirilir.

  • Platform kapasitesi. Tüm bulut sağlayıcıları gibi Azure'da da sınırlı kaynaklar vardır. Kullanılamama, bölgelerdeki kapasite sınırlamalarının sonucu olabilir. Bölgesel bir kesinti olursa, iş yükü eşleştirilmiş bölgede kurtarma girişiminde bulunduğundan kaynaklara olan talep artar. Kesinti, tedarikin geçici olarak talebi karşılamadığı bir kapasite sorununa neden olabilir.

Tasarım önerileri

  • Bölgesel kesintilere karşı korunmaya yardımcı olmak için çözümünüzü en az iki Azure bölgesinde dağıtın. İş yükünün gerektirdiği özelliklere ve özelliklere sahip bölgelere dağıtın. Özellikler, veri yerleşimi ve saklama gereksinimlerini karşılarken performans ve kullanılabilirlik hedeflerini karşılamalıdır.

    Örneğin, bazı veri uyumluluk gereksinimleri kullanılabilir bölgelerin sayısını kısıtlayabilir ve potansiyel olarak tasarımın tehlikeye atılmasına neden olabilir. Bu gibi durumlarda, hataları tahmin etmek, algılamak ve yanıtlamak için operasyonel sarmalayıcılara ek yatırım eklemenizi kesinlikle öneririz. İki bölgeli bir coğrafyayla kısıtlandığınızı ve bu bölgelerden yalnızca birinin kullanılabilirlik alanlarını (3 + 1 veri merkezi modeli) desteklediğini varsayalım. Her iki bölgenin de etkin bir yapılandırmada dağıtılmasını sağlamak için hata etki alanı yalıtımını kullanarak ikincil dağıtım deseni oluşturun ve birincil bölgenin birden çok dağıtım damgası barındırdığından emin olun.

    Uygun Azure bölgelerinin tümü ihtiyacınız olan özellikleri sunmazsa, coğrafi dağılımı önceliklendirmek ve güvenilirliği en üst düzeye çıkarmak için bölgesel dağıtım damgalarının tutarlılığından ödün vermeye hazır olun. Yalnızca tek bir Azure bölgesi uygunsa, belirli bir riski azaltmak için seçili bölgeye birden çok dağıtım damgası (bölgesel ölçek birimleri) dağıtın ve veri merkezi düzeyinde hataya dayanıklılık sağlamak için kullanılabilirlik alanlarını kullanın. Ancak, coğrafi dağılımda bu kadar önemli bir uzlaşma, ulaşılabilir bileşik SLA'yı ve genel güvenilirliği önemli ölçüde kısıtlar.

    Önemli

    %99,99'dan büyük veya %99,99'a eşit bir SLO'yu hedefleyen senaryolarda bileşik SLA'yı ve genel güvenilirliği en üst düzeye çıkarmak için en az üç dağıtım bölgesi önerilir. Tüm kullanıcı akışları için bileşik SLA'yı hesaplayın. Bileşik SLA'nın iş hedefleriyle uyumlu olduğundan emin olun.

  • Önemli hacimli trafiğe sahip yüksek ölçekli uygulama senaryoları için çözümü birden çok bölgede ölçeklendirilerek tek bir bölge içindeki olası kapasite kısıtlamalarına gidebilecek şekilde tasarlar. Ek bölgesel dağıtım damgaları daha yüksek bir bileşik SLA elde eder. Genel kaynakların kullanılması, daha fazla bölge ekleyerek elde ettiğiniz bileşik SLA artışını kısıtlar.

  • Kurtarma noktası hedeflerinizi (RPO) ve kurtarma süresi hedeflerinizi (RTO) tanımlayın ve doğrulayın.

  • Tek bir coğrafyada planlı bakım için SDP serileştirilmiş dağıtımlarından ve plansız bakım için bölgesel öncelik belirlemeden yararlanmak için bölgesel çiftlerin kullanımına öncelik sağlayın.

  • Ağ gecikme süresini en aza indirmek ve uçtan uca performansı en üst düzeye çıkarmak için Azure kaynaklarını coğrafi olarak kullanıcılarla birlikte kullanın.

  • Dağıtım bölgelerini seçtiğinizde geçerli hizmet kullanılabilirliğini ürün yol haritalarıyla uyumlu hale getirme. Bazı hizmetler her bölgede hemen kullanılamayabilir.

Kapsayıcıyla taşıma

Kapsayıcı, uygulama kodunu ve uygulamanın çalıştırması gereken ilgili yapılandırma dosyalarını, kitaplıklarını ve bağımlılıklarını içerir. Kapsayıcıya alma, uygulama kodu ve bağımlılıkları için bir soyutlama katmanı sağlar ve temel alınan barındırma platformundan ayrım oluşturur. Tek bir yazılım paketi yüksek oranda taşınabilirdir ve çeşitli altyapı platformları ve bulut sağlayıcıları arasında tutarlı bir şekilde çalıştırılabilir. Geliştiricilerin kodu yeniden yazması gerekmez ve uygulamaları daha hızlı ve daha güvenilir bir şekilde dağıtabilir.

Önemli

Görev açısından kritik uygulama paketleri için kapsayıcılar kullanmanızı öneririz. Aynı sanallaştırılmış altyapıda birden çok kapsayıcı barındırabildiğiniz için altyapı kullanımını geliştirir. Ayrıca, tüm yazılımlar kapsayıcıya dahil edildiğinden, çalışma zamanlarından veya kitaplık sürümlerinden bağımsız olarak uygulamayı çeşitli işletim sistemleri arasında taşıyabilirsiniz. Ayrıca kapsayıcılarla yönetim, geleneksel sanallaştırılmış barındırmaya kıyasla daha kolaydır.

Görev açısından kritik uygulamaların performans sorunlarını önlemek için hızlı ölçeklendirilmesi gerekir. Kapsayıcı görüntüleri önceden derlenmiş olduğundan, başlatmayı yalnızca uygulamanın önyüklemesi sırasında gerçekleşecek şekilde sınırlayabilirsiniz ve bu da hızlı ölçeklenebilirlik sağlar.

Tasarım konusunda dikkat edilmesi gerekenler

  • İzleme. İzleme hizmetlerinin kapsayıcılardaki uygulamalara erişmesi zor olabilir. GENELLIKLE CPU veya RAM kullanımı gibi kapsayıcı durumu göstergelerini toplamak ve depolamak için üçüncü taraf yazılımlara ihtiyacınız vardır.

  • Güvenlik. Barındırma platformu işletim sistemi çekirdeği birden çok kapsayıcı arasında paylaşılır ve tek bir saldırı noktası oluşturur. Ancak kapsayıcılar temel alınan işletim sisteminden yalıtıldığından konak VM erişimi riski sınırlıdır.

  • Eyalet. Verileri çalışan bir kapsayıcının dosya sisteminde depolamak mümkün olsa da, kapsayıcı yeniden oluşturulduğunda veriler kalıcı olmaz. Bunun yerine, dış depolamayı takarak veya bir dış veritabanı kullanarak verileri kalıcı hale ekleyin.

Tasarım önerileri

  • Tüm uygulama bileşenlerini kapsayıcıya alma. Uygulama dağıtım paketleri için birincil model olarak kapsayıcı görüntülerini kullanın.

  • Mümkün olduğunda Linux tabanlı kapsayıcı çalışma zamanlarına öncelik verin. Görüntüler daha hafiftir ve Linux düğümleri/kapsayıcıları için yeni özellikler sık sık yayınlanır.

  • Kapsayıcıları kısa yaşam döngüleriyle sabit ve değiştirilebilir hale getirin.

  • Kapsayıcıdan, kapsayıcı konağından ve temel alınan kümeden tüm ilgili günlükleri ve ölçümleri toplamayı unutmayın. Toplanan günlükleri ve ölçümleri daha fazla işleme ve analiz için birleşik bir veri havuzuna gönderin.

  • Kapsayıcı görüntülerini Azure Container Registry'de depolayın. Kapsayıcı görüntülerini tüm bölgeler arasında çoğaltmak için coğrafi çoğaltmayı kullanın. Kapsayıcı görüntüleri için güvenlik açığı taraması sağlamak üzere kapsayıcı kayıt defterleri için Microsoft Defender etkinleştirin. Kayıt defterine erişimin Microsoft Entra kimliğiyle yönetildiğinden emin olun.

Kapsayıcı barındırma ve düzenleme

Çeşitli Azure uygulama platformları kapsayıcıları etkili bir şekilde barındırabilir. Bu platformların her biriyle ilişkili avantajlar ve dezavantajlar vardır. İş gereksinimleriniz bağlamındaki seçenekleri karşılaştırın. Ancak güvenilirliği, ölçeklenebilirliği ve performansı her zaman iyileştirin. Daha fazla bilgi için şu makalelere bakın:

Önemli

Azure Kubernetes Service (AKS) ve Azure Container Apps, gereksinimlerinize bağlı olarak kapsayıcı yönetimi için ilk tercihleriniz arasında olmalıdır. Azure App Service bir düzenleyici olmasa da, düşük sürtünmeli bir kapsayıcı platformu olarak AKS'ye uygulanabilir bir alternatiftir.

Azure Kubernetes Service için tasarım konuları ve önerileri

Yönetilen bir Kubernetes hizmeti olan AKS, karmaşık küme yönetimi etkinlikleri gerektirmeden hızlı küme sağlamayı etkinleştirir ve gelişmiş ağ ve kimlik özellikleri içeren bir özellik kümesi sunar. Eksiksiz bir öneri kümesi için bkz. Azure Well-Architected Framework incelemesi - AKS.

Önemli

AKS kümesini yeniden dağıtmadan değiştirebileceğiniz bazı temel yapılandırma kararları vardır. Örnek olarak genel ve özel AKS kümeleri arasında seçim, Azure Ağ İlkesi'ni etkinleştirme, Microsoft Entra tümleştirmesi ve hizmet sorumluları yerine AKS için yönetilen kimliklerin kullanılması verilebilir.

Güvenilirlik

AKS, yerel Kubernetes kontrol düzlemini yönetir. Kontrol düzlemi kullanılamıyorsa iş yükü kapalı kalma süresiyle karşılaşır. AKS tarafından sunulan güvenilirlik özelliklerinden yararlanın:

  • Güvenilirliği ve kullanılabilirliği en üst düzeye çıkarmak için aks kümelerini farklı Azure bölgelerinde ölçek birimi olarak dağıtın. AKS denetim düzlemi ve aracı düğümlerini fiziksel olarak ayrı veri merkezleri arasında dağıtarak azure bölgesinde dayanıklılığı en üst düzeye çıkarmak için kullanılabilirlik alanlarını kullanın. Ancak, birlikte bulundurma gecikmesi bir sorunsa aks dağıtımlarını tek bir bölge içinde yapabilir veya düğümler arası gecikme süresini en aza indirmek için yakınlık yerleştirme gruplarını kullanabilirsiniz.

  • Kubernetes API uç nokta kullanılabilirliği garantilerini en üst düzeye çıkarmak için üretim kümeleri için AKS Çalışma Süresi SLA'sını kullanın.

Ölçeklenebilirlik

Düğüm sayısı, küme başına düğüm havuzları ve abonelik başına küme sayısı gibi AKS ölçek sınırlarını dikkate alın.

Yalıtım

İş yükü ve sistem araçları tarafından kullanılan altyapı arasındaki sınırları koruyun. Altyapı paylaşımı yüksek kaynak kullanımına ve gürültülü komşu senaryolarına yol açabilir.

  • Sistem ve iş yükü hizmetleri için ayrı düğüm havuzları kullanın. İş yükü bileşenleri için ayrılmış düğüm havuzları, yüksek bellekli GPU VM'leri gibi özel altyapı kaynaklarına yönelik gereksinimleri temel almalıdır. Genel olarak, gereksiz yönetim ek yükünü azaltmak için çok sayıda düğüm havuzu dağıtmaktan kaçının.

  • Ayrılmış düğümler sağlamak ve yoğun kaynak kullanan uygulamaları sınırlamak için renk tonlarını ve toleransları kullanın.

  • Uygulama benzeşimi ve benzeşim karşıtı gereksinimleri değerlendirin ve düğümlerde kapsayıcıların uygun birlikte bulundurmasını yapılandırın.

Güvenlik

Varsayılan vanilya Kubernetes, görev açısından kritik senaryolar için uygun bir güvenlik duruşu sağlamak için önemli bir yapılandırma gerektirir. AKS, çeşitli güvenlik risklerini kullanıma hazırdır. Özellikler arasında özel kümeler, Log Analytics'e denetim ve oturum açma, sağlamlaştırılmış düğüm görüntüleri ve yönetilen kimlikler yer alır.

  • AKS güvenlik temelinde sağlanan yapılandırma kılavuzunu uygulayın.

  • İşletimsel ek yükü azaltmak ve tutarlı erişim yönetimi uygulamak için küme kimliği ve erişim yönetimini işlemek için AKS özelliklerini kullanın.

  • Kimlik bilgilerinin yönetilmesini ve döndürülmemesi için hizmet sorumluları yerine yönetilen kimlikleri kullanın. Yönetilen kimlikleri küme düzeyinde ekleyebilirsiniz. Pod düzeyinde, yönetilen kimlikleri Microsoft Entra İş Yükü Kimliği aracılığıyla kullanabilirsiniz.

  • Merkezi hesap yönetimi ve parolalar, uygulama erişim yönetimi ve gelişmiş kimlik koruması için Microsoft Entra tümleştirmesini kullanın. Kubernetes RBAC'yi en az ayrıcalık için Microsoft Entra kimliğiyle kullanın ve yapılandırma ve gizli dizi erişimini korumaya yardımcı olmak için yönetici ayrıcalıkları verilmesini en aza indirin. Ayrıca, Azure rol tabanlı erişim denetimini kullanarak Kubernetes kümesi yapılandırma dosyasına erişimi sınırlayın. Kapsayıcıların gerçekleştirebileceği eylemlere erişimi sınırlayın, en az sayıda izin sağlayın ve kök ayrıcalık yükseltmesi kullanımından kaçının.

Yükseltmeler

Kümelerin ve düğümlerin düzenli olarak yükseltilmesi gerekir. AKS, yerel Kubernetes'in yayın döngüsüyle uyumlu olarak Kubernetes sürümlerini destekler.

  • Gelecek değişiklikler, iyileştirmeler ve en önemlisi Kubernetes sürüm sürümleri ve kullanımdan kaldırmalar hakkında güncel bilgi edinmek için GitHub'da genel AKS Yol Haritası ve Sürüm Notları'na abone olun.

  • En iyi yöntemlerle uyumlu olduğundan emin olmak için AKS denetim listesinde sağlanan kılavuzu uygulayın.

  • Düğümleri ve/veya kümeleri güncelleştirmek için AKS tarafından desteklenen çeşitli yöntemlere dikkat edin. Bu yöntemler el ile veya otomatikleştirilebilir. Bu işlemlerin bakım pencerelerini tanımlamak için Planlı Bakım'ı kullanabilirsiniz. Yeni görüntüler haftalık olarak yayınlanıyor. AKS ayrıca AKS kümelerini otomatik olarak Kubernetes'in daha yeni sürümlerine ve/veya kullanılabilir olduğunda daha yeni düğüm görüntülerine yükseltmek için otomatik yükseltme kanallarını destekler.

Kullanım örneğine en uygun ağ eklentilerini değerlendirin. Podlar arasındaki trafikte ayrıntılı denetime ihtiyacınız olup olmadığını belirleyin. Azure kubenet, Azure CNI'yi destekler ve belirli kullanım örnekleri için kendi CNI'nizi getirir .

Ağ gereksinimlerini ve kümenin boyutunu değerlendirdikten sonra Azure CNI'nin kullanımına öncelik belirleyin. Azure CNI, küme içindeki trafiği denetlemek için Azure veya Calico ağ ilkelerinin kullanılmasını sağlar.

İzleme

İzleme araçlarınız çalışan podlardan günlükleri ve ölçümleri yakalayabilmelidir. Çalışan kaynakların ve iş yüklerinin durumunu izlemek için Kubernetes Ölçümler API'sinden de bilgi toplamanız gerekir.

İdare

AKS kümelerine tutarlı bir şekilde merkezi korumalar uygulamak için ilkeleri kullanın. Geliştirme ekipleri arasında tutarlılığı sağlamak için abonelik kapsamında veya daha üst bir sürümde ilke atamaları uygulayın.

  • Azure İlkesi kullanarak podlara verilen işlevleri ve çalıştırmanın ilkeyle çelişip çelişmediğini denetleyin. Bu erişim, AKS için Azure İlkesi Eklentisi tarafından sağlanan yerleşik ilkeler aracılığıyla tanımlanır.

  • Azure İlkesi kullanarak AKS kümesi ve pod yapılandırmaları için tutarlı bir güvenilirlik ve güvenlik temeli oluşturun.

  • Kök ayrıcalıkları gibi pod işlevlerini denetlemek ve ilkeye uymayan podlara izin vermek için AKS için Azure İlkesi Eklentisini kullanın.

Not

Bir Azure giriş bölgesine dağıtım yaptığınızda, tutarlı güvenilirlik ve güvenlik sağlamanıza yardımcı olacak Azure ilkeleri giriş bölgesi uygulaması tarafından sağlanmalıdır.

Görev açısından kritik başvuru uygulamaları, önerilen güvenilirlik ve güvenlik yapılandırmalarını yönlendirmek için bir temel ilke paketi sağlar.

Azure App Service için tasarımla ilgili önemli noktalar ve öneriler

Web ve API tabanlı iş yükü senaryolarında App Service AKS'ye uygulanabilir bir alternatif olabilir. Kubernetes'in karmaşıklığı olmadan düşük sürtünmeli bir kapsayıcı platformu sağlar. Eksiksiz bir öneri kümesi için bkz. App Service için güvenilirlik konuları ve App Service için operasyonel mükemmellik.

Güvenilirlik

TCP ve SNAT bağlantı noktalarının kullanımını değerlendirin. TCP bağlantıları tüm giden bağlantılar için kullanılır. SNAT bağlantı noktaları, genel IP adreslerine giden bağlantılar için kullanılır. SNAT bağlantı noktası tükenmesi yaygın bir hata senaryosudur. Bağlantı noktalarını izlemek için Azure Tanılama kullanırken yük testi yaparak bu sorunu tahmine dayalı olarak algılamanız gerekir. SNAT hataları oluşursa, SNAT bağlantı noktalarının korunmasına ve yeniden kullanılmasına yardımcı olmak için daha fazla veya daha büyük çalışan arasında ölçeklendirme yapmanız veya kodlama uygulamaları uygulamanız gerekir. Kullanabileceğiniz kodlama uygulamalarına örnek olarak bağlantı havuzu oluşturma ve kaynakların yavaş yüklenmesi verilebilir.

TCP bağlantı noktası tükenmesi de bir diğer hata senaryosudur. Belirli bir çalışandan gelen bağlantıların toplamı kapasiteyi aştığında oluşur. Kullanılabilir TCP bağlantı noktalarının sayısı çalışanın boyutuna bağlıdır. Öneriler için bkz. TCP ve SNAT bağlantı noktaları.

Ölçeklenebilirlik

Başlangıçtan itibaren uygun önerileri uygulayabilmek için gelecekteki ölçeklenebilirlik gereksinimlerini ve uygulama büyümesini planlayın. Bunu yaparak, çözüm büyüdükçe teknik geçiş borçlarından kaçınabilirsiniz.

  • Hizmet istekleri için yeterli kaynakların kullanılabilir olduğundan emin olmak için otomatik ölçeklendirmeyi etkinleştirin. App Service üzerinde yüksek yoğunluklu barındırma için uygulama başına ölçeklendirmeyi değerlendirin.

  • App Service App Service planı başına varsayılan, geçici örnek sınırına sahip olduğunu unutmayın.

  • Otomatik ölçeklendirme kurallarını uygulama. App Service planı, profildeki herhangi bir kurala uyulsa ölçeği genişletilir, ancak yalnızca profildeki tüm kurallar karşılandığında ölçeği daraltılır. Otomatik ölçeklendirmenin ölçeği genişletmek ve daraltmak için eyleme geçediğinden emin olmak için ölçeği genişletme ve ölçeği daraltma kuralı birleşimini kullanın. Tek bir profilde birden çok ölçeklendirme kuralının davranışını anlama.

  • Bir uygulamanın uygulamayı barındıran App Service planından bağımsız olarak ölçeklendirilmesini sağlamak için App Service planı düzeyinde uygulama başına ölçeklendirmeyi etkinleştirebileceğinizi unutmayın. Uygulamalar, eşit dağıtım için en iyi çaba yaklaşımıyla kullanılabilir düğümlere ayrılır. Eşit dağıtım garanti olmasa da platform, aynı uygulamanın iki örneğinin aynı örnekte barındırılmasını güvence altına alır.

İzleme

Uygulamanızın beklendiği gibi çalıştığından emin olmak için uygulama davranışını izleyin ve ilgili günlüklere ve ölçümlere erişin.

  • Tanılama günlüğünü kullanarak uygulama düzeyinde ve platform düzeyindeki günlükleri Log Analytics'e, Azure Depolama'ya veya Azure Event Hubs aracılığıyla bir üçüncü taraf aracına alabilirsiniz.

  • Application Insights ile uygulama performansı izleme, uygulama performansı hakkında ayrıntılı içgörüler sağlar.

  • Görev açısından kritik uygulamalar, hatalar olduğunda kendi kendini iyileştirme özelliğine sahip olmalıdır. İyi durumda olmayan çalışanları otomatik olarak geri dönüştürmek için Otomatik Düzeltme'yi etkinleştirin.

  • Genel sistem durumunu sağlamaya yardımcı olan tüm kritik aşağı akış bağımlılıklarını değerlendirmek için uygun sistem durumu denetimlerini kullanmanız gerekir. Yanıt vermeyen çalışanları belirlemek için Sistem Durumu Denetimi'nin etkinleştirilmesini kesinlikle öneririz.

Dağıtım

App Service planı başına varsayılan örnek sınırına geçici bir çözüm bulmak için App Service planlarını tek bir bölgede birden çok ölçek biriminde dağıtın. Çalışan düğümlerinin bir bölge içindeki bölgeler arasında dağıtılmasını sağlamak için kullanılabilirlik alanı yapılandırmasında App Service planları dağıtın. Maksimum çalışan sayısını normal en yüksek yüke hizmet etmek için gereken örnek sayısının iki katına yükseltmek için bir destek bileti açmayı göz önünde bulundurun.

Kapsayıcı kayıt defteri

Kapsayıcı kayıt defterleri AKS gibi kapsayıcı çalışma zamanı ortamlarına dağıtılan görüntüleri barındırır. Görev açısından kritik iş yükleri için kapsayıcı kayıt defterlerinizi dikkatle yapılandırmanız gerekir. Kesintiler, özellikle ölçeklendirme işlemleri sırasında görüntüleri çekmede gecikmelere neden olmamalıdır. Aşağıdaki önemli noktalar ve öneriler Azure Container Registry odaklanır ve merkezi ve federasyon dağıtım modelleriyle ilişkili dengeleri keşfeder.

Tasarım konusunda dikkat edilmesi gerekenler

  • Biçim'i seçin. Hem gönderme hem de çekme işlemleri için Docker tarafından sağlanan biçime ve standartlara dayalı bir kapsayıcı kayıt defteri kullanmayı göz önünde bulundurun. Bu çözümler uyumludur ve çoğunlukla değiştirilebilir.

  • Dağıtım modeli. Kapsayıcı kayıt defterini, kuruluşunuzdaki birden çok uygulama tarafından kullanılan merkezi bir hizmet olarak dağıtabilirsiniz. Veya belirli bir uygulama iş yükü için ayrılmış bir bileşen olarak dağıtabilirsiniz.

  • Genel kayıt defterleri. Kapsayıcı görüntüleri, Azure dışında ve belirli bir sanal ağ dışında bulunan Docker Hub veya diğer genel kayıt defterlerinde depolanır. Bu bir sorun olmayabilir, ancak hizmet kullanılabilirliği, azaltma ve veri sızdırma ile ilgili çeşitli sorunlara yol açabilir. Bazı uygulama senaryolarında, çıkış trafiğini sınırlamak, kullanılabilirliği artırmak veya olası azaltmayı önlemek için özel bir kapsayıcı kayıt defterindeki genel kapsayıcı görüntülerini çoğaltmanız gerekir.

Tasarım önerileri

  • Uygulama iş yüküne ayrılmış kapsayıcı kayıt defteri örneklerini kullanın. Kurumsal kullanılabilirlik ve güvenilirlik gereksinimleri uygulamayla tamamen uyumlu olmadığı sürece merkezi bir hizmette bağımlılık oluşturmaktan kaçının.

    Önerilen temel mimari düzeninde kapsayıcı kayıt defterleri uzun süreli küresel kaynaklardır. Ortam başına tek bir genel kapsayıcı kayıt defteri kullanmayı göz önünde bulundurun. Örneğin, genel bir üretim kayıt defteri kullanın.

  • Genel kayıt defteri için SLA'nın güvenilirlik ve güvenlik hedeflerinize uygun olduğundan emin olun. Docker Hub bağlı kullanım örnekleri için azaltma sınırlarını özellikle not alın.

  • Kapsayıcı görüntülerini barındırmak için Azure Container Registry önceliklerini belirleyin.

Azure Container Registry için tasarım konuları ve önerileri

Bu yerel hizmet coğrafi çoğaltma, Microsoft Entra kimlik doğrulaması, otomatik kapsayıcı oluşturma ve Container Registry görevleri aracılığıyla düzeltme eki uygulama gibi çeşitli özellikler sağlar.

Güvenilirlik

Bölgesel bağımlılıkları kaldırmak ve gecikme süresini iyileştirmek için tüm dağıtım bölgelerine coğrafi çoğaltmayı yapılandırın. Container Registry, coğrafi çoğaltma yoluyla birden çok yapılandırılmış bölgeye yüksek kullanılabilirliği destekleyerek bölgesel kesintilere karşı dayanıklılık sağlar. Bir bölge kullanılamaz duruma gelirse, diğer bölgeler görüntü isteklerine hizmet etmeye devam eder. Bölge yeniden çevrimiçi olduğunda Container Registry değişiklikleri kurtarır ve çoğaltır. Bu özellik ayrıca yapılandırılan her bölgede kayıt defteri birlikte bulundurması sağlayarak ağ gecikme süresini ve bölgeler arası veri aktarımı maliyetlerini azaltır.

Kullanılabilirlik alanı desteği sağlayan Azure bölgelerinde Premium Container Registry katmanı, bölgesel hatalara karşı koruma sağlamak için alanlar arası yedekliliği destekler . Premium katmanı, kayıt defterine yetkisiz erişimi önlemeye yardımcı olmak için özel uç noktaları da destekler ve bu da güvenilirlik sorunlarına yol açabilir.

Görüntüleri aynı Azure bölgelerinde, tüketen işlem kaynaklarına yakın bir yerde barındırın.

Görüntü kilitleme

Görüntüler, örneğin el ile yapılan bir hatanın sonucu olarak silinebilir. Container Registry, değişiklikleri veya silmeleri önlemek için bir görüntü sürümünün veya deponun kilitlenmesini destekler. Daha önce dağıtılan bir görüntü sürümü yerinde değiştirildiğinde, aynı sürüm dağıtımları değişiklik öncesinde ve sonrasında farklı sonuçlar sağlayabilir.

Container Registry örneğini silinmeye karşı korumak istiyorsanız kaynak kilitlerini kullanın.

Etiketli resimler

Etiketli Container Registry görüntüleri varsayılan olarak değiştirilebilir, yani aynı etiket kayıt defterine gönderilen birden çok görüntüde kullanılabilir. Üretim senaryolarında bu, uygulama çalışma süresini etkileyebilecek öngörülemeyen davranışlara yol açabilir.

Kimlik ve erişim yönetimi

Erişim anahtarlarına güvenmek yerine görüntüleri göndermek ve çekmek için tümleşik Microsoft Entra kimlik doğrulamasını kullanın. Gelişmiş güvenlik için yönetici erişim anahtarının kullanımını tamamen devre dışı bırakın.

Sunucusuz işlem

Sunucusuz bilgi işlem, isteğe bağlı kaynaklar sağlar ve altyapıyı yönetme gereksinimini ortadan kaldırır. Bulut sağlayıcısı, dağıtılan uygulama kodunu çalıştırmak için gereken kaynakları otomatik olarak sağlar, ölçeklendirir ve yönetir. Azure çeşitli sunucusuz işlem platformları sağlar:

  • Azure İşlevleri. Azure İşlevleri kullandığınızda, uygulama mantığı HTTP isteği veya kuyruk iletisi gibi olaylara yanıt olarak çalışan farklı kod blokları veya işlevler olarak uygulanır. Her işlev talebi karşılamak için gerektiği şekilde ölçeklendirilir.

  • Azure Logic Apps. Logic Apps, çeşitli uygulamaları, veri kaynaklarını, hizmetleri ve sistemleri tümleştiren otomatik iş akışları oluşturmak ve çalıştırmak için idealdir. Azure İşlevleri gibi Logic Apps de olay odaklı işleme için yerleşik tetikleyiciler kullanır. Ancak, uygulama kodunu dağıtmak yerine, koşullular ve döngüler gibi kod bloklarını destekleyen bir grafik kullanıcı arabirimi kullanarak mantıksal uygulamalar oluşturabilirsiniz.

  • Azure API Management. tüketim katmanını kullanarak gelişmiş güvenlik API'lerini yayımlamak, dönüştürmek, korumak ve izlemek için API Management kullanabilirsiniz.

  • Power Apps ve Power Automate. Bu araçlar, basit iş akışı mantığı ve kullanıcı arabirimindeki bağlantılar aracılığıyla yapılandırılabilen tümleştirmelerle düşük kodlu veya kod içermeyen bir geliştirme deneyimi sağlar.

Görev açısından kritik uygulamalar için sunucusuz teknolojiler, basit iş kullanım örnekleri için değerli olabilecek basitleştirilmiş geliştirme ve operasyonlar sağlar. Ancak, bu basitlik ölçeklenebilirlik, güvenilirlik ve performans açısından esneklik maliyetine neden olur ve bu, görev açısından kritik uygulama senaryolarının çoğu için uygun değildir.

Aşağıdaki bölümlerde, kritik olmayan iş akışı senaryoları için alternatif platformlar olarak Azure İşlevleri ve Logic Apps kullanımına yönelik tasarım konuları ve öneriler sağlanmaktadır.

Azure İşlevleri için tasarım konuları ve önerileri

Görev açısından kritik iş yüklerinin kritik ve kritik olmayan sistem akışları vardır. Azure İşlevleri, kritik sistem akışlarıyla aynı sıkı iş gereksinimlerine sahip olmayan akışlar için uygun bir seçimdir. İşlevler mümkün olan en hızlı şekilde çalışan farklı işlemler gerçekleştirdiğinden, kısa süreli işlemlere sahip olay odaklı akışlar için uygundur.

Uygulamanın güvenilirlik katmanına uygun bir Azure İşlevleri barındırma seçeneği belirleyin. İşlem örneği boyutunu yapılandırmanıza olanak sağladığından Premium planı öneririz. Ayrılmış plan en az sunucusuz seçenektir. Otomatik ölçeklendirme sağlar, ancak bu ölçeklendirme işlemleri diğer planlardan daha yavaştır. Güvenilirliği ve performansı en üst düzeye çıkarmak için Premium planı kullanmanızı öneririz.

Güvenlikle ilgili dikkat edilmesi gereken bazı noktalar vardır. Dış uç noktayı kullanıma sunmak için HTTP tetikleyicisi kullandığınızda, yaygın dış saldırı vektörlerinden HTTP uç noktası için koruma düzeyi sağlamak üzere bir web uygulaması güvenlik duvarı (WAF) kullanın.

Özel sanal ağlara erişimi kısıtlamak için özel uç noktaların kullanılmasını öneririz. Ayrıca kötü amaçlı yönetici senaryoları gibi veri sızdırma risklerini de azaltabilir.

Azure İşlevleri kodda kod tarama araçlarını kullanmanız ve bu araçları CI/CD işlem hatları ile tümleştirmeniz gerekir.

Azure Logic Apps için tasarım konuları ve önerileri

Azure İşlevleri gibi Logic Apps de olay odaklı işleme için yerleşik tetikleyiciler kullanır. Ancak, uygulama kodunu dağıtmak yerine, koşullular, döngüler ve diğer yapılar gibi blokları destekleyen bir grafik kullanıcı arabirimi kullanarak mantıksal uygulamalar oluşturabilirsiniz.

Birden çok dağıtım modu kullanılabilir. Tek kiracılı bir dağıtım sağlamak ve gürültülü komşu senaryolarını azaltmak için Standart modu öneririz. Bu mod, Azure İşlevleri temel alan kapsayıcılı tek kiracılı Logic Apps çalışma zamanını kullanır. Bu modda mantıksal uygulamanın durum bilgisi olan ve olmayan birden çok iş akışı olabilir. Yapılandırma sınırlarını bilmeniz gerekir.

IaaS aracılığıyla kısıtlanmış geçişler

Mevcut şirket içi dağıtımları olan birçok uygulama, görev açısından kritik güvenilirlik düzeyleri sağlamak için sanallaştırma teknolojilerini ve yedekli donanımları kullanır. Modernleştirme genellikle görev açısından kritik iş yükleri için önerilen buluta özel temel (North Star) mimari deseniyle tam hizalamayı engelleyen iş kısıtlamaları tarafından engellenir. Bu nedenle birçok uygulama, sanallaştırma kullanan ilk bulut dağıtımları ve birincil uygulama barındırma modeli olarak Azure Sanal Makineler ile aşamalı bir yaklaşımı benimser. Belirli senaryolarda IaaS sanal makinelerinin kullanılması gerekebilir:

  • Kullanılabilir PaaS hizmetleri gerekli performansı veya denetim düzeyini sağlamaz.
  • İş yükü işletim sistemi erişimi, belirli sürücüler veya ağ ve sistem yapılandırmaları gerektirir.
  • İş yükü kapsayıcılarda çalıştırmayı desteklemez.
  • Üçüncü taraf iş yükleri için satıcı desteği yoktur.

Bu bölümde, uygulama platformunun güvenilirliğini en üst düzeye çıkarmak için Azure Sanal Makineler ve ilişkili hizmetleri kullanmanın en iyi yolları ele alınmaktadır. Buluta özel ve IaaS geçiş senaryolarını tersine çeviren görev açısından kritik tasarım metodolojisinin önemli yönlerini vurgular.

Tasarım konusunda dikkat edilmesi gerekenler

  • IaaS sanal makinelerini kullanmanın operasyonel maliyetleri, sanal makinelerin ve işletim sistemlerinin yönetim gereksinimleri nedeniyle PaaS hizmetlerini kullanma maliyetlerinden önemli ölçüde daha yüksektir. Sanal makineleri yönetmek için yazılım paketlerinin ve güncelleştirmelerin sık sık kullanıma alınması gerekir.

  • Azure, sanal makinelerin kullanılabilirliğini artırmaya yönelik özellikler sağlar:

    • Kullanılabilirlik kümeleri , sanal makineleri hata etki alanları ve güncelleştirme etki alanları arasında dağıtarak ağ, disk ve güç hatalarına karşı korunmaya yardımcı olabilir.
    • Kullanılabilirlik alanları , vm'leri bir bölge içindeki fiziksel olarak ayrılmış veri merkezlerine dağıtarak daha da yüksek güvenilirlik düzeylerine ulaşmanıza yardımcı olabilir.
    • Sanal Makine Ölçek Kümeleri bir gruptaki sanal makine sayısını otomatik olarak ölçeklendirmeye yönelik işlevsellik sağlar. Ayrıca örnek durumunu izlemeye ve iyi durumda olmayan örnekleri otomatik olarak onarmaya yönelik özellikler sağlar.

Tasarım önerileri

Önemli

Operasyonel karmaşıklığı ve maliyeti azaltmak için mümkün olduğunda PaaS hizmetlerini ve kapsayıcılarını kullanın. IaaS sanal makinelerini yalnızca ihtiyacınız olduğunda kullanın.

  • Etkili kaynak kullanımı sağlamak için VM SKU boyutlarını doğru boyutlandırabilirsiniz.

  • Veri merkezi düzeyinde hataya dayanıklılık elde etmek için kullanılabilirlik alanları arasında üç veya daha fazla sanal makine dağıtın.

    • Kullanıma açık ticari yazılımlar dağıtıyorsanız yazılım satıcısına başvurun ve yazılımı üretime dağıtmadan önce yeterince test edin.
  • Kullanılabilirlik alanları arasında dağıtılabilen iş yükleri için üç veya daha fazla VM içeren kullanılabilirlik kümelerini kullanın.

    • Kullanılabilirlik kümelerini yalnızca kullanılabilirlik alanlarının düşük gecikme süresi gereksinimlerine sahip gevevelemeli iş yükleri gibi iş yükü gereksinimlerini karşılamaması durumunda dikkate alın.
  • Ölçeklenebilirlik ve alanlar arası yedeklilik için Sanal Makine Ölçek Kümeleri kullanımına öncelik belirleyin. Bu nokta, değişen yükleri olan iş yükleri için özellikle önemlidir. Örneğin, saniye başına etkin kullanıcı veya istek sayısı değişen bir yükse.

  • Tek tek sanal makinelere doğrudan erişmeyin. Mümkün olduğunda önlerinde yük dengeleyiciler kullanın.

  • Bölgesel kesintilere karşı koruma sağlamak için uygulama sanal makinelerini birden çok Azure bölgesine dağıtın.

  • Çok bölgeli etkin/etkin dağıtımları desteklemeyen iş yükleri için, bölgesel yük devretme için etkin/sıcak hazır bekleyen sanal makineleri kullanarak etkin/pasif dağıtımlar uygulamayı göz önünde bulundurun.

  • Bakımı gereken özel görüntüler yerine Azure Market standart görüntüleri kullanın.

  • El ile müdahaleden kaçınarak sanal makinelere değişiklikleri dağıtmak ve dağıtmak için otomatik işlemler uygulayın. Daha fazla bilgi için operasyonel yordamlar tasarım alanındaki IaaS ile ilgili dikkat edilmesi gerekenler bölümüne bakın.

  • Sanal makine bileşenlerine uygulama hataları eklemek ve hataların azaltılmasını gözlemlemek için kaos denemeleri uygulayın. Daha fazla bilgi için bkz . Sürekli doğrulama ve test.

  • Sanal makineleri izleyin ve tanılama günlüklerinin ve ölçümlerin birleşik bir veri havuzuna alındığından emin olun.

  • Uygun olduğunda görev açısından kritik uygulama senaryoları için güvenlik uygulamalarını ve Azure'daki IaaS iş yükleri için en iyi güvenlik uygulamalarını uygulayın.

Sonraki adım

Veri platformuyla ilgili dikkat edilmesi gerekenleri gözden geçirin.