一、目前使用.NET 的國內大型網站有哪些?
-
卓越http://www.amazon.cn/
-
當當http://www.dangdang.com/
-
京東http://www.360buy.com/
-
凡客http://www.vancl.com/
-
攜程http://www.ctrip.com/
二、為什么這么多網站使用Windows/.NET?
-
創業初期,創始人非技術背景出身,對Unix/Linux存在恐懼心理或對使用何種平臺和框架沒有想法。
-
創業初期,創始人技術出身,選擇了自己擅長的語言。
-
創業初期,創始人對語言沒有什么要求,唯一的要求就是省錢、快速上線。
三、使用Win/.NET的好處有哪些?
-
人員:招聘比較快,各大高校和培訓機構都有教.NET的。初級程序員工資要求比較低。
-
開發:入門簡單,開發效率高。
-
維護:Windows Server 界面操作簡單,便于維護,有現成的商業監控維護工具可用。
-
服務:提供了整體解決方案,如SQL Server提供了統計計算、數據挖掘、事務支持等。
四、使用Win/.NET有哪些不好的地方?
-
使用.NET基本上被強制捆綁到了Windows上,雖然Linux機器上也有.NET支持的Mono( http://www.mono-project.com/ ),但是性能并沒有Windows系統上的那么好。.NET程序員在整個網站基礎架構的優化改良上課選擇的東西比較少。微軟的東西一般不太會出現問題,但是如果出現問題,很難快速的找到解決方案。
-
最新的技術不能及時的應用到Windows平臺,只能期望微軟的早日更新。比如Windows對snmp協議的支持目前只能到2c,不能到3。許多無數的開源、高端服務器組件只有Linux/Unix版本。許多優化技術、高性能分布式緩存、數據庫、NoSQL解決方案等等,僅針對Linux/Unix。
-
Windows Server的授權費比較貴(對于大型網站可能不太在乎)。如果有上百臺服務器就需要購買上百份授權,如果一臺服務器上安裝N個虛擬機,就需要購買N份授權。
五、京東商城選擇.NET的原因是什么?
-
劉強東之前有.net程序員背景, 一開始的版本由他進行開發。.NET的人也比較容易招,創業初期有很多公司都是使用盜版的Windows Server的,不需要支付授權費用(不知道京東商城是不是)。
-
京東商城不是一家技術公司,它只是一個建立在電子商務平臺上的銷售公司。早期更偏向后端的物流倉儲管理,后端進銷存體系就是.net基礎的。京東現在用的內部ERP,一開始是劉強東自己開發的。
六、京東商城為什么一做活動就宕機?
-
管理不到位,管理者急功近利,要求員工超、快、猛,貌似每個公司都這樣。項目的進度較少了設計和思考的時間。
-
運維不到位,沒有提前對每次活動會帶來的流量進行合理的評估,為活動提供服務器資源等。 這個猜想貌似不靠譜,貌似用堆服務器的方法無法解決性能問題。
-
架構不到位,前后臺的依賴比較高。比如前臺的庫存要直接依賴后臺庫存數據等,這些不知道京東是如何處理的。
-
原開發不到位,開發者的能力沒有到登峰造極的地步(這個比較困難?。菜瞥宋④涀陨淼木W站可以做到,其他網站的程序員很難做到。
七、京東商城用.NET架構合適嗎?
目前京東商城已經停止招.NET程序員了,進而轉向JAVA。這是京東商城對目前出現問題的一個響應。但是開發程序的轉變僅僅是第一步。系統性能的瓶頸主要集中在操作系統、網絡和數據庫上。京東商城在改變目前架構的時候肯定會遇到很多阻力和問題。比較典型的會有:
-
人員問題:目前掌權的,為京東商城立下汗馬功勞的都是.NET會程序員,不可能把其撤掉。要讓其領導新招的JAVA程序員,下屬也會認為不妥。目前大量的.NET后期將何去何從,辭退或轉型都不太好處理。
-
程序問題:現在的版本是通過不斷的迭代才穩定下來的,如果需要同步無可避免的還會遇到很多問題。時間成本和人員成本都比較高。
-
數據問題:對原有架構的調整需要保證原來系統中的業務流、資金流,、數據流的整體平移。如供貨商的管理,供應商考核,采購管理,退貨管理等數據。
-
現實問題:沒有像F1賽車那樣的設計(現在的京東確實沒有),無法對高速行駛的車輛更換主要零部件。京東也不可能會停下來。
八、如果真的遇到上述問題改如何去解決?(來看下實例)
Stack Overflow 現在他們使用越來越多的Linux服務器,比如HAProxy(負載均衡), Redis(NoSQL數據庫), Bacula(數據備份系統), Nagios(遠程監控軟件), 日志, 路由器都運行于Linux系統,幾乎所有需要并行處理的功能都是由Linux處理。
當當目前已經漸漸轉到Linux + PHP + Mysql,搜索、推薦等C++的后臺也從Windows轉為Linux版了?,F在訂單等后臺作業依然采用C#跑著。