Dosyalar üretime nasıl aktarılır?


9

Mevcut bir kod tabanına sahip oldukça büyük bir web sitesinde çalışmaya başlayan bir grubuz. Bir testimiz ve bir üretim sunucumuz var.

Bizim fikrimiz, bir dizi geliştiricinin anında erişime sahip olduğu bir test havuzuna sahip olmaktır; ve sadece birkaçının zorlayabileceği mübarek bir depo. Mübarek repo her zaman istikrarlı ve en son üretim versiyonunu temsil ediyor.

Dosyaların üretime aktarılması sürecini nasıl otomatik hale getirebilirim? Üretim dosyalarının sürüm kontrolü altında olması kötü mü? Bu şekilde kutsanmış depoya gitmek, konuşlandırma anlamına gelir. Ancak, birleşme çatışmaları olduğunda ne olur? Üretim sunucusu çözülünceye kadar kesilecek mi?

Yanıtlar:


7

Basitleştirmek gerekirse:
İtme işlemi kendi içinde tamamen otomatik olmalıdır. İster özel bir komut dosyanız olsun, ya da sadece "mübarek" depodan üretim ortamına çekin. Bu sana bağlı. Otomatikleştirilmiş bir şeye sahip olmalısınız, çünkü otomatik işlemler güvenilir hale getirilebilir (dosyaları elle yüklemenin aksine).

Ancak, itme işlemi manuel olarak tetiklenmelidir. Güncellemelerinizi zorlarsınız ve bir kez güvende hissettiğinizde, bunu bir sürüm adayı olarak etiketlersiniz ve test ortamınıza çekersiniz (ideal olarak üretim ortamınıza olabildiğince benzer olacaktır). RC test edildikten sonra, itme başlatılabilir.
Bugün itibariyle, başka hiçbir şey size, insan testçilerin neler verebileceğini vermiyor.

Geri bildirim döngüsü nispeten büyük olduğu için bu biraz yavaş geliyor. Ancak doğru test için, daha sonra 24-48 saat (veya projenin boyutuna bağlı olarak daha fazla) için incelenen sabit bir anlık görüntü almak önemlidir. Bunun tersi, ittikten hemen sonra çok fazla hata bulduğunuz ve yeni hatalar getiren bazı hızlı düzeltmelerle düzeltmeye çalıştığınız bir senaryodur.
Bilinen hataları (kabul edilebilir şiddeti olan), bilinmeyen hataları (şiddeti bilinmeyen) olanları serbest bırakmanız daha iyi olur.


Üretim sunucusunda bir repo olması sorun değil mi? Otomasyon dediğimde, üretim sunucusunda repo olmaması durumunda (başka bir deyişle, test ve kutsanmış depolar olurdu , ancak üretim değil ) demek istedim . Tabii ki, insan testi otomatik hale getirilemez, peşinde olduğum şey bu değil.
Tamás Szelei

1
@ Tamás: Demek istediğin buysa (apache (veya başka bir iyi web sunucusu) git ile ilgili dosyaların dışarıdan erişilememesini kolaylaştırırsa, sunucunuzdaki kutsanmış repoyu yerel olarak kontrol etmek uygun olabilir. Ancak kolayca bir "ihracat" yapabilirsiniz . Web kökünüzde oraya ait olmayan dosyalara sahip olmanın hiçbir anlamı yoktur.
back2dos

Hata -... Peki onlar ise bilinmeyen şiddeti bilinmeyen böcek ... ne tam olarak bilemez bilinmeyen ?
Spoike

@Spoike Ben back2dos sadece test edilmemiş "hızlı n kirli" düzeltmeleri olmayan sabit sürümleri kullanarak test iyice savunuyor düşünüyorum.
Max

@Spoike: 24-48 saat içinde bilinmeyen birçok hatayı bilinen hatalara dönüştürebilirsiniz. Ayrıca 5 dakika içinde, bilinen bir hatayı birçok bilinmeyen hataya dönüştürebilirsiniz. Buna hızlı düzeltme denir.
back2dos

2

Konuşlandırma hakkında Capistrano'nun nasıl çalıştığına bakarak çok şey öğrendim. O sırada RoR ile çalışıyordum, bu yüzden mantıklı bir seçimdi ve üzerinde çalıştığım proje için hiçbir zaman tam olarak davranamamış olsam da, otomatik güncellemeleri gerçekleştirme şekli çok yararlı oldu.

Doğrudan bile kullanabileceğiniz bir durumda olabilirsiniz - Rails'e bağlı olmak zorunda değildir - ancak değilse, davranış şekli kesinlikle yararlıdır.


1

Hangi platformu kullandığınıza bağlı olarak, üretim sürümlerini otomatikleştirmek için kullanmanız mantıklı olabilecek birçok araç vardır. Bir .NET dükkanında çalışıyorum bu yüzden NAnt kullanıyorum (MSBuild günümüzde daha iyi bir seçenek olmasına rağmen). Java Ant ve muhtemelen başka şeyler var. Ruby'de Rake gibi şeyler var. Ayrıca TeamCity ve Hudson gibi sürümleri yönetmek için de kullanılabilecek sürekli entegrasyon platformları var.

Prod kodunu doğrudan ayrı bir kaynak kontrol deposunda görmedim veya duymadım ama bu kesinlikle işe yarayabilir. Back2dos'un dediği gibi, anahtar otomatikleştirmektir. Kaynak kontrollerimizden, derlemeden ve test için hazırlama ortamına itmek için tasarlanmış derleme komut dosyalarımız mevcuttur. Ardından, evrelemenin nasıl çalıştığını sevdiğimizde, komut dosyaları KG'den Ürün'e kopyalar.

Benim tavsiyem, buradaki araçlara bakmak ve bir tane seçmek ve sonra seçilen araçla iyi çalışacak bir süreç tasarlamak. Tekerleği çok fazla yeniden icat etmeye çalışmayın - bu çok çözülmüş bir sorundur.

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.