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