那么這些關(guān)于成本、質(zhì)量、速度和范圍的權(quán)衡決策是如何影響系統(tǒng)的可擴展性呢?正如上一章提到的,對于擴展項目或基礎設施項目來說,可擴展性與這些權(quán)衡之間有著簡單明了的關(guān)系。而對于開發(fā)功能的項目來說,這些約束的權(quán)衡決策從長期來看會影響該功能和整個系統(tǒng)的可擴展性,這是權(quán)衡決策與可擴展性之間的間接關(guān)系。...
速度、質(zhì)量和成本這三者通常被稱為“項目三角”,這種說法給我們提供了一種很好的視覺圖像,展示了三者是如何密不可分,以及為什么我們不能同時三者兼具。項目三角還有幾種變體,它們加入了范圍,作為第四種元素。可以以質(zhì)量為中心,以速度、范圍和成本為三條邊來表示這種變體。我們更喜歡采用傳統(tǒng)的速度/成本/質(zhì)量的項目三角,用三角形的大小來表示范圍。其中三條邊表示的是速度、成本和質(zhì)量,而三角形的面積表示的是項目的范圍。如果這個三角形很小,說明項目的范圍很小,而成本、時間和質(zhì)量因素也會與之成比例。...
我們通常會用一個問句,即這個流程與可擴展性有關(guān)嗎?這一次,希望你已經(jīng)可以列出性能測試和壓力測試在影響可擴展性的多種因素中占有一席之地的原因了。在探討它們之間的關(guān)系時,我們準備把重點放在三個方面,即余量、變更控制和風險管理。...
根據(jù)系統(tǒng)的規(guī)模、你從每種測試得到的信息的相對價值、你可用的時間多少以及組織愿意接受的風險大小,最終確定了測試計劃后,你就可以進入第四步,即真正執(zhí)行測試。在這一一步中,你將根據(jù)測試計劃,在專為測試建立的環(huán)境中系統(tǒng)地執(zhí)行各種測試,并且把各種衡量指標記錄下來,如交易時間、響應時間、輸出和反應等。所有數(shù)據(jù)都要被收集起來,在性能測試中,數(shù)據(jù)是你的朋友,你真正能得到的不過如此。保存每次發(fā)布之前的測試數(shù)據(jù)是很重要的。我們將在下一步中介紹,對比各個發(fā)布版本對于理解數(shù)據(jù)以及判斷數(shù)據(jù)是在正常范圍...
性能測試規(guī)劃中的第三步是定義測試。如前所述,對于各種服務和功能來說,可以執(zhí)行的測試種類有很多。如果要把它們?nèi)窟\行一-遍,可能你永遠也不能發(fā)布任何產(chǎn)品了。這里的關(guān)鍵是應用帕累托分布或者說80/20法則,即找出能給你提供80%信息的那20%測試方法。就提供的信息數(shù)量和價值來說,種種系統(tǒng)測試幾乎總是遵從少數(shù)幾種相似的分布。這是因為并非所有功能的使用都是平等的,有些功能比其他功能更關(guān)鍵。處理用戶支付的功能就比處理用戶查找朋友的功能關(guān)鍵得多,因此對它的測試可以更加嚴格。...
按照維基百科的論述,根據(jù)定義,性能測試涵蓋了林林總總的工程開發(fā)評估標準,其側(cè)重于最后可衡量的性能特征,而不是實際上的原料和產(chǎn)品。。對于計算機科學來說,性能測試的重點在于確定一個設備或軟件中的速度、吞吐量或有效性。性能測試通常又叫作負載測試,對我們來說,這兩個術(shù)語是可以互相代替的。有些專家則認為性能測試和負載測試的目標不同,但技術(shù)相似。為了避免學究式的爭論,我們在定義性能測試時,給了一個更加寬泛的目標,以便它能兼容性能測試和負載測試的目標。...
在你有了性能基準后,第二步是建立測試環(huán)境。這個環(huán)境包括運行應用所需的網(wǎng)絡、服務器、操作系統(tǒng)和第三方的軟件。通常,開發(fā)、質(zhì)量保證測試、性能測試、準備和生產(chǎn)這些環(huán)節(jié)都有自己獨立的環(huán)境。測試環(huán)境很重要,因為你需要一個穩(wěn)定一一致的環(huán)境在一段持續(xù)的時間內(nèi)反 復地執(zhí)行測試。測試的種類有很多,我們將在下一步“定義測試”中討論它們,目前你只要知道測試組件的方法有很多即可。此外,有些測試需要運行一定的時間,例如24小時,以便生成批量程序必須是生產(chǎn)環(huán)境的鏡像。測試環(huán)境很重要的另一個原因是,為了讓...
根據(jù)你的組織文化的需要,ARB會議可以是正式的,也可以是非正式的。我們的經(jīng)驗是,這種會議對產(chǎn)品線工程師、數(shù)據(jù)庫管理員和其他JAD成員來說,都形同挑戰(zhàn),因此我們傾向于非正式的形式。只有當要對功能的架構(gòu)進行采用或不采用的決策時,才會進行正式的會議;這對于讓JAD團隊提出經(jīng)過深思熟慮且報告制作良好的設計來說,應該已經(jīng)足夠了。...
你可能希望某些人或角色加入ARB、但更重要的是,這些人需要表現(xiàn)出一定的素質(zhì)。讓我們首先來討論一下這些素質(zhì),然后再討論角色。我們希望的是,這兩個范能夠完全重合,所有應有的角色都由那些顯示出應有素質(zhì)的人來扮演。首先,你想要的是那些在組織內(nèi)受尊重的人。...
某個流程或關(guān)注點是怎么影響可擴展性的。答案通常相同,即組織中的人員或流程會創(chuàng)造應用的可擴展性,也會破壞它的可擴展性。這應該不會讓你感到意外。如果沒有正確的團隊支持,或者該團隊沒有采用正確的流程,那么得到能夠根據(jù)業(yè)務需求進行擴展的架構(gòu)的可能性是零。組織一個跨部門的團隊設計應用,可以確保具有不同知識的人協(xié)同合作,找到最佳的解決方案。此外,這些人現(xiàn)在還有了共同的目標,即要使這個功能獲得成功。不具備這兩個關(guān)鍵因素,在大多數(shù)組織中常見的知識不足和經(jīng)驗的鴻溝的情況都會注定使功能定期地出現(xiàn)...