1. Devops介紹
DevOps 是一個(gè)完整的面向IT運(yùn)維的工作流,以 IT 自動(dòng)化以及持續(xù)集成(CI)局蚀、持續(xù)部署(CD)為基礎(chǔ)彻桃,來(lái)優(yōu)化程式開(kāi)發(fā)、測(cè)試澎媒、系統(tǒng)運(yùn)維等所有環(huán)節(jié)搞乏。
開(kāi)發(fā) development
運(yùn)維 operatio
1.1 Devops能干嘛
提高產(chǎn)品質(zhì)量
1 自動(dòng)化測(cè)試
2 持續(xù)集成
3 代碼質(zhì)量管理工具
4 程序員鼓勵(lì)師
1.2 Devops如何實(shí)現(xiàn)
設(shè)計(jì)架構(gòu)規(guī)劃‐代碼的存儲(chǔ)‐構(gòu)建‐測(cè)試、預(yù)生產(chǎn)戒努、部署请敦、監(jiān)控
2. Git版本控制系統(tǒng)
2.1 版本控制系統(tǒng)簡(jiǎn)介
vcs version control system
版本控制系統(tǒng)是一種記錄一個(gè)或若干個(gè)文件內(nèi)容變化镐躲,以便將來(lái)查閱特定版本內(nèi)容情況的系統(tǒng)
記錄文件的所有歷史變化
隨時(shí)可恢復(fù)到任何一個(gè)歷史狀態(tài)
多人協(xié)作開(kāi)發(fā)
2.2 Git的功能特性:
從一般開(kāi)發(fā)者的角度來(lái)看,git有以下功能:
1侍筛、從服務(wù)器上克隆完整的Git倉(cāng)庫(kù)(包括代碼和版本信息)到單機(jī)上萤皂。
2、在自己的機(jī)器上根據(jù)不同的開(kāi)發(fā)目的匣椰,創(chuàng)建分支裆熙,修改代碼。
3禽笑、在單機(jī)上自己創(chuàng)建的分支上提交代碼入录。
4、在單機(jī)上合并分支佳镜。
5僚稿、把服務(wù)器上最新版的代碼fetch下來(lái),然后跟自己的主分支合并蟀伸。
6贫奠、生成補(bǔ)丁(patch),把補(bǔ)丁發(fā)送給主開(kāi)發(fā)者望蜡。
7唤崭、看主開(kāi)發(fā)者的反饋,如果主開(kāi)發(fā)者發(fā)現(xiàn)兩個(gè)一般開(kāi)發(fā)者之間有沖突(他們之間可以合作解決的沖突)脖律,就會(huì)要求他們先解決沖突谢肾,然后再由其中一個(gè)人提交。如果主開(kāi)發(fā)者可以自己解決小泉,或者沒(méi)有沖突芦疏,就通過(guò)。
8微姊、一般開(kāi)發(fā)者之間解決沖突的方法酸茴,開(kāi)發(fā)者之間可以使用pull 命令解決沖突,解決完沖突之后再向主開(kāi)發(fā)者提交補(bǔ)丁兢交。
從主開(kāi)發(fā)者的角度(假設(shè)主開(kāi)發(fā)者不用開(kāi)發(fā)代碼)看薪捍,git有以下功能:
1、查看郵件或者通過(guò)其它方式查看一般開(kāi)發(fā)者的提交狀態(tài)配喳。
2酪穿、打上補(bǔ)丁,解決沖突(可以自己解決晴裹,也可以要求開(kāi)發(fā)者之間解決以后再重新提交被济,如果是開(kāi)源項(xiàng)目,還要決定哪些補(bǔ)丁有用涧团,哪些不用)只磷。
3经磅、向公共服務(wù)器提交結(jié)果,然后通知所有開(kāi)發(fā)人員钮追。
優(yōu)點(diǎn):
適合分布式開(kāi)發(fā)馋贤,強(qiáng)調(diào)個(gè)體。
公共服務(wù)器壓力和數(shù)據(jù)量都不會(huì)太大畏陕。
速度快配乓、靈活。
任意兩個(gè)開(kāi)發(fā)者之間可以很容易的解決沖突惠毁。
離線工作犹芹。
缺點(diǎn):
資料少(起碼中文資料很少)。
學(xué)習(xí)周期相對(duì)而言比較長(zhǎng)鞠绰。
不符合常規(guī)思維腰埂。
代碼保密性差,一旦開(kāi)發(fā)者把整個(gè)庫(kù)克隆下來(lái)就可以完全公開(kāi)所有代碼和版本信息蜈膨。
2.3 常見(jiàn)版本管理工具
SVN
集中式的版本控制系統(tǒng)屿笼,只有一個(gè)中央數(shù)據(jù)倉(cāng)庫(kù),如果中央數(shù)據(jù)倉(cāng)庫(kù)掛了或者不可訪問(wèn)翁巍,所有的使用者無(wú)法使用SVN驴一,無(wú)
法進(jìn)行提交或備份文件