應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊(cè)個(gè)人注冊(cè)登錄

解讀持續(xù)集成在云計(jì)算中的4大優(yōu)勢(shì)

2017-09-19 15:52 精靈云

導(dǎo)讀:持續(xù)集成是一種軟件開發(fā)實(shí)踐,即團(tuán)隊(duì)開發(fā)成員經(jīng)常定期集成他們的代碼到共享存儲(chǔ)庫,通常每個(gè)成員每天至少集成一次,也就意味著每天可能會(huì)發(fā)生多次集成。

  目前,已有大量的技術(shù)和概念可以顯著提高軟件質(zhì)量,同時(shí)減少開發(fā)時(shí)間,成本和工作量。今天,我們將通過討論云計(jì)算中持續(xù)集成(CI)帶來的幾個(gè)主要優(yōu)勢(shì),來了解為什么實(shí)施基于云計(jì)算的持續(xù)集成可以降低成本,節(jié)省資源,并提供動(dòng)態(tài)擴(kuò)展和更大的靈活性。

  什么是云計(jì)算?

  對(duì)于云計(jì)算的定義有很多,以下是解釋較為詳盡的一版:云計(jì)算是一種按使用量付費(fèi)的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問, 進(jìn)入可配置的計(jì)算資源共享池(資源包括網(wǎng)絡(luò),服務(wù)器,存儲(chǔ),應(yīng)用軟件,服務(wù)),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務(wù)供 應(yīng)商進(jìn)行很少的交互。

  對(duì)于企業(yè)來說,云計(jì)算是計(jì)算機(jī)基礎(chǔ)設(shè)施,可以無縫地?cái)U(kuò)展。它的基礎(chǔ)設(shè)施可以靈活地適應(yīng)企業(yè)不斷變化的需求和預(yù)算。鑒于這些對(duì)企業(yè)的好處,近年來,出現(xiàn)了一系列供應(yīng)商,為企業(yè)提供各種云服務(wù),以支持廣泛的基礎(chǔ)設(shè)施需求。包括托管數(shù)據(jù)庫和日志記錄提供程序,如ElephantSQL和Loggly,Zoho等電子郵件提供商,以及更廣泛的計(jì)算基礎(chǔ)設(shè)施,如Amazon Web Services,Google Cloud Platform和Microsoft Azure。

  什么是持續(xù)集成(CI)?

  持續(xù)集成是一種軟件開發(fā)實(shí)踐,即團(tuán)隊(duì)開發(fā)成員經(jīng)常定期集成他們的代碼到共享存儲(chǔ)庫,通常每個(gè)成員每天至少集成一次,也就意味著每天可能會(huì)發(fā)生多次集成。每次集成都通過自動(dòng)化的方式構(gòu)建(包括編譯,發(fā)布,自動(dòng)化測(cè)試),從而高效而快速地驗(yàn)證并發(fā)現(xiàn)

  集成錯(cuò)誤。

  最簡單的CI可以只包括幾件事情:

  1. 一個(gè)腳本,啟動(dòng)一個(gè)測(cè)試工具,例如PHPUnit,JUnit或NUnit,一旦新的代碼被集成到Git倉庫的主分支中,它會(huì)運(yùn)行應(yīng)用程序的測(cè)試套件;

  2. 在測(cè)試套件成功后構(gòu)建軟件的腳本;

  3. 發(fā)送給開發(fā)人員的電子郵件通知提醒他們以上兩個(gè)步驟的完成情況。

  實(shí)際上,CI管道通常具有更復(fù)雜的要求,例如數(shù)據(jù)庫,排隊(duì),緩存和Web服務(wù)器,這通常是接受和集成測(cè)試所需要的。這種復(fù)雜性可以由一系列因素驅(qū)動(dòng),例如軟件服務(wù)的行業(yè),監(jiān)管要求和約束,預(yù)算限制和項(xiàng)目的技術(shù)要求。

  CI在云計(jì)算中的好處

  1、降低成本

  計(jì)算成本通常不是一個(gè)快速而簡單的過程。讓我們來看一個(gè)例子:Codeship Basic提供了三個(gè)付費(fèi)計(jì)劃:starter、essential和power。還有一個(gè)免費(fèi)的計(jì)劃(不僅僅是免費(fèi)試用),如果你剛剛建立一個(gè)項(xiàng)目,你可以免費(fèi)開始,然后隨著預(yù)算的增長,你可以擴(kuò)大規(guī)模以獲得更多的功能和權(quán)限。

  假設(shè)你使用了其中的一個(gè)計(jì)劃,在注冊(cè)之后,你只需要做一點(diǎn)輕松的帳戶配置,就可以構(gòu)建你的第一個(gè)CI管道了?;贘enkins等開源工具構(gòu)建一個(gè)解決方案,你必須:

  1、投資硬件和人力資源,以構(gòu)建和記錄初始解決方案;

  2、隨著時(shí)間的推移,隨著軟件的發(fā)展和變化,維護(hù)和調(diào)整它;

  3、要更換故障或老化的硬件,管理性能調(diào)優(yōu);

  4、調(diào)整它以適應(yīng)行業(yè)趨勢(shì)。

  根據(jù)你的解決方案需要的先進(jìn)程度和復(fù)雜程度,你的成本,在十多年或更長時(shí)間內(nèi),可能相當(dāng)可觀??紤]到這一點(diǎn),這種方法成本更低,不僅是在貨幣方面,還計(jì)算了時(shí)間成本。

  2、最小配置

  在云中托管CI解決方案不能消除配置的需要,然而,它可以顯著減少。通過使用托管解決方案,只需將配置需求簡化為CI管道所需的配置。最重要的是,通??梢允褂靡幌盗心J(rèn)設(shè)置來適應(yīng)正在開發(fā)的軟件的性質(zhì)。

  你所要做的就是選擇最適合你的軟件并進(jìn)行補(bǔ)充更改。例如,Codeship為這些語言和框架提供了基本的命令,如Go、Java、PHP、Python、Ruby on Rails和Sinatra。此外,還將創(chuàng)建一個(gè)默認(rèn)的管道來匹配默認(rèn)的構(gòu)建命令。

  盡管有這種級(jí)別的支持和幫助,但是沒有云提供商能夠創(chuàng)建完全符合每個(gè)軟件項(xiàng)目需求的解決方案。因此,你可能會(huì)發(fā)現(xiàn)默認(rèn)的命令和構(gòu)建管道并不總是合適的。在這些情況下,你應(yīng)該期望能夠提供定制的構(gòu)建腳本和配置,以及根據(jù)需要在逐個(gè)項(xiàng)目的基礎(chǔ)上定制和擴(kuò)展默認(rèn)選項(xiàng)。

  因此,無論哪種方式,無論是默認(rèn)值、擴(kuò)展默認(rèn)值還是自定義腳本集都是你所選擇的路徑,仍然要比自己創(chuàng)建的解決方案更少配置。

  3、動(dòng)態(tài)可擴(kuò)展性

  使用云的最大好處可能是它的彈性性質(zhì),它可以隨著需求的增加而上下伸縮。如果你是一個(gè)小型的開發(fā)組織,可能只有兩個(gè)開發(fā)人員在部署你的第一個(gè)發(fā)行版,你可以開始只使用你絕對(duì)需要的特性和計(jì)算能力。

  這可以使你的成本保持在最低限度,避免過度投資于你還不需要的硬件。然而,隨著應(yīng)用程序的復(fù)雜性或用戶基礎(chǔ)的增長,你可以動(dòng)態(tài)擴(kuò)展可用資源以滿足需求。

  如果你有間歇性的負(fù)荷,這種靈活性也會(huì)凸顯,這段時(shí)間可能只持續(xù)幾天或幾小時(shí)。它可以讓你動(dòng)態(tài)地處理無法預(yù)測(cè)的交通高峰或節(jié)假日。

  但對(duì)于CI,托管提供者也可以通過提供可配置的并行測(cè)試管道數(shù)量來提供測(cè)試的彈性。并行測(cè)試管道允許你將構(gòu)建分成多個(gè)管道,從而減少測(cè)試套件的執(zhí)行時(shí)間。

  4、靈活性

  云解決方案幾乎不考慮其技術(shù)組合,它附帶了大量基礎(chǔ)設(shè)施,包括一系列數(shù)據(jù)庫、隊(duì)列、緩存和搜索服務(wù)器。

  而且,在某些情況下,這些服務(wù)器的多個(gè)版本同時(shí)可用。因此,你可以靈活地在各種組合和排列中測(cè)試應(yīng)用程序。你所需要做的就是為你的應(yīng)用程序提供適當(dāng)?shù)沫h(huán)境設(shè)置,并且它可以根據(jù)需要在不同的版本之間進(jìn)行替換。

  結(jié)論

  這些好處有助于解決你可能存在的很多疑慮,我們希望企業(yè)看到:無論企業(yè)的組織的大小或應(yīng)用程序的成熟度和復(fù)雜程度如何,基于云計(jì)算的CI解決方案可能是更可行的選擇。