又到了雙十一、雙十二、年終大促季,每年這個(gè)時(shí)候都是購物狂歡節(jié),不僅促銷產(chǎn)品多、種類全、覆蓋面廣,促銷花樣也在不斷翻新,直播、砍價(jià)、優(yōu)惠券、加價(jià)購等,令人眼花繚亂。當(dāng)全國人民沉浸在買買買的自嗨中無法自拔時(shí),考驗(yàn)的不僅是百萬商家的戰(zhàn)略戰(zhàn)術(shù),更是各種技術(shù)平臺(tái)的實(shí)力比拼,尤其是底層的數(shù)據(jù)庫,將迎來流量峰值期間的高并發(fā)和快速響應(yīng)挑戰(zhàn)。
高并發(fā)業(yè)務(wù)場景下快速、彈性擴(kuò)縮容挑戰(zhàn)
▲微盟產(chǎn)品和服務(wù)布局
以微盟為例,公司承載的是多渠道的廣告營銷業(yè)務(wù),提供和各個(gè)細(xì)分領(lǐng)域相關(guān)的垂直SaaS解決方案及服務(wù)。比如:雙11期間的秒殺、拼團(tuán)和砍價(jià),需要很多專業(yè)解決方案和功能支撐,而微盟擁有豐富的產(chǎn)品和解決方案,處于業(yè)界最領(lǐng)先地位,很多優(yōu)惠券、抽獎(jiǎng)、廣告牌、激勵(lì)轉(zhuǎn)化等功能,都有專門的數(shù)字化插件。
借用微盟數(shù)據(jù)庫技術(shù)負(fù)責(zé)人 余成真 的話來說,“雖然微盟的很多SaaS業(yè)務(wù)經(jīng)常被模仿,但從未被超越。”
從大的平臺(tái)架構(gòu)來看,每個(gè)業(yè)務(wù)系統(tǒng)都是獨(dú)立應(yīng)用,包括獨(dú)立的后臺(tái)、技術(shù)棧、數(shù)據(jù)庫,并且對(duì)于庫和表的設(shè)計(jì),也各不相同。
而對(duì)于“秒殺”類活動(dòng),每天收到的活動(dòng)報(bào)備請(qǐng)求至少幾十個(gè),遇到重要節(jié)日以及重大營銷活動(dòng)時(shí),可能會(huì)有上百個(gè)商家發(fā)起活動(dòng)報(bào)備申請(qǐng),無論是用戶在線數(shù),還是業(yè)務(wù)請(qǐng)求量,都是TOP級(jí)別。
所以,對(duì)于數(shù)據(jù)庫的性能來說,必須滿足如下要求:
● 反應(yīng)要快,并且不同應(yīng)用接口響應(yīng)要求不一樣。
● 針對(duì)惡意刷票行為,要進(jìn)行流量防控。
● 要具備數(shù)據(jù)庫的大量讀寫能力。
大體來看,微盟數(shù)據(jù)庫團(tuán)隊(duì)主要面臨4大挑戰(zhàn):
1.高并發(fā)、低延時(shí)需求。
微盟的核心接口在平常狀態(tài)下都是毫秒級(jí)響應(yīng),數(shù)據(jù)庫的每條請(qǐng)求都是幾毫秒,甚至是納秒級(jí)響應(yīng)時(shí)間。在活動(dòng)高峰期,某些營銷插件的場景類數(shù)據(jù)庫,單實(shí)例就有超過7萬真實(shí)QPS記錄值。
2.確保穩(wěn)定性及高可用性。
穩(wěn)定性和可用性是基本要求,目前主要依賴騰訊云數(shù)據(jù)庫底層高可用能力,同時(shí)微盟自己也有一套針對(duì)應(yīng)急場景的可用性工具,未來希望能更可靠、更穩(wěn)定。
3.數(shù)據(jù)安全。
如何對(duì)人員安全、數(shù)據(jù)庫安全進(jìn)行治理,成為一項(xiàng)長期工作。需要進(jìn)一步加強(qiáng)治理的事項(xiàng),包括:數(shù)據(jù)分類分級(jí)、線上數(shù)據(jù)查詢的精細(xì)授權(quán)、數(shù)據(jù)災(zāi)備的定期演練、運(yùn)維操作風(fēng)控等。
4.海量實(shí)例數(shù)據(jù)庫運(yùn)維。
微盟數(shù)據(jù)庫類型多、數(shù)量多、業(yè)務(wù)線多,管理好這些元數(shù)據(jù)是DBA做好各項(xiàng)工作的先決條件。同時(shí),只有做到精細(xì)化運(yùn)維,才能規(guī)避工作中遇到的數(shù)據(jù)庫問題 、將故障及風(fēng)險(xiǎn)降至最低。
此種背景下,微盟開啟了全面的云數(shù)據(jù)庫轉(zhuǎn)型征程,從思維模式開始,讓整個(gè)架構(gòu)向更彈性、更靈活的服務(wù)模式演進(jìn)。
采用現(xiàn)代化架構(gòu)解決數(shù)據(jù)安全、技術(shù)能力擴(kuò)張問題
▲基于云數(shù)據(jù)庫的解決方案與實(shí)踐
“SaaS電商業(yè)務(wù)的本質(zhì)是,對(duì)數(shù)據(jù)庫應(yīng)用性能要求較高,必須抗住各種壓力。” 余成真說道。
在數(shù)字化轉(zhuǎn)型背景下,企業(yè)業(yè)務(wù)的核心是數(shù)據(jù),數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù),數(shù)字即服務(wù)。而承載所有數(shù)據(jù)的數(shù)據(jù)庫,既有事務(wù)ACID特性的要求,又有海量數(shù)據(jù)存儲(chǔ)的要求。所以,數(shù)據(jù)庫產(chǎn)品在具備聯(lián)機(jī)事務(wù)處理能力同時(shí),數(shù)據(jù)庫的讀取性能也必須強(qiáng)悍,同時(shí)還要具備數(shù)據(jù)分析能力。另外,微盟業(yè)務(wù)發(fā)展速度飛快,資源需求呈指數(shù)級(jí)倍增,數(shù)據(jù)安全、數(shù)據(jù)庫類型擴(kuò)展、數(shù)據(jù)庫技術(shù)能力擴(kuò)展等核心問題,都需要重新考慮。
微盟持續(xù)保持高速發(fā)展,創(chuàng)新和不斷迭代是內(nèi)在基因。2020年,為了助力更多商家實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型,微盟提出了“TSO全鏈路智慧增長”,從流量、SaaS工具和運(yùn)營角度,構(gòu)建全域數(shù)字化商業(yè)閉環(huán)。從產(chǎn)品角度看,最重要的是,全面提升信息安全保護(hù)能力,防止災(zāi)害及不可抗拒因素給業(yè)務(wù)系統(tǒng)帶來的傷害。
為了配合集團(tuán)業(yè)務(wù)高速發(fā)展的需求,數(shù)據(jù)庫團(tuán)隊(duì)必須基于現(xiàn)代化業(yè)務(wù)架構(gòu),轉(zhuǎn)變思維模式,讓所有業(yè)務(wù)在充分享受云的彈性能力的同時(shí),也要兼具業(yè)務(wù)的隔離性。
利用云數(shù)據(jù)庫彈性滿足高并發(fā)和快速調(diào)整需求
縱觀微盟數(shù)據(jù)庫的發(fā)展史,主要分為3個(gè)重要階段:
1. 早期IDC建設(shè)階段,包括自建黑石數(shù)據(jù)庫服務(wù)集群。
2016年,微盟的數(shù)據(jù)庫從阿里云全線遷移到騰訊黑石機(jī)房,實(shí)現(xiàn)了跨IDC的異地同步。在遷移之初,不僅要保證數(shù)據(jù)的一致性,對(duì)數(shù)據(jù)可用性的時(shí)間也有極高要求,數(shù)據(jù)庫實(shí)例要在30分鐘內(nèi)全部切換完,具體到單套實(shí)例的不可用時(shí)間要限制到秒級(jí)。而且,遷移過程中注意的細(xì)節(jié)非常多,涉及到對(duì)項(xiàng)目的協(xié)調(diào)及人員的動(dòng)員力,在數(shù)據(jù)庫同步遷移技術(shù)上,要保證數(shù)據(jù)的絕對(duì)一致性,遷移過程中也要具備更縝密的思維。同時(shí),還講求戰(zhàn)略戰(zhàn)術(shù)和技巧,微盟當(dāng)時(shí)使用的是主從復(fù)制技術(shù),因?yàn)榻?jīng)典意味著可靠。
為了更貼合業(yè)務(wù)發(fā)展,微盟還自建了數(shù)據(jù)庫服務(wù)集群,用半年時(shí)間打造了一整套數(shù)據(jù)庫私有云解決方案,包括具備監(jiān)控、告警、備份、高可用等相關(guān)功能。不僅解決了業(yè)務(wù)問題,在技術(shù)上也有重大突破,包括借助開源工具實(shí)現(xiàn)了二次開發(fā),期間還編寫了大量輔助運(yùn)維工具,將零散的運(yùn)維工作進(jìn)行了工程化建模。由于數(shù)據(jù)庫硬件服務(wù)器是高效及高可用架構(gòu)設(shè)計(jì),所以數(shù)據(jù)庫集群在4年多線上真實(shí)環(huán)境應(yīng)用中,沒有出現(xiàn)任何事故級(jí)故障,整體集群非常穩(wěn)定、高效。
2. 數(shù)據(jù)庫全面上云以及異地多活架構(gòu)升級(jí)。
2020年,為了配合TSO業(yè)務(wù)戰(zhàn)略落地,微盟嘗試探索公有云路線。因?yàn)椋鄬?duì)于私有云,公有云的彈性擴(kuò)展能力強(qiáng),更能滿足業(yè)務(wù)高并發(fā)需求。經(jīng)過大量調(diào)研、測試、選型、驗(yàn)證后,公司開始制定實(shí)施計(jì)劃,全面上云。其實(shí),當(dāng)時(shí)很多云廠商提供的異地多活方案都不是非常成熟。期間,微盟數(shù)據(jù)庫團(tuán)隊(duì)和騰訊云數(shù)據(jù)庫部門保持密切溝通與互動(dòng)。從最初通過線上邊緣業(yè)務(wù)進(jìn)行測試,到之后發(fā)展到周期性全實(shí)例的多活故障演練,最終才實(shí)現(xiàn)了技術(shù)上的突破,創(chuàng)造了成功的多活方案,高度確保了業(yè)務(wù)的穩(wěn)定性。
3. 加碼數(shù)據(jù)安全,實(shí)現(xiàn)精細(xì)化運(yùn)維。
2021年,為了確保數(shù)據(jù)庫部門擁有全線的業(yè)務(wù)支撐能力,微盟制定了很多和運(yùn)維相關(guān)的規(guī)范及流程。主要包含兩個(gè)維度:一方面,運(yùn)維操作人員要具有可量化的操作細(xì)節(jié);另一方面,降低風(fēng)險(xiǎn),提升溝通效率。
集中式+分布式技術(shù)架構(gòu)設(shè)計(jì)
大體來看,微盟云數(shù)據(jù)庫轉(zhuǎn)型是企業(yè)支持?jǐn)?shù)字化業(yè)務(wù)的最重要里程碑,他們開創(chuàng)了新的思維模式,用一個(gè)更靈活的策略,把大業(yè)務(wù)拆小,小業(yè)務(wù)拆得更細(xì)。并且,在每一個(gè)細(xì)的模塊上,都做了數(shù)據(jù)庫級(jí)別的支撐。這意味著,整個(gè)后臺(tái)不僅擁有眾多實(shí)例,能充分利用云基礎(chǔ)設(shè)施的彈性,隨時(shí)按需使用,還能確保實(shí)例之間的隔離性。即便是小商戶,也能做到項(xiàng)目式的隔離,確保每個(gè)項(xiàng)目都不受影響。
在具體的數(shù)據(jù)庫設(shè)計(jì)上,微盟采用的是集中式+分布式技術(shù)架構(gòu)。
● 分布式應(yīng)用場景:微盟把Redis、Kafaka作為大型分布式系統(tǒng)的關(guān)鍵組件,這些組件在實(shí)時(shí)數(shù)據(jù)或流式數(shù)據(jù)架構(gòu)中扮演著重要角色。
● 聯(lián)機(jī)事務(wù)處理應(yīng)用:微盟采用騰訊自研的云原生數(shù)據(jù)庫TDSQL-C、騰訊云MySQL、騰訊云PostgreSQL支撐底層全業(yè)務(wù)線存儲(chǔ),存儲(chǔ)所有業(yè)務(wù)線的元數(shù)據(jù),并提供重要數(shù)據(jù)計(jì)算及存取能力。
● 分析型應(yīng)用場景:通過TiDB/ HBase /TDSQL-H解決實(shí)時(shí)及離線分析問題。
在余成真看來,決定微盟云數(shù)據(jù)庫選型的最關(guān)鍵因素有四點(diǎn),即安全、性能、穩(wěn)定和成本。
微盟是基于微信生態(tài)做的產(chǎn)品級(jí)應(yīng)用,也是騰訊云華東地區(qū)頭部、重要VIP客戶,所以對(duì)騰訊云有著天然的親和力,微盟的很多基礎(chǔ)設(shè)施服務(wù)都在使用騰訊云提供的產(chǎn)品,比如:高防、LB、VPC網(wǎng)絡(luò)、CVM、COS、DB、EMR等等。針對(duì)騰訊云數(shù)據(jù)庫產(chǎn)品提供層面,微盟目前主要使用的是MySQL及云原生數(shù)據(jù)庫TDSQL-C,以及非關(guān)系型數(shù)據(jù)庫Redis。
更安全、更穩(wěn)定、性能更強(qiáng)
“數(shù)據(jù)庫全面上云后,不僅實(shí)現(xiàn)了當(dāng)初規(guī)劃的目標(biāo),在數(shù)據(jù)安全性、應(yīng)用的穩(wěn)定性以及性能方面,也有更卓越表現(xiàn)。” 余成真對(duì)云數(shù)據(jù)庫上線后的效果,給與了高度評(píng)價(jià)。
總結(jié)而言,數(shù)據(jù)庫上云后,獲得了如下效果:
● 全面確保數(shù)據(jù)安全。
底層基礎(chǔ)設(shè)施安全:由于數(shù)據(jù)庫底層運(yùn)維工作主要交給騰訊云數(shù)據(jù)庫團(tuán)隊(duì)來做,極大地確保了底層基礎(chǔ)設(shè)施的安全性。
數(shù)據(jù)安全:為了從根本上確保數(shù)據(jù)安全,微盟在數(shù)據(jù)庫權(quán)限系統(tǒng)上設(shè)置了最小粒度的授權(quán)原則。具體做法是,將權(quán)限綁定于資源對(duì)象上,人及業(yè)務(wù)組僅有權(quán)限查看所屬的數(shù)據(jù)庫資源。對(duì)這些資源的操作,會(huì)進(jìn)一步細(xì)化權(quán)限,如:流程化管理,要經(jīng)過“申請(qǐng)、一級(jí)審批、二級(jí)審批、執(zhí)行”這樣一個(gè)流程。
權(quán)責(zé)到人:微盟還將所有DBA操作進(jìn)行工單化,具體包括:查詢申請(qǐng)工單、SQL上線工單、數(shù)據(jù)遷移工單、數(shù)據(jù)歸檔工單等等。通過對(duì)人、對(duì)資源的權(quán)限控制,對(duì)數(shù)據(jù)的分類分級(jí)等方式,來保證數(shù)據(jù)安全。為了與國家數(shù)據(jù)安全法保持實(shí)時(shí)同步,微盟已將數(shù)據(jù)安全法進(jìn)行了平臺(tái)化處理。
● 運(yùn)營能力提升。
為了滿足更精細(xì)化的運(yùn)維需求,微盟基于騰訊云數(shù)據(jù)庫提供的能力,做了進(jìn)一步擴(kuò)展,對(duì)更貼近業(yè)務(wù)場景的功能做了處理。為了全面提升數(shù)據(jù)庫運(yùn)營能力,通過監(jiān)控?cái)?shù)據(jù)、告警數(shù)據(jù)、慢日志數(shù)據(jù)等進(jìn)行資源評(píng)分,為資源配置提供重要依據(jù),也可推導(dǎo)業(yè)務(wù)代碼質(zhì)量,產(chǎn)品響應(yīng)質(zhì)量等。簡單理解,騰訊云數(shù)據(jù)庫把底層的臟活苦活累活都干完了,微盟的數(shù)據(jù)庫團(tuán)隊(duì)就無須再關(guān)心底層基礎(chǔ)設(shè)施問題,而是拿出更多時(shí)間,關(guān)注業(yè)務(wù)層面的問題。
● 性能增強(qiáng)。
對(duì)于微盟最關(guān)注的數(shù)據(jù)庫性能,也做了進(jìn)一步增強(qiáng),實(shí)現(xiàn)了底層內(nèi)核以及整體性能的優(yōu)化。微盟建立了數(shù)據(jù)庫性能壓測跟蹤平臺(tái),可按照自己的標(biāo)準(zhǔn)進(jìn)行快速衡量各廠商云數(shù)據(jù)庫質(zhì)量。在數(shù)據(jù)庫上云后,微盟還建立了真實(shí)業(yè)務(wù)SQL模型,能推導(dǎo)代碼質(zhì)量,度量接口響應(yīng)指標(biāo)等。
● 成本優(yōu)勢。
云數(shù)據(jù)庫上面的資源彈性擴(kuò)縮容能力,以及在節(jié)約成本方面,也是傳統(tǒng)業(yè)務(wù)模式無法比擬的。騰訊云數(shù)據(jù)庫擁有資源的全生命周期管理,包括:資源申請(qǐng)、資源創(chuàng)建、數(shù)據(jù)庫管理、賬號(hào)類型管理、賬號(hào)權(quán)限管理、資源業(yè)務(wù)域歸屬、資源負(fù)責(zé)人管理、資源監(jiān)控備份告警管理、資源下架單、資源回收站。傳統(tǒng)IDC模式下,一旦活動(dòng)來了,進(jìn)行擴(kuò)容以后,成本就一次性加進(jìn)去了,即使縮容以后,成本還是那么多。但使用騰訊云就不一樣,可以按需使用,隨用隨付。
微盟云數(shù)據(jù)庫不僅全面擁抱了云原生,在HTAP融合發(fā)展趨勢上也在不斷探索。目前,具有業(yè)務(wù)屬性的云原生數(shù)據(jù)庫TDSQL-C,已開始逐步遷移,承擔(dān)的是高讀QPS類的業(yè)務(wù);其中還有一小部分是TDSQL-H系列,解決了分析型應(yīng)用場景的查詢問題,承擔(dān)一些AP類的業(yè)務(wù)。微盟通過騰訊云數(shù)據(jù)庫的全棧服務(wù),滿足了AP、TP全場景需求,支撐著百萬商家的大促及秒殺等核心業(yè)務(wù)。
小結(jié):從某種角度看,微盟數(shù)據(jù)庫上云旅程,其實(shí)是企業(yè)業(yè)務(wù)創(chuàng)新不斷發(fā)展的結(jié)果。以數(shù)據(jù)庫實(shí)例數(shù)量為例,上線之前是1000多套,現(xiàn)在使用了云上的資源以后,已經(jīng)發(fā)展到2000多套,翻了至少一倍。從資源規(guī)模上,已經(jīng)做了一定的數(shù)量級(jí),如果全部自己搭建,其業(yè)務(wù)的難度以及工作量,都無法想象。
關(guān)于微盟:
微盟,成立于2013年,雖然發(fā)展時(shí)間不長,但已成為一家領(lǐng)軍企業(yè)云端商業(yè)及營銷解決方案提供商,擁有超過7500名員工,全球加盟商超過1600家,入駐商戶超過300萬家。公司旗下業(yè)務(wù)主要包括商業(yè)云(微商城、智慧零售、智慧餐飲、智慧酒店、智慧美業(yè))、營銷云(微站、智營銷、企微助手)、銷售云(銷氪)以及和精準(zhǔn)營銷相關(guān)的豐富的媒體資源和DMP。媒體資源主要是指和騰訊、抖音、快手、頭條、知乎、小紅書等平臺(tái)的對(duì)接;而DMP,則包括精準(zhǔn)受眾定位、分析與優(yōu)化和更靈活的格式等。微盟的企業(yè)理念是,致力于成為企業(yè)數(shù)字化轉(zhuǎn)型最佳伙伴,助力更多商家開啟數(shù)字化轉(zhuǎn)型征程。