由于從事的工作領(lǐng)域關(guān)系,目前會或多或少的關(guān)注DevOps課題的相關(guān)領(lǐng)域,當然目前還在嘗試多種適應(yīng)于持續(xù)開發(fā)持續(xù)集成領(lǐng)域的工具和組合方式,個人粗淺的領(lǐng)會是DevOPS其實既不會只是開發(fā)者需要關(guān)注的,也是運維人員應(yīng)該關(guān)注的領(lǐng)域,因為未來的IT世界其實是個"相對混合"的空間,發(fā)展之快超出想象;在開發(fā)測試領(lǐng)域的工具上看,Chef/Puppet/PowerShell DSC,到開源領(lǐng)域廣泛應(yīng)用Salt Stack, Ansible到 Docker生態(tài)圈等封裝一系列基礎(chǔ)架構(gòu)即代碼等概念的涌現(xiàn),無時不刻的不在提醒我們演進背后的力量的本質(zhì),是業(yè)務(wù)對IT系統(tǒng)的能力持續(xù)提高,舉例來說需要通過持續(xù)開發(fā),持續(xù)集成的方式實現(xiàn)應(yīng)用功能,代碼迭代更新敏捷性的快速提升;為了實現(xiàn)這些目的,大量的互聯(lián)網(wǎng)公司已經(jīng)開始率先進行了實踐,當然不一定是全棧的實踐;但是至少在某些領(lǐng)域已經(jīng)積累了大量的經(jīng)驗,并且開始向下一個拆分大的應(yīng)用結(jié)構(gòu)到細微Restful API結(jié)構(gòu),獨立運維和擴展,并且通過網(wǎng)關(guān)集群來交付的微服務(wù)結(jié)構(gòu);在這樣大的領(lǐng)域變革激蕩的演化過程中,對于開發(fā)運維環(huán)境的改變不能原地踏步,逆水行舟不進則退;如果現(xiàn)在還僅僅滿足于點幾下鼠標或者期望在復(fù)雜的IT系統(tǒng)中探索標準化IT服務(wù),顯然有些落伍;這可能不是"生存"或是"毀滅"的問題,這是一個博弈才有機會參與的時代,所以愿意或者不愿意,身為IT從業(yè)者可能都不得不去開始探索和學(xué)習(xí)的。最初的持續(xù)開發(fā)和集成的實踐,我覺得先要從工具選擇上開始;要想做到高度自動化必須從大道至簡的原則出發(fā),開發(fā),過渡環(huán)境及生產(chǎn)環(huán)境的產(chǎn)生和變更,可以根據(jù)代碼Build版本控制變更或初始化觸發(fā)的發(fā)布流程,輔以一套參數(shù)化結(jié)構(gòu)通過簡單聲明式的封裝(類似開源領(lǐng)域的yml文件,PowerShel DSC的配置文件,亦或是Azure中的ARM模板,亦或是Dockerfile當然也可能是Chef 的菜單rb配置),通過標準化的Provider驅(qū)動對于配置的跨環(huán)境標準化執(zhí)行流程;一個持續(xù)集成的雛形就出來了;逐步到上層結(jié)構(gòu)輔以審批,資源注冊,生命周期管理及跟蹤等,那么一個較為豐富的開發(fā)測試DevOps技術(shù)工具棧逐漸補全了;最后就是從應(yīng)用開發(fā)端逐漸向微服務(wù)架構(gòu)設(shè)計演進的過程;最終需要實現(xiàn)的效果自然是將持續(xù)開發(fā),持續(xù)集成;適應(yīng)業(yè)務(wù)快速的擴展和功能的迭代,減少由于基礎(chǔ)結(jié)構(gòu)性是失卻,配置變更不到位或者大規(guī)模的回歸性測試造成的整體回滾等一系列問題引發(fā)的對業(yè)務(wù)端的拖累和影響;所以其實挑戰(zhàn)也是機遇,為什么曾經(jīng)一度淘寶業(yè)務(wù)系統(tǒng)蓬勃發(fā)展也帶動了的各路“花名在冊”的大神風(fēng)起云涌,為啥現(xiàn)在開源時代又造就了那么多的大師?為啥現(xiàn)在身為一個IT的運維人員推崇卻是Python等語言和框架?這一切背后的力量作為從業(yè)者感受到了嗎?如果是,那么勇敢的人總會有機會嘗試并最終站在結(jié)構(gòu)性的高峰的,總之,我信了...
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),牙克石企業(yè)網(wǎng)站建設(shè),牙克石品牌網(wǎng)站建設(shè),網(wǎng)站定制,牙克石網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,牙克石網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。言歸正傳,這里以Azure國際版為例;試圖描摹一個簡單的持續(xù)集成的過程實踐,該過程將從本地Git或GitHUB源代碼控制和存儲庫工具持續(xù)集成Web應(yīng)用發(fā)布更新到Azure中,當然利用Azure也可以在生產(chǎn)和過渡環(huán)境切換回滾;需要說明的是Azure公有云發(fā)展非常迅速,除了這里所用到的網(wǎng)站應(yīng)用以外,對于移動應(yīng)用,API應(yīng)用甚至是微服務(wù)邏輯應(yīng)用均可以借助微軟的App Service與包括上述Git源碼控制庫之外的如Codeplex,TFS,Bitbucket等集成。
步驟1,在本地完成
首先,我們先要確保本地的Git環(huán)境已經(jīng)可用,根據(jù)你的系統(tǒng)是Windows還是MAC的選擇相應(yīng)的Git客戶端。
接下來,打開本地的Git環(huán)境,Windows的可以直接用GitBash
創(chuàng)建我們的測試WEB項目目錄,進入并初始化本地Git庫,
cd C:\Users\shzhai.FAREAST\Documents\GitHub\TestWebCIRepo
git init
我們的項目做個最簡單的就好,力求只是為了測試代碼發(fā)布和持續(xù)集成過程,所以這里我們先在項目里創(chuàng)建一個默認靜態(tài)頁面,
echo "My Demo page!" > .\index.html
現(xiàn)在添加頁面到本地的Git庫中,
git add .\index.html
我們提交改變并添加注釋到本地庫,
git commit -m "Add the first static page to local repo!"
步驟2,在Azure端設(shè)置Web應(yīng)用庫
首先,我們在Azure國際版的新門戶中,添加一個Web應(yīng)用MyCIWebDemo;
選擇持續(xù)集成,選擇源為本地Git存儲庫,
接下來設(shè)置需要持續(xù)部署的用戶憑據(jù),
步驟3,現(xiàn)在開始部署本地的測試項目到Azure Web應(yīng)用;
首先在部署區(qū)域,我們還沒有看到本地Git庫的部署;
接下來,我們選擇Web應(yīng)用屬性或點選部署,進入到屬性設(shè)置選擇Azure的遠程Git部署URL,
我們現(xiàn)在來到本地Git控制臺,添加剛剛復(fù)制的Azure遠程Git URL并制定遠程Git連接名為Azure;
git remote add azure https://shawnzhai@myciwebdemo.scm.azurewebsites.net:443/MyCIWebDemo.git
接下來我們把本地的master版本代碼推送到Azure遠程Git端,輸入我們之前設(shè)置的用戶部署憑據(jù);
git push azure master
我們可以在Azure的Web應(yīng)用的部署中看到剛剛推送的部署;
點擊部署鏈接,我們就可以看到剛剛部署的靜態(tài)頁面顯示了;
現(xiàn)在我們在本地項目目錄修改靜態(tài)頁面;
echo "
git add index.html
git commit -m "Check in New Page"
git push azure master
再次來到Web頁面查看,Dida,已經(jīng)改變過來了;實際環(huán)境集成會增加部署槽進行過渡測試;這個部分我們將再另文介紹;
最后,我們再體驗一下通過Azure Web應(yīng)用與GitHub而不是本地Git庫的持續(xù)集成;如果不僅僅是本地開發(fā)項目,而是團隊協(xié)作的項目版本發(fā)布到GitHub上,持續(xù)集成的好處是協(xié)作項目無論誰最終做的更新操作,那么只是與GitHub庫中最新的項目版本集成發(fā)布到Azure云中。
首先將代碼托管到GitHub中,
接下來我們需要在Azure Web應(yīng)用持續(xù)集成端選擇GitHub;
選擇授權(quán),并重定向到Github允許Azure的到Github的代理授權(quán)訪問;接下來選擇GitHub組織用于項目選擇;
接下來選擇需要部署的GitHub項目和分支設(shè)置;
當我們確認之后,可以在通知區(qū)域看到部署過程;Azure將從GitHub項目分支中Checkout并進行部署;
查看部署效果并驗證;
結(jié)語,其實開發(fā)測試環(huán)境持續(xù)集成是個非常大的課題,涉及到人,流程,工具等一系列內(nèi)容;本文這里只是探索了冰山一角,但是工欲善其事必先利其器,Azure公有云結(jié)構(gòu)在設(shè)計時就充分考慮到對持續(xù)開發(fā)集成,部署等一系列相關(guān)問題,在工具端力求兼容與盡善盡美;讓我們繼續(xù)慢慢探索吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。