暢談數據庫,雲原生、分佈式和開源

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"行業底層技術煥發生機總是令人感到驚喜和可貴。數據庫作爲基礎軟件的主要組成部分,在行業內的話題度也在一路走高,如今已是最火的一個板塊。雲原生、分佈式、開源,如今談數據庫離不開這些關聯詞。10 月 14 日,一檔專爲數據庫行業製作的《數據 cool 談》欄目,邀請華東師範大學副校長、資深數據庫學者周傲英、PingCap 聯合創始人兼 CTO 黃東旭、阿里雲數據庫產品事業部負責人李飛飛、InfoQ 主編王一鵬暢談數據庫。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"上層萬物互聯,底層萬機互聯"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲什麼數據庫這麼火?迎着時代的風,2020 年 4 月,數據被正式列爲與土地、勞動力、資本和技術並列的“第五要素”,重要性凸顯。在資深數據庫學者周傲英看來,數據的事情如今是社會層面的事情。在互聯網行業快速發展的大背景下,數據量大爆發,而 IT 行業的發展目的是解決複雜問題,數據管理方式的改變自然而然。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一個明顯的變化是,互聯網時代的數據庫管理方式與 C 端或者說使用端用戶密切相關,不只作爲基礎軟件,還開始作爲應用軟件進行數據管理。"},{"type":"text","marks":[{"type":"strong"}],"text":"“在計算機核心的研究學科方向裏面,數據庫是最靠近應用的。”"},{"type":"text","text":"周傲英談道。應用的變化和基礎設施的變化,推動身處其中的數據庫發生本質上的改變。從傳統的企業級應用變成互聯網應用和萬物互聯的應用,應用在發生巨大的改變。底層架構方面,早先是馮·諾依曼架構,步入雲計算時代後,計算資源池化,形成“上層萬物互聯,底層萬機(服務器)互聯。”傳統數據庫技術無法解決的問題,交給新的數據庫技術來解決。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"想要實現底層基礎設施池化後,再進行資源解耦,需要先解決很多問題,比如如何面向應用變化?如何面向基礎設施變化?如何應對計算存儲網絡的變化?雲原生應運而生。“以前我覺得做技術的要引領這個時代,後來才感覺到行業時代巨大的時代推動力。”李飛飛感慨。“技術走在需求之前”是業內廣爲流傳的一個說法,但是現在的技術思路是“螺旋式”,既有需求推動技術的一面,也有因爲相信所以看見的事情。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"系統的複雜性是如今數據庫行業面臨的最大問題。黃東旭認爲,摩爾定律已經失效,不會再有單機系統搞定一切的情況,上百臺的服務器是無法進行管理的,所以數據庫將迎來兩大發展趨勢:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"智能化,搞定複雜系統單打獨鬥是不行的,AI for DB 是一個現在很新但非常必要的方向"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"不會再像原來 Oracle 一樣,只一個數據庫一統江湖。行業會出現很多不同的數據引擎應對不同的場景,會出現一種新的數據平臺,雖然未來不會有 one size fit all,但可以做到用戶體驗統一"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"“未來有一個統一的平臺,屏蔽掉底下引擎的複雜性和在引擎之間切換。”"},{"type":"text","text":"李飛飛補充道:“周老師當年講的一句話對我觸動非常深,說讓數據無縫地自由流轉起來,我覺得這是非常有先見之明的一句話,這一定是未來一個很重要的趨勢。”在他看來,數據庫系統想要做好,管理好複雜的系統資源,需要“頂天立地”——向上面向應用,向下管理資源。李飛飛認爲,數據庫是整個基礎軟件領域上浮過程中的必經之路,也可以稱爲華容道,和上層應用發生交互必須要通過數據。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"正交的雲原生和分佈式"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"雲原生和分佈式是未來的必然選擇嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“對,我覺得這個是一定會發生的一個事情。”李飛飛斬釘截鐵地說,“我們很多的客戶、用戶的 IDC 的環境裏面,基礎設施這一層已經是一個雲化的部署方式了。操作系統體系結構向上發展過程中,數據庫系統是必經之路,底層的基礎設施雲化以後,對於上層的數據庫系統帶來的挑戰和機遇,就是怎麼樣更好地去將底層的資源池化、資源解耦優勢發揮出來,給用戶帶來這種高可用、可拓展性、彈性的便利。我覺得對所有的用戶、所有的應用場景來講,這都是一個必然去選擇的一條道路。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"黃東旭也深表贊同,業內有一個常見誤區:對於辨明主備兩臺機器屬於單機數據庫還是分佈式數據庫抱有疑問。"},{"type":"text","marks":[{"type":"strong"}],"text":"“其實有很多時候,我們在討論一個事情的定義是特別重要的。”黃東旭舉了一個例子,分佈式是用來解決大數據的問題的嗎?其實很多分佈式技術是用來解決類似 self-healing 或者說高可用的問題。未來的系統會變得越來越複雜,手動拉起掛掉的系統是不可規模化的,所以分佈式技術會在各種場景中節省人的精力,避免出錯。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"的確,數據庫螺旋式上升發展到新階段的同時,雲也在深化發展。雲服務是什麼類型的服務?周傲英認爲,雲服務是處理數據的服務。分佈式數據庫從系統到應用,都是分佈的,他提到,分佈式是對數據庫的擴展,雲原生和分佈式是正交的,有強相關性。"},{"type":"text","marks":[{"type":"strong"}],"text":"“我覺得雲的很多技術,底層也是在依靠分佈式系統的。”黃東旭認同道。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"雲原生和分佈式是不是對立的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"李飛飛認爲不是,他認同周傲英提到的兩者關係是交叉的,但覺得雲原生和分佈式如今已經融爲一體。如果底層基礎設施全部雲化,人們思考技術問題的角度自然變成“雲原生”角度。“今天很多人覺得雲原生數據庫不就是這樣嗎?其實不是,真正的雲原生需要你徹底理解底層池化和資源解耦以後,重新設計系統。在這個基礎上,分佈式不是一件必然的事情嗎?”李飛飛談道,“誰能夠把雲原生和分佈式技術結合得更加完美,從系統設計的角度,從應用使用的角度,我覺得誰就會在未來的市場競爭和產品競爭中佔得先機。如果大家今天還是把雲原生、分佈式對立起來看,我覺得是有問題的。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"細數歷史,雲原生數據庫也並不是一個新鮮的概念。當我們回過頭來看,李飛飛認爲,Oracle RAC 就是雲原生數據庫,只不過是在當年的硬件資源環境下只能做小範圍的池化。"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/7rDXdZlRVZHoM0ItE80a","title":"xxx","type":null},"content":[{"type":"text","text":"Oracle RAC"}]},{"type":"text","text":" 是 Oracle 公司針對數據庫高可用提出的解決方案,通過對集羣內部服務區存儲的統一管理,實現集羣內部數據庫的高可用,進而對外實現提高系統性能、可擴展和降低成本等服務。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“我覺得 Oracle 的人真的還是很厲害的,他們當年不光做了池化,它甚至在 Oracle RAC 上還要去做多讀多寫,今天我們雲原生數據庫可能還沒有一個真正能夠去完美支持多讀多寫的。Oracle 做了,還是在存儲層做的,但是它這個讀寫路徑太長。”李飛飛感慨:“我認爲 Oracle 的多讀多寫做的是失敗的,今天旗幟鮮明說出來。AWS 的 "},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/2018\/08\/aurora-mysql-serverless-ga","title":"xxx","type":null},"content":[{"type":"text","text":"Aurora"}]},{"type":"text","text":" 在存儲層‘log is the database’。寫進去後,通過‘log is the database’進行重做,這樣就導致多讀多寫寫入的鏈條特別長,latency overhead 承受不了。我個人認爲這是失敗的一條路。”他認爲,在雲原生上取得成功,一定將內存池化,"},{"type":"text","marks":[{"type":"strong"}],"text":"這也是阿里"},{"type":"text","text":" "},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/jJ2w0qLv1o*wOjO4f8Bz","title":"xxx","type":null},"content":[{"type":"text","text":"PolarDB"}]},{"type":"text","marks":[{"type":"strong"}],"text":" 爲什麼要做內存池化的原因。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"開源的現實與理想"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"開源是必選項嗎?和商業化是否相悖?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於第一個問題,黃東旭的答案是“是”,"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/video\/BX99zv1uWwP7KL8TIXDA","title":"xxx","type":null},"content":[{"type":"text","text":"TiDB"}]},{"type":"text","text":" 就是最好的證明。在他看來,數據庫之類的基礎軟件核心競爭力就在於迭代和進化,隨着需求越來越敏捷,一招鮮喫遍天已經過時了。“我一直相信沒有完美的軟件,也沒有完美的程序員。”黃東旭提到,想要寫出來完全沒有問題的東西是不現實的,開源能夠讓足夠多的人、足夠多的眼睛參與到項目中,幫助項目更早暴露問題、解決問題。“相當於不是一個人在弄,是整個社區和生態,相當於是撬動了整個社區的力量。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"另一方面,數據庫作爲通用基礎軟件,行業屬性偏弱,天然具備開源的基礎。作爲重要的行業基礎設施,開源是很好的“降低成本、廣納客源”的一種方式。"},{"type":"text","text":"在黃東旭看來,爲了避免像過去一樣“爲愛發電”,雲可以幫助產品交付標準化、可規模化,完美解決了開源軟件商業化的問題。他感嘆:“這就是爲什麼我覺得這個年代是做基礎軟件的好時代,也是做開源軟件的好時代。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在李飛飛看來,開源如今成爲數據庫的必選項是“人爲”:一羣非常出色的人將開源作爲技術演進路線上的必選項,觸發了整個行業環境發生“物種大爆發”一樣的變化,適者生存之下,開源從數據庫的非必然選項變成了必然選項。從自身雲廠商的角度出發,李飛飛毫不諱言開源爲阿里雲帶來了很多好處,其中之一是“加快了物種進化的速度”,讓越來越多的人開始使用阿里雲的系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然,開源和商業化中存在矛盾點,但李飛飛認爲二者同時也在互相解耦,關鍵在於企業如何處理。開源成功未必有很好的商業化結果,但是如果商業化結果很成功,也未必一定要開源。“對我們雲廠商來講,最重要的也是生態,也是開發者,也是用戶,是不是能夠用足夠低的門檻來使用我們的產品和系統,這個永遠是我們的第一思考。”李飛飛提到,如今開源的核心是要把生態建立起來,把握好開源和商業化之間的錨點。廠商開源一部分核心能力,和大家一起建立好的開源社區,加快演進、迭代速度。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“商業化的成功是技術進步的前提”這一觀點在現場達成了共識。周傲英也表示,“開源跟商業本身不是一回事,只有企業才能把開源得有商業價值。我們要重新定義知識產權,要重新來審視我們對知識產權的理解,只有企業在實踐中才能知道。”在他看來,開源是創造性生產方式的改變,有非常重要的社會價值,甚至是哲學價值。從 Hadoop 到 Ingress、MySQL 和 PostgreSQL,細數數據庫開源發展歷程,周傲英強調:“開源就是一種自發的行爲,開源就是開放,開放才能創新,開放才能很好地迭代。開源做數據庫的目的是什麼,讓每個人都來參與數據庫的開發。”"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"構建更好的開源生態"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"行業有關注度是好事,但凡事過猶不及。行業熱度下,一些問題也逐漸暴露出來。在黃東旭看來,目前開源產業有三大問題:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開源概念熱度過火,開始出現一些泡沫,行業過熱會導致不認可行業邏輯、不真正瞭解開源軟件的人蔘與進來。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開源軟件找不到核心競爭力。不少開源公司和開源項目的掌舵者,雖然運營着很好的項目和社區生態,但是對商業和項目的未來思考深度不夠,而行業也缺少有深入思考和認知的人才。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在開源生態下,行業對軟件工程和軟件工程的複雜性、易用性的思考,可能是全新的跨學科課題。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是他仍然樂觀:"},{"type":"text","marks":[{"type":"strong"}],"text":"“這個領域很有希望,最怕死水一潭,沒人關注,我覺得反而是有困難就意味着這個有希望。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"李飛飛也表達了自己的擔憂:部分開源廠商的開源並非原汁原味的開源,開源社區也不一定是真正的開源社區,不僅僅是技術問題或者商業問題,非常複雜。“他們是不是在真正尊重這個知識產權或者是這個項目的原作者的知識產權。其實我覺得不見得所有人都是有共識的。”黃東旭補充道。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當被問及理想中的開源生態是什麼樣的?黃東旭認爲,企業是建設理想開源生態的發動機,做開源生態不能想着爲了賺錢,構建生態是需要花錢的,真正好的生態要構建在共識和標準之上。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"李飛飛總結道:"},{"type":"text","marks":[{"type":"strong"}],"text":"“理想的開源生態我覺得是一個從教育產業到 non-profit,大家都能夠去參與到其中去的。我覺得拿英文來說就是 Stakeholders,至少是所有主要的 Stakeholders 能夠在一個有序的良性的生態裏面去共生共存,我覺得這是我想到的未來的一個趨勢,今天我覺得我們在往這個方向演進,這條路上還是任重道遠的,還有非常長的一段路要走。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"風物長宜放眼量,期待理想的開源生態實現的那一天。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章