內(nèi)容摘要:DevOps這個詞大家聽過嗎沟启?核心意思就是開發(fā)與運維忆家,對于一個軟件公司,系統(tǒng)開發(fā)完交付后就是運維團隊的事情了美浦,實踐運維過程中弦赖,會出問多問題,運維就把問題反饋給開發(fā)浦辨,開發(fā)一看這么低級的問題啊蹬竖,是你們沒用好啊沼沈,然后兩者互相看不慣,就會出現(xiàn)很多協(xié)作上的問題币厕。往往一次更新列另,就會給運維代來很大麻煩,特別是大系統(tǒng)旦装,服務(wù)不能停啊页衙,很多時候就是能不改就不改,系統(tǒng)帶病運行阴绢,系統(tǒng)越大問題越多店乐,這時候一種新的軟件工程理念就出來了,敏捷式開發(fā)呻袭,接下來逐漸有了很多工具眨八,然后就出現(xiàn)了DevOps的理念和一大批配套技術(shù)。
1左电、什么是DevOps廉侧?
關(guān)于什么是DevOps其實沒有一個嚴格的定義。我個人認為DevOps更強調(diào)一種理念/概念(圖1)篓足,與之配套的是一套生態(tài)工具段誊。涉及到軟件開發(fā)到運維整個過程。最開始應(yīng)該是互聯(lián)網(wǎng)的發(fā)展栈拖,用戶需求也在不斷變化埋心,傳統(tǒng)軟件開發(fā)很難跟上需求變更卦睹。
從此,一些大公司牽頭,逐漸去針對運維和部署過程開發(fā)自動化工具涛漂,DevOps理念逐漸清晰溢豆,各種工具應(yīng)運而生吨岭。
傳統(tǒng)軟件工程模燥,強調(diào)在編碼之前,先調(diào)研需求锻弓,開始概要設(shè)計砾赔、詳細設(shè)計,軟件出來之后還要進行測試青灼,最后才能交付用戶(這也叫瀑布式開發(fā))暴心。這種過程看上去沒什么問題,但是實際操作上過于繁瑣杂拨,一個軟件嚴格按照這套流程開發(fā)完专普,一年半載過去了,這時市場機會已經(jīng)沒有了弹沽,軟件開發(fā)完檀夹,即被淘汰筋粗。
而現(xiàn)代化軟件開發(fā)更強調(diào)敏捷,針對某一個功能點炸渡,快速實現(xiàn)并交付用戶(據(jù)說國內(nèi)為手機開發(fā)原則:只要發(fā)現(xiàn)友商有新功能娜亿,開發(fā)部要在一天之內(nèi)拿出應(yīng)對方案)。俗話說:天下武功蚌堵,唯快不破*买决,在很多行業(yè)也是如此。
DevOps把寫完代碼后的測試吼畏、集成督赤、部署和運維過程,都實現(xiàn)自動化宫仗,與之配套的基礎(chǔ)設(shè)施只要支持這種模式够挂,那就能讓你團隊的成果快速具備交付能力,這難道不也是科研成果轉(zhuǎn)化一直追求的目標(biāo)之一嘛藕夫!
2、Github類似的國內(nèi)相關(guān)服務(wù)
上面談到的DevOps理念枯冈,最好的體現(xiàn)我覺得就是Github這幾年所引導(dǎo)的生態(tài)系統(tǒng)毅贮。Github的火爆,不是沒有道理尘奏,因為它提供了一種媒介滩褥,大家從中可以學(xué)習(xí)先進,也可以去實踐炫加。近兩年來瑰煎,我用過Github的經(jīng)歷就是,只有你沒想到俗孝,你先做什么事情酒甸,先看看github有沒有,如果有赋铝,評估一下是否你可以比他們做的更好插勤。
由于Github服務(wù)器在國外,我們除了中科院的網(wǎng)絡(luò)外革骨,訪問都很慢农尖。在調(diào)研了國內(nèi)的一些類似服務(wù)提供商后,把體會總結(jié)一下:
關(guān)于使用軟件研發(fā)環(huán)境Gitee良哲、Coding和Github的說明
定位問題盛卡,如果你的團隊也有代碼管理和協(xié)同開發(fā)需求。建議用Github面向國外用戶筑凫,宣傳和擴大影響力滑沧;使用國內(nèi)的倉庫服務(wù)喇颁,面向國內(nèi)用戶。2020年初嚎货,我們團隊使用了國內(nèi)的Gitee和Coding兩個DevOps技術(shù)提供商產(chǎn)品(都是付費體驗):
兩者優(yōu)缺點橘霎,首先速度都很快,其次殖属,Gitee功能多技術(shù)成熟度高姐叁,Coding剛起步限制少(后面是騰訊云支持)。價格Gitee更便宜洗显,Coding按照用戶收費空間不限制外潜。俗話說雞蛋不放在一個籃子里面,為了以防萬一挠唆,我們兩者都用处窥。
Gitee
- Gitee有很多限制,比如文件大小庫大小玄组,相比而言滔驾,coding要寬松的多。
- Gitee側(cè)重內(nèi)部開發(fā)俄讹,重點使用它的issues功能維護問題反饋哆致,wiki發(fā)布官方的解決方案和文檔;
- Gitee項目支持的notebook的ipynd格式的渲染患膛,提供給用戶看python用法教學(xué)摊阀。
Coding
- Coding的文件大小限制更寬松,單文件小于300m踪蹬,用于發(fā)布一些示例數(shù)據(jù)文件胞此,提供教學(xué)和演示用。
- Coding的靜態(tài)頁面功能跃捣,配合sphinx和rtfd來發(fā)布python項目的文檔和各種成套教學(xué)類靜態(tài)網(wǎng)站漱牵。
- Coding支持導(dǎo)入swagger的API,用于發(fā)布API接口文檔
當(dāng)然國內(nèi)也還有很多類似Github的倉庫服務(wù)Vendor枝缔,如果你們團隊銀子多布疙,也可以直接買個虛擬機,在上面部署一套Gitlab也是一樣的愿卸。
我們團隊的開源項目GEOIST:
https://github.com/igp-gravity/geoist/
如果您訪問Github太慢灵临,請訪問我們的國內(nèi)站:
https://gitee.com/cea2020
還有基于騰訊云的Coding,里面的pages很好用
https://cea2020.coding.net/
適合文檔發(fā)布趴荸,比如我們測試了靜態(tài)網(wǎng)站部署:
Geoist的官方文檔
看看是不是比這個快儒溉?而且還沒廣告,Coding的Pages(靜態(tài)網(wǎng)頁)服務(wù)由香港的騰訊云提供发钝,估計是用了CDN加速(不知道什么叫CDN顿涣,問度娘吧波闹,云服務(wù)商才能提供的,自己做一個涛碑?那你想多了)精堕,國內(nèi)訪問速度很快。相比托管到readthedocs上的蒲障,對于墻內(nèi)的用戶歹篓,唉沒法比。有網(wǎng)自己可以try一下:https://geoist.readthedocs.io/