那么,這些關(guān)于成本、質(zhì)量、速度和范圍的決策如何影響系統(tǒng)的可伸縮性呢?如前一章所述,可伸縮性與擴(kuò)展項(xiàng)目或基礎(chǔ)設(shè)施項(xiàng)目的這些權(quán)衡之間存在著直接的關(guān)系。常熟做網(wǎng)頁(yè)的目的就是產(chǎn)生網(wǎng)站。簡(jiǎn)單的信息如文字,圖片(GIFs, JPEGs,PNGs)和表格,都可以通過(guò)使超言、可擴(kuò)展超文本標(biāo)記語(yǔ)言等標(biāo)示語(yǔ)言放置到網(wǎng)站頁(yè)面上。常熟網(wǎng)頁(yè)設(shè)計(jì)要能充分吸引訪問(wèn)者的注意力,讓訪問(wèn)者產(chǎn)生視覺(jué)上的愉悅感。因此在網(wǎng)頁(yè)創(chuàng)作的時(shí)候就必須將網(wǎng)站的整體設(shè)計(jì)與網(wǎng)頁(yè)設(shè)計(jì)的相關(guān)原理緊密結(jié)合起來(lái)。常熟做網(wǎng)頁(yè)更復(fù)雜的信息如矢量圖形、動(dòng)畫、視頻、聲頻等多媒體檔案則需要插件程序來(lái)運(yùn)行,同樣地它們亦需要標(biāo)示語(yǔ)言移植在網(wǎng)站內(nèi)。對(duì)于開發(fā)函數(shù)的項(xiàng)目,這些約束的權(quán)衡決定將影響函數(shù)和整個(gè)系統(tǒng)的可伸縮性。這是權(quán)衡決策和可伸縮性之間的一種間接關(guān)系。
一個(gè)需要拆分主數(shù)據(jù)庫(kù)的擴(kuò)展項(xiàng)目,就像開發(fā)函數(shù)項(xiàng)目一樣,也需要平衡這四個(gè)約束。你會(huì)不會(huì)把你的大部分高級(jí)工程師從這個(gè)項(xiàng)目中拉出來(lái),去開發(fā)這個(gè)功能,并致力于分解數(shù)據(jù)庫(kù)的項(xiàng)目?你會(huì)給你的團(tuán)隊(duì)六到十八個(gè)月的時(shí)間來(lái)完成這個(gè)項(xiàng)目嗎?如果需要的話,您會(huì)增加內(nèi)置的特性來(lái)進(jìn)一步拆分?jǐn)?shù)據(jù)庫(kù)嗎?你能縮短這個(gè)項(xiàng)目,然后一個(gè)地把它分開嗎?這些是您在項(xiàng)目過(guò)程中需要問(wèn)的問(wèn)題,它們也是平衡項(xiàng)目三角的速度、成本、質(zhì)量和范圍的問(wèn)題。
這些限制也將間接影響可擴(kuò)展性。讓我們AllScale公司的支付功能,例如,它的重點(diǎn)是速度。該功能必須在當(dāng)月的為了年底結(jié)算周期使用結(jié)束前公布。錯(cuò)過(guò)了這個(gè)日期將導(dǎo)致需要進(jìn)行支付的人工處理,將引入更多的錯(cuò)誤,導(dǎo)致非支付和收入的損失。副總裁邁克·軟件開發(fā)團(tuán)隊(duì),從索爾福德三名高級(jí)工程師的另一個(gè)項(xiàng)目繪制,分配他們支付的項(xiàng)目,才能夠完成它的時(shí)間。一切都進(jìn)行得很順利,直到周末結(jié)束,這個(gè)功能被釋放,所以它可以按計(jì)劃辦理結(jié)算。
6個(gè)月后,Allscale的人力資源管理網(wǎng)站的內(nèi)容存儲(chǔ)量增加了100%以上,而參與月末結(jié)算周期的用戶數(shù)量增加了更大的百分比。它們?cè)诔两倒δ苌系目偤奢d接近釋放功能開始時(shí)總荷載的150%。目前,其處理時(shí)間仍控制在12小時(shí)以內(nèi)。但本月的用戶增長(zhǎng)已經(jīng)大大改變了它,處理時(shí)間躍升到38小時(shí)。由于此服務(wù)是作為單個(gè)應(yīng)用程序的附加功能設(shè)計(jì)的,因此不能在多個(gè)服務(wù)器上運(yùn)行。直到現(xiàn)在,六個(gè)月前作出的決定的后果已經(jīng)逐漸顯現(xiàn)出來(lái)。allscale的操作團(tuán)隊(duì)將不得不為應(yīng)用程序分配一個(gè)更大的服務(wù)器,以完成下個(gè)月的結(jié)算,該結(jié)算最初計(jì)劃用作數(shù)據(jù)庫(kù)服務(wù)器。當(dāng)然,這也會(huì)對(duì)硬件預(yù)算產(chǎn)生負(fù)面影響。操作團(tuán)隊(duì)還需要花費(fèi)大量時(shí)間監(jiān)視、準(zhǔn)備、配置和測(cè)試用于此遷移的服務(wù)器。此外,該項(xiàng)目可能會(huì)吸引軟件開發(fā)工程師和質(zhì)量保證工程師提出更改建議,并最終驗(yàn)證應(yīng)用程序是否可以在新服務(wù)器上運(yùn)行。