本文轉載自公衆號「AI前線」。數據庫
策劃編輯|Natalie安全
做者|Kevin Xu網絡
譯者|無明架構
編輯|Debra負載均衡
AI 前線導讀:中國科技公司是典型的早期採用者——不是由於趕時髦,而是確實有必要這麼作。「中國式規模」讓中國的互聯網經濟成爲了高質量軟件(特別是基礎設施軟件)工程的成長沃土,這在開源技術上獲得了充分體現。國內開發者和企業向各大開源基金會貢獻了愈來愈多的開源項目,而咱們對國外的開源項目也產生了愈來愈大的影響。本文來自 PingCAP 全球戰略和運營總經理 Kevin Xu,AI 前線經受權翻譯。
個人 87 歲的祖母住在瀋陽郊區的一所老房子裏。雖然她年歲已高,但卻頗有技術悟性。日常她會用三個 App 進行網購:在京東上買書,在拼多多上買水果,在淘寶上買其餘東西(襯衫、圍巾、洗滌劑、數獨板)。分佈式
這三個 App 恰好是由中國電商市場的三巨頭開發的,其規模遠遠超出了千禧一代(1980 至 1994 年出生的人羣)和 Z 世代(1995 至 2009 年出生的人羣)的受衆總和。微服務
正是這種「中國式規模」讓中國的互聯網經濟成爲高質量軟件(特別是基礎設施軟件)工程的成長沃土。工具
電子商務是中國互聯網經濟增加最快的垂直領域之一,同時也帶動了數字支付和物流配送的發展。基礎設施技術在這一領域經受了最爲殘酷的考驗。「雙十一」是最爲典型的案例,這是由阿里巴巴提出的一個網購節日,每一年的 11 月 11 日,淘寶和天貓都會如期慶祝這個節日。2017 年雙十一總銷售額爲 253 億美圓,2018 年增加到了 308 億美圓。oop
中國第二大電子商務平臺京東也有本身的年中購物節,即「618」,這是一個爲期 18 天的促銷活動,截止 6 月 18 日,這天恰好是京東的成立記念日。2017 年,618 的總銷售額爲 176 億美圓,2018 年增加到了 284 億美圓。性能
美國亞馬遜的年中購物節 Prime Day 在 2018 年和 2017 年分別創造了 41.9 億美圓和 24.1 億美圓的銷售額。美國感恩節購物季在 2018 年和 2017 年的銷售額分別爲 178 億美圓和 196.2 億美圓。
對於工程師來講,有趣的不是使人瞠目結舌的銷售數據,而是如何構建能夠應對這些工做負載的基礎設施。2017 年,阿里巴巴公佈了雙十一期間系統的高峯吞吐量:每秒 25.6 萬筆交易和每秒 4200 萬次查詢。
不難想象,在這些促銷活動期間,確定會不可避免地出現大量的事務、查詢、數據一致性問題、實時分析容量和其餘不可思議的邊緣狀況。
除了這些公司,全部其餘想要搭上這些促銷活動順風車的電子商務公司、全部爲用戶在線購物提供電子支付解決方案的銀行,以及全部的物流中心和倉儲中心——他們都須要有好的基礎設施技術來應對新的工做負載和流量增加。
因爲這種增加速度,以及由此產生的競爭壓力,中國科技公司在採用新技術方面具備至關強的風險承受能力。
一家公司找到合適的產品市場,而後在不到兩個月的時間內採用未經證明但頗有前景的新技術爲高速增加的流量提供服務,這種事情並不是聞所未聞。京東在 2016 年初開始採用 Kubernetes,當時離谷歌開源 Kubernetes 還不到一年的時間,由於他們必須解決可伸縮性問題,而 OpenStack 沒能幫他們實現這一目標。(京東如今擁有全球最大的 Kubernetes 集羣,運行在 2 萬臺裸機上)
中國科技公司是典型的早期採用者——不是由於趕時髦,而是確實有必要這麼作。中國擁有世界上最多的互聯網用戶(8 億,而且還在增長當中),他們的規模(以及規模所帶來的不可預知的行爲)足夠大,大到足以促使這些科技公司認真對待每一項技術。從這些公司生存下來的技術會變得更強大、更有彈性,也更值得被用在其餘地方。
不少行爲是不可能在構建模式下進行預測或測試的。
你該如何經過 Paxos 或 Raft 來模擬系統達到 100 倍查詢峯值時的網絡流量?當一件商品、一首歌或一段視頻忽然變得像病毒同樣迅速傳播,而全部用戶都在試圖訪問它們,而更糟糕的是,有價值的廣告收入取決於系統不能崩潰,在這種狀況下,你該如何處理數據熱點問題?當數據增加率爲天天數 TB 時,應該如何擴展存儲容量?
全部這些狀況,在不少中國科技公司中時有發生。他們正在迅速地尋找新的解決方案,以迎接這些挑戰——這爲考驗這些創新技術提供了一片沃土。
「中國式規模」已經催生了一些由中國原創的基礎設施技術。去年,雲原生計算基金會(CNCF)接受了其中的三個項目:Harbor、TiKV 和 DragonFly。它們的架構和用例都在以前的一篇文章(https://softwareengineeringdaily.com/2018/12/09/chinese-open-source-software/)中作了很好的介紹。在 CNCF 生態系統以外,還有其餘一些值得關注的項目。
由螞蟻金服開發的分佈式關係數據庫,最初用於支持支付寶。支付寶在中國已經無處不在。此後,OceanBase 逐漸成爲阿里巴巴全部關鍵電子商務平臺(如淘寶和天貓)的核心交易數據庫。它也是一個獨立的產品,南京銀行就是它的用戶之一。
2014 年以來,它經歷了五次雙十一的考驗。惋惜的是,它是一個閉源產品,在中國之外沒有獲得普遍採用,因此與其架構、設計或工程方面相關的英文信息並很少。
一個開源的、兼容 MySQL 的 NewSQL 分佈式數據庫,由 PingCAP 於 2015 年建立。
它採用了分層架構,SQL 處理層(左邊的 TiDB 集羣)和可水平伸縮的存儲層(中間的 TiKV 集羣)被分隔開來。(注:TiKV 也由 PingCAP 發起,但如今由 CNCF 託管)。這個設計靈感來自於谷歌的 Spanner 和基於 Spanner 構建的 F1 項目。PD(Placement Driver)集羣保存元數據,提供一些負載均衡支持,並提供時間戳(做爲系統事務模型的一部分)。TiSpark 集羣是一個可選組件,用戶能夠直接基於保存在 TiKV 中的數據運行 Spark 做業。
目前,中國已經有幾百家公司在生產環境中部署了 TiDB,如摩拜、北京銀行和愛奇藝。國外也有一些大型互聯網公司使用了 TiDB,如 Shopee 和 BookMyShow。
注:PingCAP 現已提供 TiDB 的企業版和雲服務,同時也在維護開源社區版本。
一個快速的 OLAP(在線分析處理)引擎,最初由 eBay 中國團隊開發,在 2014 年貢獻給 Apache 基金會,並在 2015 年末成爲頂級項目。
Kylin 主要被用在 Hadoop 生態系統中,爲數百億行數據的分析查詢帶來可觀的速度提高。用戶先定義數據模型,而後利用 Hadoop 的分佈式特性並行運行多個 MapReduce 做業,用以預構建必要的多維模型(也稱爲「MOLAP」)。最後,Kylin 將預先計算的模型存儲在 HBase 中,供用戶查詢。它還使用 Zookeeper 來協調和管理這個過程的不一樣部分。
做爲大數據分析引擎,Kylin 集成了 Tableau、MicroStrategy、Excel 等流行的 BI 工具。它還提供了一個 RESTful API,方便與第三方應用程序鏈接。除了 eBay,它還在 OPPO、百度、中國太平洋保險等公司經受過實戰考驗,三星和摩根大通也是它的用戶。
一個相對較新的開源應用程序性能監監控(APM)工具,用於在基於容器的環境中監控微服務。2017 年末,它成爲 Apache 基金會的孵化器項目。
Skywalking 經過服務網格從微服務中提取指標,並利用 Jaeger 等流行工具來跟蹤信息,並能夠查詢和分析這些指標和信息,還可使用團隊開發的 UI 進行可視化。它還提供了一個可插拔的存儲接口,藉助這個接口,能夠將信息保存在一些流行的數據庫中,好比 Elasticsearch、MySQL 和 TiDB。
儘管這個項目成立還不到兩年,但中國的一些大型公司已經在使用它,如華爲、小米和貝殼。
除了本土技術,國外的一些技術也有了「中國式規模」的味道。京東是 Prometheus、Vitesse、Jenkins 和 GitLab 等技術的用戶,百度是 CockroachDB(另外一個受 Spanner 啓發的開源數據庫,相似於 TiDB)的用戶。Alluxio,一個分佈式文件系通通一層,能夠之內存速度運行(源自加州大學伯克利分校 AMPLab 的一個名爲 Tachyon 的研究項目),也在百度、中國聯通和滴滴出行等企業中獲得採用。
中國公司不只在大規模採用這些技術,有時候甚至直接收購它們。開源數據流平臺 Apache Flink 由柏林技術大學於 2009 年建立,做爲 Stratosphere 研究項目的一部分。阿里巴巴最終收購了由 Flink 創始人創辦的 dataArtisan(該公司的目的是商業化 Flink)。
做爲工程師,咱們知道沒有什麼技術是絕對的,它們老是存在權衡。咱們老是在吞吐量和延遲、數據一致性和響應時間、新特性和系統穩定性之間作出權衡。咱們不多能魚與熊掌兼得,咱們也不相信把本身標榜得過高的技術。
市場的選擇也是如此。在中國互聯網經濟大環境中,有一些問題必定要考慮到,特別是信息審查方面的問題。好比,對侵犯知識產權行爲的法律追索仍然不太可靠,有關企業使用我的數據的監管尚處於初級階段。
但若是你是一名開發者,正在尋找一些穩定可靠的技術(已經「面面俱到」的技術),那麼那些已經在中國互聯網環境中經受過實戰考驗的技術將是安全的選擇。
若是你的團隊正在構建下一個大項目,尤爲是在基礎設施層面,那麼把這個項目交給中國的幾家科技巨頭公司,將會爲項目帶來跨越式的發展。
另外,大家的努力極可能也會爲個人祖母帶來更快樂的生活!
英文原文:
做者介紹:
Kevin Xu 是 PingCAP 全球戰略和運營總經理。他在斯坦福大學完成計算機科學與法律專業的學習。主要關注分佈式系統、雲原生技術、天然語言處理和開源。