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