京东今天还在用 .NET 架构的原因是什么?

admin 13年前
         文/陈皓    <p>        被人邀请来回答这个问题,我觉得这个问题有三个部分: <br />         1)为什么京东选 Win/.NET 平台 <br />         2)选 Win/.NET 平台行不行? <br />         3)京东的系统的问题是什么? </p>    <p>        <strong>1)为什么京东选 Win/.NET 平台?</strong> <br />         ———————————————— </p>    <p>        我觉得京东用 .NET 的原因应该很简单:<strong>一开始他就用 .NET/Windows 了,所以长期就这样了</strong>。 </p>    <p>        那么,为什么他会一开始用 .NET 呢?这个东西就只能我就只能推理了。Windows 的东西门槛低,而且有很多媒体为 Windows 做宣传,所以,在这个大多数人是井底之蛙的国度里,大多数人都会用 Windows 平台的。(10年前,这个社会上非 Windows 的工作很难找,几乎全是 Win 的天下,我在 CSDN 上写了一些文章来告诉大家其实 Unix/Linux 比 Windows 要好得多。当时没人理解,现在大家可能能够理解了) </p>    <p>        所以,我估计京东的选型用 .NET 的最一开始是报着这样的心态: <br />         1)<strong>随便找几个程序员帮写一下,越快越好,所以可能是那几个程序员觉得熟悉 Win/.NET,可以快速搞起来</strong>。 <br />         2)<strong>觉得业务比技术重要,技术无所谓,做出来了就好了。</strong> </p>    <p>        <strong>这是我觉得最有可能选择 Win/.NET 的原因,是无心去选择的</strong>。 </p>    <p>        <strong>2)选 Win/.NET 平台行不行?</strong> <br />         ———————————————— </p>    <p>        接下来的问题是选 Windows 和选 Linux 有没有哪个更好,我想说的是,都还不错,不要以为选 Windows 就不好。但选 Windows 的好处并不一定在技术方面,而是在服务方面。 </p>    <p>        很多金融机构都是用 Windows 的平台(你可能会和我争吵国内的银行都不是 Windows 的平台,都是 Unix 的平台,是的,我也是在银行里做过的,中国的银行几乎都是 IBM/SUN/ORACLE 的领地,所以,那里都是 AIX, RISC600, Solaris, Java, C/C++的地方),但是国外很多金融机构却更多用的是 Windows。为什么呢? </p>    <p>        金融机构并不在乎钱,他们有的是钱,他要的是稳定,不出错,出了问题能得到最好的售后服务,以及赔偿。这里我说一个我的亲身经历,我的上一家公司是做金融的,他们用的是 Windows,有一天在生产线上,因为升级 McAfee 把 Windows 搞蓝屏了,dump 了一个 16GB 的 dmp 文件(内存 16GB)。打电话找微软,开了一个 0 级的 ticket,于是,微软的工程师每一个小时都给我打一个电话,告诉我他们的进度,并让我帮他们收集信息,相当的专业,直到很晚很晚,我问他们什么时候下班?他们说,0级的问题他们无法下班,7x24小时,每一个小时要做出响应,不能睡觉,直到问题解决。这是我第一次享受微软的技术支持,我觉得相当地满意。 </p>    <p>        另外,关于 Windows 的性能,我在上一个公司用 Windows 2008 R1,发现 UDP 的I/O性能相当差,我们 10GB 的光纤带宽用了不到 1GB,CPU 0 的利用率就顶到天了,还是内核级的,我们怎么优化我们的程序都不行,发现这是 Windows 的问题,UDP 的驱动性能太差,而且操作系统总是会把内核级的程序绑死在 CPU0 上,我们知道,对于多核的 CPU,CPU0有调度的作用,如果 CPU 0 性能被占满了,这意味着这个 CPU 上的其它核的性能也不行了。后来,问题报给了微软,Windows 2008 R2 解决了这个问题,解决的非常好。 </p>    <p>        从上面的我的经历,我想说: </p>    <ul>     <li><strong>Windows 的服务是很不错的,只要你愿意花钱。</strong></li>     <li><strong>Windows 平台的性能有很多问题,但是可以看到 MS 在很努力很努力地解决。</strong></li>    </ul>    <p>        当然,我个人是相当不待见 Windows 的。不过,这只是我的个人喜好。并不能说 Windows 不是一个成功的操作系统或是服务器。我觉得比 Unix 成功多了(这里的 Unix 是各种公司的 Unix,比如:HP-UX, AIX, Solaris, IRIX ...)。 </p>    <p>        这是我想回答的第二个问题,<strong>京东的问题和用 Windows 没有关系。但是作为超低利润的零售业来说,能用 Windows 这个平台真是大手笔啊</strong>。 </p>    <p>        <strong>3)京东的系统的问题是什么?</strong> <br />         —————————————— </p>    <p>        京东的系统的问题,明显是自己架构和管理的问题。这个东西不能说得太细,不然就泄露机密了。 呵呵。 </p>    <p>        1)首当其冲是管理者的问题。不觉得技术重要,不听技术人员的建议,急功近利,超,快,猛。 <br />         2)其次是开发团队的人的问题,乱来。当然,有客观条件和上级逼着他们不得不乱来。 </p>    <p>        总之,<strong>我并不觉得这是技术问题,这分明就是管理问题,管理上的问题则暴露的是人的问题</strong>。 </p>    <p>        下面有些个人观点: </p>    <p>        <strong>1)有些人说有问题就有机遇,还有些人说花高薪招人吧</strong>。我觉得这还得要看是什么情况,如果公司注重技术,那么就会有机遇。但是重视技术绝不仅仅是用高薪请人,向技术部多投钱,这是肤浅的认识。所谓重视技术,就一定要能让技术部门有话语权,没有话语权的技术部门,是不可能有机遇一说的。(京东已经在花高薪挖人了,花相当的高的钱,但是如果不注重技术,一切都是白搭)对此,我觉得不换高管,别无他法。 </p>    <p>        2)<strong>有些人让京东换架构</strong>。是的,很明显这个架构太差了。但是你真的无法对一辆正在高速行进的车更换(核心)零部件。你必需得让车停下来!而且,还得需要像 F1 那样的设计,那才能很快地更换部件。从这点来说,我觉得京东除了重新开发一套,别无他法。 </p>    <p>        以上回复,不见得对,仅供参考。(谢谢)<br /> <br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958316893022126052" target="_blank">http://www.zhihu.com/question/19818863</a></p>