天天看點

Tim Yang:後端技術這一年

文/楊衛華

2012年後端相關技術發生了一些重要的變化,在本年度接近尾聲之際,我将簡單地對後端的相關技術進行回顧并對其未來的發展發表一些看法。

雲計算的意義與選擇

雲計算降低了創業門檻,提高了生産力。最耳熟能詳的故事就是Instagram利用Amazon雲服務來實作其架構。在2012年8月,其每日活躍使用者已超過老牌網站Twitter。據稱,在這麼大的一個系統中僅有3名工程技術人員(Instagram被Facebook收購時共13名員工)。可見,雲計算平台在這個新興應用的快速成長中發揮了多麼重要的作用。

2012年,國内的新浪、阿裡巴巴等公司的雲計算平台都得到了較快的發展,很多新興應用也開始選擇雲平台,享受到節約初期硬體投入的成本、時間成本與人力成本的好處。而大型應用在雲平台的選擇上則表現謹慎,目前國内可見的遷移到雲平台的 典型案例還不多。考慮到國情的特殊及對國内雲廠商的誠信,大型系統對雲計算平台存在資料安全的顧慮,擔心資料的私密性能否得到保證。另外,在資料可靠性方 面,雖然不同的雲平台對資料的可靠性都有一定的SLA可用性承諾,但目前的雲平台營運時間都較短,資料可靠性需要更長的時間來驗證。

在未來一年,除一些資料安全性不太敏感的應用,如圖檔CDN及部分垂直應用的資料外,開發商仍然面臨兩難的選擇。一方面雲計算的資料安全顧慮不能完全消除,對公有雲的選擇存在顧慮,關鍵核心業務很難遷移到雲平台上。另一方面,如果選擇私有雲,針對大部分應用場景自行搭建一套類似OpenStack的體系,并不能帶來營運人力成本及時間上的收益。

如果把未來技術方向按使用雲和不使用雲進行區分,有以下幾種做法:

  • 使用Amazon Web Services平台;
  • 使用OpenStack或者類似開放公有雲網絡;
  • 使用OpenStack或者類似開放體系搭建私有雲;
  • 僅部分使用雲或不使用雲。

前兩種可能短期内很難有獲得廣泛安全信任的廠商出現,而第三種私有雲對于大部分組織來說發揮的價值有限。雖然所有開發廠商都希望生産效率能得到提高,以便适應業界的使用者需求及行業态勢的瞬息萬變,在業務上赢得先機,但如何利用好雲計算平台是擺在國内雲服務廠商及應用開發商面前的一道難題。

大資料與離線計算市場

過去一年裡,大資料在業界得到了飛速發展,行業也對大資料的方向有了更深刻的認識。在公有領域,大資料集中化的趨勢比較明顯,百度、騰訊、阿裡巴巴、新浪、360等公司掌握了網際網路領域最有價值的資料。在資料利用及挖掘方面,由于商業化的成熟,搜尋引擎走得較早,類似使用者的喜好、年齡、購買習慣、性格等都可以通過搜尋的曆史資料分析得出。但在更多其他領域中,資料的價值才剛剛展現。在2012年,我們看到了淘寶指數這樣的資料産品上線,但相對整個電商或者行 業資料挖掘來說,目前展現及利用的隻是冰山一角,更多有價值的資訊需要進一步建構體系去挖掘與展現。在社交網絡如微網誌中,由于内容完全由使用者創造 (UGC),使用者的互動及參與度更高,相關資料挖掘的空間及價值更大。在微網誌上,目前的資料價值主要服務于個人消息流閱讀,而在未來,經濟、金融、傳播、 社會科學等多個方面的更多資料的潛力有待挖掘。

開放平台與應用市場

在通用應用領域,由于使用者的使用時間集中停留在幾個大的平台上,獨立的應用脫離這些平台很難獲得快速發展,是以未來的所有新興應用,需要考慮好如何利用開放平台的基礎來獲得更快的發展。由于平台應用的托管需求,開放平台、雲計算平台與應用産生了一個穩定的組合。開放平台提供API及服務體系來幫助應用通路資料及擷取使用者,雲計算平台解決應用托管及擴充的問題,應用則可以低成本地轉化創意及獲得收益。目前開放平台廠商從提供IaaS到PaaS不同級别的服務,而應用開發商可利用PaaS平台來協助進行更多精細化的營運。

但開放平台目前還存在若幹不足,從平台開放規則來看,大部分開放平台對于開放規則并沒有明确的約定,是以,應用廠商可能擔心開放平台的開放力度和政策的延續性。另外,從應用角度來看,目前大部分開放平台的應用還是以淺層次應用為主。淺層次的應用通常以擷取平台的流量入口為主要目的,例如微網誌開放平台中,這類應用以内容推廣或向好友發送邀請等方式擷取流量。而在強調個性化及使用者體驗的時代,這種應用思 路通常效果不佳。從開發角度來看,大部分開放平台的文檔、問答、社群、工具等配套設施存在良莠不齊的現象,大部分重量級的應用通常會通過内部的管道獲得技 術支援,但這對于小的開發商并不是一個不利因素。

在技術層面,開放平台一直面臨開放與安全監管問題,未有效管理的開放會造成使用者對開放平台 的不信任,進而也會影響整個生态圈。目前成熟的開放平台大多采用類似Facebook或微網誌這種基于OAuth Open API的方式,而OAuth協定本身也需要跟随業界的發展去改進。随着移動應用的飛速發展,未來移動方向的開放平台目前已經看到不少新的嘗試,或許更多不 同的開放平台模式會在國内産生。

計算機語言

根據業内權威的Tiobe的計算機語言排名, 程式設計語言在過去一年并無大的變化。在服務端領域,依舊是以C/C++、Java、PHP開發語言為主。PHP解決了Web快速開發的需求,C/C++以高性能網絡服務為主,Java則擅長處理規範化的業務邏輯并且也有不錯的執行效率。對于行内的新人來說,選擇任何一門老牌語言都是一個不錯的選擇。

從趨勢來看,幾年前受到小範圍關注的函數式程式設計語言并沒有得到業界的采用,選擇并堅持使用Erlang、Scala等語言的公司并不多。而被Tiobe在 2009年視為黑馬的年度語言Go,也未能得到足夠的發展,目前的排名被擠出50名之外。計算機語言領域缺乏變化,一方面老牌語言形成的工具、架構、體 系、生态是影響計算機語言選擇的主要原因;另一方面,由于雲平台出現,在一定程度簡化了應用開發的複雜度,是以這些語言的開發效率的瓶頸并不嚴重。

資料庫

雖然身處大資料時代,但大部分業務線上實時處理的資料依然存在關系型資料庫如Oracle或MySQL中。與之相關的是,技術人員需要思考未來資料是使用關 系資料庫存儲,還是要遷移到雲存儲的方案上。大部分雲存儲的缺點通常是IOPS(即每秒能處理的事務數)偏低。而使用傳統的解決方案,存儲的伸縮性、管理 成本又是一大問題。

在資料庫領域,一直都是國外系統占據壟斷地位,而我們也看到國内一些大型的廠商(諸如淘寶、騰訊等)在利用自身的技術力 量進行定制的資料庫與存儲方面的基礎平台或元件的研發。雖然存在一些争議,但自定義的元件可以根據業務場景進行特殊的優化,一方面可以提高性能及機關資源使用率,另一方面在極端情況下可以有更穩定的表現。另外,這些元件由于對專業能力要求高,可以吸引更多高端的人才加入,而這些人才未來可以給組織帶來更大的貢獻。

作者楊衛華,新浪微網誌技術總監,負責設計新浪微網誌基礎平台架構,解決新浪微網誌發展中遇到的各種技術瓶頸,并緻力于打造業界一流的開放平台。

繼續閱讀