携程去哪儿网合并:背后的技术力量回顾
2015年10月26日,攜程宣布與百度達成股權置換交易,通過股權交換的方式來完成去哪兒網與攜程的合并。交易完成后,百度將擁有攜程普通股可代表約25%的攜程總投票權,攜程將擁有約45%的去哪兒總投票權。
\\攜程和去哪兒網都是中國領先的在線旅游平臺,合并后合計市值約達156億美元。攜程創立于1999年,總部在上海,2003年在納斯達克上市。相對于攜程,去哪兒網則比較年輕,創立于2005年,總部在北京,2013年在納斯達克上市。去哪兒網是國內的Java使用大戶,目前線上有上千個Java系統,而攜程則使用的是.NET。對于攜程為什么選擇.NET,網上有很多的討論,比較合理的解釋是攜程創立之初選擇使用了ASP,而后隨著技術的發展從ASP升級到了ASP.NET。更新:經和攜程的同學確認,得知攜程目前主要的基礎系統都已經使用Java,業務系統中是Java和.NET并存。
\\在過去的幾年中,InfoQ中國曾對去哪兒網、攜程旅行網進行過詳細的跟蹤報道。現從架構、開發語言、搜索引擎、云平臺、無線等多個維度盤點二者的技術發展歷程。
\\搜索
\\去哪兒網成立之初是一家純旅游搜索公司,它將各大小OTA銷售的機票、酒店信息匯集到網站上直接銷售,可想而知搜索對它的重要性。而攜程作為一家專業而全面的OTA(在線旅游)網站,擁有非常多的產品,如何幫助用戶快速定位產品是他們的重中之重,搜索引擎又扮演了一個非常重要的角色。像去哪兒網和攜程這類的旅游行業的垂直搜索,挑戰非常多,比如產品種類繁多,如何幫用戶挑選出最具性價比的產品,產品價格和日期、地點強相關,數據量更新大等。在2014年10月的QCon上海軟件開發大會上,攜程搜索產品研發部總監分享了介紹了攜程的搜索系統架構:
\\ \搜索系統的架構大概分為兩個部分,分別是在線檢索系統和離線的索引系統。在線檢索系統主要負責處理用戶的輸入,并返回查詢結果,這其中有兩個比較重要的模塊,一個是Demand Service,負責用戶查詢前的引導,一個是QRW Service,負責分詞、糾錯、語義解析和查詢重寫。離線的索引系統主要負責把數據以索引的形式組織起來,這其中又分為兩塊,一個是全量索引系統,定時執行,主要作用是建立所有產品的索引,并對數據進行優化和壓縮。一個是實時索引系統,它負責把最新的產品數據快速推送給用戶。
\ \\在2012年的QCon北京的演講中,去哪兒網的朱翔分享了去哪兒搜索引擎QSearch設計與實現。由于時間比較早,所以并不確認目前去哪兒網是否還在使用QSearch。根據演講介紹,QSearch其實是基于Lucene和Solr,它有豐富的存儲類型,可以定制規則排序算法。框架整體上分為兩部分,一個是Searcher,一個是Indexer,分別負責搜索和索引。考慮到數據量比較大,會將Indexer分片,每個Searcher負責一個Shard。同樣為了保證高可用,系統又有多個索引的拷貝。在Indexer的上層又有Dispatcher來負責結果的合并和請求分發。
\\私有云
\\隨著業務的不斷擴展,各大公司都已經開始著手構建自己的私有云平臺。在2014年,攜程的吳毅挺分享了題為《基于OpenStack打造攜程私有云》的演講。攜程目前在南通和上海的數據中心都已經大規模部署了自己的私有云平臺,平臺完全基于開源的OpenStack平臺構建。從計算的角度來看,攜程是將不同的虛擬化技術混合在一起,包括KVM、VMware、Docker。網絡這塊,使用的是OpenVSwitch和VLan,VMware使用的是Nova-VMware-Driver。具體讀者可以瀏覽演講視頻。
\\對于去哪兒網的私有云平臺,目前未找到相關的技術資料。不過,據ZDNet的報道,去哪兒網從2012年就開始使用了OpenStack,可以說是中國第一批用戶。所以從這個信息推斷,去哪兒網目前的私有云平臺也是基于OpenStack。
\\開發語言
\\去哪兒網是國內的一個Java使用大戶,目前有上千個系統在線上運行,公司內有大批國內優秀的Java工程師。在過去的幾年里,他們創造了大批的工具和系統來解決開發過程中遇到的問題,內部有非常完善的Java開發生態。根據高級系統架構師孫立在2014年的介紹,去哪兒網基于Java的生態平臺有自動化發布系統、可靠消息系統QMQ、與測試相關的Mock平臺、自動化測試Qunit、代碼Review系統、任務調度系統以及監控報警平臺。
\\攜程主要使用的語言是.NET和Java,.NET相關的實踐并沒有做過太多分享,Java方面,攜程有使用Spark、Hadoop、Hive等開源軟件,并且目前大部分的新系統都已經使用Java開發。在今年Java 20歲生日InfoQ發布的迷你書中,CTO葉亞明這樣評價Java:
\\ \盡管當下仍不斷有新語言出現,但毫無疑問,未來二十年,Java仍將會是最受歡迎的編程語言。如大家所知,Java不僅僅只是一種主流編程語言,它同時也代表著一整個活躍的生態系統。Java開發者們將自己的聰明才智投入到這個平臺上,而平臺則回報給他們工作崗位與相應薪酬。要打理好現有的Java解決方案,我們需要Java。而為了順利推動未來的業務發展,我們必將打造出更多Java應用程序。
\ \\無線
\\去哪兒網從2010年開始投入無線領域,隨著HTML5標準的成熟,他們開始探索使用HTML方案在性能及體驗間尋求平衡的解決方案。無線技術高級總監蔡歡分享了去哪兒的SPA HTML應用架構。他提到NativeApp有很多用戶體驗方面的優勢,但也有很多的局限,比如分平臺開發維護成本高,部署成本高。目前WebApp的解決方案有傳統的page2page、pjax(pushState Ajax)、SPA(SinglePageApplication)。相比其它兩種方案,SPA的優勢是前后端分離,靈活度高,貼近于Native應用的交互體驗。去哪兒網的SPA設計思路主要包括模塊化開發、視圖切換、URL路由、模板前端渲染、響應式、瀏覽器及App內做功能擴充和體驗差異、開發環境及構建?具。
\\截止到2014年年底,攜程50%的交易量都已經來自于手機端,為了迎接移動方面的挑戰,攜程在2014年做了非常多的努力,其中包括組織架構調整,拆散無線團隊,分到各個業務團隊中。關于當時面臨的調整,葉亞明這樣描述:無線是單獨的事業部,所有無線需要開發的功能到那兒排隊,這就導致無線的開發永遠滯后于Web。對于解決方案,他做了幾個總結,一是調整組織架構,讓每個業務開發管好他自己的無線產品。二是推動工程師文化,提高大家的學習能力和業務能力。
\\同樣,攜程在無線端也嘗試了HTML的解決方案。在2014年的QCon上海中,攜程高級架構師劉普功分享了攜程Mobile架構演化的演講的演講,介紹了Mobile 2.0下客戶端H5/Hybrid/Native和服務端(H5 Service \u0026amp; Moblie Service)的架構調整和技術變遷。
\\另外,還有部分角度由于資料不全,所以無法做歸類,現將相關的內容列舉如下:
\\總結
以上是生活随笔為你收集整理的携程去哪儿网合并:背后的技术力量回顾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android自定义TextView排版
- 下一篇: xxl-job集成