為什么北京軟件公司在項目開發(fā)中考慮系統(tǒng)的可擴展性?_北京軟件開發(fā)公司
發(fā)表日期:2017-08-18 15:01:35 ?? 文章編輯:宜天信達 ?? 瀏覽次數(shù):
從歷史上看,北京軟件公司認為,梳理其軟件項目的所有開發(fā)細節(jié)過度的。由于軟件開發(fā)人員對可變技術(shù)和系統(tǒng)需求的復(fù)雜解釋,軟件開發(fā)公司認為這一過程非常乏味。因此,在系統(tǒng)可擴展性方面,企業(yè)代表希望與軟件開發(fā)人員進行一般業(yè)務(wù)需求討論,同時不討論所有的技術(shù)上的細節(jié)。如果企業(yè)主開始使用開發(fā)人員的語言,系統(tǒng)的質(zhì)量會倍增。特別是,這將有助于避免許多問題,而開發(fā)人員創(chuàng)建復(fù)雜的基于服務(wù)器的解決方案。
企業(yè)如何與軟件開發(fā)人員保持密切聯(lián)系,了解系統(tǒng)可擴展性的細節(jié)?
讓我們考慮一個開發(fā)新系統(tǒng)的項目開始的情況。我們設(shè)計了5個問題,有助于簡化談判并將其引導(dǎo)到正確的軌道上。
5個主要系統(tǒng)的可擴展性問題,從我們的經(jīng)驗來看,開發(fā)人員在談?wù)撓到y(tǒng)可擴展性時通常會提出5個主要問題:
1.做企業(yè)了解計劃的系統(tǒng)的特點是什么?
2.系統(tǒng)用戶的典型操作是什么?
3.系統(tǒng)是否有什么瓶頸?系統(tǒng)的哪一部分負載較重?
4.系統(tǒng)更重要的是:容錯還是高性能?
5.可擴展性的需求在哪里出現(xiàn)?
我們想仔細看看五個問題中的每一個,并找出業(yè)務(wù)代表綜合答案的好處。
業(yè)務(wù)是否了解計劃系統(tǒng)的功能?
幕后:
可擴展性是系統(tǒng)通過升級現(xiàn)有硬件或添加額外的新資源來應(yīng)對日益增長的負載的能力。系統(tǒng)必須保持適當(dāng)?shù)募軜?gòu)以允許后者。換句話說,當(dāng)后端開發(fā)人員開始系統(tǒng)開發(fā)時,他們需要了解是否有可能將來擴展系統(tǒng),這意味著其操作功能的增加。因此,他們需要知道企業(yè)主對系統(tǒng)特征和進一步發(fā)展的計劃。例:
讓我們想象一下,購買機票的在線服務(wù)的所有者會制定計劃的網(wǎng)站流量的時間表。時間表可以是一天,一周,一個月,四分之一或一年。它可以覆蓋用戶和用戶活動的類型,作為系統(tǒng)回答所需的時間。使用這個計劃,開發(fā)人員可以揭示網(wǎng)站上的負載變得更加密集的時代。例如,它可能會更接近一個周末。此外,業(yè)務(wù)代表可以在時間表中包括峰值負荷的點,如假期,學(xué)校假期和促銷活動。
架構(gòu)中的峰值負載不應(yīng)影響系統(tǒng)的性能,所以重要的是規(guī)劃它們。較好的方法之一是系統(tǒng)負載的圖形顯示。
小貼士:
制定明確的項目目標(biāo),制定預(yù)測網(wǎng)站流量的計劃或圖表。還要指出時間間隔。開發(fā)人員詢問有關(guān)系統(tǒng)能力的問題,而不是因為它們只是好奇。他們必須預(yù)見服務(wù)器增長的機會。如果一個企業(yè)計劃贏得世界,那就有必要明確說明目標(biāo)。假設(shè)當(dāng)10,000位獨特訪問者訪問了一個平均每天300名用戶的網(wǎng)站時,系統(tǒng)必須生存下去。
系統(tǒng)用戶的典型動作是什么?
幕后:
預(yù)測典型的操作允許開發(fā)人員分析系統(tǒng)上的負載。這也是一個機會,看看系統(tǒng)用戶是否會上傳大文件,或者需要實時聊天支持和其他功能。Web服務(wù)器之間的功能如何傳播取決于用戶操作的典型流程。
例:
我們可以參考推出移動應(yīng)用的例子。用于安排會議的基于網(wǎng)絡(luò)的移動應(yīng)用程序包括上傳照片的選項。開發(fā)人員使用中型用戶照片加載測試。然而,只要應(yīng)用程序啟動,用戶開始以原始大小上傳圖片。當(dāng)用戶和圖片的數(shù)量超過了Web服務(wù)器的數(shù)據(jù)存儲和處理能力時,系統(tǒng)無法承受負載并開始崩潰。
小貼士:
如果您想防止系統(tǒng)不穩(wěn)定的不利影響,請詳細描述典型操作的場景。特別要考慮兩點:
您希望用戶如何與系統(tǒng)進行交互
它將如何實現(xiàn)
系統(tǒng)有什么瓶頸?系統(tǒng)的哪一部分負載較重?
幕后:
任何復(fù)雜的信息系統(tǒng)都可能包含至少兩個瓶頸。瓶頸是一個壓力點,在特定時刻經(jīng)歷系統(tǒng)中較高的負載。當(dāng)開發(fā)人員知道系統(tǒng)中可能存在的瓶頸時,如果服務(wù)器崩潰,他/她可以調(diào)整系統(tǒng)的工作。這有助于避免高峰負載時潛在用戶的損失。
找到瓶頸的問題與系統(tǒng)可擴展性無關(guān)。不過,較好不要忘記。如果一個開發(fā)人員沒有定義瓶頸在哪里,那么它可以在任何可擴展性方面取得進展。即使在系統(tǒng)可擴展性方面一切順利,有必要分析架構(gòu),以防止出現(xiàn)瓶頸
例:
入口點可能是瓶頸。例如,如果大量用戶同時打開網(wǎng)站,則無法承受高負載,沒有人繼續(xù)使用該網(wǎng)站。
信息系統(tǒng)的瓶頸
另一個瓶頸示例是通道寬度不足。想象一下,照片存儲中的照片之一迅速普及。數(shù)以千計的用戶打開這個流行的照片,但是Web服務(wù)器的容量不是為了這個數(shù)量。因此,上傳的照片停滯并對用戶產(chǎn)生負面影響。
小貼士:
只有有目的的測試可以詳細解答瓶頸在哪里的問題。然而,這并不意味著不可能評估潛在的瓶頸。
列出系統(tǒng)的基本部分。根據(jù)您的經(jīng)驗,突出顯示較脆弱的地方。
與開發(fā)團隊討論清單。技術(shù)人員的經(jīng)驗很有可能幫助您提供新的想法。
對系統(tǒng)更重要的是:
容錯還是高性能?
幕后:
不同系統(tǒng)需要不同的方法。開發(fā)人員需要知道主要任務(wù)是:容錯或高性能,或者兩者都是必需的。容錯問題非常嚴(yán)重,沒有一個獨特的解決方案。它涉及系統(tǒng)在服務(wù)器遭受故障時每次響應(yīng)的能力。換句話說,用戶沒有達到理想的結(jié)果。例如,他或她不能訪問網(wǎng)站的其他頁面或通過應(yīng)用程序支付服務(wù)費用。如果不清楚發(fā)生了什么,用戶將很可能拒絕再次使用該服務(wù)。為了避免用戶丟失,較好保護系統(tǒng)。例如,如果網(wǎng)站沒有對用戶請求做出反應(yīng)或會話被中斷,那么可能會向用戶發(fā)送有關(guān)該事件的簡要信息的消息以及有關(guān)該做什么的一些建議。高性能涉及系統(tǒng)承受數(shù)千用戶并同時顯示良好響應(yīng)時間的能力。換句話說,系統(tǒng)速度很重要。如果用戶花費大量時間填寫表單,并且每次等待頁面加載緩慢,都會對其對公司的態(tài)度產(chǎn)生負面影響。
例:
我們假設(shè)一家銀行經(jīng)營者為接收貸款而運行客戶查詢,并填寫系統(tǒng)中的數(shù)據(jù)。會話崩潰,系統(tǒng)同時停止對操作員的應(yīng)答。數(shù)據(jù)丟失,操作員沒有其他方式訪問系統(tǒng)。因此,操作員要求客戶等待系統(tǒng)恢復(fù)或第二天回來。客戶花了很多時間,現(xiàn)在對這種情況不滿意。這意味著系統(tǒng)中出現(xiàn)故障。而客戶忠誠度取決于系統(tǒng)對類似故障的抵制。
容錯
如果預(yù)見到容錯,可以以不同的方式解決可能故障的問題。例如,數(shù)據(jù)可以保存在系統(tǒng)的重復(fù)服務(wù)器上。然后銀行操作員可以簡單地連接到備份服務(wù)器并繼續(xù)工作。另一種方式是數(shù)據(jù)未被保存,但是有機會開始一個新的會話。因此,銀行經(jīng)營者提供客戶再次填寫信息。這些情況有數(shù)十億種解決方案。確定會話期間的數(shù)據(jù)丟失是重要的還是系統(tǒng)需要哪些任務(wù)要容易得多。
小貼士:
確定什么問題更重要,因為它有助于開發(fā)人員事先知道應(yīng)該首先考慮什么。當(dāng)開發(fā)人員明確目的時,他們可以列出客戶的建議。
可擴展性的需求在哪里出現(xiàn)?
幕后:
企業(yè)主希望開發(fā)人員能夠很好地了解他們的業(yè)務(wù)利基,從一開始就明白他們的信息系統(tǒng)是否需要可擴展性。通常這些期望是假的。實際上,開發(fā)人員將重點放在軟件項目的具體目標(biāo)上。他們想定義出現(xiàn)系統(tǒng)可擴展性需求的位置。它可以是大量的數(shù)據(jù),應(yīng)該在某個地方進行保存和處理,或者在特定時刻需要的復(fù)雜計算過程和多階段操作。
例:
假設(shè)社交網(wǎng)絡(luò)計劃增加用戶數(shù)量,并開始在互聯(lián)網(wǎng)上進行營銷活動。社交網(wǎng)絡(luò)代表看到,他們需要考慮到同時訪問網(wǎng)絡(luò)的次數(shù),并在活動期間增加了負載。訪客數(shù)量的大幅增加可能會影響系統(tǒng)性能。當(dāng)需求的來源變得清晰時,開發(fā)人員可以轉(zhuǎn)向具體任務(wù)的解決方案。
小貼士:回答當(dāng)前軟件項目中系統(tǒng)可擴展性的含義是什么?區(qū)分意義:
基地有10,000名用戶,您需要擴展服務(wù)器的數(shù)據(jù)存儲能力
大約10,000名用戶同時訪問您的網(wǎng)站,服務(wù)器需要擴展信息資源
需要可擴展性
您可以根據(jù)您的答案選擇哪種方法更適合系統(tǒng)集群。換句話說,軟件開發(fā)人員可以根據(jù)業(yè)務(wù)需要在不同的服務(wù)器之間分配負載。系統(tǒng)可擴展性是業(yè)務(wù)增長時增加負載問題的必要解決方案。這種具體能力使用新的信息資源提供了系統(tǒng)功能的擴展。事實上,可擴展性允許支持反應(yīng)速度以及越來越多的操作,事務(wù)或用戶的系統(tǒng)的一般性能。
對可擴展性的需求激勵北京軟件開發(fā)公司和開發(fā)人員找到有效討論的方法。如果第一和第二語言是一種語言,他們對發(fā)展戰(zhàn)略,功能增長和系統(tǒng)技術(shù)特性的增加有一個共同的認識。
企業(yè)如何與軟件開發(fā)人員保持密切聯(lián)系,了解系統(tǒng)可擴展性的細節(jié)?
讓我們考慮一個開發(fā)新系統(tǒng)的項目開始的情況。我們設(shè)計了5個問題,有助于簡化談判并將其引導(dǎo)到正確的軌道上。
5個主要系統(tǒng)的可擴展性問題,從我們的經(jīng)驗來看,開發(fā)人員在談?wù)撓到y(tǒng)可擴展性時通常會提出5個主要問題:
1.做企業(yè)了解計劃的系統(tǒng)的特點是什么?
2.系統(tǒng)用戶的典型操作是什么?
3.系統(tǒng)是否有什么瓶頸?系統(tǒng)的哪一部分負載較重?
4.系統(tǒng)更重要的是:容錯還是高性能?
5.可擴展性的需求在哪里出現(xiàn)?
我們想仔細看看五個問題中的每一個,并找出業(yè)務(wù)代表綜合答案的好處。
業(yè)務(wù)是否了解計劃系統(tǒng)的功能?
幕后:
可擴展性是系統(tǒng)通過升級現(xiàn)有硬件或添加額外的新資源來應(yīng)對日益增長的負載的能力。系統(tǒng)必須保持適當(dāng)?shù)募軜?gòu)以允許后者。換句話說,當(dāng)后端開發(fā)人員開始系統(tǒng)開發(fā)時,他們需要了解是否有可能將來擴展系統(tǒng),這意味著其操作功能的增加。因此,他們需要知道企業(yè)主對系統(tǒng)特征和進一步發(fā)展的計劃。例:
讓我們想象一下,購買機票的在線服務(wù)的所有者會制定計劃的網(wǎng)站流量的時間表。時間表可以是一天,一周,一個月,四分之一或一年。它可以覆蓋用戶和用戶活動的類型,作為系統(tǒng)回答所需的時間。使用這個計劃,開發(fā)人員可以揭示網(wǎng)站上的負載變得更加密集的時代。例如,它可能會更接近一個周末。此外,業(yè)務(wù)代表可以在時間表中包括峰值負荷的點,如假期,學(xué)校假期和促銷活動。
架構(gòu)中的峰值負載不應(yīng)影響系統(tǒng)的性能,所以重要的是規(guī)劃它們。較好的方法之一是系統(tǒng)負載的圖形顯示。
小貼士:
制定明確的項目目標(biāo),制定預(yù)測網(wǎng)站流量的計劃或圖表。還要指出時間間隔。開發(fā)人員詢問有關(guān)系統(tǒng)能力的問題,而不是因為它們只是好奇。他們必須預(yù)見服務(wù)器增長的機會。如果一個企業(yè)計劃贏得世界,那就有必要明確說明目標(biāo)。假設(shè)當(dāng)10,000位獨特訪問者訪問了一個平均每天300名用戶的網(wǎng)站時,系統(tǒng)必須生存下去。
系統(tǒng)用戶的典型動作是什么?
幕后:
預(yù)測典型的操作允許開發(fā)人員分析系統(tǒng)上的負載。這也是一個機會,看看系統(tǒng)用戶是否會上傳大文件,或者需要實時聊天支持和其他功能。Web服務(wù)器之間的功能如何傳播取決于用戶操作的典型流程。
例:
我們可以參考推出移動應(yīng)用的例子。用于安排會議的基于網(wǎng)絡(luò)的移動應(yīng)用程序包括上傳照片的選項。開發(fā)人員使用中型用戶照片加載測試。然而,只要應(yīng)用程序啟動,用戶開始以原始大小上傳圖片。當(dāng)用戶和圖片的數(shù)量超過了Web服務(wù)器的數(shù)據(jù)存儲和處理能力時,系統(tǒng)無法承受負載并開始崩潰。
小貼士:
如果您想防止系統(tǒng)不穩(wěn)定的不利影響,請詳細描述典型操作的場景。特別要考慮兩點:
您希望用戶如何與系統(tǒng)進行交互
它將如何實現(xiàn)
系統(tǒng)有什么瓶頸?系統(tǒng)的哪一部分負載較重?
幕后:
任何復(fù)雜的信息系統(tǒng)都可能包含至少兩個瓶頸。瓶頸是一個壓力點,在特定時刻經(jīng)歷系統(tǒng)中較高的負載。當(dāng)開發(fā)人員知道系統(tǒng)中可能存在的瓶頸時,如果服務(wù)器崩潰,他/她可以調(diào)整系統(tǒng)的工作。這有助于避免高峰負載時潛在用戶的損失。
找到瓶頸的問題與系統(tǒng)可擴展性無關(guān)。不過,較好不要忘記。如果一個開發(fā)人員沒有定義瓶頸在哪里,那么它可以在任何可擴展性方面取得進展。即使在系統(tǒng)可擴展性方面一切順利,有必要分析架構(gòu),以防止出現(xiàn)瓶頸
例:
入口點可能是瓶頸。例如,如果大量用戶同時打開網(wǎng)站,則無法承受高負載,沒有人繼續(xù)使用該網(wǎng)站。
信息系統(tǒng)的瓶頸
另一個瓶頸示例是通道寬度不足。想象一下,照片存儲中的照片之一迅速普及。數(shù)以千計的用戶打開這個流行的照片,但是Web服務(wù)器的容量不是為了這個數(shù)量。因此,上傳的照片停滯并對用戶產(chǎn)生負面影響。
小貼士:
只有有目的的測試可以詳細解答瓶頸在哪里的問題。然而,這并不意味著不可能評估潛在的瓶頸。
列出系統(tǒng)的基本部分。根據(jù)您的經(jīng)驗,突出顯示較脆弱的地方。
與開發(fā)團隊討論清單。技術(shù)人員的經(jīng)驗很有可能幫助您提供新的想法。
對系統(tǒng)更重要的是:
容錯還是高性能?
幕后:
不同系統(tǒng)需要不同的方法。開發(fā)人員需要知道主要任務(wù)是:容錯或高性能,或者兩者都是必需的。容錯問題非常嚴(yán)重,沒有一個獨特的解決方案。它涉及系統(tǒng)在服務(wù)器遭受故障時每次響應(yīng)的能力。換句話說,用戶沒有達到理想的結(jié)果。例如,他或她不能訪問網(wǎng)站的其他頁面或通過應(yīng)用程序支付服務(wù)費用。如果不清楚發(fā)生了什么,用戶將很可能拒絕再次使用該服務(wù)。為了避免用戶丟失,較好保護系統(tǒng)。例如,如果網(wǎng)站沒有對用戶請求做出反應(yīng)或會話被中斷,那么可能會向用戶發(fā)送有關(guān)該事件的簡要信息的消息以及有關(guān)該做什么的一些建議。高性能涉及系統(tǒng)承受數(shù)千用戶并同時顯示良好響應(yīng)時間的能力。換句話說,系統(tǒng)速度很重要。如果用戶花費大量時間填寫表單,并且每次等待頁面加載緩慢,都會對其對公司的態(tài)度產(chǎn)生負面影響。
例:
我們假設(shè)一家銀行經(jīng)營者為接收貸款而運行客戶查詢,并填寫系統(tǒng)中的數(shù)據(jù)。會話崩潰,系統(tǒng)同時停止對操作員的應(yīng)答。數(shù)據(jù)丟失,操作員沒有其他方式訪問系統(tǒng)。因此,操作員要求客戶等待系統(tǒng)恢復(fù)或第二天回來。客戶花了很多時間,現(xiàn)在對這種情況不滿意。這意味著系統(tǒng)中出現(xiàn)故障。而客戶忠誠度取決于系統(tǒng)對類似故障的抵制。
容錯
如果預(yù)見到容錯,可以以不同的方式解決可能故障的問題。例如,數(shù)據(jù)可以保存在系統(tǒng)的重復(fù)服務(wù)器上。然后銀行操作員可以簡單地連接到備份服務(wù)器并繼續(xù)工作。另一種方式是數(shù)據(jù)未被保存,但是有機會開始一個新的會話。因此,銀行經(jīng)營者提供客戶再次填寫信息。這些情況有數(shù)十億種解決方案。確定會話期間的數(shù)據(jù)丟失是重要的還是系統(tǒng)需要哪些任務(wù)要容易得多。
小貼士:
確定什么問題更重要,因為它有助于開發(fā)人員事先知道應(yīng)該首先考慮什么。當(dāng)開發(fā)人員明確目的時,他們可以列出客戶的建議。
可擴展性的需求在哪里出現(xiàn)?
幕后:
企業(yè)主希望開發(fā)人員能夠很好地了解他們的業(yè)務(wù)利基,從一開始就明白他們的信息系統(tǒng)是否需要可擴展性。通常這些期望是假的。實際上,開發(fā)人員將重點放在軟件項目的具體目標(biāo)上。他們想定義出現(xiàn)系統(tǒng)可擴展性需求的位置。它可以是大量的數(shù)據(jù),應(yīng)該在某個地方進行保存和處理,或者在特定時刻需要的復(fù)雜計算過程和多階段操作。
例:
假設(shè)社交網(wǎng)絡(luò)計劃增加用戶數(shù)量,并開始在互聯(lián)網(wǎng)上進行營銷活動。社交網(wǎng)絡(luò)代表看到,他們需要考慮到同時訪問網(wǎng)絡(luò)的次數(shù),并在活動期間增加了負載。訪客數(shù)量的大幅增加可能會影響系統(tǒng)性能。當(dāng)需求的來源變得清晰時,開發(fā)人員可以轉(zhuǎn)向具體任務(wù)的解決方案。
小貼士:回答當(dāng)前軟件項目中系統(tǒng)可擴展性的含義是什么?區(qū)分意義:
基地有10,000名用戶,您需要擴展服務(wù)器的數(shù)據(jù)存儲能力
大約10,000名用戶同時訪問您的網(wǎng)站,服務(wù)器需要擴展信息資源
需要可擴展性
您可以根據(jù)您的答案選擇哪種方法更適合系統(tǒng)集群。換句話說,軟件開發(fā)人員可以根據(jù)業(yè)務(wù)需要在不同的服務(wù)器之間分配負載。系統(tǒng)可擴展性是業(yè)務(wù)增長時增加負載問題的必要解決方案。這種具體能力使用新的信息資源提供了系統(tǒng)功能的擴展。事實上,可擴展性允許支持反應(yīng)速度以及越來越多的操作,事務(wù)或用戶的系統(tǒng)的一般性能。
對可擴展性的需求激勵北京軟件開發(fā)公司和開發(fā)人員找到有效討論的方法。如果第一和第二語言是一種語言,他們對發(fā)展戰(zhàn)略,功能增長和系統(tǒng)技術(shù)特性的增加有一個共同的認識。