BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

有关京东商城采用.NET架构的社区讨论

| 作者 崔康 关注 0 他的粉丝 发布于 2011年12月31日. 估计阅读时间: 11 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

​最近一段时间,随着双十一、双十二等优惠打折季的过去,有关电商网站的可靠性设计受到国内社区的热烈讨论。在知名问答网站知乎上,有人提出了这样一个问题:“京东今天还在用.NET 架构的原因是什么?”,半年来得到了许多技术圈内人士的回复,其中不乏有意思的内容,对读者朋友很有启发作用。我们简单的对精华回复进行下分类。​

观点:历史原因造成 

陈皓——“我觉得京东用.NET的原因应该很简单:一开始它就用.NET/Windows了,所以长期就这样了。 那么,为什么它会一开始用.NET呢?.......我就只能推理了。Windows的东西门槛低,而且有很多媒体为Windows做宣传,所以......大多数人都会用Windows平台的......(京东)觉得业务比技术重要,技术无所谓,做出来了就好了。Windows的服务是很不错的,只要你愿意花钱。Windows平台的性能有很多问题,但是可以看到微软在很努力很努力地解决。京东的问题和用Windows没有关系。但是作为超低利润的零售业来说,能用Windows这个平台真是大手笔。  我并不觉得这是技术问题,这分明就是管理问题,管理上的问题则暴露的是人的问题。 ”

冯大辉——“据说京东老刘(刘强东)最早也写代码的,估计就是用微软的技术写东西的。最早的工程师估计也都是用微软的技术干活的,而这些人随着公司的壮大,逐渐就有人掌权了,这就形成一个什么局面?话语权是属于微软体系的人。即使有人想用其他技术体系来做点东西,那要面对很大的阻力才成。「习惯」是一个团队很难改变的,除非从上往下推动,但是这样又风险太大。加上还要跟上高速发展的节奏,那就继续跑吧。看到路边的电动自行车了没?非常灵活,快的时候能跑到40迈,但是真的危险。”

​大熊​——“京东用.NET是因为京东一开始的后端进销存体系就是.NEt基础的,当然这里话说回来,国内大多数进销存以及ERP也都是.NET基础下的。所以京东从一开始就是一个偏后端的厚重公司,在Web端的技术以及应用开发上只是凑合能用即可,所以就一直用.NET到现在(能用.NET支撑Web应用到现在实属不易了)。顺便说一下,我居然看到评论里有人说MySpace在使用.NET以佐证XXXXX问题,可是你知道MySpace已经日薄西山了吗?另外,MySpace正是用了MS技术外加不开源架构,错失了一轮又一轮的产品技术上的发展,还给自己带来了不必要的成本上的压力。当MySpace到了海量用户的时候,MS要派出专门的小组常驻MySpace,帮他们解决问题,这是一件惨绝人寰的事情。​”

观点:选择.NET不明智

廖雪峰——​用.NET,意味着你被捆绑在Windows平台上。不是.NET效率本身比Java、PHP差,语言其实差别很小,差距在于:

1. Windows Server授权费太贵,Linux免费,如果你有上千台服务器需要买上千台Windows授权......
2. Windows不但贵,性能还远远不如Linux,注意这里说的是服务器端性能,跟桌面一点关系都没有。
3. 许多的开源、高端服务器组件只有Linux/Unix版本,移植到Windows上的基本是半残品。
4. 许多优化技术、高性能分布式缓存、数据库、NoSQL解决方案等等,仅针对Linux。
5. 你需要的一切组件和技术几乎都可以在Linux平台上找到免费、稳定而且高性能的东西,如果是Windows平台,你需要祈祷微软赶快开发出来。
6. 在虚拟化的今天,一台高性能服务器可以跑十几台虚拟机,用Linux,你得到的是免费、稳定的虚拟机,用Windows,你一台服务器的授权费将 x N。​

总之,立志做大型互联网应用的企业,绝对绝对绝对不可以用Windows Server做平台。​

徐文浩——大型互联网应用不应该使用.NET这样的结论我认为是没错的,无论是从效率、架构、人员招募,.NET都有一些劣势,包括:

1. 授权费, 这有两个因素,一个是需要钱,第二个是即使费用不高,你还是要费口舌去说服大家花这个钱。
2. 系统运维,Windows Server看起来操作简单,但是真正有能力做大型互联网产品的系统运维的人员,恐怕找Linux的比Windows Server的便宜得多。​
3. 开发成本,前端App使用.NET比之Python和PHP并没有什么特别优势,后端比之Java也什么特别优势,找中等以上架构水平的人数也相对更少,如果是真的高性能高并发的搜索、广告这样的需求,也是C/C++的天下,而且你也必然不会使用Windows Server。

观点:架构问题,非.NET之祸

赵劼——​显然是架构的问题,关.NET什么事情。说几点我一直存在的观点:

  • .NET社区也很大,说需要"看微软脸色行事"、“需要等微软开发”之类的观点没有任何道理。
  • .NET和Windows、IIS性能很好,不信我们可以做benchmark,我做过很多次了,什么几万RPS绰绰有余,绝对超过你程序能达到的性能。​
  • Windows Server做Web服务器很便宜,授权费一点点。.NET没必要非得用SQL Server,自己限制自己只是冤大头而已。
  • .NET和Linux一起用很正常,缓存、数据库、负载均衡什么的。
  • StackOverflow用.NET好好的,甚至没几个非.NET的项目达到MySpace的规模的。MySpace失败跟技术.NET没关心,否则请给出证据。

王晓胜——“虽然国内的进销存都用.NET,你的Web网站就得选择用.NET吗?这个逻辑根本讲不通。那些拼命批判windows贵,说linux便宜的人,真不知道怎么想的。 .NET开发的低成本表现在速度快、效率高、人员工资成本低等方面,这个对于创业型企业不知道多宝贵嘛。用linux固然好扩展,但你要烧多少高香才能找到好的架构师来帮助你,而且还得找到好的技术开发人员。那些批判.NET架构性能不高的人,你们真了解.NET社区的庞大嘛?去看看国外有多少企业级应用都用.NET,不仅是安全上的问题,更重要的是广泛的支持。.NET社区中有非常多的针对优化技术、高性能分布式缓存、数据库、NoSQL的解决方案,拜托都去了解一下再说好不好。京东IT系统的核心问题,应该是当时架构设计的问题,与平台和语言都无关。估计现在也是因为前后台系统相互依赖性太强导致,前台显示库存与后台的库存直接相连,这设计也土了点。​”

其他观点:历史、战略、管理

潘志彪——“当当08年之前也是.NET系统,后渐渐转到Linux + PHP + Mysql,搜索、推荐等C++的后台也从Windows转为Linux版了。现在订单等后台作业依然采用C#跑着。当当能够转型主要是前CTO hubert是ebay出身,参与过大系统的设计,具有很好的技术嗅觉。国内B2C京东、凡客等现在还是windows为主,最主要的原因还是数据量太小吧。凡客还整天搞MS SQL Server存储过程。B2C本质还是零售企业,大老板往往不是很重视技术,更看重市场,所以国内......不到抗不住的那一刻,是不会技术转型的。淘宝数据量大,技术积累相对好很多,技术架构上比京东、当当等高出太多。”

是人非人——“首先80%是管理问题, 然后剩下的20%责任里面有80%是架构的问题, 所以技术上的问题只是那20%里面的20%, 换算下来是4% 。如果我是京东的技术领头人, 我应该反思自己的行为和规划,架构来源于生活,如果我的生活不完美, 做出来的架构自然也不完美。 再说技术问题,.NET和Java都是枪, 关键还是用枪的人, 机关枪不一定就能比狙击枪更有效率, 关键还是用枪的人。做技术的人自己应该反思自己的开发态度, 我在设计和开发的时候真的想过所有的问题吗? 还是说为了项目和进度我损失了设计和思考的时间? ”

胡海涛——“​Amazon的今天就是中国电商的未来。电子商务的波峰低谷中会把自己的计算能力卖出去,也就是那群server farm里面的闲置机器。这需要整体架构更加是水平扩展和灵活性。硬件负载均衡+PC SERVER Farm的方式最为方便。Linux+Java的方式最能够解决这个问题。关于技术战略,大型电商一定不能走IT services和outsourcing的路子。因为电子商务的快速灵活决定了IT和业务是紧密结合的。所以,suning.cn一定会受到WCS的束缚。所以,一个强大的技术团队是电商的核心竞争力。技术是为了业务服务,未来如果京东转向内容提供呢?这些都需要快速的技术平台转型。 我不想比.NET和Java或PHP之类的技术谁更加性能好,因为这些技术问题总是可以克服,就看代价如何。我们看看Google,本质上Google的最底层技术文件系统是提高搜索的关键。而电商为了提高性能,势必走上定制OS、APP Server、DB的道路。 这样看,Linux、Java等一套开源和近似开源的平台就更加有优势。不要跟我谈大公司的技术先进,我不认为这些高档技术在电商环境中有什么用。 ”

目前,已经​有超过一百位技术人员回复了该问题,讨论还在继续,感兴趣的读者可以查看知乎的具体帖子

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

自己技术垃圾,非要怪微软。 by xiaok xiaok

自己技术垃圾,非要怪微软。

支持.net一下 by 戴 维

技术没有好坏之分,还是那句话,没把技术用好,别说技术不好,请反思下自己,你真的尝试过了吗?在这个时代,请不要再人云亦云

不要人云亦云 by jn nemo

.NET的门槛低,请问哪里低?你有精通了吗?你会什么就说什么,不会的话不要乱扯,任何技术都有成功案例。国人有这时间还不如自己回家好好学习学习。

OOXX by Zhong Kevin

廖雪峰,徐文浩这两丫是谁呀?

不知为不知 by jy j

冯大辉——“话语权是属于微软体系的人。即使有人想用其他技术体系来做点东西,那要面对很大的阻力才成。"

我怎么感觉现在的情况和这位说的是相反的

写自己的代码让别去说吧 by 黄 海平

没有深入的研究就没有话语权,还是踏实的好.再说 这篇文章也有寻章摘句之嫌,何必太较真,读者的眼球和厂商的赞助才是真的.

Re: OOXX by Kaijin Li

国内IT,关注点不在使用什么技术,而是商务活动的成败,也就是人的因素,单从技术维度看,.net也好,java也罢,只不过是为商务活动提供单一层面的支撑,.net因为有微软统一做支撑,所以让广大.net开发人员觉得他们有一套标准,带来的成就感是规范,而java因为开源,所以局面是五花八门,武大郎开店,各显神通,给java方面的开发人员感觉是牛人的缔造者,带来的成就感是人才济济。可惜使用什么样的技术,那都是支持商务的一种手段而已,.net开发者把微软作为标准在外宣扬,同样忽略了个问题就是微软本身的局限性,而java开发者把缔造人才摇篮作为口号在外宣扬,也忽略一个问题那就是统一标准不可控,好与不好的技术解决方案没有一个评判标准,单从技术选型角度出发,.net和java各有利弊,不能单一的说.net是低劣技术的代名词,也不能说java就是高深技术的代名词,一句话:用什么样的技术不重要,重要的是使用技术的人。

不是已经开始转java了么 by wang jeffery

东西太贵才是最大的劣势 没见几个便宜的

Re: OOXX by Kaijin Li

同为国内IT人,只是想着如何将.net或者是java用到极致,最大化满足商务活动即可,不会认为.net粉丝说微软是.net技术的鼻祖,就盲目的追随或认同微软就是标准和规范,.net问题自然是解决方案很单一,误导开发者来自微软的方案就是最优的方案,因为只有微软一个作为评判标准,从某种程度上说限制了人的思维上限。同样java粉丝说java博大精深,解决方案百花齐放,山外有山,java的问题自然是标准不唯一,让开发者无法很好的判断并选择出最优的解决方案,一旦做出一个选择后,风险是扩张的、不可预知的,对个人是一种不断的尝试和探索,对商务也许要面临灾难的风险。毫无疑问,技术选型取决于商务需求和特点,不取决于技术本身的好坏。

技术始终是为业务服务的。 by Jackie Allen

技术始终是为业务服务的,技术再牛x,不为业务服务就是一坨牛屎。没用的。用.net、java又如何呢?能很好的解决问题就ok了。

谁说linux免费的 by Pegasus Danny

linux是有免费的,你敢商用不,连个售后都没有。

你要花钱买带售后你看看价格去,Red hat3万,jboss三年24万(别说你敢用tomcat跑大应用)

微软是一家伟大的公司,它的技术有许多优势 by Jeffrey Zhao

1. 可以让小白不用了解多少东西就能做出点东西来。
2. 可以让高手在出了问题的时候把责任推到微软身上。
3. 可以让业界分析师在不需要了解多少东西的时候,就能对微软指手画脚。

捧微软技术的、黑微软技术的、用微软技术的、不用微软技术的、懂微软技术的、不懂微软技术的、培训微软技术的、不懂还培训微软技术的都能靠它吃饭。微软,人类的希望,少了微软会给多少IT从业人员的职业发展造成负面影响啊。

谁说京东用.net的 by 沈 昕宇

今天猎头给我发的招聘信息,京东找10几个java开发,都是基于linux的。还是京东被打击了,开始招linux的了

Re: 不要人云亦云 by 李 文君

自己都说门槛了,还谈什么精通啊

Re: 微软是一家伟大的公司,它的技术有许多优势 by Chane Michael

对你文章中的观点,既不赞成也不反对。但是,对你“人类的希望”的观点,表示恶心!

Re: 谁说京东用.net的 by hongchang ren

java开发还要特定平台?

Re: 谁说京东用.net的 by Wilson Young

京东早就开始转oracle+java+linux了,开发平台全部linux+java+mysql

一堆微软黑在jjyy by 容 赜

觉得这盘讨论挺恶心的,一堆微软黑在jjyy,说的一堆所谓理由根本就是井底之蛙,完全没了解过微软生态圈的人所说的.InfoQ竟然会刊登如此之流的软文,实在是让人失望

Re: OOXX by 曹 力文

个人感觉 企业应用还是java好的。大公司的人才要懂技术细节的。不是简单地用。

Re: OOXX by 曹 力文

基本上,高端人才选择技术都要做很多 调查。
如果让京东从新做,我相信,他会选择java的。
就是因为历史遗留问题,才会一直在.net上深陷。

Re: 谁说linux免费的 by Yang Yang

呵呵。真正的大企业才敢用非商用的linux,敢用tomcat甚至jetty跑应用。
就算是中小企业,敢用这些技术的也一大把。

别和我说金融什么的企业不敢用,敢用的一大把。连shell脚本都可以当成核心业务逻辑跑,还有什么不敢的?

至于人才费就算了吧,国内的人才值几个屁钱?而真正一个项目又到底需要几个牛人?况且我并不觉得把centos这样的非商用linux系统摸清楚,会写shell脚本,懂java会jvm调优,熟透tomcat,精通JavaScript的人有多了不起。这样的人在北上深广一大把。

以前 InfoQ/cn 都是翻译国外的讨论来发表,现在慢慢开始也加入国内的事件来讨论了! by 朱 敏

以前 InfoQ/cn 都是翻译国外的讨论来发表,最近慢慢开始也加入国内的事件来讨论了!
经营思路开始有些变化了哟 :)

Re: 技术始终是为业务服务的。 by 冯 希顺

选择java平台或.net平台这种级别的事情一般来说不应该称之为技术问题,因为这个问题的处理涉及到太多业务问题了,比如:企业的业务类型、未来的业务发展预测、企业的既有资产等等,技术本身的特性其实影响已经不大了。如果京东一开始就用.net平台,那继续使用.net平台对京东自己保持优势的作用是很明显的,有这样的倾向或选择也很正常。但是.net平台的选择对京东的技术人员来说却不能说是一件特别有利的事情了,毕竟技术人员不可能都在京东干一辈子,等到电商们的竞争超越了技术层次,京东的技术人员跑到外面面对清一色的非.net平台的时候,那就不太好了。

Re: 技术始终是为业务服务的。 by Jackie Allen

楼上的观点完全赞同,做技术的就是累呀,啥都要学。还不如卖猪肉的,有空跟丁磊卖猪肉去。

微软技术开发不了大型网站? by z z

说微软技术开发不了大型网站的,请看看这个:
www.cnblogs.com/ms0017/archive/2011/07/26/21176... 基于微软平台IIS/ASP.NET开发的大型网站有哪些?
说.net成本高的,请看看这个:
www.cnblogs.com/ms0017/archive/2011/08/17/Micro... 谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

Re: 微软技术开发不了大型网站? by z z

补充一个反例:
最近铁道部的www.12306.cn订票系统频繁瘫痪(基于java的),能不能说是java技术本身的问题?!!!

京东已经全部转向JAVA平台了,校园招聘上讲的,刘强东以前是搞.NET的 by north fish

京东已经全部转向JAVA平台了,校园招聘上讲的,刘强东以前是搞.NET的

这是InfoQ史上品味最差的一篇文章 by Xin Yaping

InfoQ什么时候品味也变得这么差了?

Java就是香饽饽,.Net就是臭狗屎?用微软的技术很丢人?用Linux就没问题?

是不是说一家网站用了开源的东西,它技术上就没问题了?

这种文章真是丢人现眼。

Re: 微软技术开发不了大型网站? by Chane Michael

对于java vs .net不评论
但是,就是想指出,原文有点混淆视听:
1 有名的网站 != 大网站(技术上的大,尤指访问量、数据量而言),部分列出的网站,名气很大,访问量、数据量,其实并不是很大。
2 国内举例似乎比例太多了。就事论事,国内的技术人员,很大一部分还是落伍好几年的。比如CSDN的明文密码
3 一个真正大的网站,用到的技术框架、开发语言,绝对不止一两种。比如原文中提到的工行www.icbc.com.cn/,它www的网站,确实是.NET的,但是网银却是java的

p.s:顶一下第二个引文中的一句话:大型网站的开发,人的能力和合理的架构才是关键所在!

挑起争端吸引读者眼球 by 宁 方兵

InfoQ 怎么也像一样低劣软文或微博营销学习了?靠挑起争端引发关注呢,谈论技术就是谈论技术。希望以后能更专注些,现在
IT网友已经非常理性。

Re: 微软技术开发不了大型网站? by zhou fish

是共产党腐败问题

系统大到一定程度一定要定制OS,这一点就说明问题了。 by Wei Zhong

windows微软自己也无法定制吧!

这个世界上有了文中提及的其中某五位专家,才能够衬托出真正有真才实学、干实事的人。正如红花绿叶的道理。 by 梁 逸晨

这个世界上有了文中提及的其中某五位专家,才能够衬托出真正有真才实学、干实事的人。正如红花绿叶的道理。

技术都一样 by 吴 正猛

技术是靠人的,有什么样的人,有什么样的技术,每种问题都有自己的解决方案

Re: 支持.net一下 by 丁 浪

你错了。编程语言和平台都是有自己优势和劣势的,技术有好坏之分。根据实际项目去权衡,去选择,大道目的,这才是最明智的。
因为它只是一个工具,一种手段,来帮你实现目的。当然,技术人员的水平也是很关键的,国内.NET技术人员和java技术人员的水平有明显的差异的。
天下武学,各有所长,我们本不该有门户之见和任何偏见。可惜一个人很难掌握天下所有的武功,并将其融会贯通啊。

反对王晓胜的说法 by 丁 浪

反对王晓胜的说法:
1.你说的“.NET开发的低成本表现在速度快、效率高、人员工资成本低等方面”....
这恐怕只能针对一些小网站,小业务系统而言。可以用asp.net拖拖控件,绑定一下数据...然后万事大吉。
2.现在讨论的是大型互联网,而你说到了“国外企业级的应用....”企业级开发和互联网,这完全是两码事。
3.不否认微软针对很多技术也有很多解决方案。但有点“闭门造车”。这点和linux等开源平台比较起来,没有优势。
4.能做好真正的大互联网 “架构、开发、运维”的人,Linux java php mysql ...方面的人好找。而windows .NET ...方面的人难找。

Re: 反对王晓胜的说法 by 丁 浪

我没说微软的技术,就不能......只是觉得相比之下,没有太大优势。并没有唱衰谁谁的意思,如果那样,就太肤浅了。
选择合适的平台和技术,做正确的事情。平台和技术,架构...都很重要,但关键在人。

Re: 反对王晓胜的说法 by 风铃 草

我感觉不是那个技术牛,那个技术好的问题,从公司管理层面来讲,能长期节省成本的,并且可以带来利益的电商平台那就是好的。一切利益为准则。
从纯技术角度来讲开源的技术,可以根据自己的需要在的开源的上面进行定制。而微软的东西不是说不好,只是因为不开源,不够灵活。很多时候想根据自己的想法去做底层的东西去减负下。但是,必须要按照微软的标准走。这点非常讨厌。虽然我自己也是做了很多年的NET。
我现在的做法都是上层业务模型都是NET开发,中间和低层的,比如:服务架构,文件存储,数据存储,操作系统,都是NET和开源的相结合的,比如:LIUNX系统配合,MYSQL+分布式缓存+NQSQL等等。前台网站和用户平台全部是NET。。。各个子系统之间的通信全部是服务架构在搞。。。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

38 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT