天天看點

DTCC 2019 | NoSQL資料庫最新發展趨勢 如何擁有居家必備的企業級能力?

摘要:企業IT系統面臨層出不窮的新業務,安全,成本等諸多挑戰。阿裡雲NoSQL資料庫通過與企業業務深度結合,快速創新,提供最新的技術幫助企業使用者迎接挑戰,獲得金融、社交、直播等衆多大客戶的信任。本文中,阿裡雲智能資料庫産品事業部進階産品專家朱潔為大家介紹阿裡雲NoSQL資料庫在衆多最新領域的創新和技術實踐。

專家簡介:朱潔(花名:所在),阿裡雲智能資料庫産品事業部進階産品專家,目前為阿裡雲資料庫NoSQL資料庫産品Leader。10+資料庫/大資料研發管理經驗,專注于資料庫/大資料服務平台建設、規劃和實踐應用,著有暢銷書《大資料架構詳解:從資料擷取到深度學習》。

直播回放

連結

https://yq.aliyun.com/live/1049

議題PPT下載下傳,戳這裡!

https://yq.aliyun.com/download/3565

Gartner遠見者象限唯一中國企業——阿裡雲

阿裡雲是2018全球資料庫魔力象限遠見者象限的唯一中國企業,與Google等科技巨頭位于同一象限。并且分析師認為:在所有雲廠商中,阿裡雲擁有最為豐富的資料庫種類,基本上覆寫了所有客戶的業務場景,并且能夠提供多種資料庫解決方案。除了公共雲外,阿裡雲資料庫還提供了完整的私有化部署形态——Apsara Stack和混合雲資料共享解決方案,這是AWS、Google所欠缺的,也是阿裡雲資料庫服務的重要優勢。

10萬客戶的信任和選擇

阿裡雲資料庫背後是10多萬客戶的選擇和信任,在Top 100的客戶裡面,有大約94%的采納率。今天,無論是對于中大型客戶還是小客戶而言,阿裡雲資料庫都擁有一個較好的口碑。

阿裡雲完整覆寫主流NoSQL資料庫

目前,阿裡雲已經完整覆寫主流NoSQL資料庫。相比于關系型資料庫,NoSQL資料庫的發展時間并不長,大概為10年左右。随着網際網路技術的發展,很多企業發現傳統的關系型資料庫在很多場景下存在非常大的局限性,也正是因為業務的推動,誕生了一批非常流行的NoSQL資料庫。而如今,阿裡雲基本上覆寫了主流的這些NoSQL資料庫,包括基于記憶體的Redis、存儲文檔的MongoDB、具有大資料屬性的HBase以及圖資料庫Graph Database等。NoSQL資料庫的核心就是彌補關系型資料庫的不足,提供高性能、大容量、低延遲時間和低成本等特性。

企業客戶面臨的Top挑戰

對于阿裡雲如此衆多的客戶而言,他們所面對的核心挑戰總結而言主要包括以下三點:

 業務挑戰:客戶業務呈現指數級增長,并且随着企業實力的增強,業務開始出海。此外,還不斷出現一些創新業務,比如阿裡的雙11,這也使得資料庫面臨着巨大挑戰。

 成本挑戰:經濟形勢不好,面臨困難的時候就會發現成本壓力非常大。當業務增長比較好的時候,仍然會發現基礎設施、資料庫擴充以及人力成本也會跟着業務呈現線性增長,運維成本也會非常高。

 安全挑戰:如今,可用性達到99.99%成為了各個企業的預設需求。而在大資料的場景下,越來越多的企業認識到資料是企業的重要資産。此時,資料安全就顯得尤為重要。對于企業而言,黑客的惡意攻擊和勒索趨勢逐漸加重。

雲NoSQL資料庫最新技術趨勢

阿裡雲資料庫團隊看到了客戶在業務、成本和安全等方面的挑戰,是以圍繞場景化、智能化、企業級和一站式這四個方面做了大量的工作。

雲NoSQL資料庫最新技術趨勢——場景化

對于阿裡雲NoSQL資料庫的場景化而言,主要提供了混合雲解決方案、多媒體解決方案、遊戲解決方案、新零售解決方案以及低成本解決方案。

(1) 混合雲解決方案

之是以需要混合雲解決方案,主要是因為以下三點:

 安全性:傳統情況下,一般企業往往會建設單個IDC,但是單IDC的脆弱性容易導緻業務受損,而混合雲方案卻可以極大的提高業務可用性。

 降成本:多IDC甚至異地IDC管理所帶來的基礎設施及運維成本居高不下,往往會為基礎設施和運維人員帶來諸多挑戰。此外,時間成本太高使得IT能力難以跟上業務發展的速度,而混合雲方案可以降低客戶基礎設施的投入,并提供低成本的容災方案。

 大趨勢:業務上雲已經成為基本趨勢,客戶需要聚焦到核心業務管理上,而不是将時間和精力浪費到搭建基礎設施上去,是以需要将專業的事交給專業的人負責,而混合雲方案可以減少基礎設施及非核心業務管理成本。

下圖所示的是阿裡雲推出的Redis混合雲解決方案。傳統情況下,客戶自建多機房架構至少需要“兩地四中心”,而對于關鍵的金融級業務,可能至少需要搭建“三地六中心”。如果采取客戶自建的方式就會遇到很多挑戰,比如網絡高穩定性的挑戰,業務高峰容易發生腦裂導緻決策低效,無法保證高可用等。此外,自建方案使得初期投入較高,想要建設“兩地四中心”架構需要非常強大的人力和财力以及時間成本的支援,而對于很多需要較快成長速度的公司而言,這将造成巨大的壓力,而且跨地域分布式部署業務也會非常複雜。

而在阿裡雲推出的Redis混合雲解決方案中,使用者可以保留自己的機房,同時提供了DTS線上服務以及開源工具幫助客戶實作IDC機房和線上執行個體的資料同步。此外,該方案還内置了容災能力。如果使用者使用該方案,就相當于将基礎設施的建設任務交給了阿裡雲。使用者可以靈活地配置業務流量,也可以灰階逐漸将流量切換到線上,并且規避了線上或線下的單點問題,可以保障業務高可用。而業務而言,最重要的就是可以實作執行個體的快速部署,避免了基礎設施上線周期長和初期投入較高的問題,能夠幫助使用者快速具備混合雲能力。對于使用者最為關心的資料一緻性問題,阿裡雲Redis混合雲方案還提供了通過full_check開源工具實作線下和線下的資料校驗,保證了資料一緻性。這裡隻是列舉了Redis的例子,其實阿裡雲的MySQL和MongoDB服務也都具備這樣的能力。

(2)多媒體解決方案

下圖所示的抽象的多媒體行業架構,其實多媒體行業與其他行業的業務架構并沒有顯著的不同,其特點在于使用者基數非常大,日活百萬甚至能夠達到千萬。并且存儲量大,通路量也非常大。突發流量以及熱點事件、新聞會對于資料庫後端造成巨大的壓力,并且會出現全國甚至全球的多地通路。而且,在多媒體行業中,成本要求比較高,屬于價格敏感型。此外,還具有高可用、高延時的要求。

對大部分多媒體行業的客戶而言,如果選用自建資料庫方案可能會首先想到兩種政策,即應用層DIY解決方案和資料庫層DIY解決方案。應用層DIY解決方案中需要考慮如何解決熱點問題,雖然可以簡單地将通路通過加字首來打散,但是這就會導緻出現層出不窮的熱點Key,使得後期的維護和管理成本非常高。另外一點就是兩層緩存,除了原本在資料庫層加一層緩存之外,為了性能還需要在路由層再加一層緩存,将一些熱點事件混存在路由層,使得其能夠快速傳回給使用者,而這會導緻重新整理頻率較低的問題,進而導緻緩存政策出現問題。

資料庫層DIY解決方案的核心思想是通過源端的業務進行垂直拆分。不同的業務進入到不同的資料庫中,通過資源的擴充來解決性能問題,通過緩存增加隻讀副本的方式來解決并發通路問題。但這種方案的劣勢是會導緻隻讀副本過多,運維成本會非常高。此外,由于網絡傳輸需要時間,是以一旦資料鍊路過長,就容易出現髒讀情況。

為了解決上述問題,阿裡雲提供了Redis多媒體解決方案。常言道“天下武功,唯快不破”。Redis是單程序單線程模型,其在小包場景下QPS隻有8~10萬級别。而阿裡雲Redis 性能增強版在100%相容Redis協定的基礎上,使得性能提升3倍以上,并通過核心級别的改造使得QPS最高可達50萬以上。是以,通過阿裡雲性能增強讀寫分離架構就可以完美解決超高并發通路難題,該方案使得單個熱點資料QPS最高可達450萬,而單叢集QPS最高2億5600萬。

(3)新零售解決方案

新零售是最近兩年比較火的一個概念,舉一個實際案例:某一個客戶的訂單資訊表裡面包含了378列,其中13個列需要模糊查詢,同時對于入庫以及查詢響應速度具有較高要求。然而,想要同時滿足模糊查詢、高入庫速度以及秒級查詢響應這三點比較困難。一般而言,最常見的解決方案就是将一份資料同步到Electricsearch裡面,但這種方式的入庫性能非常差,對并發查詢的支援度也不足夠,并且查詢函數也十分有限。

為了解決上述問題,阿裡雲在新零售解決方案中将HBase和Solr內建在一起,将全量資料與索引資料分開,使得資料和緩存的比例大概為30:1。将資料自動同步到Solr裡面,建好反向索引并且盡量放到記憶體中,并對外提供統一的查詢接口。當需要對資料進行精确查詢時會比對到Phoneix中,而當需要模糊查詢的時候則會比對到Solr中。通過Phoneix+Solr的組合,同時結合HBase高并發、高吞吐以及和搜尋倒排的能力去解決既需要模糊查詢,又要精确查詢的問題,同時滿足了快速響應和低延遲時間的要求。

(4)低成本解決方案

成本永遠是一個繞不開的挑戰,在各行各業裡面都是永恒的話題。最簡單的場景就是當業務中有較為明顯的冷熱分離時應該如何解決。可能大家在第一時間就會想到使用低成本的硬體存儲來冷資料,這也是一種常用的做法。而Redis與普通資料庫之間的一個顯著差別就是其對于響應時間的要求非常高。

是以,在阿裡雲提供的低成本解決方案中進行了大量創新,該方案對Redis的資料結構進行了拆分,将所有的Key都放入記憶體中。這樣一來,即使需要全量Key也不會影響熱資料查詢性能,資料将會自動通過淘汰算法寫入磁盤中,這非常适合資料容量非常大,并且對成本有訴求的場景。

(5)遊戲解決方案

在可用性方面,大中型企業往往需要達到99.9%或者99.99%。但這樣高可用訴求不一定适合遊戲行業,因為對于遊戲而言,一般生命周期會非常短,開發效率要求高,是以其核心訴求是開發要快。因為遊戲變化很快,當遊戲火爆的時候需要快速開服、滾服、合服,是以彈性要求非常高,可用性反而可以降低要求,甚至可以接受30分鐘内的資料丢失。但是,遊戲行業對于成本較為敏感,也需要提供容易使用的經營分析工具,希望通過精細化營運來優化遊戲的生命周期。

阿裡雲提供了基于MongoDB的遊戲解決方案可以支撐遊戲業務的快速發展。對于克隆執行個體、快速開服、滾服等需求而言,阿裡雲MongoDB遊戲解決方案基于源執行個體資料,可以快速進行新執行個體的建立并自動複制進源執行個體的資料,全過程自動化進行,確定在批量開服、滾服場景上快速支撐。對于單庫恢複的需求,阿裡雲MongoDB遊戲解決方案支援單庫級别的資料恢複,對于多服合一的場景,無需在單庫出現問題時回檔所有資料,可以指定單庫進行恢複,不僅效率高,而且操作便捷,可以大幅度降低回檔的停服時間,為業務帶來更多效益。對于分析能力而言,阿裡雲MongoDB遊戲解決方案支援副本集快速擴容從節點,提供了高成本效益的系統分析讀取能力,無需更新規格即可快速支援BI系統的連接配接及分析需求,并且支援MongoDB connector for spark,可以快速聯通Spark分析叢集,實作基于大資料的使用者行為資料分析挖掘。

雲NoSQL資料庫最新技術趨勢——智能化

對于資料庫的智能化而言,主要包括了SQL診斷、空間診斷、會話診斷、安全診斷以及性能趨勢分析等方面的能力。

之是以要做資料庫的智能化這件事情,是因為DBA經常會遇到如下圖中所示的情況,這使得DBA往往應接不暇。

而傳統依靠專家對資料庫進行優化的方式存在很多方面的局限。

為了應對以上問題,阿裡雲提供了CloudDBA。阿裡雲CloudDBA通過将資料庫專家的經驗轉換為産品,借助資料庫核心技術、海量資料分析和機器學習等技術手段,提供自助化地資料庫診斷和優化服務,賦能使用者,成為使用者身邊的資料庫專家,保障資料庫高效、穩定的運作。目前,阿裡雲CloudDBA在SQL診斷、空間診斷、會話診斷、安全診斷以及性能趨勢等方面都提供了非常完善的能力。

阿裡雲CloudDBA的發展曆經了很長時間,其源自于2014年的SQL診斷引擎,主要用于檢測出一些慢SQL查詢來優化性能。到了2016年,随着技術能力的增強,SQL診斷引擎就更新為CloudDBA,并且覆寫阿裡巴巴集團内部的淘寶、天貓、螞蟻金服、高德等各個BU。從2017年開始, CloudDBA通過阿裡雲進一步開放出來,提供給阿裡雲客戶使用。

CloudDBA所提供的SQL診斷、一鍵優化、會話診斷、空間優化等一系列核心能力背後的原理就是采集、分析、發現、Action、跟蹤、評估形成的閉環。

可以将資料庫優化系統分成幾個等級:基礎級、管理級、預測級、适應級以及自主級。随着級别的提升,資料庫的智能化程度也就越高。當達到自主級的時候,資料庫至少需要具備自我配置、自我優化、自我修複、自我保護以及自我學習的能力。而根據調研的結果發現,在典型場景裡面,CloudDBA能夠使得慢查詢減少50%,資源占用減少50%以上,運作性能大幅度提升,這對于使用者和DBA而言都是非常大的幫助。

雲NoSQL資料庫最新技術趨勢——企業級

開源資料庫往往核心能力很強大,但是企業級能力卻非常差,是以很難适應大企業管理的需求,也難以滿足各方面的安全能力。是以,阿裡雲資料庫團隊也做了很多事情,使得NoSQL 資料庫服務能夠提供企業級能力,更适合中大型企業使用者的使用。

阿裡雲作為全球雲廠商首家推出Redis全球分布式能力的企業,解決了多媒體、遊戲、電商等多行業客戶業務出海、地域級災備、全球同服/多活、跨域資料遷移的訴求。多項關鍵能力在行業内處于領先地位:

 全球多活:核心級别支援,實作多節點全球容災。

 高可用:同步通道支援斷點續傳,容忍天級别的隔斷,子執行個體HA自動切換。

 高性能:單通道10萬TPS,高于Redis處理速度;延遲低、洲際内百毫秒延遲。

 支援資料最終一緻性:CRDT沖突解決方案+資料一緻性檢測,基于Redis核心改造,原生Redis核心無此功能。

雖然對于個人使用者而言,病毒和黑客攻擊可能越來越少了,但在企業裡面,資料庫的安全問題卻不容忽視,比如開源的MongoDB在權限管理上就存在很大欠缺,很多的黑客專門攻擊企業客戶的MongoDB資料庫并勒索贖金。

阿裡雲為客戶提供了MongoDB的全鍊路安全,在事前、事中和事後保障客戶的資料庫安全。在事前,通過VPC、白名單方式實作權限隔離,使得黑客難以進入;在事中,即使黑客有能力突破,也可以通過傳輸SSL加密和TDE加密來保證資料難以破解;在事後,即使黑客破壞了資料,也可以通過審計方式将資料找回來,并且能夠通過行為審計知道攻擊來自哪裡。通過這樣事前、事中和事後全鍊路的防護保證了資料庫安全,做到資料庫安全管理工作有證可查,有據可依。

可能大家認為監控是一件非常普通的工作,但實際上并不是這樣的。舉一個不起恰當的例子,5分鐘級監控和1秒監控就是X光和核磁共振的差别,5分鐘監控所能看到的資料非常貧乏,但是在其中可能隐含着很多需要優化的地方,一旦業務量上升,問題就可能爆發出來。如果能夠做到秒級監控,就能夠幫助專家通過全面的資訊将問題找出來,當發生了故障也能夠實時擷取故障原因。目前,阿裡雲資料庫團隊自研的秒級監控系統inspector真正做到了1秒1點的真秒級粒度、全量名額采集、無一疏漏。通過這樣的監控方式,使得資料庫的任何抖動都無處遁形。

容災政策也比較常見,如果DBA自建資料庫,可能所需要做的第一件事情就是容災。而阿裡雲提供了一整套完整的容災體系,對于同城、異地容災體系而言,阿裡雲提供了同城多機房部署、當機重建技術以及Mongoshake異地雙向複制能力,能夠杜絕機器級、機房級、地方級故障影響,并且能夠滿足監管、合規、企業核心資料容災訴求。

對于審計而言,最為核心的問題在于性能。因為需要将日志等資訊全量地記錄下來,是以需要非常高的性能,通過核心級别優化,可以将性能損耗控制在5%以内,可以使得使用者毫不猶豫地開通審計能力。相比以往使用者自建審計功能的方案,阿裡雲提供了human readable的審計日志,使得普通使用者也可以讀懂審計日志。此外,阿裡雲能夠提供低成本、7x24的審計能力,一旦發生誤操作或者高危操作,也可以提供事後分析資料。而審計日志也能夠提供業務分析資料,幫助使用者對業務進行針對性優化。

雲NoSQL資料庫最新技術趨勢——一站式

一般而言,很難使用一種技術解決客戶的所有問題。但是對于客戶而言,希望盡量使用更少的技術和能力來解決客戶問題,這樣的學習和應用成本都會比較低。

資料庫紛紛進入多模時代,開源資料庫領域也呈現出這樣的趨勢,比如MongoDB作為文檔型資料庫已經開始支援事務。

阿裡雲HBase在多模方面與其他資料庫的不同在于:阿裡雲HBase結合了HBase生态,支援了Key-Value、文檔、時序、時空等各種資料模型,這是其他多模資料庫所無法達到的。使用者可以根據自身業務訴求和實際需求選擇最為合适的資料模型達到最高的開發效率。

對于一個企業而言,業務負載一般會有很多種。傳統資料庫方案中,往往需要将資料存儲下來進行分析并進行事務處理。但是在進入大資料時代之後,出現了很多種業務負載,包括流、搜尋、時序、時空等。阿裡雲通過将業界比較流行的HBase和Spark等內建在一起,對外提供了一站式解決方案,目前這一方案也在很多客戶企業中得以成熟應用。

一些場景希望将兩個資料庫很好地結合在一起。對于RDS、PolarDB、HBase等線上資料庫而言,如果想要對其中的資料進行離線分析往往需要一個離線叢集,使用者可以自己将資料導出來,整理完資料格式進行分析。而借助阿裡雲的服務,則可以通過多個服務之間的互相配合,隻需要在控制台上填寫資料表之間的映射關系以及處理邏輯就能夠一鍵實作自動歸檔。這個方案支援多種模式,比如每天全量、每天增量、每天增全量、小時全量以及志實時導出等,使用者可以根據系統性能進行取舍,進而實作混合TP和AP處理。

目前,阿裡雲各種的NoSQL資料庫産品都非常完善,以Redis為例,其從最基礎的單機版、單機高可用版到單機讀寫分離版,再到叢集版、叢集高可用版以及叢集讀寫分離版等。這是因為面對不同的企業以及不同的部門,他們可能選擇不同性能的資料庫,是以需要滿足不同的訴求,來實作成本效益的最高化,這也是雲計算和傳統IDC最大的不同點之一。

如果沒有一個完整的資料鍊路,就會使得資料難以利用起來。阿裡雲資料庫基本上搞定了雲下到雲上、雲上到雲下,從專有雲到阿裡雲以及阿裡雲到阿裡雲之間各種場景、各種粒度以及各種版本的資料鍊路支援。并且通過完善的資料鍊路幫助客戶解決了各種場景下的資料傳輸問題。

總結和展望

本文分享了NoSQL資料庫技術的場景化、智能化、企業級以及一站式的發展趨勢。其實,對于企業而言,最為核心的問題就是面對業務挑戰、成本挑戰、安全挑戰,如何進行演進和發展,而這些問題正是阿裡雲需要幫助客戶解決的。阿裡雲資料庫服務将會持續圍繞上述問題和挑戰不斷發展和完善。同時,新應用、新技術、新理念正在驅動資料庫技術發展,阿裡雲資料庫也在智能化等方面進行大量的探索。此外,最為重要的一點就是雲資料庫創新速度是傳統資料庫的數十倍,希望大家能夠嘗試使用阿裡雲資料庫。