SVN版本管理與大型程式碼上線方案(9)
二.搭建SVN伺服器
(1)安裝依賴包
yum -y install subversion
mkdir -p /application/svndata
mkdir -p /application/svnpasswd
編輯svn配置檔案
cp /application/svndata/yunjisuan/conf/authz /application/svnpasswd/
cp /application/svndata/yunjisuan/conf/passwd /application/svnpasswd/
啟動服務
passwd檔案及密碼設定
authz的授權
搭建SVN客戶端(windows)
svn客戶端在linux上的使用
鉤子指令碼測試
大中小型企業上線解決方案
小型公司程式碼上線方案(20臺伺服器以下)
小型企業,二十臺伺服器內由開發人員自己來程式碼上線。
這樣的優點:Web出了問題,是開發的責任,而運維只負責伺服器的安全穩定,不宕機
特點及問題
- 釋出快,及時,隨時隨地就可以釋出程式碼
- 開發人員釋出的程式碼不經過測試人員,且使用者訪問頁面重新整理後頁面即改變,也可能重新整理瞬間程式在更新,導致無法訪問,對網站使用者的體驗比較差,如果開發寫錯了程式碼造成的影響就更大了,這是拿使用者作為測試的上線方案
- 網站中大概50%以上的故障是和開發程式程式碼有關係的。如:開發寫錯了一個迴圈程式碼,導致了死迴圈,此時大量使用者訪問這個程式,就能把伺服器拖垮
-
在中興公司網站出了問題一般是運維的責任(例如:伺服器宕機),但這種情況下,問題的原因大多可能是由開發人員程式碼引起的,這裡比較好的策略是開發專案負責制思想
中型企業程式碼上線
中型企業上線,一般是規範運維人員操作步驟,指定同一的上線操作指令碼,備份檔名稱,備份檔案路徑。使操作人性化,統一化,自動化。
大型企業程式碼上線
IDC統一分發管理器向IDC正式環境程式碼上線時:
(1)如果WEB是PHP那麼就直接用ansible+rsync去推送,
(2)如果是tomcat那它的程式碼是java,那麼就要用A/B程式碼上線的方式(因為上線完成後需要肖紅新啟動web伺服器)
PHP:在上線的過程前每臺Web伺服器都會必須執行一個備份指令碼。(如:管理伺服器不是直接把資料推送到web伺服器的網頁目錄,而是推送到web伺服器的其它目錄(如:/root/www),之後再把原網頁目錄打包,進入/root/www目錄下,之後把/root/www中的資料覆蓋到原網頁目錄)
A/B分組程式碼上線
例如上圖
如果web伺服器共有100臺,都是tomcat,那麼可以把它100臺分為A組:50臺,B組:50臺,可以先把A組伺服器從交換機上拔下來,插入到連線IDC測試的交換機上,B組來提供服務,然後通過IDC測試伺服器對A組進行測試,如果沒有問題那麼再把它插回去,把B組的連線交換機的線拔下來連線到測試伺服器。如果沒有問題,再把B組的線再插回去。這樣就完成了程式碼上線,並且不會影響使用者。
A/B分組上線注意的問題
全部伺服器能分成2組(A、B組),但是不能分成3組。
如果分成3組,那麼A組上線(上線的過程中是需要去掉伺服器組中的A組)完成,在上線B的過程中,A組的程式碼和C組的程式碼會不一致