新技術到底靠不靠譜?在中國用一下就知道了

weixin_33763244發表於2019-03-01

中國科技公司是典型的早期採用者——不是因為趕時髦,而是確實有必要這麼做。“中國式規模”讓中國的網際網路經濟成為了高質量軟體(特別是基礎設施軟體)工程的成長沃土,這在開源技術上得到了充分體現。國內開發者和企業向各大開源基金會貢獻了越來越多的開源專案,而我們對國外的開源專案也產生了越來越大的影響。本文來自PingCAP全球戰略和運營總經理Kevin Xu,AI前線經授權翻譯。

我的87歲的祖母住在瀋陽郊區的一所老房子裡。雖然她年歲已高,但卻很有技術悟性。平常她會用三個App進行網購:在京東上買書,在拼多多上買水果,在淘寶上買其他東西(襯衫、圍巾、洗滌劑、數獨板)。

這三個App剛好是由中國電商市場的三巨頭開發的,其規模遠遠超出了千禧一代(1980至1994年出生的人群)和Z世代(1995至2009年出生的人群)的受眾總和。

正是這種“中國式規模”讓中國的網際網路經濟成為高質量軟體(特別是基礎設施軟體)工程的成長沃土。

購物節狂歡

電子商務是中國網際網路經濟增長最快的垂直領域之一,同時也帶動了數字支付和物流配送的發展。基礎設施技術在這一領域經受了最為殘酷的考驗。“雙十一”是最為典型的案例,這是由阿里巴巴提出的一個網購節日,每年的11月11日,淘寶和天貓都會如期慶祝這個節日。2017年雙十一總銷售額為253億美元,2018年增長到了308億美元。

\"image\"

中國第二大電子商務平臺京東也有自己的年中購物節,即“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。它們的架構和用例都在之前的一篇文章中做了很好的介紹。在CNCF生態系統之外,還有其他一些值得關注的專案。

OceanBase

由螞蟻金服開發的分散式關聯式資料庫,最初用於支援支付寶。支付寶在中國已經無處不在。此後,OceanBase逐漸成為阿里巴巴所有關鍵電子商務平臺(如淘寶和天貓)的核心交易資料庫。它也是一個獨立的產品,南京銀行就是它的使用者之一。

2014年以來,它經歷了五次雙十一的考驗。可惜的是,它是一個閉源產品,在中國以外沒有得到廣泛採用,所以與其架構、設計或工程方面相關的英文資訊並不多。

TiDB

一個開源的、相容MySQL的NewSQL分散式資料庫,由PingCAP於2015年建立。

\"image\"

它採用了分層架構,SQL處理層(左邊的TiDB叢集)和可水平伸縮的儲存層(中間的TiKV叢集)被分隔開來。(注:TiKV也由PingCAP發起,但現在由CNCF託管)。這個設計靈感來自於谷歌的Spanner和基於Spanner構建的F1專案。PD(Placement Driver)叢集儲存後設資料,提供一些負載均衡支援,並提供時間戳(作為系統事務模型的一部分)。TiSpark叢集是一個可選元件,使用者可以直接基於儲存在TiKV中的資料執行Spark作業。

目前,中國已經有幾百家公司在生產環境中部署了TiDB,如摩拜、北京銀行和愛奇藝。國外也有一些大型網際網路公司使用了TiDB,如Shopee和BookMyShow。

注:PingCAP現已提供TiDB的企業版和雲服務,同時也在維護開源社群版本。

Apache Kylin

一個快速的OLAP(線上分析處理)引擎,最初由eBay中國團隊開發,在2014年貢獻給Apache基金會,並在2015年底成為頂級專案。

\"image\"

Kylin主要被用在Hadoop生態系統中,為數百億行資料的分析查詢帶來可觀的速度提升。使用者先定義資料模型,然後利用Hadoop的分散式特性並行執行多個MapReduce作業,用以預構建必要的多維模型(也稱為“MOLAP”)。最後,Kylin將預先計算的模型儲存在HBase中,供使用者查詢。它還使用Zookeeper來協調和管理這個過程的不同部分。

作為大資料分析引擎,Kylin整合了Tableau、MicroStrategy、Excel等流行的BI工具。它還提供了一個RESTful API,方便與第三方應用程式連線。除了eBay,它還在OPPO、百度、中國太平洋保險等公司經受過實戰考驗,三星和摩根大通也是它的使用者。

Apache Skywalking

一個相對較新的開源應用程式效能監監控(APM)工具,用於在基於容器的環境中監控微服務。2017年底,它成為Apache基金會的孵化器專案。

\"image\"

Skywalking通過服務網格從微服務中提取指標,並利用Jaeger等流行工具來跟蹤資訊,並可以查詢和分析這些指標和資訊,還可以使用團隊開發的UI進行視覺化。它還提供了一個可插拔的儲存介面,藉助這個介面,可以將資訊儲存在一些流行的資料庫中,比如Elasticsearch、MySQL和TiDB。

儘管這個專案成立還不到兩年,但中國的一些大型公司已經在使用它,如華為、小米和貝殼。

中國之外

除了本土技術,國外的一些技術也有了“中國式規模”的味道。京東是Prometheus、Vitesse、Jenkins和GitLab等技術的使用者,百度是CockroachDB(另一個受Spanner啟發的開源資料庫,類似於TiDB)的使用者。Alluxio,一個分散式檔案系統統一層,可以以記憶體速度執行(源自加州大學伯克利分校AMPLab的一個名為Tachyon的研究專案),也在百度、中國聯通和滴滴出行等企業中得到採用。

中國公司不僅在大規模採用這些技術,有時候甚至直接收購它們。開源資料流平臺Apache Flink由柏林技術大學於2009年建立,作為Stratosphere研究專案的一部分。阿里巴巴最終收購了由Flink創始人創辦的dataArtisan(該公司的目的是商業化Flink)。

有價值的權衡?

作為工程師,我們知道沒有什麼技術是絕對的,它們總是存在權衡。我們總是在吞吐量和延遲、資料一致性和響應時間、新特性和系統穩定性之間做出權衡。我們很少能魚與熊掌兼得,我們也不相信把自己標榜得太高的技術。

市場的選擇也是如此。在中國網際網路經濟大環境中,有一些問題一定要考慮到,特別是資訊審查方面的問題。比如,對侵犯智慧財產權行為的法律追索仍然不太可靠,有關企業使用個人資料的監管尚處於初級階段。

但如果你是一名開發者,正在尋找一些穩定可靠的技術(已經“面面俱到”的技術),那麼那些已經在中國網際網路環境中經受過實戰考驗的技術將是安全的選擇。

如果你的團隊正在構建下一個大專案,尤其是在基礎設施層面,那麼把這個專案交給中國的幾家科技巨頭公司,將會為專案帶來跨越式的發展。

另外,你們的努力很可能也會為我的祖母帶來更快樂的生活!

英文原文:
https://softwareengineeringdaily.com/2019/02/26/china-scale-the-new-sandbox-to-battle-test-innovative-technology/

作者介紹

Kevin Xu是PingCAP全球戰略和運營總經理。他在史丹佛大學完成電腦科學與法律專業的學習。主要關注分散式系統、雲原生技術、自然語言處理和開源。

相關文章