Aracılığıyla paylaş


Dağıtım hatası azaltma stratejisi tasarlama önerileri

Bu Azure İyi Tasarlanmış Çerçeve operasyonel mükemmellik denetim listesi önerisi için geçerlidir:

OE:12 Hızlı kurtarmayla ilgili beklenmeyen dağıtım ortası sorunlarını gideren bir dağıtım hatası azaltma stratejisi uygulayın. Geri alma, özellik devre dışı bırakma veya dağıtım deseninizin yerel özelliklerini kullanma gibi birden çok yaklaşımı birleştirin.

Bu kılavuzda, dağıtım hatalarını etkili bir şekilde işlemek için standartlaştırılmış bir strateji tasarlama önerileri açıklanmaktadır. Diğer iş yükü sorunları gibi dağıtım hataları da iş yükü yaşam döngüsünün kaçınılmaz bir parçasıdır. Bu düşünce yapısıyla, dağıtım hatalarıyla başa çıkmak için iyi tasarlanmış, kasıtlı bir stratejiye sahip olarak proaktif olabilirsiniz. Böyle bir strateji, iş yükü ekibinizin son kullanıcılarınız üzerinde mümkün olduğunca az etkiyle hataları verimli bir şekilde azaltmasını sağlar.

Böyle bir planın olmaması, sorunlara kaotik ve potansiyel olarak zarar verici yanıtlara yol açabilir ve bu da ekip ve kurumsal uyum, müşteri güveni ve finans konularını önemli ölçüde etkileyebilir.

Temel tasarım stratejileri

Bazen, geliştirme uygulamalarınızın olgunluğuna rağmen dağıtım sorunları oluşur. Güvenli dağıtım uygulamalarını kullanmak ve güçlü bir iş yükü tedarik zinciri çalıştırmak, başarısız dağıtımların sıklığını en aza indirmenize yardımcı olabilir. Ancak bunlar gerçekleştiğinde başarısız olan dağıtımları işlemek için standartlaştırılmış bir strateji de tasarlamanız gerekir.

Standart uygulama olarak aşamalı pozlama dağıtım modeli kullandığınızda:

  • Dağıtımlar başarısız olduğunda müşterileriniz veya iç kullanıcılarınız üzerindeki etkileri en aza indirmek için doğru temele sahipsiniz.
  • Sorunları verimli bir şekilde azaltabilirsiniz.

Dağıtım hatası azaltma stratejisi beş geniş aşamadan oluşur:

  1. Algılama: Başarısız bir dağıtıma yanıt vermek için önce hatayı algılamanız gerekir. Algılama başarısız duman testleri, kullanıcı tarafından bildirilen sorunlar veya izleme platformunuzun oluşturduğu uyarılar gibi çeşitli biçimlerde olabilir.

  2. Karar: Belirli bir hata türü için en iyi risk azaltma stratejisinin ne olduğuna karar vermelisiniz.

  3. Azaltma: Tanımlanan azaltma eylemini gerçekleştirirsiniz. Azaltma işlemi geri dönüş, geri alma, ileri alma veya sorunlu işlevi atlamak için çalışma zamanı yapılandırmasının kullanılması şeklinde olabilir.

  4. İletişim: Acil durum yanıt planınızın gerektirdiği şekilde sorunu algılayıp incelediğinizde paydaşların ve etkilenen son kullanıcıların durumun farkında olması gerekir.

  5. Otopsi: Suçsuz otopsiler, iş yükü ekibinin iyileştirme alanlarını belirlemesi ve öğrenmeleri uygulamak için planlar oluşturması için fırsatlar sağlar.

Aşağıdaki bölümlerde bu aşamalar için ayrıntılı öneriler sağlanmaktadır. Bu bölümlerde, değişikliklerinizi bir veya daha fazla kullanıcı veya sistem grubuna dağıttığınızda ancak dağıtım planınızdaki tüm grupları güncelleştirmeden önce bir sorun algıladığınız varsayılır.

Tasarım hatası algılama mekanizmaları

Dağıtımlarla ilgili sorunları hızla belirlemek için, dağıtımlarla ilgili güçlü test ve gözlemlenebilirlik uygulamalarına ihtiyacınız vardır. Anomalileri hızla algılamaya yardımcı olmak için aşağıdaki adımları uygulayarak iş yükü izleme ve uyarılarınızı tamamlayabilirsiniz:

  • Uygulama performansı yönetim aracı kullanın.
  • İzleme aracılığıyla günlüğe kaydetmeyi etkinleştirin.

Duman testi ve diğer kalite testleri, dağıtımınızın her aşamasında gerçekleşmelidir. Bir dağıtım grubundaki başarılı testler, sonraki gruplarda test etme kararlarını etkilememelidir.

Dağıtım aşamasıyla ilgili kullanıcı sorunlarını ilişkilendiren telemetri uygulayabilirsiniz. Ardından, belirli bir kullanıcının hangi dağıtım grubuyla ilişkili olduğunu hızla belirleyebilirsiniz. Bu yaklaşım özellikle aşamalı kullanıma açık dağıtımlar için önemlidir çünkü dağıtımın belirli bir noktasında kullanıcı tabanınızda çalışan birden çok yapılandırmanız olabilir.

Kullanıcı tarafından bildirilen sorunlara hemen yanıt vermeye hazır olmanız gerekir. Pratik olduğunda, tam destek ekibiniz olduğunda dağıtım aşamanızı çalışma saatleri içinde dağıtın. Doğru yönlendirme için dağıtım sorunlarının nasıl yükseltilmesi konusunda destek personelinin eğitildiğinden emin olun. Yükseltmeler iş yükü acil durum yanıt planınızla uyumlu olmalıdır.

Risk azaltma stratejisine karar verme

Belirli bir dağıtım sorunu için uygun bir risk azaltma stratejisine karar vermek için aşağıdakiler gibi birçok faktör dikkate alınır:

  • Kullandığınız aşamalı pozlama modelinin türü. Örneğin, mavi-yeşil model veya kanarya modeli kullanabilirsiniz.

    Mavi-yeşil model kullanıyorsanız geri dönmek, geri dönmekten daha pratiktir. Trafiği, güncelleştirilmeyen yapılandırmayı çalıştıran yığına kolayca geri kaydırabilirsiniz. Daha sonra sorunu sorunlu ortamda düzeltebilir ve dağıtımınızı uygun bir zamanda yeniden deneyebilirsiniz.

  • Sorunu atlamak için kullanabileceğiniz yöntemler. Örnek olarak özellik bayrakları, ortam değişkenleri veya açıp kapatabileceğiniz başka bir çalışma zamanı yapılandırma özelliği türü verilebilir.

    Bazen bir özellik bayrağını kapatarak veya bir ayarı çevirerek sorunu kolayca atlayabilirsiniz. Bu durumda şunları yapabileceksiniz:

    • Dağıtıma devam edin.
    • Geri düşmekten kaçının.
    • Sorunlu kodu düzeltirken geri alın.
  • Kodda bir düzeltme uygulamak için gereken çaba düzeyi.

    Kodu düzeltmeye yönelik çaba düzeyi düşükse, sık erişimli düzeltme uygulayarak ileriye doğru ilerlemek belirli senaryolar için doğru seçimdir.

  • Etkilenen iş yükü için kritiklik düzeyi.

    İş açısından kritik iş yükleri, sıfır kapalı kalma süresi dağıtımlarına ulaşmak için her zaman mavi-yeşil modelde olduğu gibi yan yana dağıtılmalıdır. Sonuç olarak, geri dönmek bu tür iş yükleri için tercih edilen azaltma stratejisidir.

  • İş yükünün kullandığı altyapının türü(değiştirilebilir veya sabit).

    İş yükünüz değiştirilebilir altyapıyı kullanacak şekilde tasarlandıysa, altyapının güncelleştirilmesini içerdiği için ileriye doğru ilerlemek mantıklı olabilir. Buna karşılık, sabit altyapıyı kullandığınızda geri dönmek veya geri dönmek mantıklı olabilir.

Hangi seçimleri yaparsanız yapın, karar verme sürecinize uygun onayları dahil etmeli ve bunları karar ağacınızda codify yapmalısınız.

Risk azaltma stratejisini uygulama

  • Geri Alma: Geri alma senaryosunda, güncelleştirilmiş sistemleri bilinen son iyi yapılandırma durumuna geri döndürebilirsiniz.

    İş yükü ekibinin tamamının bilinen son iyiliğin anlamı konusunda hemfikir olması önemlidir. Bu ifade, iş yükünün dağıtım başlamadan önce iyi durumda olan son durumunu ifade eder ve bu durum önceki uygulama sürümü olmayabilir.

    Geri almak, özellikle veri değişiklikleriyle ilgili olduğu için karmaşık olabilir. Şema değişiklikleri geri dönmenin riskli olmasını sağlayabilir. Bunları güvenli bir şekilde uygulamak önemli bir planlama gerektirebilir. Genel bir öneri olarak, şema güncelleştirmeleri eklenmelidir. Değişiklikler değiştirilmemelidir; kayıtlar yeni kayıtlarla değiştirilmemelidir. Bunun yerine, eski kayıtlar kullanım dışı bırakılmalıdır ve kullanım dışı bırakılan kayıtların kaldırılması güvenli olana kadar yeni kayıtlarla birlikte bulunmalıdır.

  • Geri dönüş: Geri dönüş senaryosunda, güncelleştirilmiş sistemler üretim trafiği yönlendirmesinden kaldırılır. Tüm trafik güncelleştirilmeyen yığına yönlendirilir. Bu düşük riskli strateji, daha fazla kesintiye neden olmadan kodunuzdaki sorunları çözmeniz için bir yol sağlar.

    Kanarya dağıtımlarında altyapınıza ve uygulama tasarımınıza bağlı olarak geriye düşmek kolay ve hatta mümkün olmayabilir. Güncelleştirilmeyen sistemlerde yükü işlemek için ölçeklendirme gerçekleştirmeniz gerekiyorsa, geri dönmeden önce bu ölçeklendirmeyi gerçekleştirin.

  • Sorunlu işlevi atlayın: Özellik bayraklarını veya başka bir çalışma zamanı yapılandırma özelliğini kullanarak sorunu atlayabilirseniz, dağıtıma devam etme işleminin belirli bir sorun için doğru strateji olduğuna karar vekleyebilirsiniz.

    İşlevi atlamanın dezavantajını net bir şekilde anlamanız ve bu dengeyi paydaşlara iletebilmeniz gerekir. Proje katılımcıları ileriye dönük planı onaylamalıdır. Paydaşların, düzeyi düşürülmüş durumda çalışma için dayanıklı olan süreyi belirlemesi gerekir. Ayrıca bu kararlılığı, sorunlu kodu düzeltmek ve dağıtmak için gereken süreyle ilgili tahmininize göre de tartmaları gerekir.

  • Acil durum dağıtımı (sık erişimli düzeltme):Dağıtımın ortasında sorunu giderebiliyorsanız, sık erişimli düzeltme en pratik risk azaltma stratejisi olabilir.

    Diğer kodlarda olduğu gibi sık erişimli düzeltmelerin de güvenli dağıtım uygulamalarınızdan geçmesi gerekir. Ancak sık erişimli bir düzeltme ile zaman çizelgesi önemli ölçüde hızlandırılır. Ortamlarınız genelinde bir kod yükseltme stratejisi kullanmanız gerekir. Ayrıca tüm kalite kapılarında sık erişimli düzeltme kodunu kontrol etmeniz gerekir. Ancak pişirme sürelerini önemli ölçüde kısaltmanız ve testleri hızlandıracak şekilde değiştirmeniz gerekebilir. Dağıtımdan sonra güncelleştirilmiş kod üzerinde en kısa sürede tam testler çalıştırabildiğinize emin olun. Kalite güvencesi testlerinin yüksek düzeyde otomatikleştirilmesi, bu senaryolarda testin verimli olmasına yardımcı olur.

Dezavantajlar:

  • Geri dönebilmek genellikle iş yükü yapılandırmanızın iki sürümünü aynı anda işlemek için yeterli altyapı kapasitesine ihtiyacınız olduğu anlamına gelir. İş yükü ekiplerinizin aynı anda üretimde iki sürümü de destekleyebilmesi gerekir.
  • Etkili bir şekilde geri alabilmeniz, iş yükünüzün öğelerini yeniden düzenlemeyi içerebilir. Örneğin, işlevleri ayırmanız veya veri modelinizi değiştirmeniz gerekebilir.

Olay sırasında durum güncelleştirmelerini standartlaştırma

Olaylar sırasındaki kaosu en aza indirmek için iletişim sorumluluklarını net bir şekilde tanımlamanız önemlidir. Bu sorumluluklar, iş yükü ekibinin destek ekipleri, paydaşlar ve acil durum yanıt ekibi personeliyle (acil durum yanıt yöneticisi gibi) nasıl etkileşim kurduğunu belirlemelidir.

Durum güncelleştirmeleri sağlamak için iş yükü ekibinin izlediği tempoyu standartlaştırın. Proje katılımcılarının güncelleştirmeleri ne zaman beklediklerini bilmeleri için bu standardın farkında olduğundan emin olun.

İş yükü ekibinin doğrudan son kullanıcılarla iletişim kurması gerekiyorsa, kullanıcılarla paylaşmaya uygun bilgi türünü ve ayrıntı düzeyini netleştirin. Ayrıca bu durumlar için geçerli olan diğer gereksinimleri iş yükü ekibine iletin.

Olay sonrası otopsileri gerçekleştirme

Postmortems, istisnasız olarak tüm başarısız dağıtımları izlemelidir. Başarısız olan her dağıtım, öğrenme için bir fırsattır. Otopsiler, dağıtım ve geliştirme süreçlerinizdeki zayıf noktaları belirlemenize yardımcı olabilir. Altyapınızdaki yanlış yapılandırmaları ve diğer birçok olasılığı da belirleyebilirsiniz.

Otopsiler her zaman suçsuz olmalıdır, böylece olaya dahil olan kişiler geliştirebilecekleri bakış açılarını paylaştıklarında kendilerini güvende hissederler. Otopsi sonrası liderleri, tanımlanan iyileştirmeleri uygulama ve bu planları iş yükü kapsamına ekleme planlarını izlemelidir.

Risk azaltma işlemlerini kullanıma hazır hale getirme

Dağıtım işlem hattınızın, bilinen son iyi yapılandırmaları kolayca dağıtabilmeniz için ayrı sürümleri parametre olarak kabul edebilmesini sağlayın.

Geri alınırken veya ileri doğru ilerlerken yönetim ve veri düzlemleriyle tutarlılığı koruyun. Kaynaklara ve ilkelere özgü anahtarların, gizli dizilerin, veritabanı durumu verilerinin ve yapılandırmaların tümünün kapsamda ve hesaba bağlı olması gerekir. Örneğin, bilinen son iyi dağıtımda altyapı ölçeklendirmenizin tasarımına dikkat edin. Kodunuzu yeniden dağıttığınızda bu yapılandırmayı ayarlamanız gerekip gerekmediğini belirleyin.

Yeni ve bilinen son iyi dağıtımlarınız arasındaki değişimin küçük olması için seyrek ve büyük değişiklikler yerine küçük, sık yapılan değişiklikleri tercih edin.

Risk azaltmaları karmaşık hale getirebilecek sorunları belirlemenize yardımcı olmak için sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarınızda hata modu analizi (FMA) gerçekleştirin. bir bütün olarak iş yükünüz gibi işlem hatlarınız da belirli bir risk azaltma türünü denediğinizde sorunlu olabilecek alanları belirlemek için analiz edilebilir.

Otomatik geri alma işlevini yanlışlıkla kullanın:

  • Azure DevOps gibi bazı CI/CD araçları yerleşik olarak otomatik geri alma işlevlerine sahiptir. Size somut bir değer sağlıyorsa bu işlevi kullanmayı göz önünde bulundurun.
  • Otomatik geri alma işlevini yalnızca işlem hattınızı kapsamlı ve düzenli olarak test ettikten sonra benimsemeniz gerekir. İşlem hattınızın, otomatik geri alma tetiklendiğinde ek sorunlara neden olacak kadar olgun olduğundan emin olun.
  • Otomasyonun yalnızca gerekli değişiklikleri dağıttığına ve yalnızca gerektiğinde tetiklendiğinden emin olmanız gerekir. Bu gereksinimleri karşılamak için tetikleyicilerinizi dikkatli bir şekilde tasarlayın.

Geri alma işlemleri sırasında platform tarafından sağlanan özellikleri kullanın. Örneğin, yedeklemeler ve belirli bir noktaya geri yüklemeler depolama ve veri geri alma işlemlerine yardımcı olabilir. Uygulamanızı barındırmak için sanal makineler (VM) kullanıyorsanız, ortamınızı bir olaydan hemen önce gelen bir denetim noktasına geri yüklemeniz yararlı olabilir.

Dağıtım hatası azaltma stratejinizin tamamını sık sık test edin. Acil durum yanıt planları ve olağanüstü durum kurtarma planları gibi dağıtım hata planınız da ancak ekibiniz bu konuda eğitildiğinde ve düzenli olarak uygulandığında başarılı olur. Kaos mühendisliği ve hata ekleme testi , dağıtım azaltma stratejinizi test etmede etkili teknikler olabilir.

Denge: Destek ekibi üyelerinin normal görevlerini yerine getirebilmeleri ve acil durumları destekleyebilmeleri gerekir. Destek ekibinin düzgün bir şekilde personele sahip olduğundan ve gerekli tüm görevleri yerine getirebildiğinden emin olmak için baş sayısını artırmanız gerekebilir. Daha düşük geliştirme ortamlarına dağıttığınızda dağıtımları kapsamlı bir şekilde test edin. Bu uygulama, üretime geçmeden önce hataları ve yanlış yapılandırmaları algılamanıza yardımcı olur.

Azure kolaylaştırma

  • Azure Pipelines , uygulamalarınızın CI/CD'sini desteklemek için derleme ve yayın hizmetleri sağlar.

  • Azure Test Planları , kullanımı kolay olan tarayıcı tabanlı bir test yönetimi çözümüdür. Bu çözüm, planlı el ile test, kullanıcı kabul testi ve keşif testi için gereken özellikler sunar. Azure Test Planları, paydaşlardan geri bildirim toplamanız için de bir yol sağlar.

  • Azure İzleyici , bulut ve şirket içi ortamlarınızdan izleme verilerini toplamaya, analiz etmeye ve yanıtlamaya yönelik kapsamlı bir izleme çözümüdür. İzleyici güçlü bir uyarı platformu içerir. Bu sistemi otomatik bildirimler ve otomatik ölçeklendirme ve diğer kendi kendini düzeltme mekanizmaları gibi diğer eylemler için yapılandırabilirsiniz.

  • Application Insights , uygulama performansı izleme (APM) özellikleri sağlayan bir İzleyici uzantısıdır.

  • Azure Logic Apps , uygulamaları, verileri, hizmetleri ve sistemleri tümleştiren otomatik iş akışlarını çalıştırmaya yönelik bulut tabanlı bir platformdur. Bir güncelleştirme yapıldığında uygulamanızın yeni bir sürümünü oluşturmak için Logic Apps'i kullanabilirsiniz. Azure, sürümlerin geçmişini tutar ve önceki sürümleri geri döndürebilir veya yükseltebilir.

  • Birçok Azure veritabanı hizmeti, geri almanız gerektiğinde size yardımcı olabilecek belirli bir noktaya geri yükleme işlevi sağlar:

  • Azure Chaos Studio Önizlemesi , bulut uygulamanızın ve hizmet dayanıklılığınızı ölçmenize, anlamanıza ve geliştirmenize yardımcı olmak için kaos mühendisliği kullanan yönetilen bir hizmettir.

Operasyonel Mükemmellik denetim listesi

Öneriler kümesinin tamamına bakın.