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 bakımı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.
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 etkiler.
Görev açısından kritik bir uygulama, her biri ayrı 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 İyi Tasarlanmış Çerçeve 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 kısıtlanmayan Azure hizmetleri genel kaynak olarak dağıtılır veya yapılandırılır. Bazı kullanım örnekleri arasında trafiği birden çok bölgeye dağıtma, uygulamanın tamamı için kalıcı durumu depolama ve genel statik verileri önbelleğe alma sayılabilir. Hem ölçek birimi mimarisine hem de genel dağıtıma uyum sağlaması 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. Bölgesel kaynakların güvenilirliği kritik önem taşır çünkü ana iş yükünü çalıştırmak onların sorumluluğundadır.
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 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 kapatıldığında 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ında 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 yayılmasını otomatik olarak sağladığı ve bir bölge kesintisine dayanabildiği 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ımla ilgili dikkat edilecek noktalar
Bölgesel ve bölgesel özellikler. Tüm hizmetler ve özellikler her Azure bölgesinde kullanılamaz. Bu durum 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ölgeleri 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. Kesinti birden çok Azure bölgesini etkiliyorsa, kurtarma için her çiftte en az bir bölge önceliklendirilir.
Veri tutarlılığı. Tutarlılık sorunları için genel olarak dağıtılmış bir veri deposu, damgalı bölgesel mimari ve kısmen etkin/etkin 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. Sistem durumu, sürüm sırasında 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 varsa, 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ölgelerde dağıtın. Özellikler, veri yerleşimi ve bekletme gereksinimlerini karşılarken performans ve kullanılabilirlik hedeflerini karşılamalıdır.
Örneğin, bazı veri uyumluluğu gereksinimleri kullanılabilir bölgelerin sayısını kısıtlayabilir ve potansiyel olarak tasarım güvenliğinin aşı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ölge içeren bir coğrafyaya bağlı olduğunuzu 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 ve birincil bölgenin birden çok dağıtım damgası barındırdığından emin olmak için hata etki alanı yalıtımını kullanarak ikincil dağıtım deseni oluşturun.
Uygun Azure bölgelerinin tümü ihtiyacınız olan özellikleri sunmazsa, coğrafi dağıtıma öncelik vermek 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, bazı riskleri azaltmak için seçili bölgeye birden çok dağıtım damgası (bölgesel ölçek birimi) 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 SLO'ları ve genel güvenilirliği önemli ölçüde kısıtlar.
Önemli
%99,99'dan büyük veya buna eşit bir SLO'ya yönelik senaryolar için en az üç dağıtım bölgesi önerilir. Tüm kullanıcı akışları için bileşik SLO'ları hesaplayın. Bu hedeflerin 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çeklendirilecek şekilde tasarlar ve tek bir bölge içindeki olası kapasite kısıtlamalarında gezinebilirsiniz. Ek bölgesel dağıtım damgaları daha yüksek bir bileşik SLO elde edebilir. Daha fazla bilgi için bkz. Çoklu bölge hedeflerini uygulama.
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 önceliklendirmeden 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ı kullanıcılarla coğrafi olarak birlikte kullanın.
- Dağıtılmış kullanıcı tabanları için en iyi ağ gecikme süresini sağlamak için Content Delivery Network (CDN) veya kenar önbelleğe alma gibi çözümleri de kullanabilirsiniz. Daha fazla bilgi için bkz . Genel trafik yönlendirme, Uygulama teslim hizmetleri ve Önbelleğe alma ve statik içerik teslimi.
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.
Konteyner kullanımı
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 barındırma platformundan ayrım oluşturur. Tek yazılım paketi yüksek oranda taşınabilir 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ırabileceğ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ı veya kitaplık sürümleri ne olursa olsun 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 oluşturulduğ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ımla ilgili dikkat edilecek noktalar
İ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şturulur. Ancak kapsayıcılar temel alınan işletim sisteminden yalıtıldığından konak sanal makinesi (VM) erişimi riski sınırlıdır.
Durum. 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. Daha fazla işlem ve analiz için toplanan günlükleri ve ölçümleri 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 Id tarafından 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üvenilirlik, ölçeklenebilirlik 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 Uygulaması Hizmeti 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ımla ilgili önemli noktalar ve öneriler
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 İyi Tasarlanmış Çerçeve gözden geçirmesi - 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 denetim düzlemini yönetir. Denetim 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ölgelerine ö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.
Ölçeklenebilirlik
Düğüm sayısı, küme başına düğüm havuzları ve abonelik başına kümeler gibi AKS ölçek sınırlarını dikkate alın.
Ölçek sınırları bir kısıtlamaysa, ölçek birimi stratejisinden yararlanın ve kümelerle daha fazla birim dağıtın.
Kaynak kısıtlamalarına yanıt olarak aracı düğümlerinin sayısını otomatik olarak ayarlamak için küme otomatik ölçeklendiricisini etkinleştirin.
Bir dağıtımdaki pod sayısını CPU kullanımına veya diğer ölçümlere göre ayarlamak için yatay pod otomatik ölçeklendiricisini kullanın.
Yüksek ölçek ve seri dağıtım senaryoları için, kapsamlı ve hızlı ölçek için sanal düğümleri kullanmayı göz önünde bulundurun.
Uygulama dağıtım bildirimlerinde pod kaynak isteklerini ve sınırlarını tanımlayın. Aksi takdirde performans sorunlarıyla karşılaşabilirsiniz.
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şıtlığı gereksinimlerini 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 dışında ele alır. Özellikler arasında özel kümeler, Log Analytics'de denetim ve oturum açma, sağlamlaştırılmış düğüm görüntüleri ve yönetilen kimlikler bulunur.
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ğini ve erişim yönetimini işlemek için AKS özelliklerini kullanın.
Kimlik bilgilerinin yönetilmesini ve döndürülmesini önlemek 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 Id ile 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ırma işlemleri hakkında güncel bilgiler 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 kullanılabilir olduğunda otomatik olarak Kubernetes'in yeni sürümlerine ve/veya daha yeni düğüm görüntülerine yükseltmek için otomatik yükseltme kanallarını destekler.
Ağ
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 desteği s kubenet, Azure CNI ve belirli kullanım örnekleri için kendi CNI'nizi getirin.
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.
Sorun giderme için AKS kaynaklarından ölçümler, günlükler ve tanılamalar toplamak için Azure İzleyici ve Application Insights'ı kullanın.
Kubernetes kaynak günlüklerini etkinleştirin ve gözden geçirin.
Azure İzleyici'de Prometheus ölçümlerini yapılandırın. İzleyici'deki kapsayıcı içgörüleri ekleme sağlar, izleme özelliklerini kullanıma sunar ve yerleşik Prometheus desteği aracılığıyla daha gelişmiş özellikler sağlar.
İ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 yüksek bir kapsamda 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üvenliği 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 Uygulaması Hizmeti için tasarım konuları ve önerileri
Web ve API tabanlı iş yükü senaryolarında App Service, AKS'ye uygun 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 ölçeğini ölçeklendirmeniz 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 başka bir hata senaryosudur. Belirli bir çalışandan giden 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 uygulayabilmeniz 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ş borcundan kaçınabilirsiniz.
Hizmet istekleri için yeterli kaynakların kullanılabildiğinden emin olmak için otomatik ölçeklendirmeyi etkinleştirin. App Service'te yüksek yoğunluklu barındırma için uygulama başına ölçeklendirmeyi değerlendirin.
App Service'in 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. Bir App Service planı, profildeki herhangi bir kural karşılanırsa ö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çebilmesini sağlamak için ölçeği genişletme ve ölçeği daraltma kuralı bileş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çeklendirilmesine izin vermek 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ı sağlar.
İ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.
Uygulama düzeyi ve platform düzeyindeki günlükleri Log Analytics' e, Azure Depolama' ya da Azure Event Hubs aracılığıyla bir üçüncü taraf aracına almak için tanılama günlüğünü kullanabilirsiniz.
Application Insights ile uygulama performansı izleme, uygulama performansı hakkında derin 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.
Tüm kritik aşağı akış bağımlılıklarını değerlendirmek için uygun sistem durumu denetimlerini kullanmanız gerekir ve bu da genel sistem durumunun sağlanmasına yardımcı olur. 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ölgedeki bölgeler arasında dağıtıldığından emin olmak için App Service planlarını kullanılabilirlik alanı yapılandırmasında dağıtın. Maksimum çalışan sayısını normal en yüksek yüke hizmet vermek için ihtiyacınız olan ö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ü çekmede gecikmelere neden olmamalıdır. Aşağıdaki önemli noktalar ve öneriler Azure Container Registry'ye odaklanır ve merkezi ve federasyon dağıtım modelleriyle ilişkili dengeleri keşfeder.
Tasarımla ilgili dikkat edilecek noktalar
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 uyumlu 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. İsterseniz, bunu 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 Docker Hub'da veya Azure dışında ve belirli bir sanal ağ dışında bulunan 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 genel kapsayıcı görüntülerini özel bir kapsayıcı kayıt defterinde çoğaltmanız gerekir.
Tasarım önerileri
Uygulama iş yüküne ayrılmış kapsayıcı kayıt defteri örneklerini kullanın. Kuruluş kullanılabilirliği ve güvenilirlik gereksinimleri uygulamayla tam olarak uyumlu olmadığı sürece merkezi bir hizmete bağımlılık oluşturmaktan kaçının.
Önerilen çekirdek mimari düzeninde kapsayıcı kayıt defterleri, uzun ömürlü küresel kaynaklardır. Ortam başına tek bir genel kapsayıcı kayıt defteri kullanmayı göz önünde bulundurun. Örneğin, genel ü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'a bağlı kullanım örnekleri için azaltma sınırlarını özel olarak not alın.
Kapsayıcı görüntülerini barındırmak için Azure Container Registry'ye öncelik verin.
Azure Container Registry için tasarımla ilgili önemli noktalar ve öneriler
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, birden çok yapılandırılmış bölgeye coğrafi çoğaltma yoluyla 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 bu bölgede çoğaltır. Bu özellik ayrıca yapılandırılan her bölgede kayıt defteri birlikte bulundurma olanağı 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 hatanın bir 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. Önceden 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 Microsoft Entra tümleşik 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 en uygun yöntemdir. 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. Api Management'ı kullanarak Tüketim katmanını kullanarak gelişmiş güvenlik API'lerini yayımlayabilir, dönüştürebilir, koruyabilir ve izleyebilirsiniz.
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 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'i kullanmaya yönelik tasarım konuları ve öneriler sağlanı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 ayrı işlemler gerçekleştirdiğinden, kısa süreli işlemlere sahip olay temelli 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.
Bazı güvenlik konuları 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 bir 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ıyla tümleştirmeniz gerekir.
Azure Logic Apps için tasarımla ilgili önemli noktalar ve öneriler
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 durum bilgisi 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 taban çizgisi (Kuzey Yıldızı) mimari deseniyle tam hizalamayı engelleyen iş kısıtlamalarıyla 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. Hizmet olarak altyapı (IaaS) VM'lerinin kullanımı belirli senaryolarda gerekli olabilir:
- 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üm, uygulama platformunun güvenilirliğini en üst düzeye çıkarmak için Sanal Makineler ve ilişkili hizmetleri kullanmanın en iyi yollarına odaklanır. Bulutta yerel ve IaaS geçiş senaryolarını tersine çeviren görev açısından kritik tasarım metodolojisinin önemli yönlerini vurgular.
Tasarımla ilgili dikkat edilecek noktalar
IaaS VM'lerini kullanmanın operasyonel maliyetleri, VM'lerin ve işletim sistemlerinin yönetim gereksinimleri nedeniyle PaaS hizmetlerini kullanma maliyetlerinden önemli ölçüde daha yüksektir. VM'leri yönetmek için yazılım paketlerinin ve güncelleştirmelerin sık sık dağıtılması gerekir.
Azure, VM'lerin kullanılabilirliğini artırmaya yönelik özellikler sağlar:
- 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üzeyleri elde etmeye yardımcı olabilir.
- Azure sanal makine ölçek kümeleri , bir gruptaki VM sayısını otomatik olarak ölçeklendirmeye yönelik işlevsellik sağlar. Ayrıca örnek durumunu izleme ve iyi durumda olmayan örnekleri otomatik olarak onarma özellikleri sağlar.
- Esnek düzenlemeye sahip ölçek kümeleri, VM'leri hata etki alanlarına otomatik olarak dağıtarak ağ, disk ve güç hatalarına karşı korumaya yardımcı olabilir.
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 VM'lerini 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ına üç veya daha fazla VM 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ı üretim ortamına dağıtmadan önce yeterince test edin.
Kullanılabilirlik alanları arasında dağıtamazsınız iş yükleri için üç veya daha fazla VM içeren esnek sanal makine ölçek kümelerini kullanın. Doğru sayıda hata etki alanını yapılandırma hakkında daha fazla bilgi için bkz . Ölçek kümelerinde hata etki alanlarını yönetme.
Ö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 VM'lere doğrudan erişmeyin. Mümkün olduğunda önlerindeki yük dengeleyicileri kullanın.
Bölgesel kesintilere karşı koruma sağlamak için uygulama VM'lerini 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 bekleme vm'lerini 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.
Vm'lerde değişiklikleri dağıtmak ve dağıtmak için otomatik süreçler uygulayarak el ile müdahaleden kaçının. Daha fazla bilgi için operasyonel yordamlar tasarım alanındaki IaaS ile ilgili dikkat edilmesi gerekenler bölümüne bakın.
VM 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.
VM'leri 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ı ve Azure'daki IaaS iş yükleri için en iyi güvenlik uygulamaları uygulayın.
Sonraki adım
Veri platformuyla ilgili dikkat edilmesi gerekenleri gözden geçirin.