精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

軟件工程技術(shù)的未來

責(zé)任編輯:editor004

作者:Ben Linders

2016-12-09 11:25:02

摘自:INFOQ

“云、架構(gòu)即代碼、具有API和反脆弱系統(tǒng)的聯(lián)邦架構(gòu),這些軟件系統(tǒng)開發(fā)技術(shù)正迅速成為關(guān)注焦點(diǎn)”。Poppendieckz在演講中給出了幾個(gè)已有的架構(gòu)即代碼解決方案:使用容器,實(shí)現(xiàn)了過程的標(biāo)準(zhǔn)化和自動(dòng)化。

“云、架構(gòu)即代碼、具有API和反脆弱系統(tǒng)的聯(lián)邦架構(gòu),這些軟件系統(tǒng)開發(fā)技術(shù)正迅速成為關(guān)注焦點(diǎn)”。這是Mary Poppendieck在GOTO Berlin 2016大會(huì)上做“軟件工程技術(shù)的未來”演講時(shí)所提出的。

當(dāng)數(shù)據(jù)量大到無法被單機(jī)所管理時(shí),有兩個(gè)解決方案,即縱向擴(kuò)展和橫向擴(kuò)展。縱向擴(kuò)展通過擴(kuò)容單機(jī)的能力實(shí)現(xiàn),Poppendieck指出通常這并非是解決問題的正確方向。很多情況下需要做橫向擴(kuò)展,通過添加更多的計(jì)算機(jī)構(gòu)建集群系統(tǒng)。

Poppendieck在演講中給出了兩種不同的橫向擴(kuò)展方法:

文件的橫向擴(kuò)展。以Google的搜索技術(shù)為例,文件被分割為多個(gè)小塊并分別拷貝到多個(gè)服務(wù)器中。這樣搜索可并行地完成,并通過合并各個(gè)服務(wù)器所給出的結(jié)果得到最終的搜索結(jié)果。

架構(gòu)的橫向擴(kuò)展。以Amazon的做法為例,事務(wù)會(huì)被切分為多個(gè)服務(wù),每個(gè)服務(wù)使用特定服務(wù)器實(shí)現(xiàn)。當(dāng)事務(wù)存在瓶頸時(shí),可在多個(gè)服務(wù)器上復(fù)制服務(wù),并且每個(gè)服務(wù)由一個(gè)半自治的“雙比薩”團(tuán)隊(duì)(譯者注:“雙批薩”原則指團(tuán)隊(duì)規(guī)模不應(yīng)超過兩個(gè)披薩餅還不夠吃的人數(shù))負(fù)責(zé)。

Poppendieck提到,越來越多的系統(tǒng)正在向云上遷移,云就是未來。她指明:

相比于大多數(shù)預(yù)制的數(shù)據(jù)中心,云更便宜、更穩(wěn)定、更安全并且更具擴(kuò)展性。

將已有的應(yīng)用轉(zhuǎn)化為基于云的應(yīng)用是十分具有挑戰(zhàn)性的。Poppendieck引用了IBM的Arthur Cole所說的話:

針對(duì)傳統(tǒng)數(shù)據(jù)架構(gòu)所設(shè)計(jì)的應(yīng)用如果不做大量的代碼重構(gòu)工作,就無法在云中很好地運(yùn)行。

Poppendieckz在演講中給出了幾個(gè)已有的架構(gòu)即代碼解決方案:

使用容器,實(shí)現(xiàn)了過程的標(biāo)準(zhǔn)化和自動(dòng)化。 無服務(wù)器架構(gòu),以更低的價(jià)格提供了靈活的計(jì)算容量。 軟件定義網(wǎng)絡(luò),使用軟件而非硬件實(shí)現(xiàn)了規(guī)模擴(kuò)展。

單一的中央數(shù)據(jù)庫會(huì)產(chǎn)生依賴性問題,這是由于所有的應(yīng)用都依賴于數(shù)據(jù),數(shù)據(jù)庫的改變將會(huì)影響到很多的應(yīng)用。Poppendieck指出:“企業(yè)數(shù)據(jù)庫是一個(gè)巨大的依賴性生成器”。由于每個(gè)獨(dú)立團(tuán)隊(duì)的工作必須要和其它共享同一數(shù)據(jù)庫的團(tuán)隊(duì)協(xié)作,這導(dǎo)致每個(gè)團(tuán)隊(duì)都無法實(shí)現(xiàn)自治的部署。聯(lián)邦架構(gòu)是單一數(shù)據(jù)庫的替代技術(shù),它將數(shù)據(jù)分割為適合各個(gè)獨(dú)立模塊或服務(wù)需求的本地?cái)?shù)據(jù)存儲(chǔ),數(shù)據(jù)的存取只能通過API方法。API正在替代中央共享數(shù)據(jù)庫,并使物聯(lián)網(wǎng)成為可能。Poppendieck指出,使用API是軟件工程的必備技術(shù)。API應(yīng)作為有具體團(tuán)隊(duì)負(fù)責(zé)的產(chǎn)品看待,并通過聚焦于API用戶來推進(jìn)和開發(fā)新的功能。

Poppendieck說,沒有必要盡力去實(shí)現(xiàn)系統(tǒng)零故障,我們可以換一種思維。當(dāng)前很多的系統(tǒng)都是脆弱的,雖然它們?cè)趧偵暇€時(shí)都是魯棒的,但是隨著時(shí)間的進(jìn)展,它們變得越發(fā)地難以維護(hù)。Poppendieck提出,當(dāng)今系統(tǒng)需要的是反脆弱,并具有面對(duì)故障的能力。在發(fā)生故障時(shí),系統(tǒng)應(yīng)能限定損害的程度,并從故障中恢復(fù)。

如何獲取反脆弱系統(tǒng)取決于系統(tǒng)測試的方法,即如何通過注入故障產(chǎn)生給定的運(yùn)行錯(cuò)誤。Poppendieck指出,為達(dá)到所期望的可用性和魯棒性等級(jí),系統(tǒng)需要隔離故障并從故障自動(dòng)恢復(fù)。

Poppendieck提到了當(dāng)前開發(fā)軟件的關(guān)鍵事宜,她說,為具備持續(xù)集成的能力,需要一個(gè)部署流水線;為獲得持續(xù)集成所承諾的優(yōu)點(diǎn),需要具有一個(gè)包括產(chǎn)品管理、測試和運(yùn)營的跨功能團(tuán)隊(duì)。部署流水線依賴于自動(dòng)的測試、遷移和部署過程。持續(xù)集成需要所有團(tuán)隊(duì)通過代碼庫做交流,實(shí)現(xiàn)針對(duì)主干分支的持續(xù)集成。團(tuán)隊(duì)?wèi)?yīng)維持軟件時(shí)常處于發(fā)布就緒的狀態(tài),如果事實(shí)并非如此,你必須停下來并做到上述要求。只要實(shí)現(xiàn)了持續(xù)的部署,一旦有用的軟件增量或功能就緒,就可通過切換或轉(zhuǎn)換實(shí)現(xiàn)軟件的增量發(fā)布。

Poppendieck提出,持續(xù)交付提供了必要的端到端反饋。研究顯示在半數(shù)情況下產(chǎn)品經(jīng)理是錯(cuò)的,產(chǎn)品規(guī)格說明中會(huì)有三分之二的特性和功能是沒有必要的。導(dǎo)致這些問題產(chǎn)生的原因在于做實(shí)驗(yàn)驗(yàn)證某個(gè)特性是否可以真正地解決手頭問題之前,就試圖達(dá)成具體開發(fā)特性的細(xì)節(jié)。為確保開發(fā)的解決方案能很好地適用于所需解決問題,需要通過實(shí)際的使用產(chǎn)生快速的反饋,這也正是精益開發(fā)和敏捷開發(fā)實(shí)踐的真正價(jià)值所在。Poppendieck建議將發(fā)布團(tuán)隊(duì)轉(zhuǎn)變?yōu)樵谝欢l件下可解決問題的團(tuán)隊(duì)。

Poppendieck建議在系統(tǒng)開發(fā)的過程中采用基本的工程性過程實(shí)踐、在現(xiàn)實(shí)制約因素的范圍內(nèi)學(xué)習(xí),并且建議從模式或者信號(hào)而非需求或是特性開始。然后聚焦于問題本身并使用假設(shè)去規(guī)劃工作。基于上述方法,開展多個(gè)實(shí)驗(yàn)并使用實(shí)驗(yàn)結(jié)果數(shù)據(jù)決定應(yīng)如何繼續(xù)工作。

查看英文原文:Technologies for the Future of Software Engineering

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 东光县| 绥滨县| 西贡区| 太湖县| 天津市| 安义县| 凤城市| 陕西省| 井冈山市| 南宁市| 巴彦淖尔市| 六安市| 香格里拉县| 景德镇市| 广东省| 察隅县| 延边| 和田县| 石景山区| 利辛县| 南靖县| 静宁县| 黄大仙区| 攀枝花市| 莱阳市| 库尔勒市| 象州县| 博兴县| 辽宁省| 科尔| 会同县| 凤山市| 汝南县| 福海县| 石门县| 汝州市| 余姚市| 平谷区| 灵台县| 桂东县| 菏泽市|