如果客戶主開(kāi)始使用軟件開(kāi)發(fā)人員的建議的開(kāi)發(fā)語(yǔ)言,系統(tǒng)的質(zhì)量會(huì)倍增。特別是,這將有助于避免許多問(wèn)題,而軟件開(kāi)發(fā)人員創(chuàng)建復(fù)雜的基于服務(wù)器的解決方案。
企業(yè)如何與軟件開(kāi)發(fā)人員保持密切聯(lián)系,了解系統(tǒng)可擴(kuò)展性的細(xì)節(jié)?
讓我們考慮一個(gè)開(kāi)發(fā)新系統(tǒng)的項(xiàng)目開(kāi)始的情況。我們?cè)O(shè)計(jì)了5個(gè)問(wèn)題,有助于簡(jiǎn)化談判并將其引導(dǎo)到正確的軌道上。
5個(gè)主要系統(tǒng)的可擴(kuò)展性問(wèn)題
從我們的經(jīng)驗(yàn)來(lái)看,軟件開(kāi)發(fā)人員在談?wù)撓到y(tǒng)可擴(kuò)展性時(shí)通常會(huì)提出5個(gè)主要問(wèn)題:
1.讓軟件公司了解計(jì)劃的軟件系統(tǒng)的特點(diǎn)是什么?
2.系統(tǒng)用戶的典型操作是什么?
3.系統(tǒng)是否有什么瓶頸?系統(tǒng)的哪一部分負(fù)載較重?
4.系統(tǒng)更重要的是:容錯(cuò)還是高性能?
5.可擴(kuò)展性的需求在哪里出現(xiàn)?
我們想仔細(xì)看看五個(gè)問(wèn)題中的每一個(gè),并找出業(yè)務(wù)代表綜合答案的好處。
業(yè)務(wù)是否了解計(jì)劃系統(tǒng)的功能?
幕后:
可擴(kuò)展性是系統(tǒng)通過(guò)升級(jí)現(xiàn)有硬件或添加額外的新資源來(lái)應(yīng)對(duì)日益增長(zhǎng)的負(fù)載的能力。系統(tǒng)必須保持適當(dāng)?shù)募軜?gòu)以允許后者。
換句話說(shuō),當(dāng)后端開(kāi)發(fā)人員開(kāi)始系統(tǒng)開(kāi)發(fā)時(shí),他們需要了解是否有可能將來(lái)擴(kuò)展系統(tǒng),這意味著其操作功能的增加。因此,他們需要知道企業(yè)主對(duì)系統(tǒng)特征和進(jìn)一步發(fā)展的計(jì)劃。
例:
讓我們想象一下,購(gòu)買機(jī)票的在線服務(wù)的所有者會(huì)制定計(jì)劃的網(wǎng)站流量的時(shí)間表。時(shí)間表可以是一天,一周,一個(gè)月,四分之一或一年。它可以覆蓋用戶和用戶活動(dòng)的類型,作為系統(tǒng)回答所需的時(shí)間。使用這個(gè)計(jì)劃,開(kāi)發(fā)人員可以揭示網(wǎng)站上的負(fù)載變得更加密集的時(shí)代。例如,它可能會(huì)更接近一個(gè)周末。此外,業(yè)務(wù)代表可以在時(shí)間表中包括峰值負(fù)荷的點(diǎn),如假期,學(xué)校假期和促銷活動(dòng)。
架構(gòu)中的峰值負(fù)載不應(yīng)影響系統(tǒng)的性能,所以重要的是規(guī)劃它們。較好的方法之一是系統(tǒng)負(fù)載的圖形顯示。
小貼士:
制定明確的項(xiàng)目目標(biāo),制定預(yù)測(cè)網(wǎng)站流量的計(jì)劃或圖表。還要指出時(shí)間間隔。
軟件開(kāi)發(fā)人員詢問(wèn)有關(guān)系統(tǒng)能力的問(wèn)題,而不是因?yàn)樗鼈冎皇呛闷妗K麄儽仨氼A(yù)見(jiàn)服務(wù)器增長(zhǎng)的機(jī)會(huì)。如果一個(gè)軟件公司計(jì)劃贏得世界,那就有必要明確說(shuō)明目標(biāo)。假設(shè)當(dāng)10,000位獨(dú)特訪問(wèn)者訪問(wèn)了一個(gè)平均每天300名用戶的網(wǎng)站時(shí),系統(tǒng)必須生存下去。
系統(tǒng)用戶的典型動(dòng)作是什么?
幕后:
預(yù)測(cè)典型的操作允許開(kāi)發(fā)人員分析系統(tǒng)上的負(fù)載。這也是一個(gè)機(jī)會(huì),看看系統(tǒng)用戶是否會(huì)上傳大文件,或者需要實(shí)時(shí)聊天支持和其他功能。Web服務(wù)器之間的功能如何傳播取決于用戶操作的典型流程。
例:
我們可以參考推出移動(dòng)應(yīng)用的例子。用于安排會(huì)議的基于網(wǎng)絡(luò)的移動(dòng)應(yīng)用程序包括上傳照片的選項(xiàng)。開(kāi)發(fā)人員使用中型用戶照片加載測(cè)試。然而,只要應(yīng)用程序啟動(dòng),用戶開(kāi)始以原始尺寸上傳圖片。當(dāng)用戶和圖片的數(shù)量超過(guò)了Web服務(wù)器的數(shù)據(jù)存儲(chǔ)和處理能力時(shí),系統(tǒng)無(wú)法承受負(fù)載并開(kāi)始崩潰。
小貼士:
如果您想防止系統(tǒng)不穩(wěn)定的不利影響,請(qǐng)?jiān)敿?xì)描述典型操作的場(chǎng)景。特別要考慮兩點(diǎn):
您希望用戶如何與系統(tǒng)進(jìn)行交互
它將如何實(shí)現(xiàn)
系統(tǒng)有哪些瓶頸?系統(tǒng)的哪一部分負(fù)載較重?
幕后:
任何復(fù)雜的信息系統(tǒng)都可能包含至少兩個(gè)瓶頸。瓶頸是一個(gè)壓力點(diǎn),在特定時(shí)刻經(jīng)歷系統(tǒng)中較高的負(fù)載。當(dāng)開(kāi)發(fā)人員知道系統(tǒng)中可能存在的瓶頸時(shí),如果服務(wù)器崩潰,他/她可以調(diào)整系統(tǒng)的工作。這有助于避免高峰負(fù)載時(shí)潛在用戶的損失。
找到瓶頸的問(wèn)題與系統(tǒng)可擴(kuò)展性無(wú)關(guān)。不過(guò),較好不要忘記。如果一個(gè)開(kāi)發(fā)人員沒(méi)有定義瓶頸在哪里,那么它可以在任何可擴(kuò)展性方面取得進(jìn)展。即使在系統(tǒng)可擴(kuò)展性方面一切順利,有必要分析架構(gòu),以防止出現(xiàn)瓶頸。
例:
入口點(diǎn)可能是瓶頸。例如,如果大量用戶同時(shí)打開(kāi)網(wǎng)站,則無(wú)法承受高負(fù)載,沒(méi)有人繼續(xù)使用該網(wǎng)站。