Bir PHP proje için I've been developing a workflow for practicing a mostly automated continuous deployment döngüsü. Strong> Bazı olası süreç hakkında geri bildirim ya da bu iş akışında teknik darboğazları, iyileştirme önerileri ve daha iyi kolaylığı otomatikleştirmek ve artırmak için nasıl fikirleri istiyorum Benim takım için kullanımı.
Core components:
Hudson
a> CI sunucusuGit
veGitHub
a>PHPUnit
a> ünite testleriSelenium RC
a>Sauce OnDemand
for automated, cross-browser, cloud testing withSelenium RC
Puppet
a> test sunucusu dağıtımları otomatikleştirmek içinGerrit
a> Git kod incelemesi içinGerrit Trigger
forHudson
EDIT: Ben tarafından dikkate ircmaxwell katkılarını almak için iş akışı grafiği değişti ettik: için PHPUnit
's kaldırma uzantısı Selenium RC
sadece bir parçası olarak bu testleri çalışan QC sahne; QC aşama eklenmesi; kod gözden sonra ancak birleştirmelerinin önce UI test hareketli; QC aşamasından sonra birleştirir hareket ettirilmesi; birleşmesinden sonra dağıtım hareketli.
Bu iş akışı grafik işlemini açıklar. Sorularım / düşünceleri / endişeleri izleyin.
My concerns / thoughts / questions:
Bu sistemi kullanarak genel zorluk.
Zaman tutulumu.
Zorluk istihdam
Gerrit
.Zorluk istihdam
Puppet
.Biz
Amazon EC2
örneklerini sonra dağıtma olacak. BizPuppet
ileDebian
paketleri kurma ve şimdiLinode
dilimleri dağıtma hakkında gidiyoruz, {[(3 üzerinde çalışan bir dağıtım için bir potansiyel var )]} {kırmak için [(5)]}? Bunun yerine bizimEC2
oluşturur ve üzerinde dağıtımları yapıyor olmalıdır dan olsun-go?Başka bir soru re:
EC2
vePuppet
. Biz de bir çözüm olarak Scalr kullanarak düşünüyoruz. Yalnız bunun içinPuppet
yükünü önlemek ve bunun yerine Scalr yatırım olarak çok mantıklı olur? Ben maliyeti hakkında burada bir ikincil (ha!) endişe var;Selenium
testler that çalışıyor olmamalı strong> sık sıkEC2
örnekleri 7/24 çalışıyor olacak kurmak, ama böyle bir şey için bir beş- dakika yapı,EC2
kullanımı bir saat için ödeme biraz fazla gibi görünüyor.Olası süreç birleştirmelerinin üzerinde darboğazları.
"A" taşınmış olabilir?
Credits: Bu iş akışının bölümleri vardır inspired by Digg's awesome post on continuous deployment. Yukarıda akışı grafik olduğunu inspired by the Android OS Project.