Aracılığıyla paylaş


Araçları ve işlemleri standartlaştırmaya yönelik öneriler

Bu Azure Well-Architected Framework Operasyonel Mükemmellik denetim listesi önerisi için geçerlidir:

OE:04 Geliştirme ve test için sektörde kanıtlanmış uygulamaları izleyerek yazılım geliştirme ve kalite güvencesi süreçlerini iyileştirin. Net rol belirleme için araçlar, kaynak denetimi, uygulama tasarım desenleri, belgeler ve stil kılavuzları gibi bileşenler genelinde uygulamaları standartlaştırabilirsiniz.

İlgili kılavuz: Derleme hızını | geliştirmeSürekli tümleştirmeyi kullanma

Bu kılavuzda, yazılım geliştirme araçları ve süreçleri için standartları tanımlamaya yönelik öneriler açıklanmaktadır. Tutarlı uygulamaların tanımlanması, verimli bir iş yükü ekibine ve yüksek kaliteli çalışmaya yol açar. Yüksek performanslı ekipler, harcanan çabayı ve olası kod hatalarını en aza indirmek için endüstride kanıtlanmış araçlar ve süreçler kullanır.

Temel tasarım stratejileri

Geliştirme uygulamalarını iyileştirmenin ilk adımı, araçları ve süreçleri standartlaştırmaktır. Mümkün olduğunda, şirket içi çözümler geliştirmek yerine endüstride kanıtlanmış çözümler kullanın. Uygulamalarınızı daha da iyileştirmek için düşük kodlu ve kodsuz araçları benimseyin. Bu araçlar, çalışmalarınızı uygulamanıza odaklamanıza ve zaman kazanmanıza yardımcı olur. Standartlaştırdığınız tüm araçlar ve süreçler için, ekiplerinizin bunları verimli bir şekilde anlayıp kullanması için eğitim uygulayın. Geliştirme uygulamalarınızı iyileştirmeye yardımcı olacak standartlar tanımlamak için aşağıdaki önerileri göz önünde bulundurun.

İyi bilinen ve olgun kullanıma sunulan araçları kullanma

İyi bilinen ve olgunlaşmış kullanıma açık takımlar kullanın ve kullanımlarını standartlaştırın. Son derece etkili mühendislik ekipleri sınıfının en iyisi araçları benimser. Bu yaklaşım planlama, geliştirme, test, işbirliği ve sürekli tümleştirme ile sürekli teslim (CI/CD) için çözüm geliştirme ihtiyacını en aza indirir. Birçok kuruluş, geliştiricilere birkaç araç arasında seçim sağlar, ancak tüm seçenekler kuruluş için standart araçlardır ve şirket içinde doğrulanır. En önemlisi, iş yükünüz için gereksinimleri karşılayan araçları seçin. Kullanıma sunulan araçlar aşağıdaki işlevleri sağlamalıdır:

  • İş planlama ve kapsam yönetimi

  • Sürüm denetimi ve depolar

  • CI/CD işlem hatları

  • Tümleştirme, duman, sentetik kullanıcı, simülasyon, kaos ve diğer kalite testleri gibi testler

  • Kod geliştirme

Bazı durumlarda, bir araç veya araç paketi çeşitli işlevler sağlayabilir. İşlevler genelinde gereksinimlerinizi karşılamaları için araçlarınızın özelliklerini ve sınırlamalarını anladığınızdan emin olun.

Pahalı araçlara mı yoksa araçların premium sürümlerine mi yatırım yapmak istediğinizi belirleyin. Premium araçların sağladığı özelliklerle karşılaştırıldığında kendi çözümlerinizi geliştirmenin zamanını ve çabasını göz önünde bulundurun. Tek seferlik maliyetleri ve yinelenen maliyetleri göz önünde bulundurun. Çoğu durumda kullanıma sunulan araçlar ekibinize daha yüksek değer sağlar.

Pratik olduğunda düşük kodlu, kodsuz ve yapay zeka araçlarını kullanın . Düşük kodlu ve kodsuz araçlar, deneyimli geliştiricilere kod geliştirme sürecinin tamamını gerçekleştirmek yerine kolayca işlevsellik ekleme olanağı tanıyarak zaman kazandırır. Bu araçlar, geliştiricileri eğitmemiş olabilecek iş yükü ekibi üyelerinin iş yükünün çalışmasına katkıda bulunmalarına da olanak tanır. Yapay zeka araçları kod geliştirme, incelemeler ve iyileştirme konusunda yardımcı olabilir.

Dallanma stratejinizi standartlaştırma

Mümkün olduğunda gövde tabanlı bir model seçin. Gövde tabanlı dallanma, iş yükü geliştirme ekibinin eşitlenmesini sağlar ve sürekli teslimi teşvik eder. Ana dal gibi önemli dalları korumak için dal ilkeleri tanımlayın. Daha fazla bilgi için bkz. Git dallanma stratejisini benimseme ve Dal ilkeleri ve ayarları.

Geliştirme verimliliğini ölçmek için ölçümleri değerlendirme

Yazılım geliştirme ve kalite güvencesi ekipleri ancak etkinliklerini ölçebiliyorlarsa geliştirebilir. Etkinliği ölçmek için geliştirici hızını ölçen ölçümleri ve KPI'leri tanımlamaları gerekir. Bu ölçümlere örnek olarak şunlar verilebilir:

  • Dağıtım sıklığı: Her geliştiricinin her gün dağıttığı dağıtım sayısı.

  • Sağlama süresi: Bir görevin veya kullanıcı hikayesinin kapsamtan üretim dağıtımına geçme süresi.

  • Ortalama çözüm süresi: Koddaki hataları veya hataları düzeltmek için harcanan ortalama süre.

  • Değişiklik hatası oranı: Hataya neden olan değişikliklerin yüzdesi.

Paydaşların ve iş yükü ekibinin hızı kolayca izlemesine yardımcı olmak için panoları veya diğer raporlama araçlarını kullanarak KPI'leri görselleştirin.

İş yükü ekibinizin kod yazma, inceleme ve belge oluşturma şeklini standartlaştırma

İş yükü ekibinizin stil kılavuzunu kullanarak kod yazma, inceleme ve belgeleme şeklini standart hale getirin. Standart stil, işbirliğini kolaylaştırır ve yeni geliştiricileri eklemeye yardımcı olur. Yeni geliştiricilerin etkili bir şekilde çalışması için iş yükü ekibinin nasıl çalıştığını bilmesi gerekir. Açıkça tanımlanmış standartlara sahip bir stil kılavuzu, eğitim sürecini kolaylaştırabilir. Stil kılavuzunda geliştirme dilleri, kitaplıklar, çerçeveler ve diğer kurallar için standartlar tanımlayın.

Pratik olduğunda, kod biçimlendirme standartlarını zorunlu kılmak için araçları kullanın. Örneğin, Visual Studio kodu stil, kalite, bakım, tasarım ve diğer sorunlar için tarayan çeşitli araçlar sunar. Kod olarak altyapı (IaC) için Checkov veya Terraform için Terrascan kullanabilirsiniz.

Tutarlılığı sağlamak ve olası karışıklıkları önlemek için stil kılavuzu yapıtlar, ortamlar, dallar, derlemeler ve çalıştırmalar için standart adlandırma kurallarını içermelidir.

Ayrıca, ortamlarınızda izin verilebilen varyans derecesi için yönergeler ve standartlar ayarlamanız gerekir. İş yükü ekip üyelerinin standart listeye eklemek istediği yeni diller, çerçeveler veya başka teknolojiler varsa, bu araçları korumalı alanda veya daha düşük bir ortamda kullanmaya yönelik bir işlem uygulayın. Kullanılabilirliklerini test edin ve uygun olduğunda mevcut teknolojileri değiştirin.

İş yükü ekibinizin tasarım kararlarının geçmiş kaydını tutmak için mimari karar kayıtlarını (ADR) kullanın. ADR'ler, ekiplerinizin iş yükü hakkında yeni bir anlayışa sahip olmasına yardımcı olur. Ayrıca yeni ekip üyelerinin iş yükünün yaşam döngüsü sırasında alınan tasarım kararları hakkında bilgi edinmelerine de yardımcı olur. ADR'lerin sürüm denetiminde olduğundan emin olun.

ADR'nize şunları ekleyin:

  • Ekibinizin seçtiği SQL veya NoSQL gibi belirli araçlar ve teknolojiler.

  • Ekibinizin kararlarının nedenleri.

  • Değerlendirilen diğer seçenekler, nihai kararın bağlamsal olarak belirlenmesine yardımcı olur.

  • Kararlara hesaba katılmış işlevsel ve işlevsiz gereksinimler.

  • Ele alınan sorun gibi karar alma sürecinin bağlamı.

Teknik borcu gidermek için standartları uygulama

İş yükü ekibinizin teslim edilebilir öğeleri için teknik borcun kasıtlı ve gerekli olduğu düşüncesini benimseyin. Bu düşünce yapısı, ekibinizi birikmeye karşı düzenli olarak teknik borçları göz önünde bulundurmaya ve gidermeye teşvik eder. Kapsam içinde düzenli olarak yinelenen bir görev olarak teknik borcu giderin.

Örneğin, ekibinizin bir kitaplıkta standartlaştırıldığını varsayalım. Zaman içinde, iş yükündeki yeni işlevler için farklı bir kitaplığa geçmeniz gerekir. Bu geçiş teknik borçla sonuçlanabilir. Bu tür geçişler genellikle iki teknolojiyi destekleyen iş yükü ekibinden ayrılabilir çünkü tam olarak sorunsuz geçiş yapamazlar. İş yükü yeni işlevselliği elde ettiğinde paydaşların memnun olması ve teknik borcu düşünme olasılığının daha düşük olması nedeniyle iş yükü ekibinin geçişi tamamlamaya öncelik vermesi gerekir.

Yapıtlarınıza sürüm oluşturma uygulama yönteminizi standartlaştırma

Yapıtlarınıza sürüm oluşturma uygulama şeklinizi ve sürüm oluşturmanın şirket içinde ve dışında nasıl kullanıma sunulduğuna standartlaştırma. Örneğin, istemciye yönelik sistemler çalışan sürümlerini kullanıcı arabiriminde kullanıma sunmalıdır. Bu teknik, iş yükü ekibi sorunları giderirken yararlıdır çünkü müşteri hangi sürümü kullandığını kolayca iletebilir. REST arabirimleri, belirli bileşenler veya veritabanları için sürümleri kullanıma açabilir. Şema sürümünü kullanıma açmak için bir şemanın meta verilerinde belirli bir tablo kullanabilirsiniz.

Uygulamanızın güvenilir, performanslı ve güvenli olduğundan emin olmak için endüstride kanıtlanmış uygulama tasarım desenlerini kullanın. Uygulamanız için kendi çözümlerinizi geliştirmeye kıyasla zaman ve çabadan tasarruf etmek için bu desenleri kullanın. İş yükünüzden yararlanan desenleri seçin. İş yükünüz geliştikçe doğru desenleri kullandığınızdan emin olmak için tasarım desenlerini düzenli olarak gözden geçirin.

Test için sola kaydırma yaklaşımı uygulama

Birim testini geliştirme süreci boyunca erken ve sık sık gerçekleştirerek teste sola kaydırma yaklaşımı uygulayın. Her geliştirme ortamında sık sık test edilmesi, geliştiricilerin uygulamalarına güven kazanmalarına yardımcı olur. Sola kaydırma yaklaşımıyla test stratejinizi oluşturmaya yardımcı olmak için aşağıdaki ilkeleri göz önünde bulundurun:

  • Testleri mümkün olan en düşük düzeyde yazın. En az dış bağımlılıkla testleri destekleyin ve derlemenin bir parçası olarak testleri çalıştırın.

  • Testleri bir kez yazın ve üretim dahil olmak üzere her yerde testleri çalıştırın. Şifrelenmiş gizli diziler veya yapılandırmalar gibi tek bir ortama özgü faktörleri hesaplamadan her geliştirme ortamında çalıştırabileceğiniz testler yazın.

  • İş yükünüzü test için tasarlar. Uygulamanızı geliştirirken test edilebilirliği bir gereksinim haline getirin.

  • Test kodunu uygulama kodu olarak değerlendirin. Uygulama koduna ve test koduna aynı kalite ve geliştirme standartlarını uygulayın. Test kodunu uygulama koduyla birlikte depolayın. Uygulama koduyla test kodu geliştirme ve sürdürme. Testlerin kalitesinden emin olmak için güvenilir olmayan testleri atın.

  • İş yükü sahipliğini temel alan test sahipliğini göz önünde bulundurun. İş yükü ekibiniz kendi testlerinin sahibidir ve kodlarını test etmek için diğer takımlara güvenmemelidir.

  • Testleri mümkün olduğunca otomatikleştirin. Otomatik kod iş yükü ekibinizin yükünü hafifletir ve tutarlı kaliteyi zorlar.

DevOps test stratejisi uygulama hakkında ayrıntılı yönergeler için bkz. Birim testleriyle sola kaydırma testi.

Standart işletim yordamlarınızın bir parçası olarak DevSecOps uygulamalarını zorunlu kılar. İş yükü ekibinizin yazılım geliştirme ve kalite güvencesi ile ilgili güvenlik uygulamalarını anlaması gerekir. Bu uygulamaları istisnasız izlemeleri gerekir. Daha fazla bilgi için bkz . Güvenlik geliştirme yaşam döngüsü kılavuzu.

Kaynakları adlandırma ve etiketleme standartları uygulama

Etiketleme ve adlandırma kurallarını uygulamak, Azure kaynaklarını yönetmek ve düzenlemek için en iyi yöntemdir. Etiketleme ve adlandırma kuralları ortam, uygulama, sahip veya maliyet merkezi gibi yaygın özniteliklere göre kaynakları tanımlamaya, sınıflandırmaya ve gruplandırmaya yardımcı olur. Ayrıca abonelikler ve kaynak grupları arasında kaynakların güvenlik, otomasyon, raporlama ve idaresini de etkinleştirir.

Standart etiketleme ve adlandırma kurallarını kullanmanın avantajlarından bazıları şunlardır:

  • Kaynak belirleme ve yönetimi için tutarlılık ve netlik sağlayarak Azure portal, PowerShell, CLI ve API'lerde bulma ve aramayı kolaylaştırır.
  • Faturalama, izleme, güvenlik ve uyumluluk amacıyla kaynakların filtrelenmesine ve gruplanmasına olanak tanır.
  • Sağlama, yetkisini alma, yedekleme ve kurtarma gibi kaynak yaşam döngüsü yönetimini destekler.
  • Bunlar güvenlik amacıyla gereklidir. Bir güvenlik olayıyla karşınıza çıkarsa, etkilenen sistemleri, bu sistemlerin desteklediği işlevleri ve olası iş etkisini hızla tanımlamak kritik önem taşır.

Bulut kaynaklarınız için adlandırma kurallarını kullanma hakkında daha fazla bilgi için bkz. Adlandırma kuralınızı tanımlama. Bulut kaynaklarınıza meta veri etiketleri uygulama hakkında daha fazla bilgi için bkz. Etiketleme stratejinizi tanımlama.

Azure kolaylaştırma

  • Azure DevOps , işbirliğine dayalı, verimli ve tutarlı bir geliştirme uygulaması oluşturmak için kullanabileceğiniz bir hizmet koleksiyonudur. Azure DevOps aşağıdaki çözümleri paketlemektedir:

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

    • Azure Boards, Scrum ve Kanban gibi Çevik uygulamaları destekleyen web tabanlı bir iş yönetimi aracıdır.

    • Azure Repos, Git dağıtılmış sürüm denetim sistemini ve Team Foundation Sürüm Denetimi sistemini destekleyen bir sürüm denetim aracıdır.

    • Azure Test Plans, planlı el ile test, kullanıcı kabul testi, keşif testi ve proje katılımcılarından geri bildirim toplama için gereken özellikler sağlayan tarayıcı tabanlı bir test yönetimi çözümüdür.

    • Azure Artifacts , geliştiricilerin kodlarını verimli bir şekilde paylaşmasını ve paketlerini yönetmesini sağlamak için kullanılır.

  • Azure için GitHub Actions, CI/CD işlemlerini otomatikleştirmek için kullanabileceğiniz bir araçtır. Dağıtımları basitleştirmek için doğrudan Azure ile tümleşir. Deponuzdaki her çekme isteğini derleyip test eden iş akışları oluşturabilir veya birleştirilmiş çekme isteklerini üretim ortamına dağıtabilirsiniz.

  • GitHub Projeleri Kanban panoları, raporlar, panolar ve diğer işlevleri oluşturmak için kullanabileceğiniz bir iş yönetimi aracıdır.

  • Düşük kodlu ve kodsuz araçlar şunlardır:

  • Azure Resource Manager şablonları ve Bicep, IaC dağıtmak için kullanabileceğiniz Azure'a özel araçlardır. Terraform , altyapıyı dağıtmak ve yönetmek için kullanabileceğiniz azure tarafından desteklenen bir diğer IaC aracıdır.

  • Visual Studio , Azure ile tümleşen ve birçok dili destekleyen güçlü bir geliştirme aracıdır.

  • GitHub Copilot, programcı çifti işlevi gören ve siz kod yazarken otomatik tamamlama stili önerileri sağlayan bir yapay zeka hizmetidir. Copilot, Visual Studio'da ve diğer birçok geliştirme aracında uzantı olarak kullanılabilir.

  • Azure Load Testing , nerede barındırıldığına bakılmaksızın uygulamalarınız için trafik simülasyonu yaparak yüksek ölçekli yük oluşturmak için kullanabileceğiniz, tam olarak yönetilen bir yük testi hizmetidir.

Operasyonel Mükemmellik denetim listesi

Önerilerin tamamına bakın.