欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
對.net系統架構改造的一點(diǎn)經(jīng)驗和教訓

在互聯(lián)網(wǎng)行業(yè),基于Unix/Linux的網(wǎng)站系統架構毫無(wú)疑問(wèn)是當今主流的架構解決方案,這不僅僅是因為L(cháng)inux本身足夠的開(kāi)放性,更因為圍繞傳統Unix/Linux社區有大量的成熟開(kāi)源解決方案,覆蓋了網(wǎng)站應用擴展的方方面面。

我記得十幾年前第一波互聯(lián)網(wǎng)浪潮的時(shí)代,采用Windows平臺ASP架構的大型網(wǎng)站是非常普及的,而如今采用Windows平臺.net架構的大流量知名網(wǎng)站已經(jīng)鳳毛麟角了。很多采用Windows平臺.net架構的大型網(wǎng)站都面臨了架構上的擴展問(wèn)題:

例如國外的SNS網(wǎng)站MySpace網(wǎng)站面臨過(guò)很?chē)乐氐男阅軘U展問(wèn)題,國內電商網(wǎng)站京東也不止一次受困于架構擴展帶來(lái)了性能瓶頸。因此,一些Windows平臺.net架構為主的網(wǎng)站,不得不考慮“去.net化”,拋棄.net,全面遷移到以Java為主的架構上。

但是大型網(wǎng)站的架構遷移,本身也是傷筋動(dòng)骨的事情,風(fēng)險極高,成功案例尚不多見(jiàn),失敗案例俯拾皆是,這是因為:

  1. 架構遷移是在現有業(yè)務(wù)系統上進(jìn)行的,并不是從容的開(kāi)發(fā)新產(chǎn)品,有足夠的時(shí)間測試和完善,相當于給正在高空飛行的客機換引擎,必須一次切換成功,沒(méi)有第二次機會(huì ),稍有差池,就會(huì )機毀人亡。而我們都知道,新開(kāi)發(fā)一個(gè)大型系統,沒(méi)有上線(xiàn)磨合和完善過(guò),無(wú)法做到一次100%完美。

  2. 架構遷移意味著(zhù)老的研發(fā)團隊將被淘汰,而往往老團隊體系隨著(zhù)公司壯大已經(jīng)掌握了足夠話(huà)語(yǔ)權,新架構的團隊在公司又根基未穩,出于維護自身利益的本能,新舊團隊之間很容易爆發(fā)政治斗爭,相互排擠,導致遷移失敗。

5173“去.net化”的教訓

5173網(wǎng)站以游戲裝備交易起家,曾經(jīng)在客戶(hù)端網(wǎng)絡(luò )游戲發(fā)展黃金時(shí)期,迎來(lái)了業(yè)務(wù)爆發(fā)性的增長(cháng)期。此時(shí),用.net架構開(kāi)發(fā)的網(wǎng)站已經(jīng)不堪重負,由于現有的.net研發(fā)團隊長(cháng)期無(wú)法解決網(wǎng)站的性能問(wèn)題,5173決定將網(wǎng)站從.net架構全面遷移到Java為主的架構上。為此,5173花了很大的代價(jià),從淘寶和SUN公司挖了很多工程師,組成了一個(gè)六七十人的Java架構研發(fā)部門(mén)。

新的Java研發(fā)部門(mén)開(kāi)發(fā)新的5173網(wǎng)站,而老的.net研發(fā)部門(mén)維護現有的5173網(wǎng)站,兩個(gè)部門(mén)并行工作,兩個(gè)版本的網(wǎng)站并行運行,這帶來(lái)了公司內部激烈的政治斗爭,新開(kāi)發(fā)完成的Java版本的5173網(wǎng)站從未正式上線(xiàn)過(guò),老的.net研發(fā)團隊在面臨嚴重生存威脅的情況下,努力解決了一些核心的可用性和穩定性問(wèn)題。同時(shí)隨著(zhù)端游黃金時(shí)代的結束,網(wǎng)站性能問(wèn)題也逐漸顯得不再重要。

在圍繞新版本網(wǎng)站是否要正式替換老版本網(wǎng)站的問(wèn)題上,各個(gè)利益方爭執不下,反反復復拉鋸戰,而空降而來(lái)的女CTO不屬于任何派系,態(tài)度模棱兩可。最終斗爭的結果.net利益方戰勝了Java利益方,Java研發(fā)部門(mén)被清洗。

我的.net系統架構改造的經(jīng)驗和教訓

3年前,我剛接手CSDN的產(chǎn)品和研發(fā)團隊的時(shí)候,CSDN的核心系統大約2/3是Windows平臺.net架構,1/3是LAMP架構。研發(fā)人員當時(shí)也很少:只有2個(gè).net程序員,3個(gè)PHP程序員,后來(lái)還有1個(gè)我帶過(guò)來(lái)的Ruby程序員。當時(shí)的計劃是:網(wǎng)站整體架構改造的方向是Linux架構,逐漸替換掉現有的.net系統。因此不打算繼續招聘和補充.net程序員了,現有的.net程序員負責老的核心系統維護工作。

但碩果僅存的2個(gè).net程序員在隨后不到半年時(shí)間都走了:一個(gè).net程序員跟著(zhù)微軟出來(lái)的高管去創(chuàng )業(yè),另一個(gè).net程序員跳槽去百度做了前端工程師。這中間的道理也很簡(jiǎn)單:既然公司要去.net化,那.net工程師就會(huì )擔心等到將來(lái).net系統都換掉之后,自己在公司還有價(jià)值嗎,不就徹底邊緣化了嗎?

當然我在制訂架構遷移計劃的時(shí)候,也考慮到了這一點(diǎn):我給那個(gè)更資深的.net工程師制訂的是整個(gè)公司總架構師的培養計劃,那個(gè)精通JS的.net工程師制訂的是未來(lái)前端團隊Leader的培養計劃。不過(guò)有不確性的承諾總是不如現實(shí)的威脅更迫切,所以我也特別能夠理解.net工程師的流失。

這個(gè)時(shí)候,我陷入了一個(gè)兩難的處境:

  • 如果未來(lái)還是沿著(zhù)“去.net化”的計劃往下走,就算重新招聘和搭建了.net研發(fā)團隊,由于.net在公司是注定要被替換掉的,那么新的.net團隊是不可能穩定的,很可能來(lái)一兩個(gè)月,一看形勢不對,立馬走人了。而當時(shí).net的核心系統占整個(gè)網(wǎng)站的比重很高,且極端復雜,一旦出問(wèn)題,根本就束手無(wú)策,必須要有好手坐鎮維護。當時(shí)我已經(jīng)開(kāi)始review核心系統的.net代碼,準備親自上陣了。

  • 如果未來(lái)放棄“去.net化”的計劃,也許短期可以解決一些頭疼的系統維護的問(wèn)題,但是對整個(gè)網(wǎng)站長(cháng)期的發(fā)展會(huì )帶來(lái)很多不利的方面:例如網(wǎng)站的安全性問(wèn)題,網(wǎng)站的架構擴展問(wèn)題,網(wǎng)站服務(wù)端軟件全面正版化的成本問(wèn)題等等。如果當時(shí)不下定決心去.net化,那么將來(lái)再想做這個(gè)事情,代價(jià)只會(huì )越來(lái)越高。

當時(shí),我最初的想法是:招聘2名水平尚可,沒(méi)有太大上進(jìn)心,可以安于現狀,踏踏實(shí)實(shí)工作的.net程序員來(lái)維護老的.net核心系統;同時(shí)招聘和搭建ruby研發(fā)團隊,以我過(guò)去用ruby開(kāi)發(fā)網(wǎng)站的驚人開(kāi)發(fā)效率,爭取時(shí)間,逐一重寫(xiě)老的.net核心系統。但是這樣做,風(fēng)險也很大:

  1. 我來(lái)CSDN的時(shí)間不是很長(cháng),當時(shí)CSDN線(xiàn)上產(chǎn)品又多又雜,足有上百個(gè)之多,很多系統我都不清楚干什么的;
  2. 公司領(lǐng)導也不太支持我這么快動(dòng)手,甚至很擔心我大刀闊斧的改造網(wǎng)站,會(huì )把當時(shí)已經(jīng)很脆弱的網(wǎng)站徹底搞休克;
  3. 我來(lái)北京以后,只帶過(guò)來(lái)1個(gè)Ruby程序員,而搭建Ruby團隊,磨合團隊,開(kāi)發(fā)核心系統,都不是一朝一夕的事情,想快也很難快起來(lái);

幸運的是,我招聘過(guò)程中,面試到了兩個(gè)相當不錯的.net工程師,有很強的上進(jìn)心,編程功底和悟性都很好。雖然不符合我當時(shí)想找安于現狀的工程師的標準,但我又不太想錯過(guò)好的人才,所以我臨時(shí)改變了自己的想法,將他們招過(guò)來(lái),組建了新的.net團隊。

為了避免出現之前.net團隊流失的問(wèn)題,給新的.net團隊創(chuàng )造在公司發(fā)展的機會(huì )和空間,我想來(lái)想去,決定采取一個(gè)折衷的方案:即保留和沿用.net編程語(yǔ)言和框架,但是網(wǎng)站整體架構仍然去Windows化,概要說(shuō)來(lái):

  1. 數據層放棄SQL Server數據庫和存儲過(guò)程,全部遷移到Linux平臺上的MySQL數據庫上;
  2. 緩存不再依賴(lài).net自身提供的緩存機制,遷移到部署在Linux平臺上的分布式的Redis上;
  3. 服務(wù)之間的調用,避免使用.net自身專(zhuān)有協(xié)議,改成Restful的HTTP Web API調用;
  4. 靜態(tài)資源請求,不再讓IIS自己處理,分離到Linux平臺上的nginx去處理;
  5. 需要讀取的文件系統,也改成訪(fǎng)問(wèn)Linux平臺上的分布式文件系統;
  6. 部署.net代碼的Windows服務(wù)器放在LVS后面,用LVS做負載均衡和故障切換;

簡(jiǎn)單說(shuō)來(lái),就是單純讓.net做應用層的編程語(yǔ)言和框架,其他都交給Linux平臺的開(kāi)源解決方案。而.net框架單純做應用層,無(wú)論ASP.net MVC的開(kāi)發(fā)效率,還是.net CLR虛擬機的運行效率都非常好,目前我們單臺Windows服務(wù)器上跑幾百萬(wàn)的動(dòng)態(tài)請求毫無(wú)壓力,而且應用層架構是可以橫向擴展的:如果請求負載非常高,只需要添加更多Windows服務(wù)器即可??傊?,做到了揚長(cháng)避短。

此外,我也比較注重不同編程語(yǔ)言研發(fā)團隊之間的交流,鼓勵.net工程師熟悉Linux操作系統,培養.net工程師整體架構意識。我們現在的主力.net骨干和我說(shuō),感覺(jué)來(lái)到這里以后技術(shù)上最大的提升就是視野一下被打開(kāi)了。

在后來(lái)兩年的整個(gè)網(wǎng)站改造過(guò)程中,也證明了這樣的做法是相當成功的:

  1. .net團隊穩定的延續了下來(lái),而且成為整個(gè)研發(fā)部門(mén)表現一直非常突出的團隊;
  2. 整個(gè)系統改造的過(guò)程非常穩健和平滑,沒(méi)有碰到過(guò)什么風(fēng)險;
  3. 對網(wǎng)站用戶(hù)的沖擊很小,基本上都是在潛移默化當中,不知不覺(jué)的完成了整個(gè)網(wǎng)站產(chǎn)品的翻新;
  4. 對公司線(xiàn)上業(yè)務(wù)也沒(méi)有造成任何影響,而且隨著(zhù)系統不斷改造,對業(yè)務(wù)的支持越來(lái)越好;

當網(wǎng)站架構全面Linux化,并且架構解決方案全部統一以后,其實(shí)在應用層用什么編程語(yǔ)言來(lái)寫(xiě),就不是一件重要的事情了,我們目前應用層現有產(chǎn)品線(xiàn),既有.net,也有PHP和Ruby寫(xiě)的,但是架構都是統一的,用什么編程語(yǔ)言,主要取決于研發(fā)團隊資源的調配情況而定。

總之,以我的經(jīng)驗來(lái)說(shuō),一個(gè)傳統上嚴重依賴(lài)微軟解決方案架構的網(wǎng)站,如果要進(jìn)行架構改造,遷移到Linux平臺,甚至用其他編程語(yǔ)言重寫(xiě),從來(lái)都不是一個(gè)單純的技術(shù)問(wèn)題,它至少涉及如下幾個(gè)層面的問(wèn)題:

  1. 如何保障舊系統的研發(fā)團隊的利益問(wèn)題,如何做到激勵老團隊參與架構改造,分享成功。這是最重要的,往往也是架構遷移最容易出現的致命問(wèn)題,如果架構改造注定要犧牲老團隊,完全不考慮和保障他們的利益,我認為一定會(huì )產(chǎn)生殘酷的政治斗爭,最終必然失??;
  2. 現有業(yè)務(wù)系統如何保持正常運轉和平滑過(guò)渡的問(wèn)題,如果架構改造影響到了業(yè)務(wù),那一定會(huì )夭折;
  3. 如何保證網(wǎng)站用戶(hù)體驗的平滑過(guò)渡和改善的問(wèn)題,如果架構改造影響了用戶(hù)基本使用體驗,那也一定會(huì )被叫停;
  4. 領(lǐng)導對架構改造當中出現風(fēng)險的容忍度問(wèn)題,以及領(lǐng)導對架構改造周期拉長(cháng)以后的耐心問(wèn)題;

一點(diǎn)題外話(huà)

我感覺(jué)我們互聯(lián)網(wǎng)行業(yè)有一個(gè)不太好的現象:有些網(wǎng)站在促銷(xiāo)期間癱瘓了,有些網(wǎng)站經(jīng)常出現訪(fǎng)問(wèn)不穩定的現象,公司老板就喜歡跑到微博上來(lái)放狠話(huà),請下屬喝茶,或者急就章的嚷嚷百萬(wàn)年薪招CTO,這些都是很幼稚的做法。這就好比一個(gè)人,平常生活習慣差,花天酒地,從不注意養生,結果長(cháng)年累月下來(lái),終于病倒了。在這個(gè)時(shí)候狠狠的揮舞支票嚷嚷,哪個(gè)名醫能給我藥到病除,我給誰(shuí)百萬(wàn)報酬。

所以,當一個(gè)網(wǎng)站出現嚴重的技術(shù)問(wèn)題,其根源往往都不是單純的技術(shù)問(wèn)題,也不是單純換個(gè)CTO就可以藥到病除的,要反思公司企業(yè)文化是不是從來(lái)沒(méi)有重視過(guò)研發(fā),對技術(shù)團隊的激勵到位了嗎?對架構師的意見(jiàn)重視過(guò)嗎?對未來(lái)可能面臨的技術(shù)門(mén)檻是否有過(guò)長(cháng)期的研發(fā)投入?

關(guān)于這個(gè)現象,我記得Fenng說(shuō)過(guò)一句很精辟的話(huà):“技術(shù)問(wèn)題,總是在短期被高估,在長(cháng)期被低估”,我也想補充一句:“技術(shù)出現了問(wèn)題,從來(lái)都不單純是技術(shù)導致的問(wèn)題”。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
對.NET系統架構改造的一點(diǎn)經(jīng)驗和教訓
[06-04] 網(wǎng)站編程語(yǔ)言之我見(jiàn)_資源共享_【網(wǎng)絡(luò )資訊】_廈門(mén)小魚(yú)社區_廈門(mén)小魚(yú)網(wǎng)
學(xué)什么編程語(yǔ)言比較好?
網(wǎng)站制作怎樣選擇服務(wù)器與建站程序
技術(shù)棧的選擇:從Groupon轉向Node.js、淘寶去IOE談起
該不該選擇 .NET,這個(gè)問(wèn)題值得深思
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久