1. 程式人生 > >SVN版本管理與大型程式碼上線方案(9)

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出了問題,是開發的責任,而運維只負責伺服器的安全穩定,不宕機

特點及問題

  1. 釋出快,及時,隨時隨地就可以釋出程式碼
  2. 開發人員釋出的程式碼不經過測試人員,且使用者訪問頁面重新整理後頁面即改變,也可能重新整理瞬間程式在更新,導致無法訪問,對網站使用者的體驗比較差,如果開發寫錯了程式碼造成的影響就更大了,這是拿使用者作為測試的上線方案
  3. 網站中大概50%以上的故障是和開發程式程式碼有關係的。如:開發寫錯了一個迴圈程式碼,導致了死迴圈,此時大量使用者訪問這個程式,就能把伺服器拖垮
  4. 在中興公司網站出了問題一般是運維的責任(例如:伺服器宕機),但這種情況下,問題的原因大多可能是由開發人員程式碼引起的,這裡比較好的策略是開發專案負責制思想

 

中型企業程式碼上線

中型企業上線,一般是規範運維人員操作步驟,指定同一的上線操作指令碼,備份檔名稱,備份檔案路徑。使操作人性化,統一化,自動化。

大型企業程式碼上線

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組的程式碼會不一致