專欄介紹面試
「對話 CTO」是極客公園的一檔最新專欄,以技術人的視角聊聊研發管理者的發展和成長。數據庫
本專欄由ONES 的創始人&CEO 王穎奇做爲特邀訪談者。王穎奇曾參與金山軟件 WPS、金山毒霸等大型軟件的核心開發工做;2011 年創立了正點科技,旗下產品正點鬧鐘、正點日曆在全球用戶過億;2014 年,王穎奇在知名美圓基金晨興資本任 EIR,並以我的身份參與十餘家公司的管理諮詢工做;2015 年,王穎奇創立 ONES,致力於提供企業級研發管理解決方案。編程
摘要網絡
有像甲骨文這樣的統治級巨頭在,數據庫市場仍是個好的創業領域嗎?在 PingCAP 聯合創始人&CTO 黃東旭眼中,答案是確定的,數據庫行業的轉折點已經到了。分佈式
黃東旭曾在豌豆莢從事 infrastructure 相關工做,在分佈式存儲領域有着多年的積累和實戰經驗。在他看來,伴隨着分佈式數據庫理念和技術的成熟,對傳統數據庫理念和技術的依賴正在走向瓦解。工具
開源理念的普及也在加速數據庫行業走向下一個階段,「像數據庫、操做系統、雲技術,或者雲內部的基礎軟件,將來只有開源一條路,若是不開源,或者說內核不開源的話,產品的生命力是不好的。」學習
一切正在 PingCAP 中順利落地。做爲開源新型分佈式數據庫公司,PingCAP 研發了分佈式關係型數據庫 TiDB 項目,具有「分佈式強一致性事務、在線彈性水平擴展、故障自恢復的高可用、跨數據中心多活」等核心特性。目前公司準生產測試用戶 1400 餘家,涉及互聯網、遊戲、銀行、保險、證券、航空、製造業、電信、新零售、政府等多個行業。測試
本期對話 CTO,咱們請到了 PingCAP CTO 黃東旭來談一談他對於數據庫行業的技術和行業演進的理解,以及商業公司究竟須要什麼樣的數據庫。操作系統
分佈式數據庫、開源數據庫的藍海機遇在哪?翻譯
穎奇:PingCAP作的事情,我認爲在中國工業領域上具備很大意義。由於幾乎沒有其餘公司作過,大家是怎麼想到作這件事的?
黃東旭:中國過去也不是沒有作數據庫的公司,咱們和他們不太同樣在於,一是咱們是相似於互聯網公司,或者說創業公司的路徑,是走融資發展的;二是技術上,咱們公司是基於分佈式數據庫的理論成立的。
過去三四十年,數據庫市場都是依賴像 Oracle、IBM 所創建的理論基礎運行。但在 21 世紀,Google 提出分佈式系統技術後,隨着硬件條件的成熟,像 SSD、萬兆的網卡,帶來的改變就是處理的數據量在持續地變大。數據庫市場到了須要去作修訂或者說要有個轉折的地方了。數據庫行業最根基的東西在發生變化,而這一塊還沒人作,因此說必定要找到正確的切入點。
穎奇:大家找到的切入點是什麼?
黃東旭:就是分佈式理論怎麼跟傳統關係數據庫理論融合的點。
最近這些硬件的革新,使得原來不少的假設都不成立了。好比過去你們可能以爲數據庫的瓶頸是磁盤,想怎麼設計一個更好的 B-Tree 可以讓磁盤磁頭轉得少一點。但如今全是 SSD,甚至將來可能持久化內存的東西都出現了。過去分佈式系統的網絡這麼慢,帶寬這麼小,因此儘量都是在單機或者本地上去作。但如今基本上單機訪問遠程數據庫和訪問本地數據庫在吞吐量上表現差很少了。
還有就是選擇「開源」。中國傳統軟件數據庫的技術軟件商業模式,跟傳統的軟件很像,就是作一個產品,招一堆銷售挨家敲門。咱們以爲這樣效率過低。就如今而言,基礎軟件好很差關鍵是在於怎麼在最短的時間找到最多人來去用這個產品,可以讓它變得更好,變成一個正向循環。但傳統軟件招銷售並非一個特別好的選擇,由於擴張速度取決於銷售敲門的速度。
穎奇:靠銷售確定來不及。
黃東旭:因此咱們喜歡「開源」。「開源」至關於用一些 to C 的方法論,在工程師的社區裏經過病毒式傳播讓產品 adoption,別人用得不爽必定會 feedback 提 issue。用的人越多,它的質量就越好,質量越好,會變成一傳十,十傳百的這種效應,讓產品正向循環下去。
對於基礎軟件,個人觀點是像數據庫、操做系統、雲技術,或者雲內部的基礎軟件,將來只有開源一條路,若是不開源,或者說內核不開源的話,產品的生命力是不好的。不像其餘的商業軟件,基礎軟件就像在水管、水電煤這樣的基礎設施的層面上,你不開源的話別人也不敢用。
穎奇:咱們看到在中國實際上有兩件事情以前沒怎麼作好。第一是特別基礎的軟件,第二是作一個特別好的開源公司,大家算是把兩種結合起來的「鼻祖」。請問大傢俱體是怎麼作的呢?
黃東旭:我以爲有一點是由於 PingCAP 或者 TiDB 選的這個坑特別好。過去你們都知道 MySQL 數量大了之後只能 sharding,如今 TiDB 就是解決這個坑。你們都很是清楚這是個痛點,你不用去跟別人解釋這就是一個很是厲害的內核代碼。有需求有痛點,而後問題足夠清晰,也足夠大。
穎奇:那你以爲開源這個事情會把PingCAP帶到一個什麼樣的位置上?
黃東旭:從數據庫的角度上來看,你們會發現,最先的關係數據庫 SQL、TSQL,在互聯網或者移動互聯網開始爆發的時候,數量開始膨脹,單機系統怎麼樣都搞不定的時候,互聯網公司沒有辦法,只能去作了一套 NoSQL,但 NoSQL 又有點過了,就把原來的傳統管理模型全都扔掉,但至少能把數據存下來。因此我以爲歷史是螺旋式發展。
其實這兩年已經開始有這個趨勢,就是新一代的數據庫又開始迴歸 SQL 模型,可能將來持續十年會有一個關係型數據庫的復興吧。過去是由於分佈式理論,以及硬件環境沒有辦法去跟這個模型很好地結合在一塊兒。但至少以咱們的經驗來講,如今分佈式基本上能知足不少需求。
穎奇:因此傳統數據庫公司是在單機上解決這種數據的問題?
黃東旭:對,我以爲將來數據必定是更大的狀態,單機確定是有問題的。硬件成本持續在降低,必定會到達一個臨界點,就是數據自己的價值都比硬件成本要高,這樣一來,我確定是保護數據,怎麼樣把個人數據能無限存下來,而且能快速經過好用的接口來訪問它。我以爲這個市場會很大,因此我歷來都不跟別人說這個事情的天花板在哪裏,由於我本身也不知道。
穎奇:早期仍是在數據價值比較大的行業裏來應用會更好一些?
黃東旭:咱們早期策略上分兩塊,一塊就是互聯網公司,workload 數量很大,而後有很強的研發團隊,開源社區的主力就是這幫人,隨便用,並且我會很鼓勵大家投人投精力去用它。
還有一部分是一些高淨值客戶,好比銀行,業務已經倒逼他們要去用一些互聯網的技術去解決問題。好比說即便 Oracle 用得很差,遷到 TiDB 上其實也是很平滑的過程,同時能夠保證多數據中心高可用、強一致等這些特性,用起來很省心。
我以爲咱們就是拿互聯網最早進的技術給到傳統公司,給他們賦能,並且讓對方的遷移成本降得很低。
「商業公司」如何管理「開源社區」
穎奇:能夠跟你們講一下PingCAP對人才的要求和大家的管理方法嗎?
黃東旭:我一直信奉一句話,「Hire for attitude, train for skill」。
首先你要打心底裏承認這個事情,是一切日後談的基礎。這對咱們來講不難,不少工程師他們仍是有共同理想的。
第二點就是研發人才的 skill set,我可能會更傾向因而在互聯網,或者說在作這種大規模分佈式系統。互聯網人有個優點在於他們對新技術的接受度特別高,思想特別開放,沒有一些條條框框的東西。
第三點就是特別喜歡年輕人,咱們會刻意地讓團隊裏面有一些很是新鮮的血液。
第四點的話咱們並不強求,就是人的責任心和主人公意識,這其實跟咱們的晉升體系有關。咱們的晉升體系跟 Facebook 很像,團隊在實際工做的時候,讓員工的特色會慢慢浮現出來。好比說小明,每件事情交給他都特別靠譜。你們都公認以爲他是個靠譜的人,慢慢造成這樣的效果。
對於小公司來講,沒辦法把每一個人天天的工做,每一個任務都親自去幫你規劃好。因此咱們的管理風格還算是比較粗放吧。
穎奇:大家公司如今是有一些外籍工程師?
黃東旭:對,咱們也有一些外籍人士,大概七八我的吧。咱們比較國際化。由於咱們這個項目是開源的,用戶用出問題了通常會去上面提一個 issue,不少國內用戶直接用中文寫 issue 上去,咱們還有一個團隊專門把中文 issue 翻譯成英文,由於這個東西要同步嘛,在別人遇到一樣問題去搜索的時候也能看到。
穎奇:大家的TiDB或者TiKV裏,我看到有幾百個contributors,那裏面有多少是外籍的?
黃東旭:一半。包括咱們的文檔都是中英文一對一的比例。
我以爲在哪作這個事情,這個問題已經不重要了。包括如今咱們不少人才,在加入以前就已是項目的粉絲,有些人甚至都不用面試,都不用看 GitHub,由於這我的每天就在 commit code。
咱們在國內的招聘方式也是挺特殊的,咱們不太關心你到底在哪一個城市工做。咱們重度依賴像 Google Docs、Slack、GitHub、Jira、Confluence 這種生產力工具,基本上可以擺脫面對面的會議,這個是很重要的。咱們不鼓勵開長會,若是要開會,就開半個小時、15 分鐘的短會。
遠程有個好處就是它會迫使工程師把全部想作的東西進行文檔化,任何東西均可以被檢索。我以爲這樣更符合現代化的管理模式,有充足的時間,更加靈活地安排本身的生活,是一個更好的工做方式。
穎奇:開源社區可能有一套管理模式,商業公司也有本身的管理模式,如今大家在這兩邊的管理模式是同樣的仍是說會有一些區別?
黃東旭:咱們是同樣的。你能夠認爲咱們本身的員工跟社區小夥伴的區別,就 TiDB 內核部分的開源來講,惟一區別就是咱們給他們工資。
穎奇:你以爲將來中國會有不少這樣的工做出現嗎?
黃東旭:我以爲在技術軟件行業會愈來愈多。
穎奇:早期美國的不少開源軟件沒有太多資本介入,因此發展週期會很長。你以爲資本介入會使得開源軟件發展週期變短嗎?
黃東旭:沒有資本介入,或者說沒有商業公司在後面支持的話,開源軟件都不會有太強的生命力。開源我認爲是分紅兩個階段,一個是 1.0,一個是 2.0。1.0 是當年像 Glue、 GCC、Linux 內核這些項目;2.0 是就最近的這幾年像 Eclipse、MongoDB、Databricks 這些開源軟件公司,這些模式實際上是更先進的,或者更加符合如今時代的作法。中國其實過去沒有這樣的東西,咱們算是第一波。
穎奇:早期的開源公司商業化訴求沒那麼快,因此貢獻者相對平等,也沒有經濟回報。如今您這邊的項目裏有兩種方式,可能一百個工程師是拿回報的,另一百個多是不拿回報的。那如今一個項目裏混雜了兩種組合方式,大家的解決方案是什麼?
黃東旭:我以爲其實這個問題的本質是:爲何要來(社區)。
兩種狀況,一種就是我實際就在用這個東西,發現這個東西很差,某些地方有 bug 或者說某些地方的功能不是我想要的,我想要去改進它。大多數機構都是出於這種思路來貢獻的。
第二種人就是純粹爲了作出成就感。以爲這事情很不錯,我能參與到這個項目來了,「I want to help」,我想去幫助別人,同時我可以獲得證實,我是這個項目的 heavy contributor、committer,獲得尊敬或者認同感。
對每個 contributor,哪怕提交一行代碼或者修改一個文檔,咱們都會給他一個大禮包,包括貼紙、杯子等等周邊產品。若是貢獻比較多的話,我會親手給你寫一封明信片表達感謝,包括咱們每一年辦的這些大會,只要是 contributor 都是免費的。
穎奇:我以爲這個挺棒的。再問最後一個問題,你能夠推薦幾本書,給已是CTO或準備想當CTO的人學習和借鑑。
黃東旭:我有幾本書是很喜歡的,《Unix 編程藝術》是到目前來講對我影響最大的跟編程和計算機相關的書。更技術一點的是《Unix 環境高級編程 (APUE) 》。不少人想學編程可能看這本書夠了,其餘什麼書都不用買,就這個。還有《大教堂與集市》,這個介紹 open source 的原始出發點。而後我最近在讀《毛選》,還有王小波的小說。
穎奇:《Unix編程藝術》這本我也會推薦給年輕人看。這本書對個人影響很是大,讀完使得我對整個計算機的軟件體系結構有了很是深入的認識。第一次讀是在13年前了,至今對個人工做和創業都有很大的幫助。很是感謝東旭今天的分享。
本文做者:王穎奇,聯繫方式:wangyingqi@gmail.com