大家好,我是劉軍民,我是阿里雲資料庫的產品經理,目前負責雲資料庫的產品規劃以及相關工作。曾在2019年和多位小夥伴一起發起了中文社群,我希望有更多的小夥伴能加入到社群建設中,這樣可以讓Cassandra在中國變得生機勃勃大放異彩。
我今天會分享很多Cassandra典型的應用場景,同時也會對社群進行年度的回顧。
我們剛開始接觸Cassandra時,發現這是一個不錯的產品,但問題是國內沒有中文社群。所以我們聯合了阿里雲的小夥伴以及其他公司的開發者發起了一些建設工作,包括現在的釘釘群還有微信公眾號。
現在,越來越多的公司已經加入進來了,尤其像DataStax的孔令子和鄧為老師。他們在社群中做了很多的佈道工作,非常感謝他們的付出。
2020年我們也做了很多的技術直播,包括關於應用場景的。在去年4月份也邀請鄧為老師做了一些關於DataStax的佈道工作, 提到關於Cassandra資料庫的特點,很多中國的開發者也是在這時候開始接觸到Cassandra。
在7月份時,社群也搞了兩次比較大的活動。活動包括兩大部分,第一個是鄧為老師的研習班課程。第二部分則是邀請到到阿里雲的郭超、華為的吳太銀先生,360的國浩、網龍公司的闕乃禎等講師分享他們自己的應用場景,包括他們對Cassandra的看法。
然後8月份我們就講了Cassandra4.0,其實我也剛剛看到群裡面有很多同學在說4.0,好像大家都很期待,但是它一直沒有釋出。
但是目前看,2021年上半年應該是很有希望釋出的。而且我們現在阿里雲公司其實也在很緊密的關注4.0的一個動態。針對它的一些優秀的特性,我們也在積極的做一些測試和跟進。
9月份時,我就分享了一個Apache Cassandra的國際認證考試。其實我建議大家如果有時間的話,可以花一點時間去學習一下這個課程,然後做這個認證考試。因為你通過認證考試的話,不僅僅只是為了拿一個證,更主要的是這樣你就可以比較系統性的學習Cassandra的理論知識。這樣對Cassandra會有一個比較初步的認識,這我覺得是很有意義的。
11月份,我們組織了首次線上的圓桌會議,這也是孔令子包括鄧為老師花了很多精力的一個事情。這裡,有些嘉賓分享了自己當時選Cassandra的原因,在他們眼中的Cassandra有哪些優勢和劣勢。
最近一次,我們看到有些同學也會提到在K8S上部署Cassandra,我們在12月份做了一個這樣的直播。
這些所有直播都可以在我們的社群的釘釘群、社群網站、b站上找到回放。
我們其實依然希望各個公司的這種開發人員和講師來我們社群講課,分享他們在某些的應用場景上面的心得,做一些類似於建模或者是各種各樣的分享。我們很歡迎大家來聯絡我們做一個這樣的技術直播。
接下來是展望,其實Cassandra在寬表資料庫領域其實已經連續9年霸榜了。大家可以看到這個資料庫本身是一個非常好的非常優秀的資料庫產品,它從2012年開始到現在流行一直都是第一的。所以大家可以看到它在國際上的地位,它其實是非常流行的一個資料庫。
在社群裡,包括前面有很多嘉賓做了分享。其實目前在國內Cassandra也有超大規模叢集的應用,現在包括阿里雲也在積極投身Cassandra雲上產品的開發。
我個人覺得有如下4個方面是值得大家選Cassandra的資料庫的:
-
第一點就是Cassandra對我們開發者是非常易用的。它有CQL語法的支援,這其實就是一個簡化版的SQL語句。如果是MySQL開發者切換到Cassanda上,其實不用花太多的精力,很快便可以上手。它還有表級TTL、行級TTL、列級TTL的支援,這可以簡化我們資料的處理。
-
第二點是高效能,大家可以去測一下資料庫,你可以發現它資料庫的效能表現是非常好的。
-
第三點就是持續線上能力,它其實有一個非常好的功能。比如我在3副本QUORUM讀寫這種模式下,單節點故障和單節點下線其實對整個叢集沒有一個太大的影響,應用甚至都感知不到這個故障,這是它很好的線上能力。同時它還有原生的跨DC容災的能力,這些都是非常好用的一些特性。
-
最後就是它的海量擴充套件能力,單個節點就可以起配,它是沒有任何起配門檻的。隨著你整個叢集慢慢擴大,單個叢集可以擴大到幾百上千節點的規模。
我覺得這一個很好的大資料的資料庫。在2020年,AWS也加入了Cassandra玩家的陣列,它在4月份時釋出了一個Amazon Keyspaces雲產品,這其實就是一個Cassandra雲產品。
所以現在大家可以看到,整個Cassandra的發展應該是呈現一個越來越成熟、越來越豐富的趨勢。
全球:
現在全球有數千萬開發者,我們希望可以聯手包括DataStax和其它的一些公司,在東南亞甚至是在歐美這些比較發達的一些國家建設生態、建設社群。這樣能把更多國際上的一些優秀的案例,包括一些最佳實踐,迴流到中國區,然後給國內的開發者帶來參考和便利。
包括海外的一些嘉賓,我們也希望社群裡一些非常優秀的講師能來中國區給我們國內的開發者做一些佈道, 這是我們在全球區的期望。
國內:
在中國區,我們也希望把Cassabdra社群建設成一個開放性的社群,然後每個月都定期組織這種技術直播。
我們也希望在各個行業,包括整個的一些應用場景上面,有一個比較成熟的最佳實踐來分享給大家。比如說我們的網際網路、車聯網、IoT場景、包括我們現在正在新興的智慧製造等行業,我們都希望有對應Cassandra的最佳實踐。我們也希望能把這些案例同步到我們社群裡面來,給大家做更多各種各樣的參考。這樣其實就可以指導我們的開發者更好地去用好Cassandra資料庫。
我們希望在2021年能夠把這些事情做的更完善。包括我們線下meet up,等疫情過去的話,我們依然想堅持把線下meet up活動一直做下去,然後從線上走到線下,和大家面對面做一些交流或討論。
因為我最近其實也沒有時間去寫部落格了,但我也希望大家能夠把自己的一些心得,包括把自己的一些在Cassandra上的一些應用實踐,以部落格的方式投稿到開發者社群來。然後給大家所有的這些周邊的一些團隊、同行去做一些這種交流,這我覺得是非常好的一個事情。
所以我們在2021年的話,我們依然會推動去做這些事情。
目前我們釘釘群有1500多號人。我們希望通過一年的努力,至少翻可以翻一倍。我們的微信公眾號現在也有2800號人左右,我們也希望能夠達到5000人,這是我個人的一些期望。
最後,我們也希望和中國區的Cassandra開發者,包括我們的一些領域行業專家一起聯手去出一本書。那麼這本書是屬於我們中國開發者自己的Cassandra技術書籍。我們期望行業內頂級Cassandra技術的專家,甚至國際上的一些專家都能夠加入進來,把這本書做成一個高質量的輸出。
現在讓我們進入比較關鍵的一個話題,Cassandra到底在哪些場景可以使用。或者先讓我們聊一下為什麼像Cassandra或HBase這種寬表資料庫會出現。
我覺得這也是因為資料的爆炸式增長,對資料的需求變得多樣化。流量,包括現在各種APP、各種場景的豐富度,導致原先傳統的SQL關聯式資料庫很難覆蓋所有的使用場景。
隨著技術的發展,其實越到後面你就會發現除了要一個RDS之外,還需要一個NoSQL的大資料的資料庫。我們Cassandra就是為了這種場景而誕生的。
那它具體可以應用到哪些場景?下圖中我將阿里雲的一些客戶做了一個大致的彙總。
彙總下來,我們發現主要的使用場景可以分在以下五個方面。
-
第一方面依然是網際網路,包括一些泛網際網路的行業的公司。比如說搞一些電商或者是網站的,還有各種各樣的應用。
-
第二個場景,現在我們也發現越來越多的汽車公司,包括一些交通行業的車聯網車載終端都會用到Cassandra資料庫。還有一些視訊監控的,不管是家用的,還是一些社會上的視訊監控的公司。
-
第三點的話,教育和泛娛樂這一塊。也是因為今年的疫情,我們見證了越來越多的這種網上學習授課的公司的發展,它們其實也有很多場景可以用到我們資料庫的。還有一些遊戲,其實2020年的遊戲也是爆炸式的一個增長,然後包括短視訊網站,社交類的這種APP是吧。類似於這種場景,其實在阿里雲Cassandra可能都有這種使用者的存在。
-
第四個場景就是現在比較火的IoT和智慧製造。隨著我們5g技術慢慢的推廣,其實IoT和智慧製造行業都會慢慢火爆起來。具體就是有些智慧家居,包括定位裝置。還有我們之前提到的終端,比如說手機、家庭攝像頭、智慧手錶,這些其實都可以用到我們資料庫。
-
最後一個就是網際網路金融,這一塊主要是用在一些風控或者是BI場景來做畫像。
上面的是我們用到的行業,下面是具體的應用場景。
-
我們Cassandra一些使用者主要是用Cassandra來儲存後設資料。比如說視訊監控,其實大量的視訊檔案放在Cassandra是不合適的,你可以放到OSS或者NAS裡面。但這個視訊本身是有後設資料的,比如說“這個視訊是在什麼時候錄的?通過是哪個裝置錄製的?裝置是屬於哪個使用者的?”類似於這種屬性類的大量後設資料是可以存到Cassandra中的,包括裝置的使用者資訊。
-
第二個是系統日誌還有記錄,比如說你登入到一個網站上面瀏覽了一個商品,那麼就會有一個關於這個商品的瀏覽記錄。還有比如系統裡面可能有大量的日誌,這些是可以存到Cassandra裡面來的,比如賬單報表以及商品的詳情資訊。
-
第三就是裝置的資訊,包括一些軌跡資料,這其實就是我們前面提到過的那些交通行業,包括汽車行業,它其實是用來存這些資料的。
-
還有第四塊是Cassandra一個非常經典的場景,從一些Feeds流,比如說有一些這種聊天室的應用。那麼聊天室裡面有大量的這種聊天記錄,類似的還有一些訊息資料、點贊評論,這些其實都可以存到Cassandra裡面來。
-
最後一個場景就是風控,可以做一些使用者的資訊,包括一些畫像,它其實都有用到Cassandra。
其實我們對Cassandra的特性的認識主要是高擴充套件和高併發的讀寫能力、零當機時間(Always Online)、TTL特性,還有單節點起配。Cassandra是沒有起配門檻的,很多有新興應用場景的初創公司是非常喜歡這種資料庫的。因為用起來非常簡單,開發起來也非常簡單,成本也非常低,並且沒有起配的門檻。最後Cassandra還有一個特點就是多DC,大家也都很認可它原生的多DC的容災能力。
總結起來的話就是Cassandra的起配門檻非常低,有開發簡單、非常穩定、比較容易維護的特點。所以在國內其實也開始慢慢的變得流行起來。尤其是前面提到過的一些初創公司和有新興應用場景的公司,他們其實是沒有歷史包袱的,而且這些公司的一些開發人員也更加open一些,當他們去選資料庫時,也會優先去考慮這種優秀的資料庫。所以我們就會發現Cassandra在這些公司中的接受度其實比那些傳統行業的接受度會更高一些。