天天看點

【足迹】除了打造高可用的應用環境,FreeWheel的運維還幹了什麼?

【51cto.com原創稿件】可能在不少人眼中,freewheel這家公司很多做法都出乎意料:公司的業務、銷售、市場皆在歐美,技術研發團隊卻以中國為主;在女性程式員如大熊貓般稀缺的it職場中,freewheel近300人的北京研發中心裡,女性員工居然占約四成;企業都宣傳自己求賢若渴,可像freewheel這樣為了能留住心儀的工程師居然能特意為他在紐約建立一個辦公室的又有幾個?

如果說freewheel這些外在的“迷之任性”吸引了衆多求職者目光的話,那麼吸引記者的,就是這家公司内在的it架構與運維。這家歐洲、美國、中國三地辦公,其廣告平台為美國90%主流電視媒體和營運商所使用的跨國企業,如何保證協同的高效?freewheel成立十年,從剛成立時全年廣告播放量累計100萬次,到單日廣告投放接近10億,運維部門用什麼來保證産品穩定的應用環境 ?作為對新興技術非常敏感的高科技企業,如何選擇最适合自己的技術産品?

【足迹】除了打造高可用的應用環境,FreeWheel的運維還幹了什麼?

在前後一個月的時間内,記者分别采訪了freewheel聯合創始人美女cto diane yu和運維副總裁梁灏舜(vito leung)。通過二位的分享,解答了上文中一連串的疑問,并還原出一個真實的freewheel。在記者看來,這家公司活力四射,既沒有曆史包袱,也不缺代碼達人,他們對于産品的清晰定位,對新技術理性的判斷與嘗新,對it規劃的預判與從容,都有非常多值得借鑒的地方。記者也希望通過此文,給那些正面臨it運維困惑的跨國企業、高科技公司以及創新企業提供更多參考。

反其道而行之的研發中心

熟悉freewheel的人都知道,這家跨國企業的研發中心從成立之初就設在北京。有些人将其原因歸結于diane是土生土長的北京人,有故鄉情節。事實上,真相并非全部如此。

【足迹】除了打造高可用的應用環境,FreeWheel的運維還幹了什麼?

diane在美國工作九年,接觸了很多中國程式員,她很早就發現,中國的工程師基本功很紮實,工作勤奮能力出衆,但往往吃虧在語言上。另外一個劣勢是中國的it人才分布在不同企業不同部門,沒有成型的團隊,無法做到互相扶持互相幫助,進而難以共同提高。當時她就在思索,為什麼不能招募中國最出色的工程師組成研發團隊呢?後來,她遇到freewheel另外兩位創始人,提出了要在北京建立研發中心的想法,并很快被接受。

freewheel研發中心招募的大多是清華、北大、中科院、哈工大等一流高校的高材生。在團隊組建之初,除了語言上的劣勢比較明顯之外,中外思維方式的不同也着實磨合了一段時間,很多微小的細節diane之前都沒有想到過這也能造成誤會,例如研發團隊發郵件,關于溝通時間的書寫往往按照中文習慣“年-月-日”标注,而美國對于時間的标準習慣是“月-日-年”,是以往往中國這邊郵件發過去,美國的團隊看得雨裡霧裡搞不清楚會議的時間。

但是很快,經過痛苦的“磨合期”之後,中國的研發團隊爆發了驚人的研發實力,一方面團隊非常有想法,研發能力很強,可以快速響應美國産品部門的需求,另外一方面freewheel研發團隊三分之一的人力都有去美國或歐洲“坐班”輪崗的經曆,近距離接觸産品應用、客戶服務,更清楚研發的重點和方向。當然,另外一個無需多言的好處就是快速的提升英語溝通能力。事實證明,她的決策是對的,現如今她的合作夥伴在各種場合都跟客戶或者投資人表示,freewheel之是以能夠走到今天,與diane把研發中心設立在北京這個決策分不開。“曾經也有過非常忐忑的階段,但我很高興事實證明我是對的。”

以最小的代價試錯

freewheel将60餘人的運維團隊分為好幾個小團隊 ,有負責網絡的,有負責基礎運維的,還有專注産品應用運維的等等不一而足。管理運維團隊是vito的重要職責之一。整個運維團隊主要承擔三件事:一是學習和借鑒外部的新興技術;二是與公司的産品研發保持同步,随時支援;三是與不同部門溝通協調,滿足他們的需求。

【足迹】除了打造高可用的應用環境,FreeWheel的運維還幹了什麼?

這三件事說來容易,真正實踐起來并不輕松。就拿第一件事來說,vito需要解決freewheel在it發展過程中遇到的各種挑戰,其中就需要他以最小的試錯代價找到最高效的解決方案。他給記者舉了兩個例子:

資料庫的選型之路

在網際網路廣告行業中,基于使用者的資訊和曆史興趣行為進行精準廣告投放已經成為一個基本需求。為了滿足這一需求,需要建構一套支援高并發、低延遲、可擴充、高可用的使用者資料庫系統,這是很多實時廣告系統面臨的一個非常大的技術挑戰。

freewheel的使用者資料經曆了從最初的上萬條、幾十gb到目前多達6億條、上tb的規模,每天更新的資料就高達1億條,要求達到毫秒(ms)量級的跨資料中心資料存取性能,以保證數字廣告投放的實時性。

vito 告訴51cto記者,基于以上的業務需求,freewheel在使用者資料庫的産品選型、程式設計接口、軟體設計、營運維護等方面做了很多嘗試、探索和改進。

在最初的階段,資料量較小,基于通路性能的考慮,他們首先嘗試了業内非常流行的開源軟體産品memcached,實作全記憶體存取,取得了很好的效果;随着資料量的不斷增加,全記憶體存儲無法滿足需求,接下來研發和運維的同僚開始評估leveldb,并根據freewheel的業務需求做了一些特殊的定制化,進而實作了資料在磁盤的持久化存儲,擺脫了記憶體容量的限制。

但是随後的問題和挑戰也接踵而來,從運維的角度來看,很多問題無法得到很好的解決,例如難以實作高可用、增加節點的成本高、跨資料中心延遲大等等。這個時候,freewheel開始更加積極地尋求、嘗試更多的軟體産品和解決方案,最終選擇了aerospike這樣一款産品。它在api實作、資料存取性能、命名空間定義、低延遲資料同步、ssd硬碟通路優化、高可用實作、運維友好性等方面具有突出的優勢,使得freewheel的廣告投放系統不僅在響應速度上有了巨大的提升,并且跨資料中心同步平均延遲控制在毫秒級(ms)。

<b>産品小貼士:</b>

<b></b>

<b>memcached</b><b>:</b>是一個高性能的分布式記憶體對象緩存系統,用于動态web應用以減輕資料庫負載。

<b>leveldb</b><b>:</b>是一個google實作的非常高效的kv資料庫,能夠支援billion級别的資料量。

<b>aerospike</b><b>:</b>是一個鍵-值存儲的高性能實時nosql(靈活模式)資料庫。

網絡檔案系統的演進

在freewheel,運維團隊使用nfs(network file system 網絡檔案系統)解決方案來實作多個系統、伺服器之間的資料共享。nfs是一種linux/unix作業系統下被廣泛使用的、非常成熟的共享檔案系統,可以在計算機之間通過tcp/ip協定共享資源。在運維團隊的推動下,nfs的應用在freewheel經曆了幾個階段。

在最初的業務階段,他們隻使用了一台nfs伺服器給前/後端産品提供所有的資料共享服務,資料包括廣告創意檔案、使用者資料報告、廣告日志等等。

後來随着freewheel産品的不斷更新和業務模式的擴充,資料量和讀寫的吞吐量也越來越大,單台nfs伺服器就無法滿足需求了,于是新的解決方案是按照業務邏輯拆分現有資料資源,并分散到多台nfs伺服器上,并且從業務邏輯的角度進行資料資源的隔離。同時這也需要推動産品和開發部門的同僚一起調整應用設計來适應這種改進。

在基本解決了容量和性能的問題之後,運維團隊進一步對多台nfs伺服器的高可用和可擴充性進行了改進。經過研究對比之後,最終選擇了redhat cluster suite作為解決方案,實作了從2節點互備到4節點多對多互備,直到目前的7節點多對多互備架構,進而在共享資源的讀寫性能、服務可用級别、系統備援性、橫向擴充能力等多方面對系統提供了強大的支撐能力。

協作痛點:如何讓美國、歐洲、中國三地同步?

【足迹】除了打造高可用的應用環境,FreeWheel的運維還幹了什麼?

在采訪中,vito多次表示,作為一個需要全球多地協同工作的的運維團隊,最讓他頭疼的,并不是産品業務方面的問題,而是讓不同地區的運維團隊如何能有一緻的目标以及優先級。

freewheel在美國、歐洲、中國三地的多處辦公室都有各自不同的主要職能,有的辦事處偏向于與使用者溝通,有的辦事處偏向工程,是以不同辦事處的運維團隊面臨并且需要解決的問題就不同。vito做了更詳細的解釋:如果一個團隊的日常工作有很多和客戶的接觸,并且需要滿足客戶的一些特定的需求,那麼如何更好更快地處理客戶需求會是這個團隊需要重點提高的問題;而如果辦事處平常接觸的主要是工程師團隊,那麼如何更好地服務于工程師團隊也自然成為需要優先考慮的問題。

是以,作為一個整體的全球運維團隊,如何把各個地區的需求放到一起來決定優先級,并且作為一個整體,共享一個backlog(工作清單)就成為freewheel運維工作的一大挑戰。最後解決這一難題的方法就是“global operation project management”流程,簡單來說,各地的運維團隊上司和公司的it架構師,需要定期交流溝通所有項目,并列出優先級,確定大家保持一緻。

在協作方面,随着公司的成長,為了提高客戶服務品質的标準,freewheel的sla(服務等級協定)也越來越嚴格,流程也更加成熟,臨時的需求越來越少。vito表示,取而代之的是sop (标準流程standard operating procedure)、硬體需求申請流程,使得團隊之間的溝通和合作越來越順暢。

2017,擁抱devops

随着業務需求的變化,freewheel從隻有兩個機架伺服器的簡單系統(ui↔adserver↔db),發展到了跨多個機房的上千台伺服器,并且覆寫cache、reporting、forecasting、nosql等多層的複雜系統架構。在過去的幾年裡,freewheel采用的是私有雲的解決方案,而vito告訴記者,他最近開始研究混合雲的方向,同時使用公有雲和私有雲。

vito透露,接下來freewheel的發展重點将放在devops。他認為這個方面在美國和中國的運維有很大的差異。在美國,絕大部分運維工程師既要有運維(系統+網絡)的能力,也要有開發的能力。而在中國,傳統的運維工程師還是更多的隻專注于運維。“随着中國技術行業的進步,運維領域也開始要求運維工程師除了運維的思想,也要有更多的開發思維。”

vito的另外一個思索方向是如何支援越來越快速的版本疊代。顯而易見,這不僅僅是快速的問題,更重要的如何在快速的同時,還能保持生産環境系統的高品質和穩定性。這将牽涉到技術本身以及産品架構完善兩方面的研究和投入。

采訪後記:

采訪完freewheel,記者其實有很多專業之外的感受。這家公司的成功背後,其實有很多必然性:嚴謹的市場調研、理性的技術判斷、精準的市場定位、高效的三地協同、還有對産品應用與開發的足夠重視……他們很多做法看似與正常做法背道而馳,但細細想來卻又在“情理之中”。

在國内企業走出去的大潮流下,記者也建議其他企業可以參考freewheel這種理性思考,不選最知名的,隻選最适合自己的發展之路。

freewheel建立于2007年,總部位于美國矽谷,是一家專門提供網際網路視訊廣告投放、監測、預測、增值等關鍵解決方案的外商獨資公司。創始人是douglas knopper、jon heller和diane yu。

公司發展十年,目前約80%美國傳統電視媒體和營運商的數字視訊廣告業務使用freewheel的服務,comscore排名前10的視訊網站大部分是公司的客戶或合作夥伴。2017年開始,freewheel将重點開拓歐洲市場,在已經占據約50%市場佔有率的基礎上再更新。

作者:周雪

來源:51cto