需求如下:
1.全天候24小時運作
2.訪問數初期估價約每日30萬人次
3.防火牆及入侵防禦系統架設
基本上需求就差不多是這樣, 這是小弟我去面試的時候, 主管出的家庭作業, 所以正努力的在到搜尋答案, 參考了大部份的文章, 都沒有提及到流量(訪問數)的評估, 例如伺服器可以承擔多少連線數, 或是可以用什麼運算能力去換算參考值?
目前我所找到的資料跟已往的工作經驗, 只有看過防火牆/由路器有連線數的參考值, 就網站伺服器來, 小弟實在是不知從何下手, 還請前輩們指教.
家庭作業問題有
1.網路拓撲圖 (這個小弟我自己解決)
2.防火牆、入侵防禦、路由器規劃 (這個小弟我也可以自己處理)
3.應有幾台 Web Server DB 主機或其它應具備的主機系統
(目前小弟的想法是 2 台 Web Server 做 Load Balance, 2 台 DB 做備援, 不知是否有更好的選擇)
4.可採購的伺服器機型、品牌與預估配置
(這就是讓我頭大的地方, 沒有參考數據讓我無法評估)
5.如何規畫、用意為何?
以上還麻煩各為先進前輩們, 多多幫忙指教, 我也會努力自己去找尋答案的, 必竟時間只有 1 天就要交考捲了 ~"~
3.很多條件都會影響到架構
靜態頁面和動態頁面的比例
數據量 瀏覽頁面數
使用類型 論壇 視頻網站 電子商務 甚至 一般公司網站都有差異
參考這個網頁吧
http://www.dbanotes.net/arch/yahoo_arch.html
4.伺服器參考IBM的配置
我的經驗是一台WEB + 一台DB
CPU至少四核心已上,雙CPU更好
記憶體至少8GB,16GB更好
作業系統:Windows Server 2008 (x64)
硬碟:SAS 15000轉,至少三顆,做Raid 0 + 1
(如果預算夠的話,可以加買iSCSI的儲存伺服器)
伺服器至少買DELL的,算是滿便宜的..!!
錢很多的話,可以買IBM的!
然後同樣的機器多買一套當作備援
萬一系統出問題的時候,可以手動轉換!
(如果預算很多,可以玩熱備援)
If Linux platform :
Web tier :
個人建議 可以採用虛擬化架構
AP 用X3550最少二台,利用虛擬化企業版的,不管是VM還是HYPER-V這樣就都有HA,也可以視流量增加第三、四台作擴充並且都會有備援方式。
DB 可以用以往的方式作HA。但一定要有一台好的Strage ,這樣效能才夠。
我建議是用netapp除了效能好,內建快照備份的功能也很強,彈性也很大。
另外這樣大的流量,在前端除了基本的以外 ,f5 或是 cisco ACE的設備不能少。
請問這些DB做了Load balance會不會導致同一個user在不同資料庫裡面的紀錄不一致,例如今天登入A資料庫買了一件物品,明天被Load balance到B資料庫就找不到昨天的購買紀錄.
請問這些DB做了Load balance會不會導致同一個user在不同資料庫裡面的紀錄不一致,例如今天登入A資料庫買了一件物品,明天被Load balance到B資料庫就找不到昨天的購買紀錄.
DB目前來說,比較難做到Loading Balance!
(聽過朋友的經驗,完全打消DB Loading Balance的念頭)
比較可行而且便宜的方法是 四核心雙CPU + 64GB RAM
採用x64作業系統,讓DB可以盡量吃記憶體,吃滿也沒關係 (4GB預留給OS,60GB給DB)
反應速度極快!
採購兩台,做交易紀錄備份和交易記錄傳送,就非常夠用了!
只是不知道你資料庫的檔案大小預估有多大?
那像facebook這些網站是怎麼設計資料庫的, facebook 有很多不同的的IP, 有可能都連到同一個資料庫主機嗎?
以小弟過去的經驗,同時1000 - 2000人上線,至少需要2-4台web server做cluster,如果預算多可以在添購網路硬體去做HA,
資料庫部分需要多建幾台做replication把select和DML(update、insert、delete)分開,譬如:4台資料庫,可以讓3台做select,1台做DML就可以了,
另外,大流量的網站比較重要的是網頁程式碼的最佳化,那對資料庫的負擔會有很大的影響的,希望以上資訊可以幫到你。
db 沒辦法做LOAD BALANCE 那是不是可以考慮用資料庫鏡像 一個資料庫負責讀一個資料庫負責寫彼此之間做鏡像?