我們使用Shell、Python腳本或Ansible?配置管理工具將內(nèi)部常用的一些軟件及應(yīng)用系統(tǒng)的安裝過程進行封裝,并發(fā)布到CMP平臺中,提供標(biāo)準(zhǔn)化藍圖方便大家申請。

1551256985351078941.jpg

自服務(wù)自運維門戶

在門戶中,大家可以看到已經(jīng)發(fā)布好的服務(wù)卡片,通過點擊服務(wù)卡片即可完成IaaS資源或應(yīng)用系統(tǒng)的自助申請,在平時的開發(fā)測試過程中,我們不再需關(guān)心底層復(fù)雜的系統(tǒng)或網(wǎng)絡(luò)配置。

在門戶中,大家也可以清晰地看到自己所管理的資源的性能情況,還可以簡單便捷地完成一些日常的基礎(chǔ)運維操作:重啟、調(diào)整配置、添加邏輯卷、擴展邏輯卷等。此外,使用管理賬號登錄CMP管理平臺,可以清晰地看到公司內(nèi)部資源的總體使用情況。

1551257008022053492.jpg

總結(jié)與建議

在騫云科技的DevOps實踐中,一方面,我們將GitLab、Gerrit、Jenkins、Ansible、JMeter、Robot?Framework等成熟的開源工具開源技術(shù)和企業(yè)內(nèi)部的云管理平臺相結(jié)合,實現(xiàn)了較高程度的開發(fā)測試流程自動化,推動了產(chǎn)品的持續(xù)集成和持續(xù)交付,減少了大量的重復(fù)勞動,提高了開發(fā)測試效率。

另一方面,通過使用云管理平臺,將復(fù)雜異構(gòu)的IaaS資源服務(wù)化,降低了使用難度;結(jié)合業(yè)務(wù)部門需求合理劃分資源,減少了資源浪費,加強了資源的有效隔離,避免了誤操作;自服務(wù)自運維的模式,也極大地提升了公司整體研發(fā)效率。

我們的DevOps實踐方案適用的場景非常多樣,比如:彈性伸縮、遷移、負載均衡。在傳統(tǒng)IT、金融、互聯(lián)網(wǎng)、游戲等行業(yè)也具有普適性。

未來發(fā)展方向

在介紹Ansible自動化部署時有提到,我們的業(yè)務(wù)系統(tǒng)由20多個服務(wù)組成,符合服務(wù)化的架構(gòu)設(shè)計,目前已經(jīng)可以滿足私有化的部署需求。隨著新功能的不斷引入,部分業(yè)務(wù)子系統(tǒng)復(fù)雜度和團隊開發(fā)耦合度會逐漸升高,協(xié)作效率和部署效率會變得低下。另外,當(dāng)前的軟件架構(gòu)和部署架構(gòu)不能滿足將來的SaaS化部署。所以,我們?nèi)孕枰獙⒎?wù)進行更細粒度的拆分,逐步向微服務(wù)架構(gòu)轉(zhuǎn)變并使用容器化部署,進一步降低開發(fā)和部署成本。

Q&A

Q:你們的主要業(yè)務(wù)是什么?

A:我們專注于云管理領(lǐng)域,致力于IT云化轉(zhuǎn)型。我們的核心產(chǎn)品SmartCMP云管理平臺是以應(yīng)用為核心的新一代云管理平臺。SmartCMP平臺能夠統(tǒng)一管理異構(gòu)云資源,并以國際領(lǐng)先的可視化應(yīng)用藍圖建模技術(shù)為基礎(chǔ),實現(xiàn)IaaS/IaaS+/容器等的自動化交付和控制,并且能夠?qū)υ频氖褂煤统杀具M行追蹤和優(yōu)化。

Q:CMP和各個云平臺打通都使用了平臺的jar,并且需要各種資源生成,這個工作量也不小吧?并且如果api更新代碼量也大吧

A:我們的核心業(yè)務(wù)就是做云管理平臺,我們產(chǎn)品已經(jīng)完成了對各個云平臺的對接,主要調(diào)用各個云平臺的API。公有云的API更新頻率并不是很高,每當(dāng)API有更新時,我們也及時去適配。

Q:CMP是如何實現(xiàn)與如阿里云這樣的公有云打通的?

A:公有云都提供了REST API,并且提供Java語言和Python語言的SDK。

Q:你們的虛擬機都是提前創(chuàng)建好了嗎?

A:我們的虛擬機都是根據(jù)需要,通過CMP即時創(chuàng)建和回收的。

Q:CMP管理平臺是自己開發(fā)的嗎?

A:CMP是我們自己的核心產(chǎn)品,所以肯定是自研的。

Q:請問貴司沒有采用容器么?為什么還要大量寫playboo k呢?直接j jenkin執(zhí)行打包成鏡像不就可以了嗎?

A:目前我們主要是ToB的業(yè)務(wù),項目交付以虛擬機部署為主,所以需要使用Ansible playbook做整個應(yīng)用系統(tǒng)的安裝部署。

Q:你們的虛擬機自動化創(chuàng)建使用的是kickstart嗎?有使用Packer嗎,想問下選擇的原因。

A: 不是的。我們都是通過對接云平臺的API進行虛機創(chuàng)建,如:vSphere,OpenStack,Aliyun等。

Q:Jenkins初次提交也能觸發(fā)構(gòu)建嗎?每次自動化構(gòu)建版本號是如何更新的呢?

A: 我們的項目代碼具備構(gòu)建條件后,才在Jenkins上創(chuàng)建了項目構(gòu)建Job,所以并沒有在初次提交時觸發(fā)構(gòu)建。每次構(gòu)建的版本號由兩部分組成,一部分是產(chǎn)品的Release大版本號,另一部分直接使用的Jenkins build number這個環(huán)境變量。

Q: 你們的生產(chǎn)環(huán)境部署是通過使用ansible部署服務(wù),是否有考慮結(jié)合使用docker swarm 或者kubernates?

A: 目前我們主要是ToB的業(yè)務(wù),目前還沒有完成微服務(wù)架構(gòu)的改造,所以還沒有進行容器化部署。當(dāng)然,將來我會考慮使用Kubernetes。

Q:CMP是java的么

A: CMP中的管理模塊使用Java語言編寫。其他模塊也涉及Python語言。

Q:有了gerrit,為什么還要gitlab?gerrit也可以托管代碼啊

A: 這個是有歷史背景的,我們是先選擇使用Gitlab做代碼托管,后期才加入Gerrit做code review。Gerrit在代碼review方面比Gitlab的merge request要方便許多,更適合企業(yè)內(nèi)部使用。

Q:是否支持對華為fusion cloud6.3.1云平臺的對接管理?有沒有和計費系統(tǒng)對接的案例?實現(xiàn)類似阿里云等公有云這種在線訂購交付

A:我們暫時還沒有支持fusion cloud6.3.1云平臺的對接管理。我們CMP實現(xiàn)了計量計費功能,對公有云、私有云、容器都可以統(tǒng)計費用明細,生成可視化費用分析視圖。

Q:Jenkins構(gòu)建項目,如何管理多項目的Jenkinsfile,如何解決slave maven構(gòu)建緩存問題?如果多個項目依賴同一個common倉庫,這次有一個項目和這個common項目有改動,都是在develop分支開發(fā),構(gòu)建順序是怎樣?如何讓common不影響其它引用到它的倉庫構(gòu)建?

A:我們沒有使用Jenkins file管理多個項目,我們通過創(chuàng)建Pipeline來實現(xiàn)代碼構(gòu)建。對于Java工程的maven構(gòu)建,我們每次在構(gòu)建前清理緩存。

Q:CMP系統(tǒng),會涉及工單審批功能嗎?能否介紹一下這塊的實現(xiàn)呢?

A: CMP系統(tǒng)包含了工單審批功能。我們官網(wǎng)可以預(yù)約產(chǎn)品免費試用,您可以直接上手體驗。

Q:能否提供一下嘉賓的聯(lián)系方式

A: 我們也技術(shù)交流群(QQ):707214697。

分享到

songjy

相關(guān)推薦