CBA

对NET系统架构改造的一点经验和教训NE

2019-07-14 01:54:40来源:励志吧0次阅读

在互联行业,基于 Unix/Linux 的站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为 Linux 本身足够的开放性,更因为围绕传统 Unix/Linux 社区有大量的成熟开源解决方案,覆盖了站应用扩展的方方面面。我记得十几年前第一波互联浪潮的时代,采用 Windows/.NET 架构的大型站是非常普及的,而如今采用 .NET 架构的知名站已经凤毛麟角了。特别是除了微软自身旗下的站 MSN 和 Hotmail,其他采用 .NET 架构的大型站很多都面临了架构上的扩展问题,让 .NET 架构的扩展性成了一个比较有争议的问题:例如国外的 SNS 站 MySpace 站面临过很严重的性能扩展问题,国内电商站京东也不止一次受困于架构扩展带来了性能瓶颈。因此,一些 .NET 架构为主的站,不得不考虑“去 .NET 化”,抛弃 .NET,全面迁移到以 Java 为主的架构上。但是大型站的架构迁移,本身也是伤筋动骨的事情,风险极高,成功案例尚不多见,失败案例俯拾皆是,这是因为:1、架构迁移是在现有业务系统上进行的,并不是从容的开发新产品,有足够的时间测试和完善,相当于给正在高空飞行的客机换引擎,必须一次切换成功,没有第二次机会,稍有差池,就会机毁人亡。而我们都知道,新开发一个大型系统,没有上线磨合和完善过,无法做到一次 100% 完美。2、架构迁移意味着老的研发团队将被淘汰,而往往老团队体系随着公司壮大已经掌握了足够话语权,新架构的团队在公司又根基未稳,出于维护自身利益的本能,新旧团队之间很容易爆发政治斗争,相互排挤,导致迁移失败。5173“去 .NET 化”的教训5173 站以游戏装备交易起家,曾经在客户端络游戏发展黄金时期,迎来了业务爆发性的增长期。此时,用 .NET 架构开发的站已经不堪重负,由于现有的 .NET 研发团队长期无法解决站的性能问题,5173 决定将站从 .NET 架构全面迁移到 Java 为主的架构上。为此,5173 花了很大的代价,从淘宝和 SUN 公司挖了很多工程师,组成了一个六七十人的 Java 架构研发部门。新的 Java 研发部门开发新的 5173 站,而老的 .NET 研发部门维护现有的 5173 站,两个部门并行工作,两个版本的站并行运行,这带来了公司内部激烈的政治斗争,新开发完成的 Java 版本的 5173 站从未正式上线过,老的 .NET 研发团队在面临严重生存威胁的情况下,努力解决了一些核心的可用性和稳定性问题。同时随着端游黄金时代的结束,站性能问题也逐渐显得不再重要。在围绕新版本站是否要正式替换老版本站的问题上,各个利益方争执不下,反反复复拉锯战,而空降而来的女 CTO 不属于任何派系,态度模棱两可。最终斗争的结果 .NET 利益方战胜了 Java 利益方,Java 研发部门被清洗。我的“去 .NET 化”的经验和教训3 年前,我刚接手 CSDN 的产品和研发团队的时候,CSDN 的核心系统大约2/3 是 .NET 架构,1/3 是 LAMP 架构。研发人员当时也很少:只有 2 个 .NET 程序员,3 个 PHP 程序员,后来还有 1 个我带过来的 Ruby 程序员。当时的计划是:站整体架构改造的方向是 Linux 架构,逐渐替换掉现有的 .NET 系统。因此不打算继续招聘和补充 .NET 程序员了,现有的 .NET 程序员负责老的核心系统维护工作。但硕果仅存的 2 个 .NET 程序员在随后不到半年时间都走了:一个 .NET 程序员跟着微软出来的高管去创业,另一个 .NET 程序员跳槽去百度做了前端工程师。这中间的道理也很简单:既然公司要去 .NET 化,那 .NET 工程师就会担心等到将来 .NET 系统都换掉之后,自己在公司还有价值吗,不就彻底边缘化了吗?当然我在制订架构迁移计么编程语言,主要取决于研发团队资源的调配情况而定。总之,以我的经验来说,一个传统上严重依赖微软解决方案架构的站,如果要进行架构改造,迁移到 Linux 平台,甚至用其他编程语言重写,从来都不是一个单纯的技术问题,它至少涉及如下几个层面的问题:1、如何保障旧系统的研发团队的利益问题,如何做到激励老团队参与架构改造,分享成功。这是最重要的,往往也是架构迁移最容易出现的致命问题,如果架构改造注定要牺牲老团队,完全不考虑和保障他们的利益,我认为一定会产生残酷的政治斗争,最终必然失败;2、现有业务系统如何保持正常运转和平滑过渡的问题,如果架构改造影响到了业务,那一定会夭折;3、如何保证站用户体验的平滑过渡和改善的问题,如果架构改造影响了用户基本使用体验,那也一定会被叫停;4、领导对架构改造当中出现风险的容忍度问题,以及领导对架构改造周期拉长以后的耐心问题;一点题外话我感觉我们互联行业有一个不太好的现象:有些站在促销期间瘫痪了,有些站经常出现访问不稳定的现象,公司老板就喜欢跑到微博上来放狠话,请下属喝茶,或者急就章的嚷嚷百万年薪招 CTO。这就好比一个人,平常生活习惯差,花天酒地,从不注意养生,结果长年累月下来,终于病倒了。在这个时候狠狠的挥舞支票嚷嚷,那个名医能给我药到病除,我给谁百万报酬。所以,当一个站出现严重的技术问题,其根源往往都不是单纯的技术问题,也不是单纯换个 CTO 就可以药到病除的,要反思公司企业文化是不是从来没有重视过研发,对技术团队的激励到位了吗?对架构师的意见重视过吗?对未来可能面临的技术门槛是否有过长期的研发投入?关于这个现象,我记得 Fenng 说过一句很精辟的话:“技术问题,总是在短期被高估,在长期被低估”,我也想补充一句:“技术出现了问题,从来都不单纯是技术导致的问题”。

手机微商城怎么开店
微信商城价格
官方网站建设
分享到: