1. 程式人生 > >【SDCC講師專訪】搜狗劉建:架構師=學習能力+好奇心+持續實踐

【SDCC講師專訪】搜狗劉建:架構師=學習能力+好奇心+持續實踐

CSDN年度技術盛宴 “SDCC 2015中國軟體開發者嘉年華”將於2015年11月19-21日在北京召開。CSDN軟體研發頻道將採訪一些與會講師,談談他們將在會上分享的內容。

本期我們採訪的講師是來自搜狗架構師劉建——負責商業平臺基礎架構,對分散式計算、服務化、流式計算、資料庫架構、高可用高可靠等方面都有較深刻的理解和實踐經驗。

劉建,北京航空航天大學計算機專業博士,此前供職於IBM中國研究院,主要方向是分散式計算、面向服務體系結構等,有多年大規模複雜系統架構實踐經驗。目前關注大資料基礎平臺,效率提升工具等。 

 

CSDN:請簡單介紹下您和目前的工作,以及關注的領域。

劉建:大家好,我博士畢業於北京京航空航天大學計算機學院,目前擔任搜狗架構師,主要負責搜狗商業平臺的基礎研發和平臺架構方向,涉及資料儲存、分散式計算、服務化、安全等以及廣告計費、報文等核心業務服務。目前主要關注大資料基礎平臺、流式計算、效率提升工具。之前在IBM研究院從事SaaS平臺中身份聯邦的研發工作。

CSDN:您是如何成長為一名架構師的?以及對架構是怎樣的理解?

劉建:我覺得要成為架構師,主要是學習能力+好奇心+實踐經驗。

我在研究生和在IBM研究院工作階段主要方向是面向服務計算,當時對架構比較有興趣,閱讀過大量與架構相關的書籍:比如Software Architecture Bootcamp、重構、設計模式等,也搗騰過SEDA並且有過實踐,得到的各方面的指導也偏巨集觀,因此會不自覺的從巨集觀和整體性的方向去思考問題,把握系統,會主動思考系統的瓶頸以及目前所負責部分的不足以及優化的方向。

初來搜狗時負責網盟廣告平臺研發,後來調整為負責商業平臺基礎研發和平臺架構。有幸經歷了搜狗廣告業務的快速發展,廣告物料數從千萬級到十億級的爆炸式增長階段。在此期間,先後主導和參與了統一使用者中心、統一許可權中心、資料庫分庫分表框架、SOA框架、資料平臺等的設計和研發工作,並完成了Hadoop、Storm、Spark、Kafka、Thrift等開源軟體的升級和引入,積累了較多的架構實踐經驗,從而成長為架構師。

個人認為架構主要涉及到兩個層次:

分別為基礎架構和業務架構。

我個人更多的側重於基礎架構。我認為一個好的架構需要能夠儘可能的具備通用性,滿足高效能、高可用、高可擴充套件性等特點,另外能夠快速定位故障點,具備較快的故障恢復能力,更好的運維及監控能力等,在其進化升級過程中儘可能的保證相容性,能夠平滑進行遷移和切換。

CSDN:能否全面介紹下搜狗商業平臺的基礎架構?有著怎樣的特點和難點?

劉建:搜狗商業平臺涉及搜尋推廣、網盟推廣、品牌推廣商業廣告投放平臺架構設計和研發,提供十億級以上線上廣告管理及相關支援。基礎架構需要解決分散式,高併發,大資料量,強一致性等帶來的各種技術難題及挑戰,構建和持續優化基礎服務,保證高可靠、高效能、高可擴充套件性、低成本的快速支撐各項新業務。我們將基礎架構分為三個層次:

  • 基礎平臺:主要是我們使用的基礎框架,包括SOA框架、資料庫分庫分表框架、資料儲存、資料快取、離線/線上資料處理、分散式一致性協調等方面的框架等。部分框架是基於開源技術構建,所利用的開源軟體主要包括:Spring、Redis、Mysql、MongoDB、Hadoop、Kafka、Storm、Zookeeper等。
  • 基礎服務:主要提供業務無關的通用基礎服務,包括唯一序列號服務、資料傳輸/同步服務、認證、授權、配置、分散式任務排程、訊息、圖片、簡訊和郵件等。
  • 核心服務:主要是同業務相關的服務,比如計費服務、稽核服務等。

商業平臺的基礎架構同主流的網際網路軟體基礎架構基本保持一致,必須具備分散式、高併發、高可用、可擴充套件性等方面特徵。同時,由於商業平臺直接涉及到商業客戶的廣告投放,所有的故障都可能導致潛在的收入損失,因此對高可用的要求非常高。我們在設計基礎架構元件的時候,會詳細的評估潛在的故障點以及各類故障對收入的影響,同時也會盡可能的提升其可追蹤性,保證在極限場景下能夠快速定位問題。另外,廣告的實時性非常重要,例如,廣告上下線的實時性會顯著影響客戶的消耗,同時也會導致無效的投放,影響收入。我們也一直提高實時性,減少無效投放,保證客戶體驗。

CSDN:您認為工程師如何成為架構師?

劉建:我覺得從工程師到架構師是一個“由點到面”,“從區域性到整體”的過程,工程師關注的是高效的實現功能,關注專案區域性;而架構師在考慮區域性的基礎上,更多的考慮整體,包括技術實現的風險及規避手段,可測試性、可運維性及可監控性等,需要卓越的技術能力、良好的大局觀、更多的實踐經驗,能夠有效的轉換視角,從巨集觀和微觀兩個層次考慮問題。可以從以下幾點做起:

  • 從手頭專案的架構優化做起,提升個人技術能力;
  • 持續學習和交流新的技術、新的思想、新的架構;
  • 保持對主流技術的關注度,持續思考其對手頭專案的適配度,合適的時候將其應用於實踐;

CSDN:技術人員如何合理做好時間管理?您有哪些建議?

劉建:對於技術人員來說,大部分時間都在處理需求、設計及研發、線上問題,並且基本都有提升個人技術能力的訴求。一般情況下,各種中斷性事務會導致時間浪費比較嚴重,特別是在設計思路被打斷時,工作效率會變低。因此,可在集中的時間段內處理中斷性事務,例如,在固定的時間處理郵件,在早上就確認同工作相關的產品需求。其次,保證從事技術性工作的時間基本是一個整體,這樣思路能夠保持連貫,工作會更有效。另外,可以合理使用TODOList,確保當天的事情當天基本能夠完成。最後,對於各類會議討論,可根據同自己工作的相關性來選擇參加。

CSDN:這些年來新語言(舊語言新用)或新技術層出不窮,你看好哪些新語言(技術)?為什麼?開發者應如何應對這種新技術浪潮?以及您有什麼高效的學習方法分享?

劉建:這裡主要談談我們部門的情況。在語言層面,我們部門目前使用的主流語言是Java、C++、Python以及指令碼語言。就技術而言,結合部門情況及網際網路趨勢,我們對高效的利用大資料和流式處理比較關心。我們目前比較關注的方向在Scala語言和Spark框架等。關注Scala其主要原因是我們有比較多的Java資產沉澱,可以同Scala更有效的結合,而且Scala的生產效率比較高。關注Spark的原因是由於我們經常會到對商業資料的進行各層次各維度的動態分析,傳統的方式開發效率都比較慢,或者無法處理如此龐大資料量,我們需要一個高效的工具,而Spark恰好具備了這些特徵。

新的技術層出不窮,對於開發者來說需要持續學習。新的技術和語言是為了適應新的需求而出現的,其底層的理論基礎變動並不是特別大,因此技術人員也需要多關注軟體相關的基礎理論,比如資料庫、作業系統、資料結構和演算法等。在學習方法上面,我一般會制定切實合理的學習計劃,帶著需解決的問題去學習,學習和實踐相結合並且多同領域內專家交流。

CSDN:您現在每天還程式設計嗎?是如何安排程式設計、技術學習、管理的時間的?

劉建:我現在主要的技術工作包括架構評審及程式碼審查、基礎架構優化和行業對齊。用於程式設計的時間整體算來應該在20%~30%之間,主要是對基礎架構中的元件進行優化和升級。技術學習一般是利用平時的空閒時間完成。技術管理上的時間大概佔20%左右,管理上的事務一般會在剛上班和下班之前進行處理。

CSDN:您在本次SDCC 2015大會上想分享的話題是?

劉建:本次主要分享搜狗快速迭代業務下基礎架構演化實踐,以搜狗商業平臺近年來的基礎架構演化為背景,介紹其演化過程中的幾個主要階段:

  1. 計算的水平擴充套件階段;
  2. 儲存的水平擴充套件階段;
  3. 服務化階段;
  4. 流式計算階段。

最後,分享相關實踐經驗,以及搜狗在業務快速迭代的過程中逐步優化其基礎架構的原則、經驗教訓和思考。

CSDN:您最期待在SDCC 2015大會上看到哪些內容?

劉建:我希望能夠看到在網際網路高併發大資料量下的實踐經驗總結,特別是碰到的開源軟體的坑、線上問題的處理思路,以及能夠給我帶來思考、讓我對架構等方面能夠產生重新認識的原創性內容。

相關推薦

SDCC講師專訪架構=學習能力+好奇心+持續實踐

CSDN年度技術盛宴 “SDCC 2015中國軟體開發者嘉年華”將於2015年11月19-21日在北京召開。CSDN軟體研發頻道將採訪一些與會講師,談談他們將在會上分享的內容。 本期我們採訪的講師是來自搜狗架構師劉建——負責商業平臺基礎架構,對分散式計算、服務化、流式計算、資料庫架構、高可用高可靠等方面

SDCC講師專訪專訪架構陳波微博近幾年的架構演進之路和架構的技能素養...

編者按:每個人的成長曲線不同,有的人在研究生之時就已有相當知名的產品和框架,從而在接下來的工作中一路順風順水,有的人缺需要經歷一個又一個的坑才能成長,不管是前者的聰明高效,還是後者的笨鳥先飛,他們都是在邁著腳步不斷地向前。不妨,我們停下腳步看下一些同行,以

獨家資源分享如何成為一個優秀的架構

最近好多人後臺給Ja強留言,問該怎樣才能成為一個架構師,還有一些Ja粉對自己當前的狀態感到迷茫。 Ja強了解到Ja粉的需求,所以今天就跟Ja粉們好好嘮一下,以解Ja粉們的小鬱悶~ 有什麼想和Ja強說的,都可以和Ja強留言互動啊! 當前的你感到迷茫? 有很多

ubuntu_problems輸入法打字沒有候選項

碰到好幾次搜狗輸入法打字沒有候選項的情況. 輸入法可以切換出來,也可以輸入字母, 但沒有出現侯選框。解決的辦法是: 刪除[~/.config]資料夾下的三個子資料夾: SogouPY, SogouPY.users, sogou-qimpanel, 然後重啟輸入法 cd ~/

數據結構——索二叉樹的插入,查找和刪除(遞歸&非遞歸)

type 樹操作 iss OS 操作 amp 方法 查找 搜索樹 一、搜索二叉樹的插入,查找,刪除 簡單說說搜索二叉樹概念: 二叉搜索樹又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹 若它的左子樹不為空,則左子樹上所有節點的值都小於根節點的值 若它的右子樹不為

金牌講師特惠思科、華為、抓包課程全場7折,專題折上8折

無線 tro 加強 抓包 基礎入門 strong 生活 2018年 方法 晁海江:思科CCNA、CCNP、CCIE;華為HCNA、HCNP、HCIE;CCNA語音、CCNA無線;Wireshark抓包等。 講師介紹:思科金牌講師,11年思科培訓(CCNA,CCNP,CCIE

TOP100案例專訪噹噹網工程師林嘉琦談雙11大促經驗及APM實踐

導讀:第七屆TOP100全球軟體案例研究峰會將於11月30日-12月3日在北京國家會議中心舉辦,本屆峰會以“釋放AI生產力 讓組織向智慧化演進”為開幕式主題,旨在推動企業在趨勢下擁抱AI、探索和思考AI帶來的力量。十八個主題專場,120個案例為組織形式,意在向參會者解讀2018年軟體研發設計創新案例

蜂窩COO專訪幣圈 、鏈圈及礦圈 ,如何科學地區塊鏈投資呢?

2018年11月13日,幣投財經主編李輝在北京上地嘉華大廈的蜂窩公司辦公室,對COO林念龍進行了專訪。林念龍年輕時尚,思路清晰,觀點切中要害,訪談過程也是一次腦力激盪,期間雙方不時發出會心的大笑。 下面將訪談主要內容摘要如下,希望對關心區塊鏈投資的您有幫助。

推薦系統狐個性化視訊推薦架構設計和實踐

為什麼要做推薦系統?視訊的覆蓋率問題,好的視訊無法難以被人發現,隨著使用者的量的增加,大部分使用

49. 面試題 大數相乘算法

std margin -a pac string out none content ack 分析: 大數能大到整形類型存儲不了。須要借助於其它的算法,來完畢乘法運算。 能夠使用口算乘法的步驟來模擬乘法操作。例如以下:

表格建模系列五、創分區

ant ntp amt intern cost track end pct 2-0 右鍵單擊FactInternetSales > 分區。 創建如下分區: FactInternetSales2010。SQL: SELECT [dbo].[FactInterne

推薦系統篇--推薦系統介紹和基本架構流程

方案 排序 技術分享 企業 生成 線上 系統 src 測試數據 一、前述 推薦系統是企業中常用的技術,所以系統的掌握推薦系統的知識是很有必要的。本專欄主要講述手機APP下載的項目。 常用的推薦方法有兩個,分別是基於物品的推薦和基於用戶的推薦。 基於用戶的推薦原理是:跟你喜好

spring boot jpahql語句報錯 antlr.NoViableAltException: unexpected token: roleName

圖片 set 技術 body except exp 所在 antlr class 使用場景:在spring data jpa下使用@Query("hql語句") 然後在項目啟動的時候報錯 hql語句報錯:antlr.NoViableAltException: unexpec

許曉笛重新理解EOS的系統架構

發揮 影響 組織 認同 帶來 下一步 work 每一個 五子棋 從區塊鏈三要素的角度 區塊鏈系統中,去中心化程度與效率之間天然地存在矛盾關系。如果區塊鏈智能合約系統想追求類似比特幣的去中心化程度,理論上效率就會大打折扣。現實也是這樣的:比特幣每秒鐘只能處理7筆左右的交易,

KMP字符串KMP字符串匹配算法 學習筆記

出現 調用 隨機 rri 形象 再看 aaaaa scan i+1 一、簡介 KMP是由Knuth、Morris和Prat發明的字符串匹配算法,它的時間復雜度是均攤\(O(n+m)\)。其實用Hash也可以做到線性,只不過Hash存在極其微小的難以避免的沖突。於是就

Django Series - 04資料的增刪改使用者提交資料,驗證資料的有效性並傳輸至後臺(jQuery.post)

Django Series(Django2.1.2 + Anaconda3) (一)安裝並配置 Django 環境 ||| 基於 Django 進行 Web 開發 (二)Django 基礎知識:語法、教程 (三)使用者管理模組:建立使用者、登入、退出 (四)資料的增刪改:使用者提交資

[jzoj]2018.07.12NOIP普及組模擬賽D組解題報告

1.權勢二進位制 題目: 一個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。 當給定一個n的時候,計算一下最少要多少個權勢二進位制相加才能得到n。 輸入: k組測試資料。 輸出:

[jzoj]2018.07.15NOIP普及組模擬賽D組解題報告

目錄: 1.馬農 2.馬語翻譯 3.馬球比賽  4.棋盤遊戲 1.馬農 題目描述: 在觀看完戰馬檢閱之後,來自大草原的兩兄弟決心成為超級“馬農”,專門飼養戰馬。 兄弟兩回到草原,將可以養馬的區域,分為 N*N 的單位面積的正方形, 並實地進行考察,歸納出了每

已解決!spark程式報錯java.lang.IndexOutOfBoundsException: toIndex = 9

該篇文章意於記錄報錯,也給遇到相同問題的小夥伴提供排錯思路!但是本人也沒有什麼好的解決方法,如果有,我會更新此文章 問題已經解決,請大家拉到最下面↓↓↓↓↓ 記錄下報錯: 寫了段spark程式碼,然後報錯了 2018-07-30 17:19:28,854 WARN [task-re

Egret優化分享白鷺引擎王澤重度H5遊戲效能優化技巧

本文轉自:https://mp.weixin.qq.com/s/GIzXA51D7_hMqajCRuJE2g 9月15日,無懼17級颱風“山竹”,320名開發者齊聚廣州貝塔空間共同探討“怎樣做一款賺錢的小遊戲”。針對眾多開發者關心的重度H5遊戲效能優化技巧,我們整理了現場速記分享給