Dağıtımı sürümden ayırmak için hangi yollar var?


13

Sürekli dağıtım yöntemlerinden biri, dağıtımı sürümden ayırmaktır, yani değişiklikleri hemen etkinleştirmeden güncellemeleri dağıtmaktır.

bunun için kullanılabileceğini biliyorum , ancak "özellik dışı" için başka teknikler olup olmadığını merak ediyorum.

Örneğin, bir hata düzeltmesi için bir özellik geçişi oluşturur musunuz? Muhtemelen hayır ve hata düzeltmelerinin mümkün olan en kısa sürede dağıtılması gerektiği iddia edilebilir, çünkü sadece daha iyi olabilir. Ve bir hata düzeltmesi yayınlandıktan sonra, artık onu kapatmak istemiyorum. Ama durum böyle mi? Kontrollü bir şekilde serbest bırakmak istediğiniz riskli bir değişiklik olabilir. Orada eğer vardır beklenmedik yan etkileri, geri sar edebilmek güzel. Her değişiklik için özellik bayrakları?

Peki ya görsel değişiklikler? Örneğin, CSS'de özellik bayrağı gibi bir şey uygulayabilir misiniz? Hatta mantıklı mı?


Pete Hodgson, hata düzeltmeleri ve bunların uygun olduğu diğer durumlar dahil olmak üzere çeşitli özellik geçiş kategorileri hakkında kapsamlı bir şekilde yazdı. martinfowler.com/articles/feature-toggles.html
Evgeny

Yanıtlar:


7

Web uygulaması kategorisindeki yazılımlar için, infra / hosting sağlayıcınıza bağlı olarak, bu tür ayırma , bahsi geçen değişikliklerin herhangi birini kapsayan pratikte sw'nin farklı konuşlandırılmış sürümleri arasında geçiş yapmak (veya ayrıştırmak) mümkün olabilir : hata düzeltmeleri, görseller , vb.

Bu tür destek genellikle özellik geçişleri gerektirmez. Uygulamanın monolitik veya mikro hizmetlerde bölünmüş olmasına bakılmaksızın uygulanabilir.

Örneğin, Google'ın App Engine Paas teklifinde trafik bölme ve taşıma desteği bulunmaktadır.

Gönderen Bölme Trafik :

Bir hizmet içindeki sürümlerin iki veya daha fazlasında trafiğin yüzde dağılımını belirtmek için trafik bölme özelliğini kullanabilirsiniz. Trafiği bölmek , sürümleriniz arasında A / B testi yapmanıza olanak tanır ve özellikleri kullanıma sunarken hız üzerinde kontrol sağlar.

Gönderen Geçirme Trafik :

Trafik taşıma, uygulamanızın bir hizmetindeki sürümler arasındaki istek yönlendirmesini değiştirerek trafiği bir veya daha fazla sürümden tek bir yeni sürüme geçirir.


5

Monolitlerle anahtarlarla sınırlı olabilirken, mikro hizmet mimarileriyle, bir hizmet sağlayan düğümlerin her dağıtım havuzunu (yani, kapsüller) bölebilirsiniz. Daha sonra yeni değiştirilen ürünün havuzun bir alt kümesinde konuşlandırılmasını etkinleştirir ve dikkatle izlersiniz; Örneğin, trafiğin% 15'inde değişikliği etkinleştirmek için değişikliği hangi havuzun dağıtacağını bile seçebilirsiniz. "Güncelleme güncellemesi" adı verilen özelliği literatürde bulabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.