İşlem Kaynağı Birleştirme düzeni

Azure App Service
Azure Kubernetes Service (AKS)

Birden çok görevi veya işlemi tek bir hesaplama biriminde birleştirin. Bu, işlem kaynağı kullanımını artırabilir ve bulutta barındırılan uygulamalarda işlem gerçekleştirme ile ilişkili maliyetleri ve yönetim yükünü azaltır.

Bağlam ve sorun

Bir bulut uygulama genelde çeşitli işlemler uygular. Bazı çözümlerde, başlangıçta endişelerin ayrılmasına ilişkin tasarım ilkesine uymak ve bu işlemleri ayrı ayrı barındırılan ve dağıtılan ayrı hesaplama birimlerine bölmek mantıklıdır (örneğin, ayrı App Service web uygulamaları veya ayrı Sanal Makineler). Ancak, bu strateji çözümün mantıksal tasarımını kolaylaştırmaya yardımcı olsa da aynı uygulamanın bir parçası olarak çok sayıda hesaplama birimi dağıtılması çalışma zamanı barındırma maliyetlerini artırır ve yönetim sistemini daha karmaşık hale getirebilir.

Örnek olarak, şekilde birden fazla hesaplama birimi kullanılarak uygulanan bulut tarafından barındırılan bir çözümün basitleştirilmiş yapısı gösterilmektedir. Her hesaplama birimi kendi sanal ortamında çalışır. Her işlev (Görev A - Görev E arası etiketler) ayrı bir görev olarak uygulanmıştır ve kendi hesaplama biriminde çalışır.

Görevleri ayrılmış hesaplama birimleri kümesi kullanarak bulut ortamında çalıştırma

Boşta veya az kullanılan hesaplama birimleri bile ücrete tabi kaynaklar kullanır. Bu nedenle, bu her zaman en uygun maliyetli çözüm değildir.

Azure'da bu sorun App Services, Container Apps ve Sanal Makineler için geçerlidir. Bu öğeler kendi ortamlarında çalışır. İyi tanımlanmış bir dizi işlemi gerçekleştirmek için tasarlanmış, ancak tek bir çözümün parçası olarak iletişim kurması ve işbirliği yapması gereken ayrı web siteleri, mikro hizmetler veya sanal makinelerden oluşan bir koleksiyon çalıştırmak kaynakların verimsiz bir kullanımı olabilir.

Çözüm

Maliyetleri azaltmak, kullanımını artırmak, iletişim hızını artırmak ve yönetim işlemlerini azaltmaya yardımcı olmak için birden çok görevi veya işlemi tek bir hesaplama biriminde birleştirmek mümkündür.

Görevler ortam tarafından sağlanan özellikler ve bu özelliklerle ilişkili maliyetlere ilişkin ölçütlere göre gruplanabilir. Ölçeklenebilirlik, yaşam süresi ve işlem gereksinimleri açısından benzer bir profile sahip görevleri bulmak sık kullanılan bir yaklaşımdır. Bunların bir araya gruplandırılması bir birim olarak ölçeklendirilmelerini sağlar. Pek çok bulut ortamı tarafından sağlanan esneklik, hesaplama biriminin ek örneklerinin iş yüküne göre durdurulmasına ve başlatılmasına olanak sağlar. Örneğin Azure, App Services ve Sanal Makine Ölçek Kümeleri uygulayabileceğiniz otomatik ölçeklendirme sağlar. Daha fazla bilgi için bkz. Otomatik Ölçeklendirme Kılavuzu.

Ölçeklenebilirliğin hangi işlemlerin gruplanmaması gerektiğini belirlemek için nasıl kullanılabileceğini göstermek için bir örnek olarak, aşağıdaki iki görevi göz önünde bulundurun:

  • Görev 1, arada sırada kuyruğa gönderilen, zaman duyarsız iletileri yoklar.
  • Görev 2 ağ trafiğinde yüksek hacimli artışları işler.

İkinci görev, işlem biriminin çok sayıda örneğinin başlatılmasını ve durdurulmasını içerebilen bir esneklik düzeyi gerektirir. İlk göreve aynı ölçeklendirmenin uygulanması yalnızca daha fazla görevin aynı kuyruğa arada sırada gönderilen iletileri dinlemesine ve kaynakların boşa harcanmasına neden olur.

Pek çok bulut ortamında CPU çekirdekleri, bellek, disk alanı ve benzeri sayısı bakımından hesaplama birimine ayrılan kaynakları belirtmek mümkündür. Genellikle, daha fazla kaynak belirtildikçe maliyet artar. Tasarruf etmek için pahalı hesaplama birimlerinin yaptığı işleri artırmak ve uzun süre boşta kalmamalarını sağlamak önemlidir.

Kısa zamanda büyük miktarda CPU gücü gerektiren görevler varsa bunları gerekli gücü sağlayacak tek bir hesaplama biriminde birleştirmeyi göz önünde bulundurun. Bununla birlikte, pahalı kaynakları kullanma gereksinimine göre planlama yaparken bu kaynakların fazla yük altında kalıp çekişmeli duruma gelmemesine dikkat etmek gerekir. Örneğin uzun süre çalışan, işlem yoğunluklu görevler aynı işlem birimini paylaşmamalıdır.

Sorunlar ve dikkat edilmesi gerekenler

Bu düzeni uygularken aşağıdaki noktaları dikkate alın:

Ölçeklenebilirlik ve esneklik. Pek çok bulut çözümü, işlem birimi düzeyinde birim örneklerini başlatarak ve durdurarak ölçeklenebilirlik ve esneklik sağlar. Ölçeklenebilirlik gereksinimlerini birbiriyle çakışan görevleri aynı işlem biriminde gruplandırmaktan kaçının.

Ömür. Bulut altyapısı, işlem birimini barındıran sanal ortamı düzenli aralıklarla geri dönüştürür. İşlem biriminde uzun süre çalışan çok sayıda görev olduğunda, bu görevler bitinceye kadar birimin silinmesini önlemek için birimi yapılandırmak gerekli olabilir. Alternatif olarak, görevleri düzgün bir şekilde durdurulmalarını ve işlem birimi yeniden başlatıldığında kaldığı noktadan devam edebilecekleri bir onay işareti yaklaşımıyla tasarlayın.

Yayın sıklığı. Bir görevin uygulanması veya yapılandırması sık değişirse, güncelleştirilmiş kodu barındıran işlem birimini durdurmak, yeniden yapılandırmak, yeniden dağıtmak ve yeniden başlatmak gerekli olabilir. Bu işlem ayrıca aynı hesaplama birimindeki tüm diğer görevlerin durdurulmasını, yeniden dağıtılmasını ve yeniden başlatılmasını gerektirir.

Güvenlik. Aynı hesaplama birimindeki görevler aynı güvenlik bağlamını paylaşabilir ve aynı kaynaklara erişebilir. Görevler arasında yüksek derecede güven ve bir görevin diğerini bozmayacağı ve olumsuz etkilemeyeceği konusunda güvenilirlik olmalıdır. Ayrıca, bir işlem biriminde çalışan görevlerin sayısının artırılması birimin saldırı yüzeyini artırır. Her görev yalnızca en fazla güvenlik açığına sahip görev kadar güvenlidir.

Hataya dayanıklılık. İşlem birimindeki bir görev başarısız olduğunda veya anormal davrandığında, aynı birim içinde çalışan diğer görevleri etkileyebilir. Örneğin, bir görevin doğru şekilde başlatılması başarısız olursa, işlem biriminin tüm başlangıç mantığı başarısız olabilir ve diğer görevlerin de aynı birimde çalışmasını engelleyebilir.

Çekişme. Aynı işlem biriminde kaynak için rekabet eden görevler arasında çekişme oluşturmaktan kaçının. İdeal olarak, aynı işlem birimini paylaşan görevlerin farklı kaynak kullanımı özellikleri göstermesi gerekir. Örneğin, iki işlem yoğunluklu görev ya da bellek tüketimi yüksek iki görev aynı hesaplama biriminde yer almamalıdır. Ancak yoğun işlem gücü gerektiren bir görevi büyük miktarda bellek gerektiren bir görevle karıştırmak, uygulanabilir bir birleşimdir.

Not

operatörler ve geliştiricilerin sistemi izleyebilmesi ve her görevin farklı kaynakları nasıl kullandığını tanımlayan bir ısı haritası oluşturması için işlem kaynaklarını yalnızca bir süre üretimde olan bir sistem için birleştirmeyi göz önünde bulundurun. Bu harita, hangi görevlerin işlem kaynaklarını paylaşmak için iyi adaylar olduğunu belirlemek için kullanılabilir.

Karmaşıklık. Birden çok görevi tek bir hesaplama biriminde birleştirmek, birimdeki kodu karmaşıklaştırır ve test etmeyi, hata ayıklamayı ve bakımı zorlaştırabilir.

Kararlı mantıksal mimari. Her görevin kodunu, görevin üzerinde çalıştığı fiziksel ortam değişse bile değişmeyecek şekilde tasarlayın ve uygulayın.

Diğer stratejiler. İşlem kaynaklarını birleştirmek eşzamanlı olarak çalışan birden çok görev ile ilişkili maliyetleri azaltmaya yardımcı olmak için yalnızca bir yoldur. Etkili bir yaklaşım olması için dikkatli planlanması ve izlenmesi gerekir. İşin ve bu görevleri çalıştıran kullanıcıların nerede bulunduğuna bağlı olarak diğer stratejiler daha uygun olabilir. Örneğin, iş yükünün işlevsel ayrıştırılması (İşlem Bölümleme Kılavuzu’nda açıklandığı şekliyle) daha iyi bir seçenek olabilir.

Bu düzenin kullanılacağı durumlar

Kendi hesaplama birimlerinde çalıştırırsanız uygun maliyetli olmayacak görevler için bu düzeni kullanın. Bir görev boşta çok zaman harcıyorsa, bu görevi adanmış birimde çalıştırmak pahalı olabilir.

Bu düzen kritik, hataya dayanıklı işlemler yapan görevler veya yüksek oranda gizli veya özel verileri işleyen ve kendi özel güvenlik bağlamını gerektiren görevler için uygun olmayabilir. Bu görevler kendi yalıtılmış ortamlarında, ayrı bir hesaplama biriminde çalıştırılmalıdır.

İş yükü tasarımı

Bir mimar, azure iyi tasarlanmış Çerçeve yapılarında ele alınan hedefleri ve ilkeleri ele almak için İş yükü tasarımında İşlem Kaynağı Birleştirme düzeninin nasıl kullanılabileceğini değerlendirmelidir. Örneğin:

Yapı Taşı Bu desen sütun hedeflerini nasıl destekler?
Maliyet İyileştirme, iş yükünüzün yatırım getirisini sürdürmeye ve geliştirmeye odaklanır. Bu düzen, bileşenlerin ve hatta havuza alınan altyapıdaki tüm iş yüklerinin toplanması yoluyla kullanılmayan sağlanan kapasiteden kaçınarak bilgi işlem kaynaklarının kullanımını en üst düzeye çıkarır.

- CO:14 Birleştirme
Operasyonel Mükemmellik, standartlaştırılmış süreçler ve ekip uyumu aracılığıyla iş yükü kalitesinin sunulmasına yardımcı olur. Birleştirme, yönetimi ve gözlemlenebilirliği basitleştiren, operasyonel görevlere yönelik farklı yaklaşımları azaltan ve gerekli araç miktarını azaltan daha homojen bir işlem platformuna yol açabilir.

- OE:07 İzleme sistemi
- OE:10 Otomasyon tasarımı
Performans Verimliliği , ölçeklendirme, veri ve kod iyileştirmeleri aracılığıyla iş yükünüzün talepleri verimli bir şekilde karşılamasını sağlar. Birleştirme, yedek düğüm kapasitesi kullanarak ve fazla sağlama gereksinimini azaltarak bilgi işlem kaynaklarının kullanımını en üst düzeye çıkarır. Büyük (dikey olarak ölçeklendirilmiş) işlem örnekleri genellikle bu altyapılar için kaynak havuzunda kullanılır.

- PE:02 Kapasite planlaması
- PE:03 Hizmetleri seçme

Herhangi bir tasarım kararında olduğu gibi, bu desenle ortaya konulabilecek diğer sütunların hedeflerine karşı herhangi bir dengeyi göz önünde bulundurun.

Uygulama platformu seçenekleri

Bu desen, kullandığınız işlem hizmetine bağlı olarak farklı şekillerde elde edilebilir. Aşağıdaki örnek hizmetlere bakın:

  • Azure Uygulaması Hizmeti ve Azure İşlevleri: Barındırma sunucusu altyapısını temsil eden paylaşılan App Service planlarını dağıtın. Bir veya daha fazla uygulama aynı bilgi işlem kaynaklarında (veya aynı App Service planında) çalışacak şekilde yapılandırılabilir.
  • Azure Container Apps: Kapsayıcı uygulamalarını, özellikle ilgili hizmetleri yönetmeniz veya farklı uygulamaları aynı sanal ağa dağıtmanız gereken durumlarda aynı paylaşılan ortamlara dağıtın.
  • Azure Kubernetes Service (AKS):AKS, cpu veya bellek gereksinimleri (düğüm havuzları) gibi hesaplama gereksinimlerine göre gruplandırılmış, aynı bilgi işlem kaynakları (düğümler) üzerinde birlikte bulunan birden çok uygulama veya uygulama bileşeninin çalışacak şekilde yapılandırılabildiği kapsayıcı tabanlı bir barındırma altyapısıdır.
  • Sanal makineler: Tüm kiracıların kullanması için tek bir sanal makine kümesi dağıtın, böylece yönetim maliyetleri kiracılar arasında paylaşılır. Sanal Makine Ölçek Kümeleri paylaşılan kaynak yönetimi, yük dengeleme ve Sanal Makineler yatay ölçeklendirmeyi destekleyen bir özelliktir.

Bu düzen uygulanırken aşağıdaki düzenler ve yönergeler de yararlı olabilir:

  • Otomatik Ölçeklendirme Kılavuzu. Otomatik ölçeklendirme, işlem için beklenen isteğe bağlı olarak hesaplama kaynaklarını barındıran hizmetin örneklerini durdurmak ve başlatmak için kullanılabilir.

  • İşlem Bölümleme Kılavuzu. Bulut hizmetindeki hizmet ve bileşenlerin, işletim maliyetlerini en aza indirilmesini ve hizmetin ölçeklenebilirlik, performans, kullanılabilirlik ve güvenliğinin korunmasını sağlayacak bir şekilde nasıl ayrılacağını açıklar.

  • Çok kiracılı çözümlerde işlem için mimari yaklaşımlar. Çok kiracılı bir çözümün işlem hizmetlerini planlarken çözüm mimarları için gerekli olan önemli noktalar ve gereksinimler hakkında rehberlik sağlar.