İşletimsel görevleri iyileştirmeye yönelik öneriler

Bu Azure Well-Architected Framework Performans Verimliliği denetim listesi önerisi için geçerlidir:

PE:10 İşletimsel görevleri iyileştirme. Yazılım geliştirme yaşam döngüsünün ve diğer rutin işlemlerin iş yükü performansı üzerindeki etkilerini izleyin ve en aza indirin. Bu işlemler arasında virüs taramaları, gizli dizi döndürmeleri, yedeklemeler, veritabanlarını yeniden dizinleme ve dağıtımlar yer alır.

Bu kılavuzda, işletimsel görevleri iyileştirmeye yönelik öneriler açıklanmaktadır. İşletimsel görevlerin iyileştirilmesi, iş yükü işlemlerini yönlendirmenin bir parçası olarak gerçekleştirdiğiniz görevlerin etkilerini en aza indirme işlemidir. İşlem etkinlikleri, iş yükünün kendisiyle aynı işlem kaynaklarını kullanır. İşlem görevlerinin etkilerini dikkate almamak, iş yükünün performans hedeflerini kaçırmasına neden olabilir. Ayrıca müşterileriniz için iş yükünün performansını olumsuz etkileyebilir.

Tanımlar

Süre Tanım
Mavi-yeşil dağıtım İki özdeş ortam kullanan ve yeni dağıtımlara (yeşil dağıtımlar) giden trafiğin yönünü denetleen bir dağıtım stratejisi.
Veritabanı dizini yeniden oluşturma Dizini düşüren ve yeniden oluşturan bir bakım etkinliği.
Veritabanı dizini yeniden düzenleme Geçerli veritabanı dizinini iyileştirir bakım etkinliği.
Veritabanı şeması Veritabanının genel yapısı ve diğer veri ilişkileri.
Dağıtım yuvası Canlı uygulamaları kendi ana bilgisayar adlarıyla dağıtmanızı sağlayan bir Azure App Service özelliği.
Yerinde yükseltmeler Bir bileşeni veya uygulamayı değiştirmeden veya yeni bir ortama geçirmeden yükseltme işlemi.
Kod olarak altyapı (IaC) Ağlar, sanal makineler, yük dengeleyiciler ve bağlantı topolojileri dahil olmak üzere altyapıyı tanımlamak ve dağıtmak için açıklayıcı bir model.

Temel tasarım stratejileri

Yazılım geliştirme yaşam döngüsünün ve diğer rutin işlemlerin iş yükü performansı üzerindeki etkilerini azaltmak için önlemler almanız gerekir. Amaç, virüs taramaları, gizli dizi döndürmeleri, yedeklemeler, dizin iyileştirme (yeniden düzenleme veya yeniden oluşturma) ve dağıtımlar gibi rutin işlemlerin iş yükünün performansını önemli ölçüde düşürmediğinden emin olmaktır.

İşletimsel görevlerin hesabı

Performans hedefleri ayarlarken operasyonel görevleri göz önünde bulundurmanız önemlidir. Rutin, düzenli ve geçici görevleri performans hedeflerine ekleyerek iş yükünün verimli bir şekilde çalıştığından emin olabilirsiniz. Performans hedeflerindeki operasyonel görevleri hesaba eklemek için dikkate alınması gereken bazı önemli noktalar şunlardır:

  • İşletimsel görevleri tanımlama. Performans hedeflerine ilgili operasyonel görevleri belirleyin ve dahil edin. Rutin görevlere örnek olarak virüs taraması, veritabanı dizinini yeniden düzenleme, veritabanı dizinini yeniden derleme, disk veya veritabanı yedeklemeleri, sertifika döndürme, işletim sistemine düzeltme eki uygulama, parolaları döndürme, API anahtarlarını döndürme, sızma testi ve üretimdeki denetim gözden geçirmeleri verilebilir.

  • Performans hedeflerini değerlendirme. Geçerli performans hedeflerini değerlendirin ve iş yüküne özgü operasyonel görevleri hesaba eklemek için ayarlayın. Bunun yapılması, performans hedeflerinin iş yükünün operasyonel gereksinimleriyle uyumlu olmasını sağlar.

Dağıtımları iyileştirme

Dağıtımları en iyi duruma getirmek, sorunsuz performans ve en düşük kesintiyi garanti etmek için kaynak ve kod yayınlama sürecini iyileştirmeyi ifade eder. Hem kod olarak altyapının (IaC) hem de uygulama kodunun canlı ortama kullanılmadan önce planlanması, etkili kaynak dağıtımı ve kapsamlı test edilmesi gerekir. Dağıtım yetersizliği, bir iş yükünün hızının ve verimliliğinin azaltılmasına, olası kaynak kısıtlamalarına ve işletimsel ayarda güvenliği aşılmış bir kullanıcı deneyimine yol açabilir. Dağıtımları iyileştirmek için şu stratejileri göz önünde bulundurun:

Kabul edilebilir kapalı kalma süresini değerlendirin. Kapalı kalma süresi kabul edilebilirse hız ve verimliliği öncelik sırasına getiren dağıtım stratejileri uygulayabilirsiniz. Ancak, bu kararı vermeden önce kapalı kalma süresinin iş gereksinimleri üzerindeki etkisini dikkatle değerlendirmeniz önemlidir. Öte yandan kapalı kalma süresi kabul edilebilir değilse, iş yükünün sürekli kullanılabilir olmasını sağlayan dağıtım stratejileri uygulamanız gerekir. Sorunları izlerken iş yükünün yeni sürümlerini aşamalı olarak dağıttığınız mavi-yeşil dağıtımlar veya kanarya dağıtımları gibi teknikleri kullanmayı göz önünde bulundurun. Bu stratejiler kapalı kalma süresinin etkisini en aza indirmeye ve sorunsuz bir kullanıcı deneyimi sağlamaya yardımcı olur.

Geçerli örnek sayısıyla dağıtın. Ayrıca anında ölçeklendirme işlemlerine neden olan dağıtımlardan da kaçınmalısınız. Kaynakları örnek sayısı o kadar düşük olan canlı bir sisteme dağıtmamalısınız ki, bu sistem hemen bir ölçeklendirme işlemi gerçekleştirmeye zorlar. Örneğin, kod olarak altyapı (IaC) şablonunuz dağıtım sırasında ihtiyacınız olan örnek sayısıyla eşleşmeyebilir. Geçerli dağıtılan ortam sekiz örnek çalıştırsa bile iki örnek sayısına sahip olabilir. Dağıtım altı örneği kaldırır ve performansı olumsuz etkiler.

Mavi-yeşil dağıtım stratejisi kullanın. Dağıtımlar hizmet kesintilerine ve kapalı kalma süresine neden olabilir. Bu sorunları azaltmak için mavi-yeşil dağıtım gibi performans etkisini en aza indiren bir dağıtım stratejisi seçin. Bu yaklaşımlar ortamlar arasında sorunsuz geçişler sağlar ve hizmet kesintisi riskini azaltır. Mavi-yeşil dağıtım yaklaşımını kullandığınızda iki ayrı ortamınız olur: mavi ve yeşil ortamlar. Yeşil ortamda herhangi bir sorun veya performans düşüşü algılanırsa, kararlı mavi ortama kolayca geri dönebilirsiniz. Bu strateji, en düşük kapalı kalma süresini sağlamanıza yardımcı olur ve iş yükünüz için yüksek düzeyde performans sağlamanıza olanak tanır. Mavi-yeşil yaklaşımını kullanarak dağıtmak için şu genel adımları izleyin:

  • Yeni ortamı dağıtın. Uygulamanızın güncelleştirilmiş sürümüyle mevcut ortamın (mavi) yanı sıra yeni ortamı (yeşil) ayarlayın.

  • Yeni ortamı doğrulayın. Dağıtımlar gecikmeye neden olabilir ve yanıt sürelerini artırabilir. Tam geçiş öncesinde örnekleri hazırlamayı göz önünde bulundurun. Önceden uyarı, ortamın beklenen yükü işlemeye hazır olduğundan emin olmak için üretim benzeri trafik ve iş yükü simülasyonu yaparak yeni ortamın hazırlanmasını içerir. Gecikme süresi ve yanıt süreleri üzerindeki etkileri en aza indirmeye yardımcı olur. Düzgün çalıştığından ve performans beklentilerini karşıladığından emin olmak için yeni ortamı kapsamlı bir şekilde test edin ve doğrulayın. Test, önbelleklerin ısınmasına, veritabanı bağlantıları oluşturulmasına ve ortamın beklenen yükü işlemeye hazır olduğundan emin olunmasına yardımcı olur.

  • Trafiği aşamalı olarak kaydırma. Yeni ortam önceden hazırlanıp doğrulandıktan sonra, üretim trafiğini yavaş yavaş eski ortamdan (mavi) yeni ortama (yeşil) kaydırın. Başlangıçta, trafiğin küçük bir yüzdesini yeşil ortama yönlendirin ve kararlılığını ve beklenen uygulama durumunu doğruladıktan sonra yavaş yavaş artırın. Genel yük dengeleyici veya trafik yönetimi mekanizması kullanabilirsiniz. Denetimli trafik kaydırma, tüm performans sorunlarını erken belirlemenize ve iş yükünü yeni ortama tamamen geçirmeden önce düzeltici eylemler gerçekleştirmenize olanak tanır.

  • İzleme ve iyileştirme. Dağıtımlarda paylaşılan bilgi işlem kaynakları kullanılabilir. Trafiği kaydırdıktan sonra yeni ortamın performansını ve sistem durumunu sürekli izleyin. İstenen performansı ve kullanıcı deneyimini sağlamak için gerekli iyileştirmeleri veya ayarlamaları yapın.

  • Eski ortamı kaldırın. Tüm trafiği yeşil ortama başarıyla geçirdikten sonra, mevcut bağlantılardan mavi ortamı kaldırın. Bu adım, eski ortamın bakımının maliyetini iyileştirmeye yardımcı olur ve yeni ortamların yapılandırma kaymasının olmamasını sağlar.

  • İşlemi tekrarlayın. Gelecekteki dağıtımlar için mavi ve yeşil ortamların rollerini tersine çevirin. Değişiklikleri yeni mavi ortama dağıtın, doğrulayın, trafik geçişini ayarlayın ve eski yeşil ortamın yetkisini alın.

Birden çok derleme kullanın. Farklı derleme türleri, derleme sürelerini iyileştirmenize ve dağıtımların kalitesini sağlamanıza yardımcı olabilir. Örneğin, her kod işlemesiyle tetikleyen sürekli tümleştirme (CI) derlemeleriniz olabilir. Düzenli olarak otomatikleştirilmiş testler çalıştıran gece derlemeleriniz ve üretime dağıtmak için kullanılan yayın derlemeleriniz olabilir. Her derleme türünün sürekli tümleştirme, otomatik test veya üretim dağıtımı gibi belirli bir amacı olmalıdır. Dağıtım öncesinde iş yükünün test edilmesi ve doğrulanması, geliştirme sürecinin başlarındaki sorunları veya hataları tanımlamaya ve gidermeye yardımcı olur.

Özellik bayraklarını göz önünde bulundurun. Özellik bayrakları, bir uygulamadaki belirli özelliklerin görünürlüğünü ve davranışını denetlemek için yazılım geliştirmede kullanılır. Geliştiriciler, özellik bayraklarını kullanarak uygulamayı yeniden dağıtmaya gerek kalmadan belirli özellikleri etkinleştirebilir veya devre dışı bırakabilir. Özellik bayrakları, bir özelliğin etkinleştirilmesi veya devre dışı bırakılması gerektiğini belirleyen koda koşullu mantık ekleyerek çalışır. Bu mantık, kullanıcı rolleri, kullanıcı tercihleri veya geliştirme ekibi tarafından tanımlanan belirli koşullar gibi çeşitli faktörleri temel alabilir. Geliştiriciler özellik bayraklarını kullanarak yeni özellikleri aşamalı olarak kullanıcıların bir alt kümesine dağıtabilir veya test için belirli gruplar için özellikleri etkinleştirebilir (kanarya testi).

Yükseltmeleri iyileştirme

Yerinde yükseltme, mevcut bir kaynağa veya uygulamaya yükseltmedir. Yerinde yükseltmeler bir iş yükünü geçici olarak yavaşlatabilir veya kesintiye uğratabilir. Yükseltmelerin iş yüküyle uyumlu olduğundan emin olmak önemlidir. Yükseltmeyi uygulamadan önce, olası sorunları belirlemek için bunu ayrı bir ortamda test etmenizi öneririz. Yükseltme işlemi sırasında herhangi bir sorun ortaya çıkması durumunda bir geri alma planı sağlayın. Yükseltmeyi uygulamadan önce kritik verilerin ve yapılandırmaların tam yedeğini almak çok önemlidir. Yükseltmeden sonra yükseltilen sistemi yakından izleyerek her şeyin beklendiği gibi çalıştığından emin olun. Yedekleme, gerekirse iyi bir duruma geri yüklemenizi sağlar. Kullanıcılar ve iş yükü performansı üzerindeki etkiyi en aza indirmek için yükseltmeyi yoğun olmayan saatlerde zamanlamaya öncelik vermelisiniz. Beklenen kapalı kalma süresi ve gerçekleştirmeleri gereken eylemler de dahil olmak üzere kullanıcıları planlı yükseltme hakkında önceden bilgilendirin.

Denge: Yoğun olmayan saatlerde operasyon etkinliklerinin gerçekleştirilmeyi beklemek, operasyonel verimliliği etkileyebilir. Doğru beceri kümesine sahip personelin yoğun olmayan saatlerde çalışması daha az kullanışlı olabilir.

Araçları iyileştirme

Dosya bütünlüğünü izleme, virüs taraması, yetkisiz erişim algılama ve diğer işlem görevleri için temel araçlar iş yükü performansını etkileyebilir. İşlem kaynaklarını kullanırlar ve gecikme süresi ve performans ek yükü ekleyebilirler. Araçlarınızın iş yükü performansı üzerindeki etkilerini test etmeniz ve anlamanız gerekir. Test sonuçlarına bağlı olarak, araç yapılandırmalarına ince ayar yapmalı, tarama sıklığını ayarlamalı ve işlem kaynaklarını yeniden ayırmanız gerekir. Virüs taraması için, taramaların süresini en aza indirmek için uygun bir dışlama listesi oluşturabilirsiniz.

Veritabanı işlemlerini iyileştirme

Veritabanı işlemlerinin iyileştirilmesi, maksimum verimlilik ve minimum kaynak kullanımı sağlamak için veritabanı görevlerini iyileştirme ve hassas ayarlama işlemini ifade eder. Bu işlemler yedeklemeler, şema değişiklikleri, performans ayarlama ve izleme gibi görevleri içerir. Verimli veritabanı işlemleri daha hızlı sorgu yanıtlarına, azaltılmış sistem yüküne ve genel olarak daha sorunsuz bir kullanıcı deneyimine yol açar.

Şema değişiklikleri, tablo, sütun veya dizin ekleme veya değiştirme gibi bir veritabanının yapısını değiştirmeyi içerir. Bu değişiklikler, dağıtım işlemi sırasında ek işlem ve kaynak kullanımı gerektirebilir ve bu da iş yükünün genel performansını etkileyebilir. Şema değişiklikleri etkin sorguların, dizinlerin veya işlemlerin performansını kesintiye uğratabilir veya verilerin kullanılamamasına neden olabilir.

Bu etkileri en aza indirmek için üretim dışı bir ortamda şema değişikliklerini planlamalı ve test etmelisiniz. Şema güncelleştirmelerini uygulamak için çeşitli dağıtım tekniklerini kullanabilirsiniz. İşlemi iyileştirmek için kullanılabilir şema değiştirme araçlarını da kullanmanız gerekir. Verileri arşivleme ve bölümleme, şema değişikliklerinin etkilerini azaltmaya yardımcı olabilir.

Yedeklemeleri iyileştirme

Yedeklemeler işlem gücü, ağ bant genişliği ve disk G/Ç gibi iş yükü kaynaklarını kullanır. Bu etkileri en aza indiren bir yedekleme stratejisini test edip seçmeniz gerekir. İzin verebildiğiniz durumlarda yoğun olmayan saatlerde yedeklemeler gerçekleştirmelisiniz. Stratejiniz her seferinde tam yedekleme yerine artımlı yedeklemeler içermelidir. Anlık görüntüler, yedeklemelerden daha az kaynak yoğunluklu olabilir. Özel bir çözüm oluşturmak yerine yerleşik platform yedekleme ve geri yükleme özelliklerini göz önünde bulundurmalısınız. Bu seçenekleri test etmeniz ve iş yükünüz için en iyi performansı sağlayan bir bileşim kullanmanız gerekir.

İzlemeyi ve hata ayıklamayı iyileştirme

Aşırı veya kötü uygulanan günlük kaydı, telemetri, izleme ve dağıtılmış izleme yakalama ve toplama performansı etkileyebilir. Benzer şekilde, uzaktan hata ayıklama gibi kolaylık özellikleri de performansı etkileyebilir. Ortam üzerindeki performans etkilerini ölçmeniz ve bilmeniz gerekir. Bu işlemlerin performansı düşürmesini istemezsiniz. Performans etkileri avantajlarından daha fazla olan tüm işlemleri yapılandırmanız veya devre dışı bırakmanız gerekir.

Azure kolaylaştırma

İşletimsel görevlerin muhasebesini yapma: Azure DevOps , ekiplerin yazılımları verimli bir şekilde planlamasını, geliştirmesini, test edebilmesini ve sunmasını sağlayan bir geliştirme araçları ve hizmetleri kümesidir. Sürüm denetimi, sürekli tümleştirme ve teslim, proje yönetimi ve daha fazlası gibi özellikleri içerir.

Azure, birçok işlem görevinin etkilerini en aza indiren hizmet-hizmet tümleştirmesi sağlar. Örneğin, Azure Key Vault ile tümleşen hizmetler genellikle performans üzerindeki etkileri en aza indiren sorunsuz sertifika döndürmeyi veya gizli dizi döndürmeyi destekler.

Dağıtımları iyileştirme: App Service dağıtım yuvaları sağlar. Üretim dışı bir ortama kod dağıtmak için dağıtım yuvalarını kullanabilirsiniz. Uygulama içeriğini ve yapılandırma öğelerini iki dağıtım yuvası arasında değiştirebilirsiniz. Örneğin, uygulama içeriğini üretim dışı bir yuvadan üretim yuvasına geçirebilirsiniz.

Azure Front Door ve Azure Traffic Manager , mavi-yeşil dağıtım stratejisi uygulamanıza olanak tanır. Bazı Azure işlem hizmetleri mavi-yeşil dağıtımlar gibi gelişmiş dağıtım stratejilerini de destekler. Dağıtımın performans etkilerini azaltmak için bu hizmetleri trafik kaydırma veya örnek ısıtma stratejinizle birleştirebilirsiniz.

Veritabanı işlemlerini iyileştirme: Azure SQL Veritabanı otomatik olarak tam yedeklemeler, değişiklik yedekleri ve işlem günlüğü yedekleri alır. Azure Cosmos DB , verilerinizin yedeklerini düzenli aralıklarla otomatik olarak alır. Otomatik yedeklemeler, veritabanı işlemlerinin performansını veya kullanılabilirliğini etkilemeden alınır. Azure Cosmos DB yedeklemeleri ayrı bir depolama hizmetinde depolar.

Yedeklemeleri iyileştirme: Bazı Azure veri hizmetleri belirli bir noktaya kurtarma ve dizin oluşturma için düşük-hiç performans etkisini destekler. Azure Backup, verilerinizi ve uygulamalarınızı korumanızı sağlayan güvenilir ve ölçeklenebilir bir bulut tabanlı yedekleme çözümüdür. Yedekleme işlemleri sırasında performans üzerindeki etkileri en aza indirmek için artımlı yedeklemeler, sıkıştırma ve şifreleme gibi özellikler sağlar. Azure Site Recovery, uygulamalarınızı ikincil bir konuma çoğaltarak korumanıza yardımcı olur. Yedekleme ve olağanüstü durum kurtarma işlemleri sırasında kapalı kalma süresini ve performans etkilerini en aza indirmek için sürekli çoğaltma ve otomatik yük devretme özellikleri sağlar.

Performans Verimliliği denetim listesi

Önerilerin tamamına bakın.