對話 CTO〡和 PingCAP CTO 黃東旭聊開源數據庫新藍海

摘要

「對話 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年前了,至今對我的工作和創業都有很大的幫助。非常感謝東旭今天的分享。


本文作者:王穎奇

聯系方式:[email protected]



最新文章

極客公園

用極客視角,追蹤你最不可錯過的科技圈。

極客之選

新鮮、有趣的硬件產品,第一時間為你呈現。

頂樓

關注前沿科技,發表最具科技的商業洞見。

彩票软件破解