技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> 为什么国内还有那么多网站使用.NET架构?

为什么国内还有那么多网站使用.NET架构?

浏览:4405次  出处信息

    一、目前使用.NET 的国内大型网站有哪些?

  • 卓越http://www.amazon.cn/
  • 当当http://www.dangdang.com/
  • 京东http://www.360buy.com/
  • 凡客http://www.vancl.com/
  • 携程http://www.ctrip.com/
  •     二、为什么这么多网站使用Windows/.NET?

  • 创业初期,创始人非技术背景出身,对Unix/Linux存在恐惧心理或对使用何种平台和框架没有想法。
  • 创业初期,创始人技术出身,选择了自己擅长的语言。
  • 创业初期,创始人对语言没有什么要求,唯一的要求就是省钱、快速上线。
  •     三、使用Win/.NET的好处有哪些?

  • 人员:招聘比较快,各大高校和培训机构都有教.NET的。初级程序员工资要求比较低。
  • 开发:入门简单,开发效率高。
  • 维护:Windows Server 界面操作简单,便于维护,有现成的商业监控维护工具可用。
  • 服务:提供了整体解决方案,如SQL Server提供了统计计算、数据挖掘、事务支持等。
  •     四、使用Win/.NET有哪些不好的地方?

  • 使用.NET基本上被强制捆绑到了Windows上,虽然Linux机器上也有.NET支持的Mono( http://www.mono-project.com/ ),但是性能并没有Windows系统上的那么好。.NET程序员在整个网站基础架构的优化改良上课选择的东西比较少。微软的东西一般不太会出现问题,但是如果出现问题,很难快速的找到解决方案。
  • 最新的技术不能及时的应用到Windows平台,只能期望微软的早日更新。比如Windows对snmp协议的支持目前只能到2c,不能到3。许多无数的开源、高端服务器组件只有Linux/Unix版本。许多优化技术、高性能分布式缓存、数据库、NoSQL解决方案等等,仅针对Linux/Unix。
  • Windows Server的授权费比较贵(对于大型网站可能不太在乎)。如果有上百台服务器就需要购买上百份授权,如果一台服务器上安装N个虚拟机,就需要购买N份授权。
  •     五、京东商城选择.NET的原因是什么?

  • 刘强东之前有.net程序员背景, 一开始的版本由他进行开发。.NET的人也比较容易招,创业初期有很多公司都是使用盗版的Windows Server的,不需要支付授权费用(不知道京东商城是不是)。
  • 京东商城不是一家技术公司,它只是一个建立在电子商务平台上的销售公司。早期更偏向后端的物流仓储管理,后端进销存体系就是.net基础的。京东现在用的内部ERP,一开始是刘强东自己开发的。
  •     六、京东商城为什么一做活动就宕机?

  • 管理不到位,管理者急功近利,要求员工超、快、猛,貌似每个公司都这样。项目的进度较少了设计和思考的时间。
  • 运维不到位,没有提前对每次活动会带来的流量进行合理的评估,为活动提供服务器资源等。 这个猜想貌似不靠谱,貌似用堆服务器的方法无法解决性能问题。
  • 架构不到位,前后台的依赖比较高。比如前台的库存要直接依赖后台库存数据等,这些不知道京东是如何处理的。
  • 原开发不到位,开发者的能力没有到登峰造极的地步(这个比较困难啊),貌似除了微软自身的网站可以做到,其他网站的程序员很难做到。
  •     七、京东商城用.NET架构合适吗?

        目前京东商城已经停止招.NET程序员了,进而转向JAVA。这是京东商城对目前出现问题的一个响应。但是开发程序的转变仅仅是第一步。系统性能的瓶颈主要集中在操作系统、网络和数据库上。京东商城在改变目前架构的时候肯定会遇到很多阻力和问题。比较典型的会有:

  • 人员问题:目前掌权的,为京东商城立下汗马功劳的都是.NET会程序员,不可能把其撤掉。要让其领导新招的JAVA程序员,下属也会认为不妥。目前大量的.NET后期将何去何从,辞退或转型都不太好处理。
  • 程序问题:现在的版本是通过不断的迭代才稳定下来的,如果需要同步无可避免的还会遇到很多问题。时间成本和人员成本都比较高。
  • 数据问题:对原有架构的调整需要保证原来系统中的业务流、资金流,、数据流的整体平移。如供货商的管理,供应商考核,采购管理,退货管理等数据。
  • 现实问题:没有像F1赛车那样的设计(现在的京东确实没有),无法对高速行驶的车辆更换主要零部件。京东也不可能会停下来。
  •     八、如果真的遇到上述问题改如何去解决?(来看下实例)

        Stack Overflow 现在他们使用越来越多的Linux服务器,比如HAProxy(负载均衡), Redis(NoSQL数据库), Bacula(数据备份系统), Nagios(远程监控软件), 日志, 路由器都运行于Linux系统,几乎所有需要并行处理的功能都是由Linux处理。

        当当目前已经渐渐转到Linux + PHP + Mysql,搜索、推荐等C++的后台也从Windows转为Linux版了。现在订单等后台作业依然采用C#跑着。

        本文整理自知乎:http://www.zhihu.com/question/19818863

    建议继续学习:

    1. 关于”为什么京东今天还在用.net架构?”的乱想    (阅读:6362)
    2. 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发    (阅读:3154)
    3. 对.net系统架构改造的一点经验和教训    (阅读:2708)
    QQ技术交流群:445447336,欢迎加入!
    扫一扫订阅我的微信号:IT技术博客大学习
    © 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

    京ICP备15002552号-1