SORU
10 NİSAN 2011, Pazar


Sürekli entegrasyon işleme birden fazla Şubesi

Aynı zamanda çalıştığım şirkette ve ölçekleme CI sorunu CI ve birden fazla Şubesi gelince hangisini anlamaya uğraşıyorum. Stackoverflow benzer bir soru, Multiple feature branches and continuous integration var. Tartışma daha almak istiyorum çünkü yeni bir tane başladım ve söz konusu bazı analizler.

2 ana yaklaşım ben orada öğrendim ki, şimdiye kadar (veya belki de bazı Diğerleri???).

Eğer Jenkins için özel takım (API veya shellscripts falan?) ihtiyacım var kendi özel şubelerini için CI ile geliştiriciler sağlamak için istiyorsam öyle görünüyor ve ölçekleme kolu. Ya da onları daha sık DEV birleştirme ve özel dallara CI olmadan yaşamak söyleyebilirim. Sen olsan hangisini alırdın yoksa başka seçenekler de var mı?

CEVAP
19 NİSAN 2011, Salı


CI Ölçekleme hakkında konuşurken gerçekten CI kullanımı ana hat ile birlikte Tüm özellik dalları işlemek için sunucu Ölçekleme bahsediyorsun. Başlangıçta bu CI işleri içeren bir şube geliştiriciler otomatik test tüm avantajlardan kadar iyi bir yaklaşım gibi görünüyor. Ancak, sorunları CI server işlerini yönetme keşfettim gibi) çalıştırmak ve daha da önemlisi, gerçekten CI yapmıyorlar. Evet, CI sunucusu kullanarak, ancak sürekli geliştiriciler tüm kod entegre değildir.

Gerçek Cİ senin yerine geliştiriciler her düzenli hat işlemek anlamına gelir. Söylemek kolay, ama zor kısmı uygulama bozmadan yapıyor. Ben çok Continuous Delivery, özellikle bakmanı tavsiye ederimUygulamanız Tutmak AçıklanabilirbölümündeBölüm 13: Yönetme Bileşenleri ve Bağımlılıkları. Ana noktaları şunlardır:

  • Tamamlanana kadar yeni işlevler (A. K. A Feature Toggles) gizlemek.
  • Tüm değişiklikleri kademeli olarak her yayınlanabilir küçük değişiklikler, bir dizi.
  • Soyutlama tarafından şube bulunanla ölçekli büyük değişiklikler yapmak için kullanın.
  • Bileşenleri farklı oranlarda değişiklik uygulamanızın parçalarını ayrıştır için kullanın.

Soyutlama ile şube dışında kendi kendini açıklayıcı olmaları güzel. Bu sadece bir fantezi terim için:

  1. Değiştirmek için gereken sistemin parçası üzerinde bir soyutlama oluşturun.
  2. Sistemin geri kalanı soyutlama katmanı kullanmak için yeniden Düzenle.
  3. Tamamlanana kadar üretim kodu yolunun bir parçası olan yeni bir uygulama oluşturun.
  4. Soyutlama katmanı yeni uygulama için temsilci güncelleştirin.
  5. Eski uygulamasını kaldırın.
  6. Eğer artık uygun değilse soyutlama katmanı kaldırın.

Aşağıdaki paragrafDallar, Dereler, ve Sürekli EntegrasyonbölümündeBölüm 14: Gelişmiş Sürümü Kontrolözetler etkileri.

Artan yaklaşım kesinlikle daha fazla disiplin ve bakımı - ve aslında daha fazla yaratıcılık - şube oluşturma ve gung-ho yeniden mimarinin hızla dalmak ve yeni işlevler geliştirme daha gerektirir. Ama önemli ölçüde değişiklikler riskini uygulama kırma azaltır, ve sizin ve ekibinizin zaman birleştirme, kırılmaları tamir ve konuşlandırılabilir bir duruma uygulamanız almanın büyük bir tasarruf edecek.

Tam bir zihin kayması özelliği şubeleri vazgeçmek alır ve her zaman direniş olacaktır. Benim durumumda bu direnç geliştiriciler ana hat güvenli işlemekle kod duygu dayanmaktadır ve bu makul bir endişe kaynağıdır. Bu da genellikle bilgi, teknikler yukarıda listelenen güven ya da deneyim ve muhtemelen Özgüven eksikliği ile otomatik testler ile eksikliğinden kaynaklanıyor. Eski eğitim ve geliştirici desteği ile çözülebilir. İkincisi çok daha zor bir iş ile başa çıkmak için bir sorun, ancak dallanma herhangi bir ekstra güvenliği sağlamak değil, sadece geliştiriciler kendi kod ile yeterince emin hissediyorum kadar sorun erteledi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • sknbp

    sknbp

    16 Kasım 2006
  • Utah Valley Online

    Utah Valley

    9 AĞUSTOS 2010