自動(dòng)化部署代碼實(shí)踐重點(diǎn)_第1頁
自動(dòng)化部署代碼實(shí)踐重點(diǎn)_第2頁
自動(dòng)化部署代碼實(shí)踐重點(diǎn)_第3頁
自動(dòng)化部署代碼實(shí)踐重點(diǎn)_第4頁
自動(dòng)化部署代碼實(shí)踐重點(diǎn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、自動(dòng)化部署代碼實(shí)踐早期手動(dòng)部署代碼1. 純手動(dòng)scp上傳代碼。2. 純手動(dòng)登陸,git pull 或者svn update。3. 純手動(dòng)xftp上傳代碼。4. 開發(fā)發(fā)送壓縮包,rz上傳,解壓部署代碼。缺點(diǎn):1. 全程運(yùn)維參與,占用大量時(shí)間。2. 如果節(jié)點(diǎn)多,上線速度慢。3. 人為失誤多,目錄管理混亂。4. 回滾不及時(shí),或者難以回退。設(shè)計(jì)自動(dòng)部署代碼流程設(shè)計(jì),確定目標(biāo)。1、自動(dòng)部署環(huán)境1)開發(fā)環(huán)境開發(fā)者本地有自己的環(huán)境,運(yùn)維配置公共開發(fā)環(huán)境,大家可共用的服務(wù)。例如:開發(fā)數(shù)據(jù)庫(kù)MySQL,redis,Memcached等。2)測(cè)試環(huán)境功能測(cè)試以及性能測(cè)試。3)預(yù)生產(chǎn)環(huán)境生產(chǎn)環(huán)境集群中的某一個(gè)節(jié)

2、點(diǎn),并且連接生產(chǎn)庫(kù)。(不對(duì)外,不做破壞型操作。)4)灰度環(huán)境根據(jù)不同的區(qū)域進(jìn)行劃分分。(生產(chǎn)環(huán)境)5)生產(chǎn)環(huán)境對(duì)用戶提供服務(wù)的環(huán)境。預(yù)生產(chǎn)環(huán)境由來:a. 數(shù)據(jù)庫(kù)不一致,測(cè)試環(huán)境和生產(chǎn)環(huán)境數(shù)據(jù)庫(kù)是不一樣的。b. 使用生產(chǎn)環(huán)境的聯(lián)調(diào)接口;例如:支付接口。(電商業(yè)務(wù))2、自動(dòng)部署規(guī)劃· 已經(jīng)有一個(gè)可以上線的代碼在git倉(cāng)庫(kù)。· 我們現(xiàn)在要做10個(gè)集群節(jié)點(diǎn)的一鍵部署,秒級(jí)回滾。· 所有的web服務(wù),都應(yīng)該使用普通用戶。(強(qiáng)烈建議)· 所有的web服務(wù)都不應(yīng)該監(jiān)聽80端口,除了負(fù)載均衡。· 那我們?nèi)绾卧O(shè)計(jì)一套生產(chǎn)自動(dòng)化部署系統(tǒng)。a. 規(guī)劃。b. 實(shí)現(xiàn)。&

3、#160;c. 總結(jié)和擴(kuò)展。(PDCA方法論) d. 生產(chǎn)環(huán)境應(yīng)用。實(shí)現(xiàn)思路:1)代碼放置位置Git(首先)、Svn2)獲取最新代碼· 獲取最新分支· 獲取版本號(hào)· 獲取tag包3)差異解決· 各個(gè)節(jié)點(diǎn)之間差異· 代碼倉(cāng)庫(kù)和實(shí)際的差異。配置文件是否放在代碼倉(cāng)庫(kù)中。(配置單獨(dú)進(jìn)行存放,config.example )短信接口,支付,等敏感信息不讓所有開發(fā)知道· 統(tǒng)一的.集群有10個(gè)節(jié)點(diǎn)。(Job節(jié)點(diǎn) crontab.xml 配置文件不一樣)4)項(xiàng)目名稱如何設(shè)計(jì)項(xiàng)目名稱_環(huán)境名稱_版本_分支_時(shí)間_某開發(fā)提交測(cè)試: rainbo

4、w_test_v1.1.1_dev_2016-08-11_12:12_xuliangwei生產(chǎn):rainbow_pro_v1.1.1_master_2016-08-11_11:11_xuliangwei5)如何更新php,tomcat需要重啟,重新軟鏈接。6)如何測(cè)試· 測(cè)試(關(guān)鍵的頁面,API,后臺(tái)等)· 測(cè)試一個(gè)預(yù)生產(chǎn)環(huán)境,通過則繼續(xù)部署,如果失敗,退出部署操作。7)記錄日志· 可以部署統(tǒng)計(jì)。· 成功多少次。· 失敗多少次。· 回滾多少次。8)多人同時(shí)執(zhí)行腳本防止多人操作導(dǎo)致重復(fù)上線失敗。通過lock鎖對(duì)文件進(jìn)行控制。9)串行,并

5、行機(jī)器少的情況串行感覺不出什么。如果機(jī)器過多則會(huì)很慢。分組部署并行部署,以及分組測(cè)試。測(cè)試一個(gè)預(yù)生產(chǎn)環(huán)境,通過則繼續(xù)部署,如果失敗,退出部署操作。10)部署服務(wù)器雙機(jī)防止部署系統(tǒng)down機(jī),部署機(jī)代碼丟失,誤操作。11)如何執(zhí)行。· shell執(zhí)行· web界面點(diǎn)擊(自定義或jenkins)12)如何實(shí)現(xiàn)正?;赝?,以及緊急回退(回滾的必要性)通過軟鏈接的方式來實(shí)現(xiàn)代碼秒級(jí)別回退。3、自動(dòng)部署難點(diǎn)在大公司推進(jìn)自動(dòng)化部署上線,是有許多的難點(diǎn),根據(jù)個(gè)人公司的不同,來選擇不同的方法來進(jìn)行推進(jìn)。自動(dòng)化推進(jìn)難點(diǎn):a. 能力(個(gè)人能力,團(tuán)隊(duì)能力)b. 責(zé)任(責(zé)任能否承擔(dān),敢于承擔(dān)責(zé)任)c

6、. 公司流程、人員、組織架構(gòu)??赏ㄟ^如下方法推進(jìn):a. 目標(biāo)化溝通。b. 責(zé)任劃分 c. ITILd. 項(xiàng)目管理:PMBOOK自動(dòng)部署實(shí)踐整個(gè)集群自動(dòng)化部署流程設(shè)計(jì)如下:可根據(jù)如下思路,結(jié)合公司實(shí)際業(yè)務(wù)來編寫shell腳本或者Python。 1. 獲取最新代碼2. 編譯(可選)3. 配置文件(軟連接或者拷貝)。4. 打包(tar,加速傳輸)5. 文件分發(fā)(Scp Rsync Salt)(不需要密碼驗(yàn)證)6. 將目標(biāo)服務(wù)器移除集群(注釋配置文件)7. 解壓8. 防止webroot站點(diǎn)目錄9. scp差異文件(可能有一個(gè)節(jié)點(diǎn)配置文件不一樣)10. 重啟Web服務(wù)11. 測(cè)試正常回退實(shí)踐1

7、. 列出回滾版本 2. 目標(biāo)服務(wù)器移除集群 3. 執(zhí)行回滾 4. 重啟并測(cè)試 5. 加入集群緊急回退實(shí)踐1. 列出回滾版本(ls -l或find查出對(duì)應(yīng)的歷史版本)。 2. 執(zhí)行回滾操作(刪除軟鏈接,重建軟鏈接)。 3. 重啟對(duì)應(yīng)服務(wù)。自動(dòng)部署采坑自動(dòng)化部署php環(huán)境或者java環(huán)境的過程中,那么你一定遇到了如下的問題。1. 如何應(yīng)用到你的生產(chǎn)環(huán)境。2. 回退到“上一個(gè)”“正常”版本。3. 自動(dòng)部署軟連接的坑。a. PHP如果開啟Opcache,需要重啟PHP,或者清理opcacheb. Java Tomcat是必須要重啟,最好每次清

8、理work,tmp緩存目錄。二、自動(dòng)化系統(tǒng)構(gòu)建實(shí)踐環(huán)境準(zhǔn)備首先在執(zhí)行腳本前,先做好初始化環(huán)境,最好是通過saltstack來完成。我這里沒有那么多機(jī)器,就先用兩臺(tái)演示。linux-node1 01linux-node2 021、創(chuàng)建普通用戶useradd xuliangweipasswd xuliangwei2、配置密鑰3、創(chuàng)建相關(guān)目錄4、配置Nginx5.配置好git環(huán)境· centos7部署gitlab · 克隆項(xiàng)目· 最終效果如下:剖析腳本查看腳本,具體配和第一部分來解讀:執(zhí)行上線: 查看當(dāng)前版本執(zhí)行回滾操作查看日志:腳本其他功能當(dāng)然此腳本功能不僅僅如此,可以通過git分支,git tag包等方式來上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論