![]() |
新聞中心
當前位置:網(wǎng)站首頁 > 新聞中心
云計算與DevOps: 持續(xù)集成/持續(xù)交付與市場分析
如今,企業(yè)面臨著比競爭對手更快、更高質量地交付軟件的巨大壓力。只有當企業(yè)頻繁發(fā)布軟件更新時,其良好的特性以及對客戶的影響才能增加。因此,很多企業(yè)正在采用DevOps和持續(xù)集成/持續(xù)交付方法,以提高其規(guī)劃、構建、測試和發(fā)布應用程序和特性的能力,從而以高質量和規(guī)??焖偻葡蚴袌?。調(diào)研機構IDC公司預計,到2022年,全球DevOps軟件市場規(guī)模將從2017年的39億美元增至80億美元。
如今,圍繞持續(xù)集成、持續(xù)部署、持續(xù)交付的討論比以往任何時候都多,但實際上,持續(xù)集成/持續(xù)交付的實際使用似乎更少。這可能是因為DevOps缺乏所需的技能集,或者企業(yè)仍然在實踐傳統(tǒng)的軟件開發(fā)方法。由于缺少持續(xù)集成/持續(xù)交付和DevOps自動化實踐,企業(yè)無法了解需要花費多少費用。
對于許多企業(yè)而言,DevOps是他們必須嘗試的事情,因為他們的競爭對手正在這樣做或者這是一種趨勢。如果不了解DevOps原理和基本知識,那么這將是一個令人絕望的嘗試。
在大多數(shù)情況下,客戶必須將一套不同的工具組合在一起才能交付軟件,這將會造成混亂。另一方面,很難選擇正確的工具并了解什么是最佳實踐。這就是人們開始看到DevOps公司具有提供統(tǒng)一工具集趨勢的原因,以使客戶可以立即使用完整的解決方案,而不必擔心采用不同供應商的許多解決方案。
什么是持續(xù)集成/持續(xù)交付?
每當開發(fā)人員提交并將更改推送到存儲庫時,持續(xù)集成系統(tǒng)都會重建分支,并運行所有相關測試用例,以驗證新更改不會破壞現(xiàn)有應用程序和功能。
持續(xù)交付是持續(xù)集成的擴展,可以幫助用戶單擊按鈕來部署應用程序。這意味著每次更改通過持續(xù)集成測試時都要進行部署。這樣,就可以輕松地自動完成構建和測試階段以及大部分發(fā)布過程。
通過持續(xù)部署,開發(fā)人員將能夠自動將軟件發(fā)布或部署到生產(chǎn)環(huán)境中。在這一階段,應用程序中不會進行任何人工代碼簽入。通過持續(xù)集成流程會自動測試代碼是否存在問題,如果沒有發(fā)現(xiàn)問題,則會部署代碼。
為什么選擇持續(xù)集成/持續(xù)交付?
持續(xù)集成/持續(xù)交付是測試和部署應用程序的最佳實踐。為了保證質量,使持續(xù)集成/持續(xù)交付成為部署代碼的單一渠道是最佳實踐。DevOps團隊應確保一切都通過持續(xù)集成/持續(xù)交付管道進行,以便測試和生產(chǎn)中的代碼相同。這還將減少人為錯誤,并避免部署未經(jīng)錯誤測試的其他版本。
很多企業(yè)如今使用持續(xù)集成/持續(xù)交付的最大原因之一是軟件交付速度更快,這導致對客戶的更新更加頻繁。并且經(jīng)常發(fā)布的不斷改進將確保增強的客戶滿意度。這是一項競爭優(yōu)勢,因為它使企業(yè)可以更頻繁地交付新功能,可以幫助保持領先地位。
通過持續(xù)集成/持續(xù)交付管道傳遞代碼可確保所做的任何更改均符合既定標準,然后再移至交付管道的下一個階段。任何故障或差異都會阻止將這類更改推進到下一步,直到糾正為止。這只是意味著持續(xù)集成/持續(xù)交付的這種方法可確保不會將錯誤代碼帶入生產(chǎn)環(huán)境。持續(xù)集成/持續(xù)交付可以快速促進失敗、學習和交付方法。當企業(yè)使用了自動持續(xù)集成/持續(xù)交付時,開發(fā)人員每次提交代碼時,都會在持續(xù)集成/持續(xù)交付流程中不斷運行代碼,從而可以快速捕獲錯誤,由于每個小變化都需要單獨測試,因此更容易隔離錯誤。
什么是持續(xù)集成/持續(xù)交付管道?
持續(xù)集成/持續(xù)交付管道是與自動化集成的部署管道工作流。如果執(zhí)行得當,它將最大程度地減少人工切換和錯誤,從而增強整個軟件交付生命周期中的反饋循環(huán),從而使開發(fā)團隊可以在較短的時間內(nèi)交付較小的發(fā)行版塊。
持續(xù)集成/持續(xù)交付管道如今已成為軟件公司中的主流,并且已成為現(xiàn)代DevOps環(huán)境的骨干。盡管DevOps提出了與文化方面相關的原則和標準,但持續(xù)集成/持續(xù)交付專注于自動化、流程、過程和工具。隨著容器化和微服務的引入,持續(xù)集成/持續(xù)交付方案也發(fā)生了變化?,F(xiàn)在,每個云計算供應商都具有支持和與docker和Kubernetes之類的工具的集成,這些工具可以幫助擴展持續(xù)集成/持續(xù)交付管道。
持續(xù)交付管道的階段
?測試自動化和持續(xù)集成:這是準備新功能和原型,完成編碼,然后將代碼與基礎集成的重要階段。通過使用持續(xù)集成服務器,可以完成單元測試和打包。
?構建自動化:這是工件被開發(fā)人員(即依賴項、Docker映像)推送到注冊表(即Amazon ECR或Docker Hub或任何容器注冊表)的階段。
?Alpha部署:在此階段,開發(fā)人員簽入更改。在這里,開發(fā)人員可以仔細查看他們所做的更改以及它們之間的交互方式以及對其他系統(tǒng)的影響。此外,在這里開發(fā)人員可以查看他們是否在主分支中破壞了任何內(nèi)容。
?Beta部署:這是測試人員執(zhí)行人工測試的階段。仍然需要人工測試才能看到持續(xù)集成工具的完善性。這使DevOps團隊可以保證應用程序的狀態(tài)良好,并且在部署后一定可以正常工作。
?生產(chǎn)部署:這是應用程序上線的最后階段。
市場對持續(xù)集成/持續(xù)交付的看法是什么?
?谷歌公司在全球范圍內(nèi)對關鍵字“CI CD Pipeline”的搜索量逐漸增加。
?測試自動化廠商Mabl公司對500名軟件測試人員進行調(diào)查時,有53%的人說他們的團隊使用持續(xù)集成,而38%的人表示接受持續(xù)交付,只有29%的人采用持續(xù)部署。
?Codefresh公司進行的與DevOps相關的調(diào)查表明,三分之一的公司已將一半以上的工作負載自動化,但只有1%的自動化。幾乎沒有人使整個持續(xù)集成/持續(xù)交付過程自動化。多個工程團隊只完成了不到10%的流程自動化。
?iOS開發(fā)者社區(qū)調(diào)查是有史以來對蘋果平臺開發(fā)者進行的最大規(guī)模的調(diào)查,其中2,290人填寫了問卷,其中持續(xù)集成/持續(xù)交付問題也參與了調(diào)查。
結果表明,大多數(shù)開發(fā)人員在使用商業(yè)應用程序時都在實踐持續(xù)集成/持續(xù)交付。
?前進的方向:除非企業(yè)使用適當?shù)牟渴鸸艿?,否則它們將無法充分利用容器和DevOps。企業(yè)將開始向客戶提供預建管道,例如JFrog管道。需要一個統(tǒng)一的平臺,該平臺具有支持持續(xù)集成/持續(xù)交付系統(tǒng)所需的所有工具——自動化(管道)、二進制存儲庫管理(Artifactory)、安全性(Xray)、發(fā)行/部署(分發(fā))等。JFrog公司提供了統(tǒng)一的平臺。
?Codefresh公司進行了一項調(diào)查,并在KubeCon + CloudNativeCon Europe 2019會議上發(fā)布了對130位開發(fā)人員的調(diào)查結果,其結果有些令人震驚。結果表明,將近三分之一(32%)的用戶根本不使用任何持續(xù)集成/持續(xù)交付平臺。60%的調(diào)查受訪者表示,他們的組織尚未充分利用自動化來加速軟件開發(fā)和部署。
?GigaOm公司的《市場雷達報告》是有關企業(yè)持續(xù)集成/持續(xù)交付解決方案的最新研究,作者在此比較了業(yè)界領先的持續(xù)集成/持續(xù)交付解決方案,并根據(jù)不同的評估標準對其進行了評估。
考慮持續(xù)集成/持續(xù)交付解決方案有AWS、CircleCI、CloudBees、CodeFresh、GitLab、IBM、JFrog、Micro Focus、Microsoft、Red Hat和Xebia Labs。
持續(xù)集成/持續(xù)交付是DevOps的最佳實踐之一,因為它可以確保開發(fā)人員和運營部門之間的正確配合。它提高了自動化程度,開發(fā)人員可以更可靠、更頻繁地推送代碼更改。同時,由于環(huán)境具有標準配置,并且回滾過程是自動化的,因此運營團隊可以看到更高的穩(wěn)定性。為了在持續(xù)集成/持續(xù)交付中獲勝,開發(fā)團隊和運營團隊都需要就正確的工具和方法達成共識,這從長遠來看對業(yè)務增長是有益的。
云計算與DevOps齊頭并進
沒有云計算,企業(yè)將無法進行DevOps。而沒有DevOps,云計算也不會有太大價值。
云計算有許多定義,可以將對云計算的基本解釋定義為一個啟用并支持基礎設施供應的系統(tǒng)。因此,它允許將其描述為代碼或模板,從而有助于創(chuàng)建可重復的過程。這也是DevOps的基本原理,可以最大程度地自動化軟件開發(fā)生命周期中的流程/任務。
云計算對持續(xù)集成/持續(xù)交付的最大好處之一就是云計算基礎設施的動態(tài)特性。對于持續(xù)集成/持續(xù)交付工作負載的短暫性和突發(fā)性,這是一個完美的選擇。云計算資源可以根據(jù)持續(xù)集成/持續(xù)交付工作負載自動擴大和縮小。這為企業(yè)帶來了巨大的管理和成本效益。企業(yè)不需要維護自己的服務器,而是隨著持續(xù)集成/持續(xù)交付工作負載的增加而增加這些服務器,或者在閑置時浪費服務器資源。
無論企業(yè)如何定義云計算技術,以及無論通過哪種DevOps路線通過云計算集成來實現(xiàn)數(shù)字化轉型,在DevOps詞典中都可以輕松地將云計算技術和服務融合在一起,因為它們從根本上補充了DevOps的原理和流程。
對于DevOps實施,敏捷原則可以作為驅動因素,因為發(fā)布周期和自動化時間較短,可以快速交付并按時交付。為了實施連續(xù)的實踐,云計算技術是一個很好的促進者,因為資源可快速用于開發(fā)和應用程序生命周期管理中涉及的所有活動。敏捷原則以及云計算和DevOps實踐可提高開發(fā)人員的生產(chǎn)力,并加快組織的發(fā)展。
借助安全的云計算網(wǎng)關,用戶可以從任何地方使用任何設備輕松訪問企業(yè)資源,而不會影響網(wǎng)絡的安全性。讓用戶從他們的設備訪問其網(wǎng)絡有時看起來很嚇人,但是現(xiàn)代云計算平臺提供了更多功能,它們帶有內(nèi)置的安全性堆棧,可以幫助管理員提供管理和支持安全性所需的工具。
DevOps結合云計算技術為使用它們的企業(yè)帶來了巨大的好處:
(1)提高開發(fā)人員的生產(chǎn)力和協(xié)作能力。
(2)通過快速輕松地訪問開發(fā)環(huán)境來加快產(chǎn)品上市時間。
(3)幫助自動化不同的重復任務,以便開發(fā)人員可以專注于重要的任務。
(4)隨著代碼的臨近,自動化和基礎設施可以極大地降低云計算的復雜性和系統(tǒng)維護。
(5)利用現(xiàn)代云計算平臺和原理來消除人為錯誤,從而提高安全性。
(6)通過基于云計算的連續(xù)業(yè)務運營幫助消除停機時間。開發(fā)人員可以通過自動化構建無狀態(tài)應用程序,這將提高可用性和故障轉移能力,并提高業(yè)務可靠性和客戶滿意度。
(7)擴展到新的高度。企業(yè)采用云計算和DevOps的主要原因之一是在需要時擴展其基礎設施和應用程序。
云計算部署模型
當云計算提供商完全托管組織的應用程序和數(shù)據(jù)時,它就是公共云。只需建立全球互聯(lián)網(wǎng)連接,使用公共云的企業(yè)員工就可以訪問應用程序。
私有云是指組織的資源(例如存儲、計算和網(wǎng)絡資源)存在于提供商的數(shù)據(jù)中心中。企業(yè)之所以偏愛私有云,主要是因為安全性以及在運行應用程序時存儲高度敏感的數(shù)據(jù)。
混合云是另一種現(xiàn)代方法。它是私有云和公共云服務的組合。根據(jù)流量和需求的考慮,企業(yè)可以進行更改。一些客戶可能具有本地持續(xù)集成/持續(xù)交付系統(tǒng)。這些持續(xù)集成/持續(xù)交付系統(tǒng)中的某些可以通過混合設置將其工作負載擴展到云中。這可以使他們現(xiàn)在意識到云計算的好處,而不必進行完整的遷移。
主要是當需求很高時,可以在公共云中運行工作負載,然后當一切恢復正常時,返回到私有云。這種方法減少了在云計算資源上花費的間接費用。此外,關鍵是敏感信息、數(shù)據(jù)和關鍵應用程序可以保存在私有云中。相反,敏感度較低的數(shù)據(jù)和應用程序可以在公共云中存儲和運行。
選擇DevOps云計算解決方案
如果說云計算就像樂器,那么DevOps就是演奏它的音樂家。
云計算和DevOps發(fā)揮著至關重要的作用,并且是IT戰(zhàn)略中相互聯(lián)系的部分。云計算和DevOps共同幫助IT部門將重點問題從“可以在不中斷的情況下走多遠?”轉到“多久可以提供新的和穩(wěn)定的功能?”或“可以快速地部署新服務嗎?”
當今,企業(yè)正在尋找借助云計算、DevOps和自動化實踐進行數(shù)字化轉型的方法。
|