最近一段时间,随着双十一、双十二等优惠打折季的过去,有关电商网站的可靠性设计受到国内社区的热烈讨论。在知名问答网站知乎上,有人提出了这样一个问题:“京东今天还在用.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等一套开源和近似开源的平台就更加有优势。不要跟我谈大公司的技术先进,我不认为这些高档技术在电商环境中有什么用。 ”

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

原文出自  http://www.infoq.com/cn/news/2011/12/jd-net

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

  1. 京东商城总架构师、基础平台负责人刘海锋:京东双11创新技术实践

    [CSDN现场报道]2016 年 11 月 18 日- 20 日,由 CSDN 重磅打造的年终技术盛会 -- "2016 中国软件开发者大会"(Software Developer ...

  2. 京东商城组织架构调整:划分为前中后台 强调实现有质量增长

    雷帝网 乐天 12月21日报道 继腾讯.小米.阿里之后,又一家互联网公司进行了架构调整. 今日,京东集团旗下最核心业务京东商城宣布架构调整,称商城将以"实现有质量的增长"为目标,在 ...

  3. 京东商城ContainerLB实践

    本文讲的是京东商城ContainerLB实践[编者的话]随着京东业务的高速增长,作为应用入口的负载均衡,大流量大并发带来的挑战越来越严峻.本文主要介绍了京东商城设计和实践的一套高可靠,高性能的负载均衡 ...

  4. 京东618:六年历程步步为营,京东商城的安全保卫战

    电商网站在为广大用户提供网购便利的同时,在安全方面也不可以掉以轻心.那么作为一家高流量的电商,京东是怎样做安全防护的?在618备战期间又需要特别注意哪些事项?京东安全的现状和未来是怎样的?为此,Inf ...

  5. 【android】高仿京东商城App,集成react-native热更功能

    简介 高仿京东商城项目具有完整的结构,代码整洁规范,结构清晰,集成React-Native热更功能,功能还在持续更新中-如果对你有帮助,给个star 使用kotlin语言开发,项目使用模块化开发,降低 ...

  6. So Easy京东商城

    So Easy京东商城 我和17位小伙伴们  同事MM Android实训第一阶段即将落幕! 开心之能与一群快乐.积极.充满正能量的学员度过一个月时光! 这两天都有朋友向我倾述程序员的茫然与苦楚. 我 ...

  7. UGeek大咖说 | 精彩回顾:京东商城可观测性体系的落地与实践

    导语 UGeek大咖说是优维科技为技术爱好者研讨云原生技术演进趋势而创办的系列活动,邀请一线互联网大厂的核心骨干主讲,分享原厂实践.本年度主题为可观测,我们希望通过一场场有趣.有料.有深度的活动,让运 ...

  8. 产品开发必看!一篇讲透,京东商城双轮驱动的核心业务模式!

    点击"技术领导力"关注∆每天早上8:30推送 京东商城入驻有两大主要模式,一是京东自营的采销模式,另外一个是POP模式,也就是第三方商家入驻模式. 1 自营 京东自营的操作方式是属 ...

  9. 京东商城(HTML和CSS实现京东商城网站)

    学习京东商城(HTML和CSS实现京东商城网站),本文实现该系统的功能截图,HTML和CSS部分关键语句,系统功能图等供大家学习参考 本页面模仿京东商城 本系统完全模仿京东商城写的页面,页面功能齐全 ...

最新文章

  1. Android :java.lang.RuntimeException: takePicture failed
  2. 算法--中兴面试:输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数, 使其和等于 m
  3. raspberry pi_使用Raspberry Pi和GPIO引脚控制外部LED
  4. combo空间禁止手动输入_国产大空间MPV新选择 上汽大通新款G10国六版本上市
  5. 成功者都在用的“成功咒语”
  6. fiddler网站请求被拦截怎么恢复?
  7. android actionbar tab,ActionBar+Fragment实现Tab
  8. 【NOIP初赛】【Luogu1787】普及组2013(洛谷初赛题提交水AC方法了解一下)
  9. 10.用好远程联机服务器
  10. Hibernate之一级缓存
  11. 给QlineEdit创建简单的clicked 信号方式
  12. CHD-5.3.6集群安装
  13. 正则表达式在JS中的应用,判断邮箱是否合法
  14. Android Rect相关方法
  15. 脚本案例互联网赚钱怎么赚钱?一切都需要引流脚本
  16. matlab snapnow,任意倾斜椭圆方程的画法.pdf
  17. 从0基础开发搜索引擎(一)-----实战项目
  18. 【传智播客郑州校区分享】MyBatis的架构设计分析
  19. 【ghost】centos使用nginx实现ghost博客系统的反向代理
  20. PythonNote7_List Comprehension(列表推导式)和lambda表达式

热门文章

  1. python画资本市场线_什么是资本市场线资本市场线基本简介
  2. C语言——六大运算符
  3. AMQP 协议及 RabbitMQ 的 Java 用例
  4. CRM系统和外呼系统的分工
  5. 安卓开发 中文教程 (12) --程序的结构
  6. windowsXP远程桌面连接失败 “由于账户限制,无法登录”
  7. Shader实现顶点动画和UV动画_流动的海水效果
  8. 在线存储、近线存储、离线存储、数据迁移
  9. 《CTFshow - Web入门》03. Web 21~30
  10. java期末考试知识点复习总结