為什麼看起來簡單的網站也要頂尖高手開發?

來源:互聯網
上載者:User

仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳

  

來自知乎的話題討論「為什麼很多看起來不是很複雜的網站,比如 Facebook、淘寶,都需要大量頂尖高手來開發?」

回答:子柳,淘寶打雜的 碼農

就拿淘寶來說說,當作給新人一些科普。

先說你看到的頁面上,最重要的幾個:

【搜索商品】——這個功能,如果你有幾千條商品,完全可以用select 這樣的操作來搞定。 但是——當你有10000000000(一百億)條商品的時候,任何一個資料庫都無法存放了,請問你怎麼搜索?這裡需要用到分散式的資料存儲方案,另外這個搜索也不可能直接從資料庫裡來取資料,必然要用到搜尋引擎( 簡單來說搜尋引擎更快)。 好,能搜出商品了,是否大功告成可以啵一個了呢?早著呢,誰家的商品出現在第一頁?這裡需要用到巨複雜的排序演算法。 要是再根據你的購買行為做一些個人化的推薦——這夠一幫牛叉的演算法工程師奮鬥終生了。

【商品詳情】——就是搜索完畢,看到你感興趣的,點擊查看商品的頁面,這個頁面有商品的屬性、詳細描述、評價、賣家信息等等,這個頁面的每天展示次數在30億以上,同樣的道理,如果你做一個網站每天有10個人訪問, 你絲毫感覺不到伺服器的壓力,但是30億,要解決的問題就多了去了。 首先,這些請求不能直接壓到資料庫上,任何單機或分散式的資料庫,承受30億每天的壓力,都將崩潰到完全沒有幸福感,這種情況下要用到的技術就是大規模的分散式緩存,所有的賣家信息、評價資訊、商品描述都是從緩存裡面來取到的, 甚至更加極致的一點「商品的流覽量」這個資訊,每打開頁面一次都要刷新,你猜能夠從緩存裡面來取嗎?淘寶做到了,整個商品的詳情都在緩存裡面。

【商品圖片】——一個商品有5個圖片,商品描述裡面有更多圖片,你猜淘寶有多少張圖片要存儲?100億以上。 這麼多圖片要是在你的硬碟裡面,你怎麼去查找其中的一張?要是你的同學想拷貝你的圖片,你需要他準備多少塊硬碟?你需要配置多少大的頻寬?你們的網卡是否能夠承受?你需要多長時間拷貝給他?這樣的規模, 很不幸市面上已經沒有任何商業的解決方案,最終我們必須自己來開發一套存儲系統,如果你聽說過google的GFS,我們跟他類似,叫TFS。 順便說一下,騰訊也有這樣的一套,也叫TFS。

【廣告系統】——淘寶上有很多廣告,什麼,你不知道?那說明我們的廣告做的還不錯,居然很多人不認為它是廣告,賣家怎麼出價去買淘寶的廣告位?廣告怎麼展示?怎麼查看廣告效果?這又是一套演算法精奇的系統。

【BOSS系統】——淘寶的工作人員怎麼去管理這麼龐大的一個系統,例如某時刻突然宣佈某位作家的作品全部從淘寶消失,從資料庫到搜尋引擎到廣告系統,裡面的相關資料在幾分鐘內全部消失,這又需要一個牛叉的後臺支撐系統。

【運維體系】——支援這麼龐大的一個網站,你猜需要多少台伺服器?幾千台?那是零頭。 這麼多伺服器,上面部署什麼作業系統,作業系統的內核能否優化? JAVA虛擬機器能否優化?通信模組有沒有榨取性能的空間?軟體怎麼部署上去?出了問題怎麼回滾?你裝過作業系統吧,優化過吧,被360坑過沒,崩潰過沒?這裡面又有很多門道。

不再多寫了,除了上面提到的這些,還有很多很多需要做的技術,當然並不是這些東西有多麼高不可攀,任何複雜的龐大的東西都是從小到大做起來的,裡面需要牛叉到不行的大犇,也需要充滿好奇心的菜鳥,最後這一句,你當我是別有用心好了。

回答:覃超,Facebook工程師

功能上面雖然不復雜,但是要完成的細節卻很多。 比如news feed裡面的推薦演算法就很重要,要根據使用者之前的記錄和與好友的關係來生成。 另外就是根據使用者的資訊和行為,要做機器學習和資料採礦,從而來挑出最匹配的廣告。 這也是比較花人力的事情。

另外Facebook的使用者量奇大無比。 假設你只是做一個學校內部用的社交網站,那肯定很簡單。 但是如果考慮到上億人在上面用。 你首先伺服器就必須是一個分散式的機群,還要保證能抗住那麼大的流量。 同時為了性能夠好,不得不加上mem cache和網頁分塊載入等功能。 還有就是每天使用者產生的總數據量(狀態,留言,照片,分享等)有TB的數量級,你資料庫是否撐住等等。

另外樹大招風,你要一個很強的安全小組來保證網站在受攻擊的時候能防禦好,還有要防止垃圾資訊和噁心廣告或者程式的散播。 另外還有為了全球化而帶來的多語言問題。

總之,一個網站做大了之後,很多問題就會產生,不是在校園裡面做一個學期作業那麼簡單。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.