Aracılığıyla paylaş


Microsoft, DevOps ile nasıl yazılım sunar?

Microsoft, üretim ortamlarına yüksek oranda ölçeklenebilir hizmetler sunma konusunda onlarca yıllık deneyime sahiptir. Microsoft hizmetleri ve ortamlar genişledikçe, teslim uygulamaları da zaman içinde gelişti. Birçok Microsoft müşterisi de bu verimli teslim uygulamalarını benimsemiştir ve bu uygulamalardan yararlanmaktadır. Aşağıdaki temel DevOps ilkeleri ve süreçleri tüm modern yazılım teslim çalışmaları için geçerli olabilir.

Microsoft, DevOps teslim süreçlerini uygulamak için aşağıdaki girişimleri benimsemiştir:

  • Kurumsal düşünce yapısına ve tempoya teslime odaklanın.
  • Özelliklere sahip olan, test eden ve sunan otonom, sorumluluk sahibi ekipler oluşturun.
  • Üretimdeki sistemleri test etmek ve izlemek için sağa doğru kaydırma.

Teslime odaklanma

Daha hızlı gönderim, kuruluşların ve ekiplerin kolayca ölçebileceği ve takdirebileceği belirgin bir avantajdır. Tipik DevOps temposu, üretime düzenli dağıtımlarla kısa sprint döngüleri içerir.

Kısa sprint'lerle ürün kararlılığının eksikliğinden korkan bazı takımlar, sprint döngülerinin sonundaki dengeleme dönemlerini telafi etmişti. Mühendisler sprint sırasında mümkün olduğunca çok özellik göndermek istedi, bu yüzden stabilizasyon sırasında ödemek zorunda kaldıkları test borcuna maruz kaldılar. Sprint sırasında borçlarını yöneten takımlar daha sonra borç oluşturan ekipleri desteklemek zorunda kaldı. Ek maliyetler, teslimat işlem hatlarıyla ve üretime aktarılarak gerçekleştirilen maliyetler.

Stabilizasyon döneminin kaldırılması, ekiplerin borçlarını nasıl yönettiğini hızla geliştirdi. Önemli bakım çalışmalarını sabitleme dönemine göndermek yerine, borcu oluşturan ekiplerin bir sonraki sprint'i borç hedeflerine yetişmek için harcaması gerekiyordu. Ekipler sprint'ler sırasında test borçlarını yönetmeyi hızlı bir şekilde öğrendi. Özellikler, kanıtlandığında ve dağıtım maliyetine değer olduğunda sunulur.

İşlem hatlarını tam olarak otomatikleştirme

Ekiplerin hemen kazanabileceği geliştirmelerin çoğu, kod deposundan üretime kadar işlem hatlarını tam olarak otomatikleştirmektir. Otomasyon sürekli tümleştirme (CI), otomatik test ve sürekli teslim (CD) ile yayın işlem hatlarını içerir.

Ekipler zor olduğundan dağıtım yapmaktan kaçınabilir, ancak ne kadar az sıklıkta dağıtım yapılırsa o kadar zor olur. Dağıtımlar arasında ne kadar fazla süre olursa, o kadar fazla sorun biriker. Kod yeni değilse dağıtım borcu vardır.

Sık sık dağıtarak daha küçük parçalar halinde çalışmak daha kolaydır. Bu fikir, geçmişe dönük olarak belirgin görünebilir, ancak o zaman karşıt görünebilir. Sık yapılan dağıtımlar, ekipleri daha verimli ve güvenilir dağıtım araçları ve işlem hatları oluşturmaya öncelik verme konusunda da teşvik eder.

Şirket içi araçları kullanma

Microsoft, derledikleri sürüm yönetim sistemini kullanır ve müşterilere iletir. Tek bir yatırım hem ekip üretkenliğini hem de Microsoft ürünlerini geliştirir. İkincil bir sistem kullanmak, geliştirme ve teslimat hızını sifonu çeker.

Ekip özerkliği ve sorumluluk

Belirli bir ana ilerleme göstergesi (KPI) ekibin üretkenliğini veya performansını ya da bir özelliğin yolunda olup olmadığını ölçmez. Ekiplerin kendi planlarını ve kapsamlarını yönetebilmesi ve kurumsal hedeflerle uyumlu bir yol bulabilmesi gerekir.

İlerleme durumunu izlemek için ekiplerle doğrudan iletişim kurmak önemlidir. Araçlar iletişimi kolaylaştırmalıdır, ancak iletişim kurmanın en şeffaf yolu konuşmadır.

Özelliklerin önceliklerini belirleme

Önemli bir hedef, özellikleri sunmaya odaklanmaktır. Zamanlamalar, belirli bir süre boyunca ekiplerin ve kişilerin makul bir şekilde ne kadar tamamlayabileceğini değerlendirebilir, ancak bazı özellikler daha erken teslim edilecek ve bazıları daha sonra sunulacaktır. Ekipler, en önemli özelliklerin üretime geçiş yapabilmesi için çalışmaya öncelik verebilir.

Mikro hizmetleri kullanma

Mikro hizmetler, teslimi geliştiren ve basitleştiren çeşitli teknik avantajlar sunar. Mikro hizmetler ayrıca ekip sahipliği için doğal sınırlar sağlar. Bir ekip bir mikro hizmete yatırım konusunda özerkliğe sahip olduğunda, özellikleri uygulama ve borcu yönetme konularına öncelik verebilir. Teams, mikro hizmete bağlı genel hizmetlerden bağımsız olarak sürüm oluşturma gibi faktörlere yönelik planlara odaklanabilir.

Main'da çalışma

Mühendisler ayrı dallarda çalışırlar. Her daldaki birleştirme borcu, mühendis dalını ana dala tümleştirmeye çalışana kadar büyüdü. Ne kadar çok ekip ve mühendis varsa, tümleştirme o kadar büyük hale geldi.

Tümleştirmenin daha hızlı, daha sürekli ve daha küçük parçalar halinde gerçekleşmesi için mühendisler artık ana dalda çalışıyor. Git'e geçmenin en büyük nedenlerinden biri, Git'in sunduğu basit dallanma teklifleridir. İç mühendisliğin avantajı derin dal hiyerarşisini ve atıklarını ortadan kaldırmaktı. Eskiden tümleştirme için harcanan tüm zamanlar artık teslimata dökülüyor.

Özellik bayraklarını kullanma

Bazı özellikler sprint dağıtımı için tamamen tamamlanmamıştır, ancak üretim ortamında test etme özelliğinden yararlanabilir. Teams, geliştirme ekibi veya erken benimseyen küçük bir kesim gibi belirli kullanıcılar için özelliği açmak için bu kodu özellik bayraklarıyla birleştirebilir ve dağıtabilir. Özellik bayrakları, genel kullanıcı tabanıyla ilgili sorunları riske atmadan pozlamayı denetler ve ekiplerin özelliği tamamlayıp tamamlamayacağını ve nasıl tamamlayacaklarını belirlemesine yardımcı olabilir.

Üretimde test

Üretimde test etme hakkının değiştirilmesi, üretim öncesi testlerin geçerli olduğundan ve sürekli değişen üretim ortamlarının dağıtımları işlemeye hazır olduğundan emin olunmasına yardımcı olur.

İzleme testleri ve ölçümleri

Bir uygulamanın dağıttığı yer ne olursa olsun, her şeyi işaretlemek önemlidir. İzleme, sorunların tanımlanmasına ve düzeltilmesine yardımcı olmakla kalmaz, kullanım ve sonraki konular hakkında çok değerli araştırmalar da sağlayabilir.

Dayanıklılık desenlerini test edin

Karmaşık dağıtımlar için bir risk, bir bileşen hatasının bağımlı bileşenlerin başarısız olmasına neden olduğu ve sistemin tamamı bozulana kadar devam eden art arda hatalardır. Tek hata noktalarının (SPOF' ler) nerede olduğunu ve nasıl azaltıldıklarını anlamak ve özellikle üretimde risk azaltma işlemlerini test etmek önemlidir.

Doğru ölçümleri seçme

Ölçümleri tasarlamak zor olabilir. Bir şeyi kaçırmamak için çok fazla ölçüm eklemek yaygın bir hatadır. Ancak bu, belirli bir gereksinimi karşılamayan ölçümlerin değerini yoksaymaya veya güvensizliğe neden olabilir. Bunun yerine, Microsoft ekipleri başarıyı ölçmek için ihtiyaç duydukları verileri belirlemek için zaman alır. Teams ölçümleri ekleyebilir veya değiştirebilir, ancak amacı en baştan anlamak bu süreci kolaylaştırır.

Ekipler, ölçümün temelinin yanı sıra ölçüme gerekenleri de dikkate alır. Örneğin, kullanıcı kazançlarının hızı veya hızlandırması, toplam kullanıcı sayısından daha yararlı bir ölçüm olabilir. Ölçümler projeden projeye farklılık gösterir, ancak en yararlı olan, iş kararları verme potansiyeline sahip olanlardır.

Çalışmayı yönlendirmek için ölçümleri kullanma

Microsoft, en yüksek liderlik düzeylerinde incelemeler içeren ölçümler içerir. Kuruluşlar her altı haftada bir sağlık, iş, senaryolar ve müşteri telemetrisi konusunda nasıl çalıştıklarını gösterir. Kuruluşlar ölçümleri yöneticilerle ve ekipleriyle tartışıyor.

Kuruluş genelindeki ekipler, özelliklerinin anlamını belirlemek için kullanıcı ölçümlerini inceler. Teams yalnızca özellikleri göndermekle kalmaz, aynı zamanda kullanıcıların bunları kullanıp kullanmadığını ve nasıl kullandığını da görmek için arama yapın. Ekipler kapsamları ayarlamak ve özelliklerin hedeflere ulaşmak için daha fazla çalışma gerekip gerekmediğini belirlemek için bu ölçümleri kullanır.

Teslim yönergeleri

  • A'dan B'ye ulaşmak asla düz bir çizgi değildir ve B'nin sonu da değildir.
  • Her zaman aksilikler ve hatalar olacaktır.
  • Sürecin belirli bir bölümünü tamamlama taktiklerini değiştirmek için gerilemeleri öğrenme fırsatları olarak görüntüleyin.
  • Zaman içinde her ekip, deneyim geliştirerek ve değişen ihtiyaçları karşılayacak şekilde ayarlayarak DevOps uygulamalarını geliştirir.
  • Önemli olan hem son kullanıcılara hem de teslim işleminin kendisine değer sunmaya odaklanmaktır.