借助來自許多成熟的公有云服務(wù)的精心策劃部署策略的內(nèi)置工具,企業(yè)組織機(jī)構(gòu)的IT團(tuán)隊(duì)可以 而且也應(yīng)該將他們的測試/開發(fā)遷移到公共云服務(wù)了。
即使您企業(yè)在短期內(nèi)不會將內(nèi)部部署的應(yīng)用程序遷移到云計(jì)算,您仍然也可以享受一個云開發(fā)環(huán)境的好處。許多企業(yè)組織正在采取一種混合云的方法:在公共云中運(yùn)行開發(fā)和測試環(huán)境,而將生產(chǎn)應(yīng)用程序保持在企業(yè)內(nèi)部環(huán)境。
鑒于現(xiàn)如今的企業(yè)組織機(jī)構(gòu)可以從多家云服務(wù)供應(yīng)商處獲得各種各樣的工具,這使得企業(yè)的IT團(tuán)隊(duì)構(gòu)建按需基礎(chǔ)設(shè)施、部署代碼并運(yùn)行一系列的應(yīng)用程序測試,以確保其是為生產(chǎn)做好了充分準(zhǔn)備,要比前幾年容易得多了。
云開發(fā)/測試的優(yōu)勢
無論其是一款簡單的、運(yùn)行在一臺單一服務(wù)器上的應(yīng)用程序,或是一款復(fù)雜的、需要一個復(fù)雜的測試環(huán)境、如亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)和微軟的Azure這樣的云計(jì)算平臺才能夠大大加快開發(fā)進(jìn)程的多層應(yīng)用程序。
公共云服務(wù)供應(yīng)商可以使得企業(yè)能夠很容易地啟動虛擬機(jī)。一款單一的應(yīng)用程序編程接口調(diào)用將為開發(fā)人員或測試工程師們提供一臺虛擬機(jī),以通過一系列的測試來部署和驗(yàn)證應(yīng)用程序。但并不是所有的應(yīng)用程序都這么簡單。
有些企業(yè)應(yīng)用程序需要大量的配套基礎(chǔ)設(shè)施,以便為本地生產(chǎn)環(huán)境模仿合適的真實(shí)測試。而其應(yīng)用程序團(tuán)隊(duì) 開發(fā)人員和IT運(yùn)營人員 需要了解通過最接近的具體環(huán)境以掌握應(yīng)用程序在真實(shí)世界的性能,進(jìn)而才能夠更準(zhǔn)確地預(yù)測應(yīng)用程序的相關(guān)運(yùn)行狀況,如延遲性。而諸如AWS和Azure這樣的成熟的平臺,則聲稱使用了基于JSON的模板,以通過企業(yè)用戶自定義的網(wǎng)絡(luò)、存儲、虛擬機(jī)實(shí)例等等,支持更復(fù)雜的自動化基礎(chǔ)設(shè)施環(huán)境。運(yùn)營團(tuán)隊(duì)可以實(shí)現(xiàn)幾分鐘內(nèi)在云中復(fù)制完全配置的企業(yè)內(nèi)部部署生產(chǎn)環(huán)境。這個概念被稱為基礎(chǔ)設(shè)施即代碼(Infrastructure as Code),其在AWS上被稱為CloudFormation,而在Azure上則被稱為Azure資源管理器模板。
當(dāng)在為開發(fā)和測試團(tuán)隊(duì)分配資源時,數(shù)據(jù)中心管理人員總是面臨硬件方面的約束。測試環(huán)境的硬件規(guī)格必須與您企業(yè)在生產(chǎn)中部署的硬件規(guī)格相類似。您還必須保持這些物理系統(tǒng)的正常運(yùn)行。硬件和配套的外圍組件最終失敗,而當(dāng)這種情況發(fā)生時,其只是減緩了測試代碼的進(jìn)程,直到運(yùn)營團(tuán)隊(duì)可以更換或修復(fù)組件。借助云計(jì)算的開發(fā)環(huán)境,物理硬件被抽象出來,連同其相關(guān)的所有維護(hù)任務(wù)。開發(fā)人員可以在其所選擇的云平臺上根據(jù)實(shí)際需要啟動盡可能多的虛擬服務(wù)器。
維護(hù)物理設(shè)備以運(yùn)行開發(fā)和測試工作負(fù)載意味著IT企業(yè)組織需要為閑置時間的物理設(shè)備買單。這些物理設(shè)備占用了數(shù)據(jù)中心空間,即使在不使用時也可能消耗功率。而如果時利用云計(jì)算的話,企業(yè)用戶只需為他們所使用的資源買單。環(huán)境根據(jù)實(shí)際需求建立并拆除,從而使得企業(yè)組織只需要在他們使用資源時買單支付即可。
許多的持續(xù)集成(CI)和應(yīng)用程序生命周期管理工具均與云平臺以及擁有的服務(wù)器進(jìn)行了集成整合。諸如AWS和微軟這樣的供應(yīng)商們都有一套DevOps工具能夠與愜意內(nèi)部部署以及基于云計(jì)算的服務(wù)器兼容,緩解了從開發(fā)到生產(chǎn)的混合過渡。
推動混合云產(chǎn)生的工具
如果您企業(yè)是從頭開始,不妨考慮采用一款工具鏈,將能夠建立一個完全自動化的軟件發(fā)布渠道。
源代碼控制。Git是最被廣泛使用的源碼控制工具,其提供了一個分布式版本控制系統(tǒng)。許多連續(xù)測試和集成工具都能夠與Git輕松兼容工作,您會發(fā)現(xiàn)有很多企業(yè)用戶都在使用GitHub,這是一款基于Web的Git倉庫托管服務(wù)。應(yīng)用程序團(tuán)隊(duì)可以建立公共和私有源代碼庫,基于代碼庫協(xié)作,并最終被推送到測試和生產(chǎn)環(huán)境。
持續(xù)集成。當(dāng)涉及到在云中的測試環(huán)境的自動化代碼部署時,我們建議您企業(yè)不放嘗試采用一臺CI服務(wù)器。CI服務(wù)器可以被設(shè)置為提交源代碼控制存儲庫 即提交應(yīng)用程序代碼的更改 然后根據(jù)最新的更改觸發(fā)一系列階段。例如,您企業(yè)可以使用開源的Jenkins CI服務(wù)器或其競爭者TeamCity、Travis CI、CircleCI或Codeship,以便為一款應(yīng)用程序申請GitHub庫。當(dāng)一項(xiàng)更改被提交后,Jenkins運(yùn)行一段代碼,執(zhí)行單元測試,然后通過發(fā)起CloudFormation模板觸發(fā)一個測試環(huán)境的部署。環(huán)境一旦運(yùn)行起來,另一項(xiàng)工作將在測試環(huán)境中部署應(yīng)用程序到服務(wù)器。這將保持應(yīng)用程序代碼關(guān)閉生產(chǎn)服務(wù)器,直到其通過所有的測試,在這一點(diǎn)上,運(yùn)營團(tuán)隊(duì)要么可以手動部署服務(wù)器;要么可以激活一個自動化的任務(wù)來執(zhí)行這一工作。
性能、負(fù)載和用戶界面測試。性能或用戶界面(UI)測試有助于確保一款應(yīng)用程序可以在生產(chǎn)過程中處理預(yù)期的用戶負(fù)載,并且其功能能夠適當(dāng)?shù)囊?guī)?;?。流行的工具可以在企業(yè)內(nèi)部部署環(huán)境和由Apica公司和BlazeMeter公司提供的基于云的資源中運(yùn)行負(fù)載和性能測試。Ghost Inspector是一款相當(dāng)棒的工具,能夠捕捉網(wǎng)站bug和其他用戶界面問題。
原生云的DevOps工具
AWS和微軟均已經(jīng)創(chuàng)建了簡單的原生云軟件生命周期管理工具,以實(shí)現(xiàn)在混合云使用企業(yè)內(nèi)部部署的基礎(chǔ)設(shè)施和公共云服務(wù)對于應(yīng)用程序的靈活管理。
AWS CodeDeploy將應(yīng)用程序代碼自動部署到亞馬遜彈性計(jì)算云實(shí)例或企業(yè)用戶自有的服務(wù)器。AWS CodePipeline在云中構(gòu)建一個持續(xù)交付(CD)的管道,其為更改、開始構(gòu)建或在CI服務(wù)器上測試、然后在云中為開發(fā)實(shí)例推出代碼和在專用服務(wù)器運(yùn)行CodeDeploy代理提交一個源代碼控制庫。
微軟公司基于云的Visual Studio團(tuán)隊(duì)服務(wù)產(chǎn)品的工作方式類似于AWS的DevOps工具集。其所發(fā)布的管理功能使得企業(yè)組織的IT團(tuán)隊(duì)能夠創(chuàng)建一個自動發(fā)布的管道,以便使得應(yīng)用程序團(tuán)隊(duì)可以將代碼部署到任何服務(wù)器上。
一款CI服務(wù)器既可以運(yùn)行在企業(yè)內(nèi)部部署環(huán)境,也可以運(yùn)行在云中。此外,云服務(wù)器不必是一款單一的云:企業(yè)內(nèi)部部署的服務(wù)器可以使用不同的云平臺而不必使用開發(fā)和測試服務(wù)器。例如,沒有任何東西能夠阻止您企業(yè)在一臺Azure 虛擬機(jī)上運(yùn)行AWS CodeDeploy代理。
使其在現(xiàn)實(shí)世界發(fā)揮作用
今天,我們已經(jīng)擁有一款混合開發(fā)和測試云部署的技術(shù)了。而其中最大的挑戰(zhàn)之一可能是環(huán)境的復(fù)雜性。
團(tuán)隊(duì)成員需要一定的資源來完成這項(xiàng)工作。這可能包括在公共云平臺上進(jìn)行的培訓(xùn),以及針對形成應(yīng)用程序的管道的特定的CI/CD工具所進(jìn)行的培訓(xùn)。
請務(wù)必讓您企業(yè)內(nèi)部的全部團(tuán)隊(duì)都參與到該方法中來。例如,可能存在您企業(yè)內(nèi)部的網(wǎng)絡(luò)或安全團(tuán)隊(duì)需要了解企業(yè)的數(shù)據(jù)流來自于企業(yè)內(nèi)部部署環(huán)境遷移到云服務(wù)時需要遵守相關(guān)監(jiān)管法規(guī)或內(nèi)部安全策略的案例。不管是什么原因,推動DevOps團(tuán)隊(duì)之外的良好工作協(xié)作關(guān)系的構(gòu)建將有助于確保公共云服務(wù)成功轉(zhuǎn)型到您企業(yè)的生產(chǎn)服務(wù)器。讓企業(yè)所有的團(tuán)隊(duì)都參與進(jìn)來,可以有助于您企業(yè)實(shí)現(xiàn)更廣泛的目標(biāo),并應(yīng)該讓所有團(tuán)隊(duì)共同努力把工作做好。
文章編輯:CobiNet(寧波),本公司專注于電訊配件,銅纜綜合布線系列領(lǐng)域產(chǎn)品研發(fā)生產(chǎn)超五類,六類,七類屏蔽網(wǎng)線/屏蔽模塊及相關(guān)模塊配件,歡迎來電咨詢0574 88168918,網(wǎng)址www.10166888.com
?2016-2019寧波科博通信技術(shù)有限公司版權(quán)所有浙ICP備16026074號