自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DevOps和IaaS開啟云時(shí)代的開發(fā)和測試

云計(jì)算 IaaS
最近幾年,公有IaaS云快速發(fā)展,人們已經(jīng)認(rèn)識到云計(jì)算帶來的強(qiáng)大敏捷性和低成本優(yōu)勢。在越來越多軟件及服務(wù)的生產(chǎn)環(huán)境直接部署和運(yùn)行在IaaS云上的同時(shí),企業(yè)級用戶也在積極嘗試?yán)肐aaS云服務(wù)來改進(jìn)自己的軟件開發(fā)、測試體系。但是……

背景

在軟件發(fā)展的幾十年歷程中,人們一直在孜孜不倦地追求用更快的速度交付更高質(zhì)量的軟件及服務(wù)。無論是不斷革新的軟件工程思想,還是持續(xù)優(yōu)化的編程語言及工具,亦或是紛紛出現(xiàn)的可復(fù)用開發(fā)、測試框架,無不大大提高了整個(gè)軟件開發(fā)及交付的效率。但是,與此同時(shí),軟件系統(tǒng)復(fù)雜度急速上升,可靠性要求越來越高,這讓軟件快速交付依然非常具有挑戰(zhàn)。尤其是進(jìn)入互聯(lián)網(wǎng)和云計(jì)算時(shí)代,市場競爭異常激烈,人們對于軟件交付的周期已經(jīng)從原來的以季度、年度為單位縮短到以天計(jì)算,以便在市場中快速試錯(cuò),找到真正的用戶需求。這些都給傳統(tǒng)的軟件開發(fā)、測試體系提出了巨大的挑戰(zhàn)。

[[157936]]

最近幾年,公有IaaS云快速發(fā)展,人們已經(jīng)認(rèn)識到云計(jì)算帶來的強(qiáng)大敏捷性和低成本優(yōu)勢。在越來越多軟件及服務(wù)的生產(chǎn)環(huán)境直接部署和運(yùn)行在IaaS云上的同時(shí),企業(yè)級用戶也在積極嘗試?yán)肐aaS云服務(wù)來改進(jìn)自己的軟件開發(fā)、測試體系。但是,由于發(fā)展路徑問題,國內(nèi)的公有云開發(fā)人員還是習(xí)慣于以包年包月的方式使用IaaS云服務(wù),并沒有充分發(fā)揮出云計(jì)算彈性、靈活和按需服務(wù)的優(yōu)勢。隨著國內(nèi)IaaS云開始普遍提供API,國內(nèi)的開發(fā)人員必定也會逐步體會到彈性云計(jì)算帶來的具體優(yōu)勢,并逐步適應(yīng)這種新模式。因此,使用云來加速開發(fā)測試也正離國內(nèi)開發(fā)者越來越近,并將會被廣泛接受。

傳統(tǒng)開發(fā)、測試中的挑戰(zhàn)

在軟件開發(fā)、測試中,一般需要經(jīng)過開發(fā)、測試,驗(yàn)收和上線四個(gè)階段,同時(shí)也對應(yīng)有四個(gè)環(huán)境:開發(fā)環(huán)境,測試環(huán)境,驗(yàn)收環(huán)境和生產(chǎn)環(huán)境,即所謂的DTAP。整個(gè)流程如下所示:

在這樣一個(gè)復(fù)雜且冗長的流程中,需要不斷地涉及到環(huán)境的準(zhǔn)備以及應(yīng)用程序的部署。而且涉及人員也非常多,包括開發(fā)、測試和運(yùn)維。面對這些挑戰(zhàn),傳統(tǒng)的軟件開發(fā)測試體系中普遍存在一系列問題:

獲取基礎(chǔ)設(shè)施(硬件、軟件和網(wǎng)絡(luò)等)非常困難,而且基礎(chǔ)設(shè)施的交付周期也非常長。由于采購基礎(chǔ)設(shè)施多為一次性投入,成本還非常大,企業(yè)在做這樣決定都非常謹(jǐn)慎。除非是已經(jīng)被市場驗(yàn)證的想法和產(chǎn)品,企業(yè)一般不太容易快速決定相關(guān)采購。即使決定采購,從下單到交付仍然是一個(gè)漫長的過程(常常以月為單位計(jì)算)。所以為了避免影響工程進(jìn)度或者節(jié)省成本,經(jīng)常會看到多位開發(fā)測試人員(甚至多個(gè)產(chǎn)品團(tuán)隊(duì))共用一套開發(fā)或者測試環(huán)境,然后就會出現(xiàn)為協(xié)調(diào)使用基礎(chǔ)設(shè)施而郵件漫天飛的場景。更為糟糕的是很多好的想法和構(gòu)思因?yàn)槿唛L的基礎(chǔ)設(shè)置準(zhǔn)備過程而錯(cuò)失市場機(jī)遇,甚至直接就胎死腹中。

部署和維護(hù)各種開發(fā)及測試環(huán)境令人頭痛。當(dāng)我們有了足夠的硬件資源來支持開發(fā)、測試后,另外一個(gè)問題又隨之而生。如何管理、部署這么多環(huán)境,如何讓這么多環(huán)境保持一致。例如,使用的Linux內(nèi)核是不是一個(gè)版本嗎?都裝了統(tǒng)一版本的Python嗎?大家在不同的環(huán)境上是用一致的代碼做測試嗎?這樣的問題必然會影響到整個(gè)團(tuán)隊(duì)的開發(fā)效率,最后非常有可能的結(jié)果就是大家還是會回到只用一個(gè)公共開發(fā)測試環(huán)境(這樣又開始重新相互影響),亦或土豪公司會再招個(gè)專職的人員來維護(hù)這些環(huán)境(于是,這個(gè)人會成為新的單點(diǎn),他/她一不在場時(shí)大家都傻眼了)。除了開發(fā)、測試環(huán)境之間的一致性維護(hù)工作外,保持開發(fā)及測試環(huán)境和生產(chǎn)環(huán)境的一致同樣具有挑戰(zhàn)。因?yàn)槟硞€(gè)配置的不一致導(dǎo)致測試通過的代碼在生產(chǎn)環(huán)境不工作是常有的事情。因?yàn)槟硞€(gè)新功能需要升級第三方依賴庫,在測試環(huán)境做了升級而生產(chǎn)環(huán)境卻忘了也隔三差五的來一次。于是窮盡各種細(xì)節(jié)的環(huán)境描述,部署文檔便塞滿了公司內(nèi)部的Wiki或者某個(gè)文檔管理平臺。當(dāng)然,這些文檔基本上是在完成的那一刻就已經(jīng)過時(shí),讓后來的閱讀者只會越看越糊涂。

開發(fā)及測試環(huán)境無法完全復(fù)現(xiàn)生產(chǎn)環(huán)境的場景。在實(shí)際運(yùn)營中,生產(chǎn)環(huán)境總是承受最嚴(yán)酷的考驗(yàn)(大流量的請求,頻繁的攻擊等)。但是,由于成本和意識上的一些問題,大家在開發(fā)及測試環(huán)境中很難復(fù)現(xiàn)這些場景并進(jìn)行預(yù)先的測試。而且很多問題(尤其是在分布式系統(tǒng)中)都是在規(guī)模到達(dá)一定程度后才會出現(xiàn),通常開發(fā)及測試環(huán)境都很難模擬出生產(chǎn)環(huán)境的規(guī)模。

人為的割裂IT、開發(fā)、測試和運(yùn)維部門也是在傳統(tǒng)軟件開發(fā)、測試體系中經(jīng)常碰到的問題。這個(gè)直接導(dǎo)致流程的冗長和信息溝通的不暢,尤其是在系統(tǒng)非常復(fù)雜時(shí),需要讓各個(gè)不同部門之間的人能對整個(gè)系統(tǒng)有一致理解是非常不容易的事情。

由于上面這些普遍存在的問題,軟件開發(fā)人員的生產(chǎn)效率受到極大影響。當(dāng)然,人們也在思想層面和實(shí)踐層面不斷改進(jìn)這個(gè)流程,其中最近幾年盛行的DevOps思想得到了廣泛的認(rèn)同。個(gè)人認(rèn)為DevOps思想中最關(guān)鍵的點(diǎn)在于打破傳統(tǒng)軟件開發(fā)過程中的人為割裂和“殘酷無情”的推動自動化流程。前者意味著用統(tǒng)一的方式管理整個(gè)DATP流程和環(huán)境,而后者則是通過可復(fù)用的自動化工具和腳本把整個(gè)流程和環(huán)境部署、維護(hù)的知識固化下來,變成可直接操作的行動。

云計(jì)算帶來了新可能

由于前面所述的各種挑戰(zhàn)和問題,以及DevOps思想的廣泛認(rèn)同,越來越多的公司開始行動起來改進(jìn)既有的開發(fā)、測試流程,各種打著DevOps標(biāo)簽的輔助工具也涌現(xiàn)出來。但是工程人員在獲取基礎(chǔ)設(shè)施方面的效率仍然無法令人滿意(這個(gè)問題尤其在創(chuàng)業(yè)公司和中小企業(yè)里面更為明顯)。幸好,云計(jì)算(尤其是公有IaaS云)的到來極大地改變了這個(gè)現(xiàn)狀。具體體現(xiàn)在下面幾個(gè)方面:

云計(jì)算提供了近乎無限量的基礎(chǔ)設(shè)施資源,而且你在任何時(shí)候都可以立馬獲得。筆者就親自經(jīng)歷過一個(gè)下午啟動2000臺云主機(jī)進(jìn)行測試的真實(shí)場景。有多少公司可以一次批準(zhǔn)采購2000臺機(jī)器的預(yù)算,而且之前讓一個(gè)下午就立馬到位這么多服務(wù)器也基本是不可能的。另外,你獲取這些基礎(chǔ)設(shè)施資源的過程是完全“自助”式的,不需要依賴任何專門的IT或者網(wǎng)絡(luò)工程師。

云計(jì)算提供了全新的基礎(chǔ)設(shè)施資源成本模式,從原來的一次購買變成了按需付費(fèi)。你只需要為自己具體使用的基礎(chǔ)設(shè)施資源量付費(fèi)。在云計(jì)算時(shí)代,1000臺機(jī)器計(jì)算1個(gè)小時(shí)和讓1臺機(jī)器運(yùn)行1000個(gè)小時(shí)的成本竟然是相等的。

云計(jì)算讓基礎(chǔ)設(shè)施資源“可編程”。在傳統(tǒng)IT時(shí)代,基礎(chǔ)設(shè)施資源總是顯得冰冷、生硬,程序員拿它無可奈何。你要組建一個(gè)虛擬網(wǎng)絡(luò)或者獲取個(gè)公網(wǎng)IP都得走申請流程,找運(yùn)維人員。而且,絕大部分公司為了簡化管理成本或者安全考量,還會對基礎(chǔ)設(shè)施的使用制定一堆或合理,或不合理的規(guī)則制度,這都極大地限制了程序員的手腳。在云時(shí)代,絕大部分的公有或者私有IaaS云提供商都支持API(還沒有提供API的也都在加班加點(diǎn)的準(zhǔn)備API中)。程序員可以非常靈活的調(diào)用這些API,使用標(biāo)準(zhǔn)的基礎(chǔ)設(shè)施單元構(gòu)建自己應(yīng)用的基礎(chǔ)設(shè)施架構(gòu)。

在解決了軟件開發(fā)人員獲取基礎(chǔ)設(shè)施資源困難的同時(shí),云計(jì)算還帶來了大量額外的好處。目前,主流的公有IaaS云服務(wù)商在提供基礎(chǔ)設(shè)施云服務(wù)的同時(shí),還會提供如數(shù)據(jù)庫服務(wù),監(jiān)控服務(wù),隊(duì)列服務(wù),通知服務(wù)等一系列常見組件。這些服務(wù)同樣即插即用,按需付費(fèi)。而且這些云服務(wù)都是由一流工程師開發(fā),富有經(jīng)驗(yàn)的人員運(yùn)維,經(jīng)過了嚴(yán)酷的實(shí)際生產(chǎn)環(huán)境考驗(yàn)。開發(fā)人員完全可以信任他們。

云時(shí)代的開發(fā)和測試

前面討論了DevOps思想和IaaS平臺各自的優(yōu)勢,而這兩者恰恰又是可以很好結(jié)合來達(dá)到更好的效果。尤其是在幫助開發(fā)人員加速軟件開發(fā)測試效率,縮短交付周期上非常有用。這種加速主要體現(xiàn)在下面幾個(gè)方面:

1.利用IaaS平臺加速開發(fā)和測試人員獲取基礎(chǔ)設(shè)施的效率。在云時(shí)代,開發(fā)和測試人員可以在分鐘級別、以非常低的成本獲得想要的基礎(chǔ)設(shè)施,而且這些基礎(chǔ)設(shè)施還不需你投入人力、財(cái)力來維護(hù)。同時(shí),由于基礎(chǔ)設(shè)施獲取的便捷性和低成本,它讓原來受限于基礎(chǔ)設(shè)施而無法并行的事情現(xiàn)在得以完全并行展開。例如,每個(gè)開發(fā)人員都可以獲得一個(gè)和生產(chǎn)環(huán)境完全一致的基礎(chǔ)設(shè)施并行開發(fā),開發(fā)和測試的工作也可以并行推進(jìn),各種不同想法也能并行得到快速驗(yàn)證。

2.利用DevOps思想和可編程的IaaS資源融合軟件開發(fā)的各個(gè)階段,打破原來存在的人為割裂,加速整個(gè)流程的迭代速度。如前面所述,軟件開發(fā)過程中一般包括開發(fā)、測試、驗(yàn)收和生產(chǎn)幾個(gè)階段,每個(gè)階段都可以有自己獨(dú)立的運(yùn)行環(huán)境,而且每個(gè)階段甚至是由各自獨(dú)立的人員來負(fù)責(zé)。在云時(shí)代,所有的基礎(chǔ)設(shè)施和應(yīng)用程序的運(yùn)行環(huán)境都可以通過自動化流程一體化管理,且所有的部署、交付工作都是自動化完成。因?yàn)槭且惑w化管理,各個(gè)環(huán)境的不一致性就能得到很好的控制,可以極大地避免因?yàn)榄h(huán)境問題導(dǎo)致的開發(fā)流程受阻。如此同時(shí),開發(fā)人員可以利用IaaS公有云提供的大量低成本資源更容易地在開發(fā)、測試和驗(yàn)收環(huán)境中模擬出更多原來只能在生產(chǎn)環(huán)境中才能出現(xiàn)的場景,如大規(guī)模的流量壓力,大量用戶同時(shí)在線等。這樣可以更早發(fā)現(xiàn)系統(tǒng)的性能瓶頸,設(shè)計(jì)和實(shí)現(xiàn)的缺陷。

3.通過直接使用大量的通用云服務(wù)來減少工作量,加速軟件上線周期。毫無疑問,通過直接復(fù)用IaaS服務(wù)商提供的如數(shù)據(jù)庫服務(wù),監(jiān)控服務(wù)等也大大加速了開發(fā)和測試流程。當(dāng)然,要想在開發(fā)和測試中利用好這些通用云服務(wù),你最好要把自己的開發(fā)測試體系和云緊密聯(lián)系起來。

由于上面的這些明顯的優(yōu)勢,越來越多的開發(fā)團(tuán)隊(duì)已經(jīng)開始用IaaS加DevOps的方式改進(jìn)自己的開發(fā)測試體系。為了讓開發(fā)人員更容易地使用IaaS云服務(wù)支撐云環(huán)境下的開發(fā)測試,大量基于IaaS的DevOps工具也都把提升軟件開發(fā)及測試效率作為一個(gè)重要的設(shè)計(jì)目標(biāo)。

【文章來源:FIT2CLOUD微信號】

責(zé)任編輯:Ophira 來源: FIT2CLOUD微信號
相關(guān)推薦

2013-05-13 11:46:30

云計(jì)算OpenStackBYOD

2015-10-27 14:32:55

IaaSDevOpsIT運(yùn)維

2014-12-19 11:07:18

IaaSDevOps

2010-11-01 13:10:33

2016-10-13 13:18:58

Devops云計(jì)算云策略

2022-04-06 11:00:27

鎖定云計(jì)算開源

2017-02-27 11:20:31

大數(shù)據(jù)DevOps遷移

2012-12-10 09:28:47

惠普云服務(wù)惠普SLA

2012-06-14 08:50:36

SaaS云計(jì)算DevOps

2010-02-23 10:58:43

EucalyptusIaaS云服務(wù)

2016-05-10 16:37:15

開發(fā)運(yùn)維DevOps新趨勢

2015-07-08 14:31:01

公有云主機(jī)托管數(shù)據(jù)中心

2009-09-07 08:37:44

VMware測試和開發(fā)

2012-06-25 09:20:05

IaaS云計(jì)算

2015-01-23 09:03:01

DevOpsCloudFoundrPaaS

2019-11-21 15:08:13

DevOps云計(jì)算管理

2017-09-22 16:37:31

互聯(lián)網(wǎng)

2021-01-10 15:20:32

云滲透云計(jì)算滲透測試

2022-11-30 10:34:17

2015-05-06 15:24:39

騰訊云混合云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號