優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利

設(shè)計(jì)時(shí)就考慮擴(kuò)展性(D- I -D方法)

提前考慮如何擴(kuò)展解決方案,在實(shí)際需要前大概一個(gè)月(編程)實(shí)現(xiàn)它,或者在客戶急需時(shí)提前幾天實(shí)現(xiàn)它,會(huì)給開發(fā)團(tuán)隊(duì)節(jié)省很多全錢和時(shí)間。

我們公司的重點(diǎn)是幫助客戶實(shí)現(xiàn)他們的擴(kuò)展性需求,也許你可以想到,經(jīng)常會(huì)有客戶這樣問(wèn):“我們應(yīng)該何時(shí)對(duì)可擴(kuò)展性進(jìn)行投資?”不必經(jīng)過(guò)大腦的答復(fù)是應(yīng)該在需要該解決方案的前一天投資(部署)如果你能夠在需要擴(kuò)展解決方案的前一天部署它,那么就會(huì)讓投資行為“即時(shí)”發(fā)生,恰到好處,從而像 Dell/公司那樣按需生產(chǎn)。這樣做,會(huì)使你的公司效益和股東權(quán)益最大。

不過(guò)我們要面對(duì)的問(wèn)題是,讓投資和部署成為即時(shí)的是不可能的,即使可能,如果沒(méi)有選對(duì)時(shí)機(jī),也會(huì)帶來(lái)很大的風(fēng)險(xiǎn)。退而求其次,部署擴(kuò)展性方案的最好方法是 AKF Partners的設(shè)計(jì)一實(shí)現(xiàn)一部署(Design-implement-deploy)方法,即D- I -D方法。這三個(gè)階段與我們認(rèn)識(shí)事物的三個(gè)階段一致,即針對(duì)問(wèn)題思考和設(shè)計(jì)解決方案、構(gòu)建或編寫該解決方案、實(shí)際地安裝或部署它。這種方法不提倡也不需要瀑布模型。
 
我們認(rèn)為敏捷方法正是遵循的這個(gè)過(guò)程,體現(xiàn)了人的主觀能動(dòng)性。人們不會(huì)為還沒(méi)有注意到的問(wèn)題開發(fā)解決方案,而一個(gè)方案,如果還沒(méi)有開發(fā)出來(lái),也不可能被制造或發(fā)布出來(lái)。無(wú)論開發(fā)的方法是什么(敏捷模型、瀑布模型、混合模型等),開發(fā)的任何東西都需要基于一套成體系的理論和標(biāo)準(zhǔn),它們定義并指導(dǎo)著我們?cè)撟鍪裁础?br />


1.設(shè)計(jì)

首先要說(shuō)的是,討論和設(shè)計(jì)什么東西,比真正用代碼實(shí)現(xiàn)這一設(shè)計(jì)的投人少得多。考慮到設(shè)計(jì)的成本較低,那么在實(shí)際需要之前,可以討論并草擬出能夠使平臺(tái)具有高擴(kuò)展性的設(shè)計(jì)。但是,顯然我們并不想在生產(chǎn)環(huán)境中投人比實(shí)際需要多10倍、20倍或者100倍的容量,關(guān)于如何將容量擴(kuò)展到這種水平的討論相對(duì)來(lái)說(shuō)成本小得多。那么,在D- I -D擴(kuò)二展模型的設(shè)計(jì)(Design)階段,重點(diǎn)就在于如何將平臺(tái)的容量擴(kuò)展到2倍以上,甚至到無(wú)窮大。我們的腦力成本是相當(dāng)高的,因?yàn)樾枰蛡?ldquo;大思想家”來(lái)考慮“大問(wèn)題”。但是編程成本和資產(chǎn)成本卻是很低的,因?yàn)槲覀儾](méi)有編寫代碼,也沒(méi)有部署系統(tǒng)。由小組的領(lǐng)導(dǎo)者和程序員參與的討論擴(kuò)展性問(wèn)題的大會(huì),能讓人發(fā)現(xiàn)在D- I -D方法的設(shè)計(jì)階段有哪些地方是必須擴(kuò)展的。
 
2.實(shí)現(xiàn)

隨著時(shí)間的流逝,我們所預(yù)見(jiàn)的對(duì)擴(kuò)展性的需求就會(huì)臨近,這日時(shí)就需要在軟件中實(shí)現(xiàn)(Implement)我們的設(shè)計(jì)了。我們要根據(jù)實(shí)際需要,把擴(kuò)展的范圍縮小,例如擴(kuò)展到當(dāng)前大小的3-20倍。這里使用“大小”這個(gè)詞,指的就是被認(rèn)為是系統(tǒng)擴(kuò)展的最大瓶頸,因此極需要進(jìn)行可擴(kuò)展性修改的元素。也許存在這樣的情況,即把系統(tǒng)擴(kuò)展到當(dāng)前大小的100倍(或更高)所需的成本和擴(kuò)展到20倍的成本一樣,那么我們還不如一次完成這些修改,而不是分成多次來(lái)做。在X對(duì)用戶需求進(jìn)行模塊化,把它們分布(或共享)到多(N)個(gè)系統(tǒng)和數(shù)據(jù)庫(kù)中時(shí),就可能發(fā)生這種情況。我們可以編寫一個(gè)變量Cust MOD,隨著時(shí)間變遷,可以把它配置為1(當(dāng)前)到1000(5年后)。這種修改帶來(lái)的編程(或?qū)崿F(xiàn)現(xiàn))成本不會(huì)隨著N而變化,所以我們不如選擇這種方法。這種修改,帶來(lái)的是高編程成本、中等的腦力成本(在整個(gè)生命周期前期已經(jīng)討論過(guò)設(shè)計(jì)了)以及低資產(chǎn)成本,因?yàn)槿绻畛蹼A段我們只打算部署1倍或者2倍的模塊,那么當(dāng)前就沒(méi)有必要部署100倍的系統(tǒng)。

3.部署

D-I-D方法的最后階段是部署(Deployment)。仍然用上面介紹的模塊化示例,我們想用即時(shí)方法部署系統(tǒng),沒(méi)有任何理由讓資產(chǎn)閑置從而減少股東的收益。如果我們是一個(gè)較高速增長(zhǎng)的公司,那么可以在生產(chǎn)環(huán)境中投入1.5倍的峰值容量。如果是個(gè)超高速增長(zhǎng)的公司,則可以在生產(chǎn)環(huán)境中投人5倍的峰值容量。我們常常告訴客戶,對(duì)于爆炸性的容量,要利用“云”,以免備用33%的資產(chǎn)去防范突然的客戶活動(dòng)增長(zhǎng)。在部署階段,需要高資產(chǎn)成本,而其他成本則屬中低水平。這類情況的總體成本趨于最高,部署一個(gè)相當(dāng)于需求的容量100倍的系統(tǒng),會(huì)讓很多公司倒閉。記住,擴(kuò)展性是個(gè)靈活的概念,它可以是擴(kuò)張,也可以是收縮,而我們的解決方案需要兩方面都考慮到。因此,靈活性至關(guān)重要,你可能需要根據(jù)客戶需求讓解決方案中的不同系統(tǒng)進(jìn)行擴(kuò)張或者收縮。

雖然D-I-D方法的每個(gè)階段都有不同的腦力、編程和資產(chǎn)成本,但整體成本卻是基本一致的。關(guān)于擴(kuò)展性的設(shè)計(jì)和思考成本相對(duì)較低,所以應(yīng)該經(jīng)常進(jìn)行。這些活動(dòng)最好形成文檔,以便當(dāng)有需求時(shí),程序員就能迅速地根據(jù)文檔編寫代碼。將設(shè)計(jì)好的解決方案編寫(開發(fā))成代碼可以稍后再進(jìn)行,開發(fā)的成本稍高,但是沒(méi)必要在生產(chǎn)環(huán)境中真正實(shí)施它。我們可以像上面的模塊化示例中所述的,修改少量代碼,而無(wú)需再購(gòu)買一個(gè)相當(dāng)于現(xiàn)有容量100倍的系統(tǒng)。最后,采用這種方法,就可以只在有需求時(shí)再購(gòu)買設(shè)備,可能是從主要網(wǎng)站建設(shè)的設(shè)備供應(yīng)商那里提前6周購(gòu)買,或者極其緊急的情況下,讓系統(tǒng)管理員去當(dāng)?shù)氐姆?wù)器商店采購(gòu)。

本文地址:http://m.cdrpkj.cn//article/3443.html
相關(guān)文章:
最新文章: