大家好澈圈,我是十一彬檀。
本篇內(nèi)容
本篇文章主要介紹持續(xù)化集成相關(guān)的術(shù)語,例如持續(xù)集成瞬女、持續(xù)交付窍帝、持續(xù)部署、持續(xù)測試诽偷。接下來我們進入正題坤学!
持續(xù)集成-CI
持續(xù)集成疯坤,Continuous integration,CI是其簡稱拥峦。
百度百科中這樣描述集成:集成(integration)就是一些孤立的事物或元素通過某種方式改變原有的分散狀態(tài)集中在一起贴膘,產(chǎn)生聯(lián)系,從而構(gòu)成一個有機整體的過程略号。
那持續(xù)集成大概大家都想到了刑峡,就是頻繁地(一天多次)集成;再詳細(xì)點玄柠,我們是對軟件做相關(guān)工作的突梦,我們的程序底層是代碼,因此我們要集成的對象就是代碼羽利,也就是說我們要頻繁地集成我們的代碼到主干宫患。
這么做的目的是為了盡早發(fā)現(xiàn)問題。怎么驗證有沒有問題呢这弧?每次集成都通過自動化的構(gòu)建,包括:編譯娃闲,發(fā)布,自動化測試來驗證匾浪。
來看個例子皇帮,拿插花來說,插花的最終目的不就是把已有的一朵朵的花兒經(jīng)過剪裁搭配出一瓶好看的藝術(shù)品嘛蛋辈,那我們來對比兩種插花方式:
第一種:我們根據(jù)自己的思路直接咔擦咔擦三下五除二的剪完属拾,然后一股腦的插到瓶中。
第二種:我們根據(jù)自己思路剪完一朵冷溶,插到瓶中渐白,觀察后繼續(xù)修剪第二多,然后再插入瓶中逞频,以此類推纯衍,逐步完成。
大家認(rèn)為這兩種哪個方式更容易做成我們想要的花束呢苗胀?答案不言而喻當(dāng)然是第二種托酸,很容易發(fā)現(xiàn)問題,另外即使出了問題我們也很好采取措施柒巫,進行修正(第一種全都已經(jīng)剪完了励堡,再調(diào)整可能就是個大工程了)。
插花這個過程與我們集成代碼最終成為一個可用的程序/產(chǎn)品的過程是不是很像堡掏?插花完成后我們通過觀察就可以看出哪里有問題应结,那代碼要怎么檢查錯誤呢?通過單元測試和構(gòu)建。
單元測試測試代碼是否正確鹅龄;而構(gòu)建是測試代碼是否可以組合且編譯通過揩慕,最終成為一個可用的產(chǎn)品/應(yīng)用。
總結(jié)下扮休,持續(xù)集成就是迎卤,頻繁地(一天多次)將個人研發(fā)的代碼部分集成到主干,然后自動構(gòu)建并進行單元測試的過程玷坠。目的是讓產(chǎn)品可以快速迭代蜗搔,同時還能保持高質(zhì)量。
持續(xù)交付
持續(xù)支付八堡,Continuous Delivery樟凄,CD是其簡稱。
讓軟件產(chǎn)品的產(chǎn)出過程在一個短周期內(nèi)完成兄渺,以保證軟件可以穩(wěn)定缝龄、持續(xù)的保持在隨時可以發(fā)布,這樣的一個過程我們稱之為持續(xù)交付挂谍。
持續(xù)交付意味著所有的變更都可以被部署到生產(chǎn)環(huán)境上叔壤,但是我們可以選擇不部署。
總結(jié)來說口叙,持續(xù)交付(CD)通常是指整個流程鏈炼绘,它自動監(jiān)測源代碼變更并通過構(gòu)建、測試庐扫、打包和相關(guān)操作運行它們以生成可部署的版本饭望。它的目標(biāo)在于讓軟件的構(gòu)建仗哨、測試與發(fā)布變得更快以及更頻繁形庭。這種方式可以減少軟件開發(fā)的成本與時間,減少風(fēng)險厌漂。
用下面這張圖大家可以清晰的看到持續(xù)集成萨醒、持續(xù)部署和持續(xù)支付他們之間的關(guān)系。
持續(xù)測試
持續(xù)測試是指在代碼通過持續(xù)構(gòu)建后執(zhí)行的自動化測試的實踐苇倡,包括單元測試富纸。這樣嚴(yán)格執(zhí)行的話其實對自動化覆蓋率的要求很高,如果達不到旨椒,則需要補充些集成測試晓褪、功能測試、驗收測試等相關(guān)測試综慎,其目的是為了保障每次發(fā)布的版本可以在生產(chǎn)環(huán)境上使用涣仿;另外持續(xù)測試在持續(xù)集成快速的原則基礎(chǔ)上,因此持續(xù)測試的第二個目標(biāo)是快速發(fā)現(xiàn)問題并提醒開發(fā)團隊。
持續(xù)部署
持續(xù)部署好港,Continuous Devlopment愉镰。
持續(xù)部署是指能夠自動提供發(fā)布版本給最終用戶,并且使其自動運行钧汹。根據(jù)用戶的安裝方式丈探,可以是在云環(huán)境中自動部署、app 升級(如手機上的應(yīng)用程序)拔莱、更新網(wǎng)站或只更新可用版本列表碗降。要注意的是,持續(xù)部署并不意味著始終部署交付成果到生產(chǎn)環(huán)境上去辨宠,它實際上指遗锣,所有的交付成果都是“可部署的”。
發(fā)布成果是否被部署可以通過人工決策嗤形,或利用在完全部署之前“試用”發(fā)布的等方法來進行控制精偿。那通常企業(yè)的做法是持續(xù)部署到測試環(huán)境或者預(yù)生產(chǎn)環(huán)境中去,等真正校驗無誤后再決定是否發(fā)布到生產(chǎn)環(huán)境赋兵。
好了笔咽,今天的內(nèi)容到此結(jié)束,CI霹期、CD你明白了嗎叶组?我們下期再見!Bye~历造。
下一篇:《持續(xù)化集成-02-jenkins》-介紹什么是jenkins甩十,以及它的特點,使用場景吭产。