如(rú)果客戶主開(kāi)始使用(yòng)軟件(jiànσ×)開(kāi)發人(rén)員(yuán)的(de)建議(yì)的(de)開(≈©♠kāi)發語言,系統的(de)質量會(huì)倍增。特别是(sh€∞ì),這(zhè)将有(yǒu)助于避免許♦↕®多(duō)問(wèn)題,而軟件(ji♦✘↑ àn)開(kāi)發人(rén)員(yuán)創建複雜(zΩ®₽á)的(de)基于服務器(qì)的(de)解π≤ε決方案。
企業(yè)如(rú)何與軟件(jiàn÷ε&)開(kāi)發人(rén)員(yuán)保持密切聯↕¥®系,了(le)解系統可(kě)擴展性的(de)細節?
讓我們考慮一(yī)個(gè)開(kāi)發新系統的(de)項目開(kāi)δ> 始的(de)情況。我們設計(jì)了(le)5個(gè)問(wè∏↕≈∏n)題,有(yǒu)助于簡化(huà)談判并将其引導到(dào)正确的(de)∏₩↕軌道(dào)上(shàng)。
5個(gè)主要(yào)系統的(de)可(kě)擴展性問(wèn)"<題
從(cóng)我們的(de)經驗來(lái)看(kàn),軟件(jiàn¶↑ ✔)開(kāi)發人(rén)員(yuán)在談論系統可(kě)擴♠✘¥展性時(shí)通(tōng)常會(huì)提出5個(gè)主要(y≈↓"αào)問(wèn)題:
1.讓軟件(jiàn)公司了(le)解計(jì)劃的(de)軟'©×≥件(jiàn)系統的(de)特點是(shì)什(shén)麽?
2.系統用(yòng)戶的(de)典型操作(z↓↑♦uò)是(shì)什(shén)麽?
3.系統是(shì)否有(yǒu)什(s↓εσhén)麽瓶頸?系統的(de)哪一(yī)部分(fēn)負載較重?
4.系統更重要(yào)的(de)是(shì):容錯(cuò)π♠還(hái)是(shì)高(gāo)性能(néng)?
5.可(kě)擴展性的(de)需求在哪裡(lǐ)出現(xiàn)?
我們想仔細看(kàn)看(kàn)五個(gè)問(wèn)題中的↕✘>ε(de)每一(yī)個(gè),并找出業÷®(yè)務代表綜合答(dá)案的(de)好(hǎ≠↑φ"o)處。
業(yè)務是(shì)否了(le)解計(jì)劃系統的(de)功能(néng♠π¶)?
幕後:
可(kě)擴展性是(shì)系統通(tōng)過升級現(xiàn)有(y®φǒu)硬件(jiàn)或添加額外(wài)的(de)新資源來(lái)σ≥δ✔應對(duì)日(rì)益增長(cháng)的(de)負載的(de)能(nα→✔éng)力。系統必須保持适當的(de)架構以允許後者。
換句話(huà)說(shuō),當後端開(kāi)發人(rén)員(yuán)÷×<開(kāi)始系統開(kāi)發時(shí),他(tγā)們需要(yào)了(le)解是(shì)否有(yǒu)可×→✘¥(kě)能(néng)将來(lái)擴展系統,這(zhè)意味著(zh¶ ∏e)其操作(zuò)功能(néng)的(de)增加。因此,他(tā)們需要↕™(yào)知(zhī)道(dào)企業(yè)主對(dγδuì)系統特征和(hé)進一(yī)步發展的(de)計(jì)劃。
例:
讓我們想象一(yī)下(xià),購(gòu)買機(jī)票(♠♣πpiào)的(de)在線服務的(de)所有(yǒu)者會(huì)制πβ≠☆(zhì)定計(jì)劃的(de)網站(zhàn)流量&£的(de)時(shí)間(jiān)表。時(shí)間(jiān)表可(kě≤©©∞)以是(shì)一(yī)天,一(yī)周,一(yī)個©δ(gè)月(yuè),四分(fēn)之一(yī)或一(yī)年(nián)"π。它可(kě)以覆蓋用(yòng)戶和(hé)用(yòng)戶活εδ♣動的(de)類型,作(zuò)為(wèi)系統回答(dá)所需↔'↑的(de)時(shí)間(jiān)。使用×β↔(yòng)這(zhè)個(gè)計(jì)劃,開(kāi)₽®<$發人(rén)員(yuán)可(kě)以揭示網站(zhàn)上(shàng✔÷)的(de)負載變得(de)更加密集的(↓Ω"σde)時(shí)代。例如(rú),它可(kě)能(n★✘±←éng)會(huì)更接近(jìn)一(yī)個(gè)周末。此外(w₽Ωài),業(yè)務代表可(kě)以在時(shí✘&÷®)間(jiān)表中包括峰值負荷的(de)點,如(rú)假期,學校∏>≠(xiào)假期和(hé)促銷活動。
架構中的(de)峰值負載不(bù)應影(β★yǐng)響系統的(de)性能(néng),所以重↑Ωσ<要(yào)的(de)是(shì)規劃它們。較好(hǎo)的(de)方法Ω≥φ 之一(yī)是(shì)系統負載的(de)圖形顯示。

小(xiǎo)貼士:
制(zhì)定明(míng)确的(de)項¶"®¥目目标,制(zhì)定預測網站(zhàn)流量的(de)計(jì)劃或圖表☆>。還(hái)要(yào)指出時(shí§β₽)間(jiān)間(jiān)隔。
軟件(jiàn)開(kāi)發人(rén)員(yuán)詢問(wèn)有(yǒu)關系統能(né₹ε♦ng)力的(de)問(wèn)題,而不(bù)是(shì'←∏)因為(wèi)它們隻是(shì)好(hǎo)奇。他(tā)們必須預見(↓©₩jiàn)服務器(qì)增長(cháng)的(de)機(jī±→★>)會(huì)。如(rú)果一(yī)個(gè)軟件₹σ(jiàn)公司計(jì)劃赢得(de)世界,那(nà)就(÷∏jiù)有(yǒu)必要(yào)明(mín↕"g)确說(shuō)明(míng)目标。假設當1α☆¶0,000位獨特訪問(wèn)者訪問(wèn)了(le)一(yī∑₹)個(gè)平均每天300名用(yòng)戶的(de↓→☆)網站(zhàn)時(shí),系統必須生(shēng)存下(xià)去(qφ♦≥ù)。
系統用(yòng)戶的(de)典型動作(zuò)是(shì)什(s₹₩hén)麽?
幕後:
預測典型的(de)操作(zuò)允許開(kāi)發人(rén)員(yβ÷÷uán)分(fēn)析系統上(shàng)的(±→de)負載。這(zhè)也(yě)是(shì)一(yī)個(gè)αλ機(jī)會(huì),看(kàn)看(kàn)系統用(yòng☆↔♣)戶是(shì)否會(huì)上(shàng)'≥♠傳大(dà)文(wén)件(jiàn),或者λ∏需要(yào)實時(shí)聊天支持和(hé)其他(≥♥tā)功能(néng)。Web服務器(qì)之間(jiān)的(de)↔Ω☆功能(néng)如(rú)何傳播取決于用(yòng)戶操作(zuò)的(d€ e)典型流程。
例:
我們可(kě)以參考推出移動應用(yò ng)的(de)例子(zǐ)。用(yòng)于安排會(huì)議 α(yì)的(de)基于網絡的(de)移動應用(yòng)♠↓程序包括上(shàng)傳照(zhào)片¶¥<∞的(de)選項。開(kāi)發人(rén)員(yuán)使用(yòng)£"中型用(yòng)戶照(zhào)片加載測試。然而,隻要(yào)應→♥用(yòng)程序啓動,用(yòng)戶開(kāi)始以原始尺寸λα上(shàng)傳圖片。當用(yòng)戶和(hé)圖片的(de)數(sδ★¶hù)量超過了(le)Web服務器(qì)的(de)數(shù)據存儲和(h¶₩"→é)處理(lǐ)能(néng)力時(shíσ♥∏©),系統無法承受負載并開(kāi)始崩潰。
小(xiǎo)貼士:
如(rú)果您想防止系統不(bù)穩定的(de¥&✘♦)不(bù)利影(yǐng)響,請(qǐng)詳細描述典↓↔型操作(zuò)的(de)場(chǎng)景。特别要(yào)★δ考慮兩點:
您希望用(yòng)戶如(rú)何與系統進行(λΩ♦₩xíng)交互
它将如(rú)何實現(xiàn)
系統有(yǒu)哪些(xiē)瓶頸?系統的(de)哪一γ♥(yī)部分(fēn)負載較重?
幕後:
任何複雜(zá)的(de)信息系統都(dōu)可(kě)能(n≥ éng)包含至少(shǎo)兩個(gè)瓶頸。瓶頸是(sh₩γì)一(yī)個(gè)壓力點,在特定時(shí)刻經εε ≠曆系統中較高(gāo)的(de)負載。當開(kāi)發人(rén)員(yβ€ε→uán)知(zhī)道(dào)系統中可( δ™'kě)能(néng)存在的(de)瓶頸時(shí),如ε§<↑(rú)果服務器(qì)崩潰,他(tā)/她(tā)可(kě)以調整系統的(d<e)工(gōng)作(zuò)。這(zhè)有(yǒu)助于避免高(gāo)峰™π負載時(shí)潛在用(yòng)戶的(de)♣ ↑損失。
找到(dào)瓶頸的(de)問(wèn)題與系統可(kě)擴展性無關。不₽<↑(bù)過,較好(hǎo)不(bù)要(yào)忘記。如(rú)果一(yī)個∏∑$(gè)開(kāi)發人(rén)員(yuán)沒有(yǒ₹↔u)定義瓶頸在哪裡(lǐ),那(nà)麽它可(kě)以在任何 ✘™π可(kě)擴展性方面取得(de)進展。即使在系σσ統可(kě)擴展性方面一(yī)切順利,有↓π(yǒu)必要(yào)分(fēn)析架構,以防止出現(xiàn)瓶頸。
例:
入口點可(kě)能(néng)是(shì)瓶頸。≠™≈例如(rú),如(rú)果大(dà)量用(yòng®₹↑)戶同時(shí)打開(kāi)網站(zhàn),則無ββ≈法承受高(gāo)負載,沒有(yǒu)人(rén)繼續使用(÷ §yòng)該網站(zhàn)。