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