騰訊云數(shù)據(jù)庫(kù)國(guó)產(chǎn)數(shù)據(jù)庫(kù)專(zhuān)題線(xiàn)上技術(shù)沙龍正在火熱進(jìn)行中,0622畢漢斌的分享已經(jīng)結(jié)束,沒(méi)來(lái)得及參與的小伙伴不用擔(dān)心,以下就是直播的視頻和文字回顧。
關(guān)注“騰訊云數(shù)據(jù)庫(kù)”公眾號(hào),回復(fù)“0622畢漢斌”,即可下載直播分享PPT
1
峨邊彝族ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
直播回顧:https://v.qq.com/x/page/v31023ovs5l.html
前言
整
個(gè)部署過(guò)程最快僅需9
分鐘,
TDSQL全球靈活部署實(shí)踐
為幫助開(kāi)發(fā)者更好地了解和學(xué)習(xí)分布式數(shù)據(jù)庫(kù)技術(shù),2020年3月,騰訊云數(shù)據(jù)庫(kù)、云加社區(qū)聯(lián)合騰訊TEG數(shù)據(jù)庫(kù)工作組特推出為期3個(gè)月的國(guó)產(chǎn)數(shù)據(jù)庫(kù)專(zhuān)題線(xiàn)上技術(shù)沙龍《你想了解的國(guó)產(chǎn)數(shù)據(jù)庫(kù)秘密,都在這!》邀請(qǐng)數(shù)十位鵝廠資深數(shù)據(jù)庫(kù)專(zhuān)家每周二和周四晚上在線(xiàn)深入解讀TDSQL、CDB/CynosDB、TBase三款鵝廠自研數(shù)據(jù)庫(kù)的核心架構(gòu)、技術(shù)實(shí)現(xiàn)原理和最佳實(shí)踐等。本文將帶來(lái)直播回顧第七篇,分享TDSQL的部署實(shí)踐。
大家好,我是騰訊云TDSQL DBA畢漢斌。我們本次是圍繞著TDSQL交付的話(huà)題分享三個(gè)方面內(nèi)容。包括TDSQL曾經(jīng)面臨的交付要求和挑戰(zhàn),以及我們開(kāi)發(fā)沉淀的自動(dòng)化交付方案,最后更重要的是這套質(zhì)量保障體系后續(xù)可以如何繼續(xù)在交付后的用戶(hù)的全生產(chǎn)流程中為用戶(hù)提供全方位質(zhì)量保障。
1
TDSQL交付要求和挑戰(zhàn):快速給、靈活、安全給
首先我們想講的是TDSQL的交付挑戰(zhàn),我們也是以三個(gè)方面去展開(kāi),第一個(gè)我們遇到的挑戰(zhàn)是我們TDSQL產(chǎn)品架
構(gòu)所帶來(lái)
的特點(diǎn):
一是產(chǎn)品化不斷完善帶來(lái)的特點(diǎn)——組件多,包括擁有數(shù)據(jù)庫(kù)內(nèi)核,任務(wù)分發(fā)、冷備中心、平臺(tái)告警、性能診斷等;
二是組件之間的相互依賴(lài)的關(guān)系比較復(fù)雜。
1.1 復(fù)雜產(chǎn)品組件交付
首先我們從層次上把這些組件進(jìn)行劃分:赤兔、監(jiān)控采集、OSS、metacluster、扁鵲、onlineddl等可以劃分為一個(gè)角色,叫管理節(jié)點(diǎn)。我們從業(yè)務(wù)層去講的話(huà),對(duì)業(yè)務(wù)來(lái)說(shuō),實(shí)際訪問(wèn)數(shù)據(jù)庫(kù)從業(yè)務(wù)層去講的話(huà),的過(guò)程是,先是負(fù)載均衡層,然后負(fù)載均衡層會(huì)做負(fù)載均衡到我們的到SQL引擎層,而SQL引擎層會(huì)直接訪問(wèn)到我們底層的db底層DB,db上也DB上會(huì)部署agentAgent,像。圖中左側(cè)列這些我們叫做dbDB管理節(jié)點(diǎn)。像右側(cè)列如冷備中心、消息隊(duì)列、多源同步等,我們一般劃分為數(shù)據(jù)節(jié)點(diǎn)。而日志分析平臺(tái)其實(shí)就是一個(gè)其他的模塊,可劃分為其他的節(jié)點(diǎn)。
像這些節(jié)點(diǎn)之間的也是依賴(lài)關(guān)系比較復(fù)雜,像我們的管理節(jié)點(diǎn)之前有講到,像這些。比如管理節(jié)點(diǎn),其實(shí)主要做的工作就是負(fù)責(zé)元原數(shù)據(jù)管理,像元原數(shù)據(jù)包括很多,比如以監(jiān)控采集模塊為核心的監(jiān)控?cái)?shù)據(jù),還有、以任務(wù)分發(fā)系統(tǒng)為核心的任務(wù)節(jié)點(diǎn)的數(shù)據(jù)。第二個(gè)是我們的DB模塊,DB會(huì)和管理節(jié)點(diǎn)有一些交付交互,首先——所有的角色不僅是除了DB節(jié)點(diǎn),還有其他的節(jié)點(diǎn)都會(huì)向管理節(jié)點(diǎn)發(fā)送他的監(jiān)控信息,因?yàn)槎紩?huì)把監(jiān)控信息發(fā)送上去。而管理節(jié)點(diǎn)也會(huì)下發(fā)一些任務(wù),比如說(shuō)客戶(hù)在前臺(tái)進(jìn)行一些的變更,比如說(shuō)垂直擴(kuò)容、水平擴(kuò)容、主備切換,像這些的等變更動(dòng)作也是會(huì)到實(shí)際的DB上進(jìn)行的交付,也會(huì)到實(shí)際的DB進(jìn)行交互。數(shù)據(jù)節(jié)點(diǎn)首先會(huì)像向管理節(jié)點(diǎn)發(fā)送數(shù)據(jù),會(huì)和DB節(jié)點(diǎn)做一些交付互,比如我們最常用的就是數(shù)據(jù)庫(kù)數(shù)據(jù)的備份和回檔,這個(gè)就是DB的節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)進(jìn)行交付。日志分析平臺(tái)也會(huì)和DB節(jié)點(diǎn)去交付,他分析DB節(jié)點(diǎn)產(chǎn)生的日志,具體會(huì)做一些用戶(hù)的日志分析、SQL分析,甚至?xí)o用戶(hù)帶來(lái)一些SQL審計(jì)的功能,也會(huì)向管理節(jié)點(diǎn)上報(bào)他的監(jiān)控信息……
所以大家再簡(jiǎn)單看一下,其實(shí)各個(gè)組件之間的依賴(lài)關(guān)系,可以看得出來(lái)他們還是比較復(fù)雜的。其實(shí)就是因?yàn)橄裎覀冞@樣比較復(fù)雜的依賴(lài)關(guān)系。他,這對(duì)于我們的交付是帶來(lái)一定的難處。在TDSQL早期我們是通過(guò)自身TDSQL產(chǎn)品團(tuán)隊(duì)給客戶(hù)做交付。其實(shí)按照這樣的要求,這會(huì)對(duì)交付的人力帶來(lái)很大的要求,既即使是我們?nèi)サ脑?huà),部署一個(gè)交付的環(huán)境也要兩天以上。
1.2 多場(chǎng)景交付
第二個(gè)挑戰(zhàn)來(lái)自于TDSQL多個(gè)場(chǎng)景。
TDSQL多個(gè)場(chǎng)景主要來(lái)源于使用TDSQL的對(duì)象是不同的,這個(gè)對(duì)象可以劃分未使用TDSQL的人群是不同的,有個(gè)人使用,也有企業(yè)使用,也有第三方平臺(tái)使用,包括個(gè)人、企業(yè)、第三方平臺(tái)。其實(shí)這些不同的對(duì)象使用TDSQL的過(guò)程中,他們的需求和場(chǎng)景也是不同的。以個(gè)人使用為例,個(gè)人使用TDSQL的話(huà),他更多強(qiáng)調(diào)的是我想了解你的產(chǎn)品,學(xué)習(xí)你的產(chǎn)品,體驗(yàn)?zāi)愕漠a(chǎn)品,個(gè)人使用可能更想我能盡量的低門(mén)檻快速上手你的產(chǎn)品,盡量的簡(jiǎn)單。企業(yè)使用最主要的兩個(gè)場(chǎng)景,一個(gè)是POC測(cè)試,另一個(gè)就是我們的和生產(chǎn)場(chǎng)景。POC測(cè)試是,關(guān)注我們的的是整個(gè)產(chǎn)品的性能和功能,包括高可用性、容災(zāi)能力、國(guó)產(chǎn)化適配等。從性能和功能的出發(fā),也會(huì)帶來(lái)不同的場(chǎng)景需求。生產(chǎn)其實(shí)我們更多關(guān)注的是整個(gè)交付、整個(gè)產(chǎn)品、整個(gè)集群,是否有高可用性,是否有容災(zāi)能力,是否有一次性的保證。我們的平臺(tái)接入會(huì)帶來(lái)更多的挑戰(zhàn),我們的平臺(tái)可能會(huì)涉及到一些國(guó)產(chǎn)化交付的項(xiàng)目,國(guó)產(chǎn)化其實(shí)會(huì)對(duì)我們帶來(lái)一些兼容性的問(wèn)題,還會(huì)對(duì)我們的標(biāo)準(zhǔn)對(duì)接、接入帶來(lái)一些需求。
所以由于不同的對(duì)象使用我們TDSQL的產(chǎn)品,就會(huì)帶來(lái)不同場(chǎng)景的需求如何高效滿(mǎn)足?
我
們當(dāng)時(shí)想的是我們TDSQL在交付的場(chǎng)景下,我們是要做多個(gè)分支去適配不同的場(chǎng)景,還是用一個(gè)分支去適配不同
的場(chǎng)景?
當(dāng)然我們是用一個(gè)分支去適配不同的場(chǎng)景。
1.2 TDSQlL交付質(zhì)量保障:安全、合規(guī)、多層級(jí)實(shí)時(shí)掃描
第三個(gè)挑戰(zhàn)也是,由于時(shí)間的推移,我們負(fù)責(zé)TDSQL去交付的人產(chǎn)生了變化。早期我們TDSQL交付是由我們TDSQL產(chǎn)品研發(fā)團(tuán)隊(duì),我們、DBA同學(xué)去現(xiàn)場(chǎng)給客戶(hù)做交付。其實(shí)在我們的產(chǎn)品研發(fā)團(tuán)隊(duì)和DBA團(tuán)隊(duì),大家都是一個(gè)團(tuán)隊(duì),團(tuán)隊(duì)內(nèi)由于長(zhǎng)期的的合作協(xié)同是有是形成了標(biāo)準(zhǔn)和質(zhì)量可靠,他的交付質(zhì)量也是有保證的。而隨著我們TDSQL產(chǎn)品化,做大做強(qiáng),對(duì)外推廣用戶(hù)規(guī)模不斷擴(kuò)大以后,其實(shí)會(huì)產(chǎn)生交付人員的不同交付人員會(huì)發(fā)生變化,當(dāng)然也有一部分是我們產(chǎn)品研發(fā)團(tuán)隊(duì)直接交付。還有一部分是由我們騰訊專(zhuān)門(mén)的交付團(tuán)隊(duì)去交付,還有是由我們騰訊內(nèi)部的第三方平臺(tái)以及騰訊外部客戶(hù)自己的第三方平臺(tái)接入了TDSQL產(chǎn)品,他們第三方平臺(tái)負(fù)責(zé)交付。還有也是客戶(hù)自己本身去做交付。不同的交付實(shí)施方,他們的操作和使用的過(guò)程中就會(huì)帶來(lái)一些隱患,這些隱患主要體現(xiàn)在以下方面如果不夠標(biāo)準(zhǔn)化,則容易帶來(lái)隱患,體現(xiàn)在幾個(gè)方面:
第一個(gè)是安全的方面。比如說(shuō)我們環(huán)境的安全,我們知道數(shù)據(jù)庫(kù)場(chǎng)景是一個(gè)對(duì)內(nèi)存、CPU、硬盤(pán)、LOIO的等能力,都是要求比較高的場(chǎng)景。之前遇到的一個(gè)case,一個(gè)客戶(hù)在數(shù)據(jù)庫(kù)的場(chǎng)景下,他(9:22)沒(méi)有關(guān),在壓力比較高的情況下,由于性能問(wèn)題,最終在一定的場(chǎng)景下帶來(lái)的一些風(fēng)險(xiǎn)的問(wèn)題,其實(shí)這些就是對(duì)環(huán)境的優(yōu)化。其實(shí)不僅僅是這種環(huán)境優(yōu)化,包括數(shù)據(jù)庫(kù)進(jìn)程會(huì)讀大量的文獻(xiàn),他大的文獻(xiàn)數(shù)繼承的是系統(tǒng)用戶(hù)的大文件數(shù)。像這些的設(shè)置,包括數(shù)據(jù)庫(kù)場(chǎng)景對(duì)TCP的一些內(nèi)核參數(shù)的優(yōu)化等這些工作都是作為潛在風(fēng)險(xiǎn)來(lái)統(tǒng)一考慮的。像這些優(yōu)化其實(shí)是作為式一個(gè)潛在的風(fēng)險(xiǎn)去考慮的。
第二個(gè)是監(jiān)控方面。對(duì)整個(gè)集群、進(jìn)程、機(jī)器的監(jiān)控,提到監(jiān)控還有一個(gè)以及自動(dòng)的拉起,有很多即機(jī)械機(jī)器級(jí)別等的故障,故障之后一個(gè),進(jìn)程快速恢復(fù)的能力,其實(shí)要考慮到完善的自動(dòng)拉起的體系這些都要作為完善的體系來(lái)考慮。其他還有比如一些定時(shí)任務(wù),比如說(shuō)包括定時(shí)去清理一些日志文獻(xiàn),清理一些歷史上的數(shù)據(jù),否則磁盤(pán)就會(huì)撐滿(mǎn)的情況,這在生產(chǎn)的環(huán)境上也是風(fēng)險(xiǎn)很大的。還有我們最后是如何保障整個(gè)集群的高可用性、容災(zāi)性、(10:56)能力。剛才說(shuō)到的是不同的實(shí)施人可能會(huì)帶來(lái)不同的風(fēng)險(xiǎn),其實(shí)除了實(shí)施人以外,還有發(fā)布的版本也需要控制。有的時(shí)候我們是作為第一方去交付這個(gè)產(chǎn)品,有的時(shí)候我們有外部的客戶(hù),他們的平臺(tái)會(huì)交付,不管誰(shuí)去交付,這個(gè)版本是否是一個(gè)歷史版本,這個(gè)版本是否會(huì)有一些歷史的問(wèn)題和隱患;如何杜絕這些潛在的舊版本帶來(lái)的隱患,檢測(cè)到這些版本的漏洞等等方面,也是我們交付質(zhì)量的一個(gè)挑戰(zhàn)都是交付質(zhì)量體系中需要解決的問(wèn)題。
其實(shí)我們TDSQL交付質(zhì)量服務(wù)和保障就是圍繞著上述的一些各方面問(wèn)題方面,實(shí)現(xiàn)由在不同的實(shí)施人、實(shí)施方去交付我們TDSQL的產(chǎn)品下,都能保證我們TDSQL的投產(chǎn)的質(zhì)量。這是我們?cè)谧龅囊粋€(gè)事情。
1
TDSQL自動(dòng)交付方案:全球靈活部署、實(shí)時(shí)巡檢,最快9分鐘
剛才也說(shuō)到TDSQL的交付過(guò)程中遇到的一些挑戰(zhàn),我們針對(duì)這些上述的挑戰(zhàn),TDSQL沉淀出了一套TDSQL自動(dòng)化交付方案。
2.1 自動(dòng)化交付方案規(guī)劃
這是TDSQL自動(dòng)化交付方案的架構(gòu)圖:
剛才說(shuō)我們TDSQL是基于一個(gè)分支去做的來(lái)實(shí)現(xiàn)多場(chǎng)景、復(fù)雜關(guān)系下的自動(dòng)化交付的,其實(shí)也可以說(shuō)是基于三個(gè)分支去做的。我們TDSQL內(nèi)核包,當(dāng)前有三個(gè)分支,是:基于CPU的多分支進(jìn)行發(fā)布,當(dāng)前支持X86、arm、power。其實(shí)在我們TDSQL對(duì)客戶(hù)的發(fā)布包中,一個(gè)包自動(dòng)的集成了不同CPU版本的TDSQLpocketpacket,是——以ansible組件為基礎(chǔ),加上了條件檢測(cè)、操作系統(tǒng)調(diào)優(yōu)、環(huán)境依賴(lài)的解決、安全規(guī)范、兼容性問(wèn)題,我們對(duì)外做的是TDSQL私有云標(biāo)準(zhǔn)的發(fā)布包。像這個(gè)包我們是,可針對(duì)于客戶(hù)不同的場(chǎng)景,剛才說(shuō)到的不同場(chǎng)景和不同的環(huán)境做的適配。
TDSQL的組件我們剛才分為四個(gè)角色,如果想要快速的交付TDSQL集群,大家只要搞清楚一件事情,打個(gè)比方說(shuō)就是把不同的雞蛋放到不同的籃子里。雞蛋其實(shí)就是我們說(shuō)的是指這些組件,分為這四個(gè);籃子就是我們準(zhǔn)備的機(jī)器,可以是虛擬機(jī),也可以是物理機(jī)。
首先首先說(shuō)一下我們的個(gè)人體驗(yàn)的環(huán)境,個(gè)人體驗(yàn)的環(huán)境剛才也說(shuō)了,在這樣的環(huán)境下可能:個(gè)人體驗(yàn)環(huán)境更注重的是較低門(mén)檻比較低,其實(shí)在這里我們?cè)谶@里我們只需要一臺(tái)虛擬機(jī)的配制配置就可以達(dá)到這個(gè)目的。我們會(huì)然后可以把管理節(jié)點(diǎn)、DB節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)和其他的節(jié)點(diǎn)都部署在這臺(tái)機(jī)器上。當(dāng)然在體驗(yàn)的環(huán)境下,數(shù)據(jù)節(jié)點(diǎn)和其他的節(jié)點(diǎn),這兩個(gè)功能根據(jù)機(jī)器的配制來(lái)看,我們可以不進(jìn)行部署。
在測(cè)試環(huán)境:該環(huán)境換機(jī)下注重的是性能、功能。
首先從管理節(jié)點(diǎn)來(lái)看,其實(shí)管理節(jié)點(diǎn)提供的是元原數(shù)據(jù)的管理和任務(wù)的分發(fā)功能,他對(duì)于性能要求不是很強(qiáng),他其實(shí)要求的是一個(gè)穩(wěn)定性和容災(zāi)的能力。在測(cè)試環(huán)境可以稍微弱化這個(gè)要求,我們,比如可以準(zhǔn)備一臺(tái)或者三臺(tái)的虛擬機(jī),配置4C/8G普通磁盤(pán)就可以了,配制4C/8G;在測(cè)試環(huán)境下,我們要去要做DB節(jié)點(diǎn)的話(huà),其實(shí)在DB節(jié)點(diǎn)我們要考慮到TDSQL的性能問(wèn)題,這里我們就會(huì)推薦一個(gè)使用物理機(jī);我們TDSQL做進(jìn)行性能測(cè)試的時(shí)候要求一定是SSD盤(pán),否則我們的性能數(shù)據(jù)是沒(méi)有任何參考性的。——這也是由數(shù)據(jù)庫(kù)的場(chǎng)景決定的,因?yàn)镾SD和普通的磁盤(pán),一個(gè)是隨機(jī),他們方面主要表現(xiàn)在隨機(jī)讀寫(xiě)的能力上,的差距會(huì)比較大一點(diǎn);數(shù)據(jù)節(jié)點(diǎn)和其他的節(jié)點(diǎn)方面,如果有一些客戶(hù)可能對(duì)測(cè)試他的功能要求不是那么強(qiáng)沒(méi)有那么強(qiáng),他就可以不部署這些節(jié)點(diǎn)的功能,而如果我想體驗(yàn)一個(gè)完整的TDSQL的功能,則我需要準(zhǔn)備這些機(jī)器,以體驗(yàn)完整的TDSQL的功能;如果我們要部署數(shù)據(jù)節(jié)點(diǎn)的話(huà),我們可以選擇一臺(tái)機(jī)器或者三臺(tái)機(jī)器,虛擬機(jī),以及準(zhǔn)備大一較大容量點(diǎn)的磁盤(pán)做一個(gè)數(shù)據(jù)節(jié)點(diǎn);其他的節(jié)點(diǎn),這里我們提的是比如負(fù)載均衡和日志分析平臺(tái),日志分析平臺(tái)的作用剛才也說(shuō)了,是做一些SQL審計(jì),DB日志分析等等。其實(shí)我們TDSQL的負(fù)載均衡會(huì)比較靈活,他是在我們的位于SQL引擎層上的上一層,這里推薦的有開(kāi)源自身的LVS,當(dāng)然也有很多客戶(hù)會(huì)使用的F5。最后,像這些以上環(huán)境我們的推薦是部署兩節(jié)點(diǎn)來(lái)實(shí)現(xiàn),做一個(gè)容災(zāi)能力。這個(gè)其實(shí)就是總體而言,為了保證測(cè)試的性能,測(cè)試環(huán)境的要求,要求最多的就是DB這個(gè)節(jié)點(diǎn)模塊,保證測(cè)試的性能。
最終是大家最關(guān)心的生產(chǎn)環(huán)境的要求,我們這里要求的是:生產(chǎn)環(huán)境中要求管理節(jié)點(diǎn),可以部署在三臺(tái)或者五臺(tái)是虛擬機(jī),但三臺(tái)或者五臺(tái),最好是跨三個(gè)機(jī)房,比如說(shuō)“1+1+1”的模式或者“2+2+1”的模式,因?yàn)槲覀兊脑獢?shù)據(jù)集群是一個(gè)基于多數(shù)選舉的機(jī)制來(lái)保障高可用,如果是只有兩個(gè)機(jī)房的話(huà),則會(huì)失去了他本身容災(zāi)的意義,因此我們建議生產(chǎn)環(huán)境這里是中部署三個(gè)機(jī)房。DB節(jié)點(diǎn)生產(chǎn)環(huán)境更推薦的是NVME接口的SSD,因?yàn)閭鹘y(tǒng)的SSD和NVME的SSD可能體現(xiàn)他的在接口性能上,會(huì)有比較大的性能差距。這里而數(shù)量上我們推薦的數(shù)量是3*N臺(tái),其實(shí)——事實(shí)上這個(gè)是我們要去評(píng)估的生產(chǎn)環(huán)境TDSQL集群的數(shù)據(jù)量。因?yàn)槲覀?,TDSQL是一個(gè)分布式的數(shù)據(jù)庫(kù),他的數(shù)據(jù)量級(jí)可以根據(jù)用戶(hù)是根據(jù)你的機(jī)器數(shù)量實(shí)現(xiàn)做一個(gè)水平拓展擴(kuò)容。
舉個(gè)例子,比如說(shuō)我們假設(shè)客戶(hù)有3T的數(shù)據(jù),如果(19:39)單臺(tái)物理機(jī)是1T的話(huà),一個(gè)(?)set內(nèi)做的是一主兩備三個(gè)節(jié)點(diǎn),我們此時(shí)就需要三個(gè)(?)set,三個(gè)(?)set可以承擔(dān)3T的數(shù)據(jù)量,同時(shí)會(huì)有兩個(gè)副本復(fù)本的冗余,我們DB節(jié)點(diǎn)的這些數(shù)數(shù)就需要9臺(tái)這樣的機(jī)器,這三個(gè)set會(huì)組成group shard。數(shù)據(jù)節(jié)點(diǎn)也是的機(jī)器也是推薦物理機(jī),這里數(shù)據(jù)節(jié)點(diǎn)在同時(shí)在生產(chǎn)環(huán)境也需要考慮容災(zāi)能力,我們因此推薦是三臺(tái)機(jī)器臺(tái)機(jī)器以上,這就不推薦1臺(tái)機(jī)器了,考慮數(shù)據(jù)節(jié)點(diǎn)的容災(zāi)能力。此外,需要的是一個(gè)高性能磁盤(pán),來(lái)保證回檔和備份的效率;最后這邊也是推薦物理機(jī),訪問(wèn)鏈路上接入層是非常重要的一層,我們強(qiáng)烈推薦推進(jìn)物理機(jī),來(lái)提高他的穩(wěn)定性。
2.2 TDSQlL自動(dòng)化交付特性與要求
剛才其實(shí)也講到了我們前文講到了TDSQL不同的組件,他分成不同的層次,我們以及我們?cè)鯓尤ス芾磉@些層次等等其中的層次邏輯。在TDSQL真正交付過(guò)程中,為了保證交付質(zhì)量,結(jié)合金融級(jí)場(chǎng)景的安全合規(guī)、高可用容災(zāi)考慮,我們沉淀出一些基本要求和特性:
1.網(wǎng)絡(luò):離線(xiàn)部署無(wú)外網(wǎng)依賴(lài),機(jī)器互通;
2.存儲(chǔ):支持單磁盤(pán)、多磁盤(pán)和raid;
3.冷備中心:支持hdfs和掛載式分布式存儲(chǔ)(如ceph);
4.機(jī)器分布:支持跨機(jī)架和跨機(jī)房上架服務(wù)器,支持多種機(jī)器分布模式下的高可用容災(zāi);
5.CPU:在國(guó)產(chǎn)化趨勢(shì)下,目前機(jī)器CPU除了適配x86,還包括arm、power,而且首要推薦以上其中一款;
6.操作系統(tǒng):適配支持centos、ubuntu、以及包括國(guó)產(chǎn)化操作系統(tǒng)在內(nèi)的諸多主流操作系統(tǒng)
。
其實(shí)我們?cè)谡嬲ソ桓禩DSQL的時(shí)候,用我們交付方案去交付TDSQL的時(shí)候,有一些注意點(diǎn)大家也要注意一下。
第一個(gè)是我們TDSQL的網(wǎng)絡(luò)是沒(méi)有外網(wǎng)依賴(lài),因?yàn)楹芏嗫蛻?hù),像一些金融和證券的客戶(hù)是不能連通外網(wǎng),我們?cè)赥DSQL的發(fā)布包里已經(jīng)解決了這個(gè)依賴(lài)。
我們只需要一個(gè)網(wǎng)絡(luò)互通即可,也沒(méi)有網(wǎng)端的要求。
第二個(gè)是存儲(chǔ),TDSQL既支持讀取物理機(jī)上的單磁盤(pán),也支持讀取多磁盤(pán),當(dāng)然也支持我們多磁盤(pán)的raid,然后讀取這個(gè)raid的路徑,這些都是可以的。
冷備中心這一塊我們TDSQL支持兩種,第一種是hdfs,第二種是遠(yuǎn)端掛載式的分布式存儲(chǔ),比如說(shuō)ceph的文件系統(tǒng),他是一種掛載式的文件存儲(chǔ),比如說(shuō)以前的NAS、NFS這些也算。
我們建議TDSQL要去跨機(jī)架和跨機(jī)房上架服務(wù)器,我們是有做TDSQL的IDC管理,如果按照我們規(guī)范的要求去做,你的實(shí)例滿(mǎn)出來(lái)的時(shí)候,實(shí)例內(nèi)的主備節(jié)點(diǎn)本身就是跨機(jī)房的關(guān)系。當(dāng)前我們TDSQL支持的CPU有三種,一種是X86系列,這個(gè)是之前的主流系列,第二個(gè)是arm,arm也是我們現(xiàn)在很多國(guó)產(chǎn)化的廠商去做的架構(gòu),第三個(gè)是power,power目前的主力還是在浪潮這邊。當(dāng)前客戶(hù)主要用的操作系統(tǒng)都做過(guò)適配,像centos、ubuntu、紅帽等一些國(guó)產(chǎn)化的操作系統(tǒng),這些我們都有做適配。
右邊這張圖上圖右側(cè)展示了我們簡(jiǎn)單的簡(jiǎn)要分布關(guān)系,其實(shí)我們就像這樣的規(guī)劃一樣,交付過(guò)程中我們只要理清楚我們?nèi)绾伟央u蛋放到對(duì)應(yīng)的籃子里就可以了,即可實(shí)現(xiàn)自動(dòng)化交付:我們先選出籃子,一組物理機(jī)就是一個(gè)例子籃子,我們就隨之把一組的組件DB節(jié)點(diǎn)放到這個(gè)籃子里,其實(shí)這樣就完成了自動(dòng)化的交付。
2.2.1 靈活交付
當(dāng)然這邊其中有很多的細(xì)節(jié),客戶(hù)最關(guān)心的問(wèn)題是我該怎樣交付這個(gè)產(chǎn)品,大家要做的事情就是規(guī)劃,其實(shí)大家填寫(xiě)的配置客戶(hù)要做的,是自由決定模塊的機(jī)械機(jī)器分布和集群規(guī)模。我們,TDSQL可以通過(guò)一個(gè)模塊之間填寫(xiě)的數(shù)量不同的數(shù)量差異,會(huì)自適應(yīng)地做但點(diǎn)做出單點(diǎn)方案和多節(jié)點(diǎn)高可用容災(zāi)方案。這個(gè)過(guò)程是用戶(hù)在操作上是無(wú)感知的。
舉個(gè)例子,比如說(shuō)剛才說(shuō)的TDSQL是支持HDFS作為做他的冷備中心,如果我們HDFS選的是一個(gè)節(jié)點(diǎn)的話(huà),他系統(tǒng)會(huì)做的一個(gè)HDFS的一個(gè)但點(diǎn)單點(diǎn)方案。我們知道HDFS的但點(diǎn)方案主要是由(25:38)組成。如果我們這邊填的是三節(jié)點(diǎn)的配置規(guī)劃,他它會(huì)自動(dòng)感知到我要做的是一個(gè)高可用的容災(zāi)方案。當(dāng)時(shí)HDFS主流的用的高可用容災(zāi)方案,一個(gè)是QJM,一個(gè)是基于(?)做的方案。我們當(dāng)前是用是基于的QJM的方案,他其實(shí)包含了(26:07)高可用的方案方式。
2.2.2 簡(jiǎn)單高效:整個(gè)部署過(guò)程最快僅需9分鐘
剛才說(shuō)了TDSQL其實(shí)除了我們要做一個(gè)做完部署規(guī)劃,把怎樣的組件放到哪一組機(jī)器上,我們要做的,第二件事情是解決各個(gè)組件之間的一些關(guān)系,包括一些兼容性的等問(wèn)題。我舉個(gè)例子,這次如果部署的TDSQL環(huán)境是基于ARM國(guó)產(chǎn)服務(wù)器的操作系統(tǒng)的國(guó)產(chǎn)化的環(huán)境,是急于arm平臺(tái)的操作系統(tǒng)。我怎樣我們?nèi)绾瓮ㄟ^(guò)一個(gè)交付的物料包去適配不同的環(huán)境?其實(shí)秘密就在這個(gè)配置文件里:
1.用戶(hù)無(wú)需關(guān)注TDSQL較為復(fù)雜的各模塊的互相依賴(lài)和配置管理問(wèn)題,只需要根據(jù)實(shí)際,填寫(xiě)變量文件配置即可;
2.用戶(hù)填寫(xiě)一個(gè)機(jī)器規(guī)格配置文件、一個(gè)變量配置文件,填寫(xiě)后可以適配操作系統(tǒng)和CPU實(shí)現(xiàn)一鍵自動(dòng)化交付;
3.操作簡(jiǎn)單用戶(hù)可獨(dú)立完成,自動(dòng)化部署命令可重復(fù)執(zhí)行,在北京信通院機(jī)構(gòu)現(xiàn)場(chǎng)對(duì)TDSQL產(chǎn)品化的測(cè)試顯示,整個(gè)部署過(guò)程最快僅需9分鐘。
2.2.3適配與集成:國(guó)產(chǎn)化、全棧式
客戶(hù)就可以通過(guò)填寫(xiě)我們的配置文件。其實(shí)已經(jīng)做了一些適配,包括對(duì)我們的內(nèi)核包,首先對(duì)我們的TDSQL的內(nèi)核包是出了不同CPU架構(gòu)的內(nèi)核包。還有對(duì)我們交付邏輯上做了對(duì)各個(gè)操作系統(tǒng)和CPU的兼容。其實(shí)客戶(hù)無(wú)須關(guān)心TDSQL比較復(fù)雜的模塊之間的依賴(lài)和配置關(guān)系,只要根據(jù)實(shí)際情況填寫(xiě)變量的配置文件就可以了,填寫(xiě)完了以后就可以執(zhí)行我們交付的發(fā)起命令,可以一鍵自動(dòng)化交付。
整個(gè)交付過(guò)程是非常簡(jiǎn)單的過(guò)程,之前我們有對(duì)整個(gè)TDSQL的自動(dòng)化交付過(guò)程進(jìn)行測(cè)試,當(dāng)時(shí)是在北京的信通院的一個(gè)機(jī)構(gòu),對(duì)TDSQL產(chǎn)品化的交付進(jìn)行測(cè)試,整個(gè)過(guò)程在搭建TDSQL核心交付場(chǎng)景的情況下,只需要9分鐘就可以完成一個(gè)交付的場(chǎng)景。其實(shí)到這里我們核心的交付流程已經(jīng)給大家介紹完了,其實(shí)很簡(jiǎn)單,我們根據(jù)自己的需求把不同的雞蛋放到不同的籃子里,將不同角色的組件放到我們準(zhǔn)備好的一組一組機(jī)器上,這是第一件事情,填寫(xiě)規(guī)劃的配置文件。第二件事情是填寫(xiě)依賴(lài)的變量文化,包括一些環(huán)境和操作系統(tǒng)CPU的變量文件,以幫助我們自適應(yīng)的調(diào)整當(dāng)前的環(huán)境是怎樣的,去調(diào)整一些交付的邏輯。第三個(gè)我們真正執(zhí)行交付命令,這個(gè)步驟都一鍵化的。
剛才有說(shuō)到我們TDSQL在國(guó)產(chǎn)化方面也做了很多工作,當(dāng)前國(guó)產(chǎn)化已經(jīng)成為一個(gè)趨勢(shì),TDSQL在國(guó)產(chǎn)化適也做了很多工作,從我們底層的服務(wù)器到存儲(chǔ)器、操作系統(tǒng)、CPU、行業(yè)軟件、數(shù)據(jù)庫(kù)軟件等,都是在相關(guān)部門(mén)指導(dǎo)下國(guó)家的領(lǐng)導(dǎo)下進(jìn)行了聯(lián)系與各個(gè)廠商合作實(shí)現(xiàn)從下層到上層全方位的做國(guó)產(chǎn)化適配。在國(guó)產(chǎn)化的浪潮下,我們TDSQL作為一個(gè)騰訊自研分布式數(shù)據(jù)庫(kù),他作為一個(gè)優(yōu)秀的國(guó)產(chǎn)化數(shù)據(jù)庫(kù),其實(shí)我們也是義不容辭的擔(dān)當(dāng)了我們國(guó)產(chǎn)化的責(zé)任。我們當(dāng)前其實(shí)是從CPU、操作系統(tǒng)都去做兼容,操作系統(tǒng)剛才有幾個(gè)沒(méi)有說(shuō)到。centos、ubuntu、suse,像這幾個(gè)可能是大家常見(jiàn)的主流操作系統(tǒng),包括騰訊內(nèi)部的操作系統(tǒng)tlinux是騰訊內(nèi)部的一個(gè)操作系統(tǒng),以及中標(biāo)麒麟、銀河麒麟、UOS是等常見(jiàn)的主流國(guó)產(chǎn)化操作系統(tǒng),我們都有TDSQL都完成了適配。除了我們列出來(lái)的這些CPU的適配、操作系統(tǒng)的適配,適配全系國(guó)產(chǎn)操作系統(tǒng),TDSQL同時(shí)已相繼完成對(duì)全系國(guó)產(chǎn)芯片,全系列國(guó)產(chǎn)服務(wù)器等的兼容適配工作。而在完成適配工作的同時(shí),騰訊也提供了對(duì)應(yīng)的技術(shù)服務(wù),幫助行業(yè)用戶(hù)更好地遷移到國(guó)產(chǎn)基礎(chǔ)技術(shù)生態(tài)當(dāng)中。剛才提到有很多服務(wù)器CPU的一些硬件廠商做國(guó)產(chǎn)化,我們和浪潮也做了一些測(cè)試和認(rèn)證,并且拿到了浪潮的認(rèn)證,除了浪潮的以外,我們還在很多其他的國(guó)產(chǎn)化的客戶(hù)項(xiàng)目中,可能更多偏向于政府和國(guó)企相關(guān),也同時(shí)并行做這些國(guó)產(chǎn)化的項(xiàng)目,并且已經(jīng)拿到了一定的成果。這個(gè)些是我們對(duì)國(guó)產(chǎn)化的方面的工作。
技術(shù)服務(wù)生態(tài)方面,TDSQL其實(shí)不僅可作為一個(gè)獨(dú)立發(fā)布的產(chǎn)品,在TDSQL發(fā)展的歷程中,也其實(shí)他已經(jīng)被很多其他的很多平臺(tái)廠商各種和合作伙伴接納,包括騰訊內(nèi)部主要是的TCE、Tstack、MDB架構(gòu)等。TCE是騰訊云基于金融級(jí)別的一個(gè)平臺(tái),TDSQL也是和TCE進(jìn)行高度的集成,包括從我們的在部署方案、告警、用戶(hù)權(quán)限等等各種維度和TCE進(jìn)行了深度的集成,可為金融政務(wù)機(jī)構(gòu)提供全方位的PaaS基礎(chǔ)技術(shù)服務(wù),在完成高性能的分布式架構(gòu)轉(zhuǎn)型升級(jí)的同時(shí)保障金融級(jí)穩(wěn)定高可用。Tstack和MDB也是我們內(nèi)部的一些平臺(tái),除了我們內(nèi)部的平臺(tái),還有很多客戶(hù)自己的一些平臺(tái)。除了客戶(hù)自己的業(yè)務(wù)在使用TDSQL以外,有些TDSQL許多客戶(hù)合作伙伴是做一些的行業(yè)的解決方案,在他們的解決方案中也集成了TDSQL,把我們TDSQL的能力輸入到他們自己的平臺(tái)。
2.2.4 安全保障:秒級(jí)監(jiān)測(cè)
TDSQL在發(fā)展中對(duì)交付場(chǎng)景做了許多優(yōu)化:
1.條件檢測(cè):
首先會(huì)自動(dòng)對(duì)規(guī)劃的TDSQL集群下的所有機(jī)器做前置檢測(cè),包括機(jī)器時(shí)間同步、時(shí)區(qū)一致、端口占用、系統(tǒng)默認(rèn)sh、機(jī)器規(guī)格等做檢;
2.環(huán)境優(yōu)化:針對(duì)關(guān)系型數(shù)據(jù)庫(kù)場(chǎng)景,對(duì)系統(tǒng)50處左右進(jìn)行針對(duì)性調(diào)優(yōu),并解決一些基礎(chǔ)的依賴(lài);
3.機(jī)器秒級(jí)監(jiān)控:大部分的監(jiān)控平臺(tái)都是基于分鐘級(jí)的,對(duì)于金融級(jí)數(shù)據(jù)庫(kù)這種敏感場(chǎng)景,分鐘級(jí)的監(jiān)控是不夠的。
我們?cè)诮桓兜膱?chǎng)景下也做了一些優(yōu)化,首先我們會(huì)對(duì)整個(gè)TDSQL規(guī)劃的集群下的所有機(jī)器做前置檢測(cè),包括常見(jiàn)的機(jī)器的時(shí)間同步、機(jī)器的時(shí)區(qū)、端口占用、系統(tǒng)默認(rèn)sh、機(jī)器規(guī)格。我們會(huì)對(duì)環(huán)境進(jìn)行優(yōu)化,剛才有提到一些操作系統(tǒng)的內(nèi)核參數(shù),針對(duì)于關(guān)系型數(shù)據(jù)庫(kù)場(chǎng)景,比如說(shuō)TCB的一些優(yōu)化,像一些內(nèi)存參數(shù)的優(yōu)化,其實(shí)我們做了一些調(diào)優(yōu),并解決了一些技術(shù)的依賴(lài)。還做了一個(gè)秒級(jí)的監(jiān)控。其實(shí)客戶(hù)自己的監(jiān)控平臺(tái),包括我們本身給客戶(hù)提供的監(jiān)控中心,大部分的監(jiān)控體系是基于一個(gè)分鐘級(jí)的,但是數(shù)據(jù)庫(kù)這樣的場(chǎng)景比較特殊,其實(shí)很多的問(wèn)題在分鐘級(jí)的監(jiān)控下,問(wèn)題的現(xiàn)場(chǎng)就會(huì)丟掉,不能暴露問(wèn)題的本身。所以我們針對(duì)這樣的場(chǎng)景做了提供了秒級(jí)的監(jiān)控,我們做了幾個(gè)維度,有包括針對(duì)機(jī)器的IO、CPU、網(wǎng)絡(luò)、內(nèi)存等等多個(gè)維度。
2.3 多集群下的自動(dòng)化交付
前文剛才講的是我們?cè)赥DSQL在單集群下的交付場(chǎng)景和交付細(xì)節(jié),之前在架構(gòu)課上的時(shí)候我們也介紹了TDSQL多集群的交付方案。其實(shí)接下來(lái)介紹在多集群下的,我們來(lái)看一下交付具體是怎樣進(jìn)行的。
“同城兩地三中心”部署體系
“
同城三中心”架構(gòu)顧名思義:
在一個(gè)城市有A、B、C三個(gè)機(jī)房,TDSQL仍采用“一主兩備”結(jié)構(gòu),很顯然我們需要將三個(gè)數(shù)據(jù)節(jié)點(diǎn)分別部署在三個(gè)機(jī)房,其中主節(jié)點(diǎn)在一個(gè)機(jī)房,兩個(gè)備節(jié)點(diǎn)分別部署在另外兩個(gè)機(jī)房。
同城雙中心的架構(gòu)下我們是有兩套集群,第一套集群是蛇口這個(gè)集群,我們是交付一套集群。
然后在觀瀾集群是交付另一個(gè)集群。
我們?cè)趦蓚€(gè)集群之間做了一個(gè)異步復(fù)制,這個(gè)是同城雙中心。
第二個(gè)是“同城三中心”,我們是架構(gòu)的部署下,是在一個(gè)大集群內(nèi),在這個(gè)數(shù)據(jù)庫(kù)實(shí)例下,我們數(shù)據(jù)庫(kù)實(shí)例使用使用的是同IDC異步、跨IDC強(qiáng)同步的方式,然后在這邊上海會(huì)有一個(gè)強(qiáng)同步的實(shí)例,實(shí)例之間會(huì)做一個(gè)DCN的復(fù)制實(shí)現(xiàn)金融級(jí)高可用容災(zāi)。
“兩地三中心”架構(gòu)顧名思義:
在一個(gè)城市有A、B兩個(gè)機(jī)房,另一個(gè)城市有C機(jī)房,在第一個(gè)城市中TDSQL數(shù)據(jù)庫(kù)實(shí)例采用同IDC異步、跨IDC強(qiáng)同步的方式,我們需要在第一個(gè)城市將四個(gè)數(shù)據(jù)節(jié)點(diǎn)部署在二個(gè)機(jī)房,其中主節(jié)點(diǎn)和一個(gè)備節(jié)點(diǎn)在一個(gè)機(jī)房,另外兩個(gè)備節(jié)點(diǎn)在另一個(gè)機(jī)房。
并且在第一個(gè)城市和第二個(gè)城市的數(shù)據(jù)庫(kù)實(shí)例間,采用的是異步復(fù)制,保障金融城市級(jí)高可用容災(zāi)。
“兩地四中心”部署體系
“最后一種就是兩地四中心”的架構(gòu),是一個(gè)自動(dòng)化切換的強(qiáng)同步架構(gòu),我們也是兩個(gè)實(shí)例,第一個(gè)實(shí)例是深圳的實(shí)例,我們是分成三個(gè)IDC。
舉個(gè)例子,一個(gè)是福田,一個(gè)是蛇口,一個(gè)是觀瀾,一個(gè)實(shí)例跨三的IDC,我們做的一個(gè)強(qiáng)同步。
第二個(gè)實(shí)例是在上海,在這兩個(gè)實(shí)例上也是用的DCN做的實(shí)例之間的同步,對(duì)任何數(shù)據(jù)中心及故障都能30秒內(nèi)切換,并且數(shù)據(jù)零丟失,性能也穩(wěn)定可靠,對(duì)業(yè)務(wù)和用戶(hù)來(lái)說(shuō)是實(shí)現(xiàn)更高的可用性和更低的成本。
1
TDSQL質(zhì)量保障服務(wù):全生產(chǎn)流程自動(dòng)化巡檢
剛才有講到了我們TDSQL的一些交付的場(chǎng)景,交付的需求和一些做TDSQL國(guó)產(chǎn)化和兼容性一些特性的交付考慮。其實(shí)在最重要的地方就是最后,最重要的是我們?nèi)绾伪WCTDSQL的交付質(zhì)量,不僅是交付質(zhì)量和服務(wù)的質(zhì)量,這一塊我是單獨(dú)拿到最后一章給大家介紹。
首先我們TDSQL的交付質(zhì)量,我們是通過(guò)一個(gè)叫自動(dòng)化巡檢的方案保證。TDSQL自動(dòng)化巡檢的方案我們是通過(guò)三個(gè)維度控制我們的保障交付質(zhì)量。
1.監(jiān)控指標(biāo)分析
第一個(gè)維護(hù)維度基于是依賴(lài)TDSQL現(xiàn)有的監(jiān)控中心,從我們現(xiàn)有的監(jiān)控體系中去做一些進(jìn)行相關(guān)指標(biāo)性的分析,包括。當(dāng)前我們這個(gè)指標(biāo)性的分析也分為兩個(gè)維度,第一個(gè)維度是當(dāng)前時(shí)刻的指標(biāo)分析,第二個(gè)維度是和歷史時(shí)刻的指標(biāo)分析。什么意思?其實(shí)這里就會(huì)涉及到一個(gè)問(wèn)題,我們當(dāng)我們要在驗(yàn)證一個(gè)集群,一個(gè)TDSQL的集群是否有問(wèn)題的時(shí)候,我們往往除了要分析此時(shí)此刻的集群是否存在有一些異常,是否有一些和告警,是、是否存在有一些資源負(fù)載過(guò)重等等情況。其實(shí)往往,還需要分析歷史性的問(wèn)題,比如說(shuō)在歷史我過(guò)去在歷史七天中各個(gè)指標(biāo)的曲線(xiàn)是如何的。為什么要分析過(guò)去歷史七天的指標(biāo)曲線(xiàn)?舉個(gè)簡(jiǎn)單的場(chǎng)景案例,我這邊例如一個(gè)場(chǎng)景是在每天下午三點(diǎn)到五點(diǎn)的時(shí)候,是業(yè)務(wù)高峰期,在這個(gè)業(yè)務(wù)高峰期的期間,我可能有很多業(yè)務(wù)的慢查詢(xún),甚至有一些慢查詢(xún)帶來(lái)的性能的問(wèn)題。系統(tǒng)我如何監(jiān)控在歷史某個(gè)時(shí)刻出現(xiàn)的問(wèn)題?比如說(shuō)我那么我們發(fā)起自動(dòng)化巡檢方案的時(shí)候,我是比如是上午8點(diǎn)鐘發(fā)起,其實(shí)上午8點(diǎn)鐘是我的,適逢業(yè)務(wù)低峰期,此時(shí)是發(fā)現(xiàn)不了問(wèn)題的,所以我們需要對(duì)歷史上的指標(biāo)做進(jìn)行分析。
方案中具體看一下我們有分析的哪些指標(biāo),我們從哪些維度進(jìn)行分析。我們包括檢測(cè)前臺(tái)連通性如何,我們、確認(rèn)告警有沒(méi)有正確的發(fā)送到客戶(hù)手中,我們看一下實(shí)例的復(fù)制方式。我們的TDSQL有幾種實(shí)例的復(fù)制方式,有強(qiáng)同步,有異步,也有同IDC異步、跨IDC強(qiáng)同步的復(fù)制方式。其實(shí)我們?cè)趶?fù)制方式之間又很多的選項(xiàng),比如說(shuō)我們強(qiáng)同步有可推化的選項(xiàng),其實(shí)當(dāng)強(qiáng)同步發(fā)生了可推化以后,他其實(shí)是一個(gè)潛在的風(fēng)險(xiǎn),我們要把這種潛在的風(fēng)險(xiǎn)弄出來(lái)。還有實(shí)例免切節(jié)點(diǎn),當(dāng)發(fā)生主備切換的時(shí)候,會(huì)產(chǎn)生一個(gè)免切節(jié)點(diǎn),如果有這個(gè)免切節(jié)點(diǎn)的話(huà),我們就知道之前歷史上發(fā)生過(guò)主備切換,會(huì)阻止接下來(lái)的自動(dòng)主備切換方式等,影響我們整個(gè)集群的高可用性。
慢查詢(xún)是很多性能問(wèn)題,甚至是一些線(xiàn)網(wǎng)問(wèn)題比較常見(jiàn)的原因,備延遲,HDFS使用率,還有告警策略對(duì)比。其實(shí)監(jiān)控主要分為兩個(gè)方面:
第一個(gè)是監(jiān)控指標(biāo)的采集、上報(bào)、搜集,這是我們的監(jiān)控中心在管負(fù)責(zé)。除了我們拿到這個(gè)監(jiān)控的數(shù)據(jù),我們要對(duì)這個(gè)。
第二是對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行分析,我們對(duì)我們,并對(duì)認(rèn)為異常的分析進(jìn)行告警,其實(shí)在這些。分析和告警下,就會(huì)有一個(gè)過(guò)程中會(huì)遵循一定的策略的問(wèn)題,我們認(rèn)為——怎樣的監(jiān)控?cái)?shù)據(jù)才是異常的,才有必要告出來(lái)告警的?當(dāng)然我前們TDSQL維護(hù)了一套私有云的告警模板。我們,也給客戶(hù)提供了一些可配置的、定制化的選項(xiàng),客戶(hù)可以根據(jù)自己的實(shí)際情況進(jìn)行告警策略的修改;同時(shí)提供基于實(shí)踐經(jīng)驗(yàn)積累的告警策略對(duì)比,以防用戶(hù)做出不合理的修改,暴露告警策略的潛在風(fēng)險(xiǎn)。
在這個(gè)維度,TDSQL多源同步等模塊可以對(duì)數(shù)據(jù)同步情況進(jìn)行監(jiān)控,他們當(dāng)前同步的穩(wěn)定性、同步的性能如何,等其他就是各個(gè)模塊的告警的監(jiān)控指標(biāo)。但是為了以防客戶(hù)誤操作或者不合理的修改,我們?cè)谶@邊也會(huì)對(duì)告警策略進(jìn)行對(duì)比,將一些明顯不合理或者極為不合理的改動(dòng)暴露出來(lái),提示給客戶(hù),告訴客戶(hù)這條告警策略什么時(shí)候被改過(guò),我們建議這邊告警策略是有風(fēng)險(xiǎn)的。
還有我們?cè)赥DSQL的同步方式上會(huì)有監(jiān)控,DCN的同步和多源同步的監(jiān)控,他們當(dāng)前的同步的穩(wěn)定性、同步的性能如何,其他就是各個(gè)模塊的告警的監(jiān)控指標(biāo)。第一個(gè)維度就是我們說(shuō)的從監(jiān)控?cái)?shù)據(jù)的角度來(lái)進(jìn)行分析,第二個(gè)維度相當(dāng)于是對(duì)第一個(gè)維度的補(bǔ)充,第二個(gè)維度就比較多,我們首先分析的是機(jī)器級(jí)的,我們不是采的監(jiān)控?cái)?shù)據(jù),是直接真刀訪問(wèn)服務(wù)器后臺(tái),我們會(huì)對(duì)機(jī)器基的LO、CPU、內(nèi)存、磁盤(pán)、穩(wěn)定性這些進(jìn)行檢測(cè)。穩(wěn)定性就表現(xiàn)在有一些服務(wù)器可能是一些老服務(wù)器,比如說(shuō)已經(jīng)運(yùn)行五年了,我們要告知客戶(hù)運(yùn)行五年的機(jī)器可能有風(fēng)險(xiǎn),還有一些機(jī)器可能會(huì)經(jīng)常重寫(xiě),我們告訴客戶(hù)從各種信息里面看這臺(tái)服務(wù)器本身的穩(wěn)定性是有問(wèn)題的。我們從進(jìn)程級(jí)去考慮,我們關(guān)鍵要看的是進(jìn)程本身的情況,一般進(jìn)程是有守護(hù)進(jìn)程和工作工程組成的,工作進(jìn)程是否是正常的,守護(hù)進(jìn)程是否是正常的,當(dāng)前進(jìn)程開(kāi)通的端口是否可以正常的訪問(wèn)。除了進(jìn)程本身的問(wèn)題,還要看一下關(guān)鍵進(jìn)程的配置文件的問(wèn)題,其實(shí)很多的配置文件關(guān)系到我們整個(gè)TDSQL集群的可用性。
2. 集群環(huán)境
還有我們?cè)赥DSQL的同步方式上會(huì)有監(jiān)控,DCN的同步和多源同步的監(jiān)控,他們當(dāng)前的同步的穩(wěn)定性、同步的性能如何,其他就是各個(gè)模塊的告警的監(jiān)控指標(biāo)。第一個(gè)維度就是我們說(shuō)的從監(jiān)控?cái)?shù)據(jù)的角度來(lái)進(jìn)行分析,第二個(gè)維度相當(dāng)于是對(duì)第一個(gè)維度的補(bǔ)充。第二個(gè)維度就比較多,我們首先分析的是的分析是機(jī)器級(jí)的,我們不是通過(guò)采的監(jiān)控?cái)?shù)據(jù),是直接真刀訪問(wèn)服務(wù)器后臺(tái),我們會(huì)對(duì)機(jī)器級(jí)基的LIO、CPU、內(nèi)存、磁盤(pán)、穩(wěn)定性這些等進(jìn)行檢測(cè)。穩(wěn)定性就表現(xiàn)在有一些服務(wù)器可能是一些老服務(wù)器,比如說(shuō)已經(jīng)運(yùn)行五年了,我們要告知客戶(hù)運(yùn)行五年的機(jī)器可能有風(fēng)險(xiǎn),還有一些機(jī)器可能會(huì)經(jīng)常重寫(xiě),我們告訴客戶(hù)從各種信息里面看這臺(tái)服務(wù)器本身的穩(wěn)定性是有問(wèn)題的。我們從進(jìn)程級(jí)去考慮,我們關(guān)鍵要看的是進(jìn)程本身的情況,一般進(jìn)程是有守護(hù)進(jìn)程和工作工程組成的,工作進(jìn)程是否是正常的,守護(hù)進(jìn)程是否是正常的,當(dāng)前進(jìn)程開(kāi)通的端口是否可以正常的訪問(wèn)。除了進(jìn)程本身的問(wèn)題,還要看一下關(guān)鍵進(jìn)程的配置文件的問(wèn)題,其實(shí)很多的配置文件關(guān)系到我們整個(gè)TDSQL集群的可用性。
我們會(huì)對(duì)一些關(guān)鍵的進(jìn)程進(jìn)行掃描,防止客戶(hù)手動(dòng)的誤改或者人為的刪除修改一些關(guān)鍵配置錯(cuò)改、誤改。除了機(jī)器級(jí)和進(jìn)程級(jí),我們還會(huì)進(jìn)行實(shí)例級(jí)進(jìn)行一的些定制化的掃描,其實(shí)這個(gè)就體現(xiàn)在實(shí)例的體檢模塊。之前我們的課程也有分享過(guò)扁鵲的工具,實(shí)例的體檢就是TDSQL智能診斷分析平臺(tái)“扁鵲”工具的接口,可以為實(shí)例提供他會(huì)給我們從一個(gè)實(shí)例,從運(yùn)營(yíng)、開(kāi)發(fā)、性能等各個(gè)指標(biāo)做一些的系統(tǒng)性的分析。第四個(gè)維度是
集群級(jí)層面,我們會(huì)關(guān)注從低到高,最高就是集群性的維度,在集群性的維度下我們要關(guān)注的問(wèn)題,這個(gè)集群各個(gè)機(jī)器之間是否是同步的,時(shí)間是否是同步的,TDSQL是要求各個(gè)機(jī)器要時(shí)間同步。還有、實(shí)例下源元數(shù)據(jù)集群是否是有備份的,他、的備份是否是正常的,以及我們這邊會(huì)手工觸發(fā)此時(shí)此刻的源數(shù)據(jù)集群的備份。我們會(huì)在四個(gè)維度對(duì)第一個(gè)監(jiān)控項(xiàng)從四個(gè)方面做一個(gè)補(bǔ)充的掃描等。
3. 自動(dòng)化演練
在我們以各個(gè)維度去掃描當(dāng)前集群沒(méi)有問(wèn)題的情況下,我們還是要從結(jié)果出發(fā)TDSQL還會(huì)從結(jié)果出發(fā),我們會(huì)對(duì)整個(gè)集群做一次P0級(jí)別(最高級(jí)別)的自動(dòng)化的演練,演練的場(chǎng)景就是我們正常運(yùn)營(yíng)和管理的場(chǎng)景。比如說(shuō),包括購(gòu)買(mǎi)實(shí)例、創(chuàng)建用戶(hù)、用戶(hù)授權(quán)、創(chuàng)建庫(kù)表,在這個(gè)庫(kù)表上做一些表結(jié)構(gòu)的變更。在這個(gè)實(shí)例上我們會(huì)做一些、水平的擴(kuò)容,做一些、垂直的擴(kuò)容,把他擴(kuò)到不同的機(jī)器上,還會(huì)做一些、重做備機(jī),模擬一些重做備機(jī)的場(chǎng)景,還有、慢查詢(xún)?nèi)霂?kù),是否慢查詢(xún),我們可以在制度的分析頁(yè)面上可以入庫(kù),還有、備份和回檔,我們會(huì)模擬把當(dāng)年的實(shí)例做一次手動(dòng)的備份,并且拿這個(gè)備份是否能回檔到之前我們備份的點(diǎn)以及保證整個(gè)回檔和備份的過(guò)程,他的數(shù)據(jù)是一致的等。最后我們系統(tǒng)會(huì)對(duì)購(gòu)買(mǎi)的實(shí)例進(jìn)行刪除,他其實(shí)實(shí)現(xiàn)了閉環(huán),對(duì)P0級(jí)別的場(chǎng)景做了進(jìn)行閉環(huán)的自動(dòng)化的演練。
總結(jié)來(lái)說(shuō),TDSQL自動(dòng)化巡檢方案 我們從這三個(gè)方面,從我們的指標(biāo)級(jí),從補(bǔ)充到整個(gè)集群環(huán)境的進(jìn)行掃描,以及我們的通過(guò)自動(dòng)化演練,這三個(gè)維度確保我們整個(gè)交付的集群是安全、穩(wěn)定、可靠、高可用OK的,并且會(huì)生成一個(gè)我們的質(zhì)量報(bào)告到客戶(hù)以及我們TDSQL的產(chǎn)品研發(fā)團(tuán)隊(duì)去參考。
除了我們TDSQL的質(zhì)量保證除了技術(shù)上的保障方案,我們還會(huì)做一些產(chǎn)品化的TDSQL同時(shí)沉淀了大量產(chǎn)品化工作,幫助用戶(hù)快速、方便地使用分布式數(shù)據(jù)庫(kù)。
比如說(shuō)當(dāng)我們的客戶(hù)從0到1,他是完全的交付。從交付以后從1到多的話(huà),就是運(yùn)營(yíng)和使用的過(guò)程了。在這些交付和運(yùn)營(yíng)的過(guò)程中,我們又會(huì)帶來(lái)很多的問(wèn)題,比如說(shuō)怎么交付?剛才我們只是講了一些交付的特點(diǎn),交付的概念,怎么去操作呢?其實(shí)我們也會(huì)做一些產(chǎn)品化的文檔的輸出。第一個(gè)文檔就是我們大部分的交付、運(yùn)營(yíng)在我們TDSQL的產(chǎn)品文檔上,他還包括我們的巡檢,剛才我們說(shuō)的自動(dòng)化巡檢的方案,還有故障處理。當(dāng)遇到一個(gè)告警和故障,我們?cè)趺礃尤ヌ幚?,怎么樣解讀這個(gè)故障還有一些前臺(tái)的操作指導(dǎo),我們告警的異常解讀,我們的日常變更擴(kuò)容等等,他是在我們的產(chǎn)品文檔上。如果我們想做一些POC的測(cè)試,我們要對(duì)一些場(chǎng)景進(jìn)行適配的話(huà),可能要考慮到業(yè)務(wù)側(cè)的開(kāi)發(fā)問(wèn)題,我們有輸出TDSQL最佳實(shí)踐的開(kāi)發(fā)指南。還有對(duì)標(biāo)準(zhǔn)化測(cè)試這樣的情況下我們輸出我們POC的用例,提供了性能的用例、功能用例、高可用容災(zāi)用例。
我們也會(huì)對(duì)客戶(hù)的信息進(jìn)行定期的維護(hù),首先我們會(huì)對(duì)客戶(hù)定期發(fā)起一個(gè)集群的巡檢,通過(guò)這個(gè)巡檢我們可以保證客戶(hù)當(dāng)前以及歷史一段時(shí)間內(nèi),客戶(hù)的環(huán)境是沒(méi)有問(wèn)題的。剛才也說(shuō)了巡檢主要進(jìn)行功能性和容災(zāi)性的演練。通過(guò)自動(dòng)的我們的定期的巡檢,會(huì)搜集到客戶(hù)的環(huán)境和版本信息,我們會(huì)把這些信息更新到我們的客戶(hù)管理系統(tǒng)中,更新的信息是用來(lái)之后做客戶(hù)私有云的版本推送。在我們的管理系統(tǒng)內(nèi)部會(huì)自動(dòng)進(jìn)行掃描客戶(hù)當(dāng)前的版本,如果我們掃描到有建議客戶(hù)要升級(jí)的版本,我們則會(huì)自動(dòng)推送到客戶(hù)代表,然后由客戶(hù)代表推送推動(dòng)客戶(hù)升級(jí)。
最后是跟我們客戶(hù)最后,在客戶(hù)日常運(yùn)營(yíng)、日常變更相關(guān)的中,可能大部分運(yùn)營(yíng)面臨的大部分問(wèn)題是怎么去擴(kuò)容、升級(jí)、處理告警?怎么擴(kuò)容?我們TDSQL會(huì)對(duì)各個(gè)節(jié)點(diǎn)的擴(kuò)容有一個(gè)提供了自動(dòng)化的擴(kuò)容方案,可以一鍵的擴(kuò)容。同樣升級(jí)也是提供了前臺(tái)化一鍵操作的功,功能,既可以進(jìn)行點(diǎn)對(duì)點(diǎn)的升級(jí),也可以進(jìn)行整個(gè)集群的批量升級(jí),這個(gè)也是我們有一個(gè)前臺(tái)化的升級(jí)工具。TDSQL的高可用性一方面在于自身的彈性架構(gòu)和容災(zāi)能力,以及數(shù)據(jù)強(qiáng)一致性。
可用性方面TDSQL提供了自動(dòng)化告警處理方案告警其實(shí)TDSQL的可用性一方面在于他自身的架構(gòu)和容災(zāi)能力,在于他的強(qiáng)濃度告一致的特性,還有我們的監(jiān)控系統(tǒng)。在我們的監(jiān)控系統(tǒng)中難免會(huì)產(chǎn)生告警的問(wèn)題,告警問(wèn)題處理及時(shí)與否,處理的方式其實(shí)是影響到我們TDSQL集群的可用性。其實(shí)在這個(gè)問(wèn)題上,我們自身也是做了很多探索,我們既要平衡客戶(hù)實(shí)際的告警處理、告警解讀的工作量,也要幫助客戶(hù)保證整個(gè)集群的質(zhì)量。我們這邊提出了一個(gè)自動(dòng)化告警分析,將一部分的告警可以自動(dòng)化的處理,減少客戶(hù)自己線(xiàn)網(wǎng)運(yùn)行的工作量,可實(shí)現(xiàn)自動(dòng)化告警分析,并對(duì)部分告警自動(dòng)處理,減少現(xiàn)網(wǎng)運(yùn)營(yíng)的工作量
。
剛才我們是以上我們以交付為核心介紹了我們TDSQL在歷史過(guò)程中遇到的幾個(gè)交付上的挑戰(zhàn),和針對(duì)這些交付挑戰(zhàn),我們提出的了我們自動(dòng)化的交付方案,這些交付方案的特性是什么,我們?nèi)绾瓮瓿晌覀兊慕桓?,我們?cè)谶@個(gè)交付上可以使用的特性,他的兼容性場(chǎng)景有哪些。以及最后我們對(duì)整個(gè)TDSQL標(biāo)準(zhǔn)化交付的質(zhì)量和客戶(hù)的服務(wù)進(jìn)行了提供了一系列的機(jī)制和能力的提升機(jī)制和能力方面的提升,關(guān)于更多我們TDSQL的細(xì)節(jié),可以關(guān)注我們TDSQL數(shù)據(jù)庫(kù)公眾號(hào),我們?cè)谶@個(gè)公眾號(hào)會(huì)有一些定期的推送文章跟大家分享。
PartⅤ
Q&A
Q:TDSQL支持?jǐn)?shù)據(jù)庫(kù)離線(xiàn)備份嗎?
A:我們TDSQL支持多種備份方式。我們,可以基于物理式的(56:22)的備份,也可以基于邏輯備份。但是我們備份的介質(zhì)是備份到HDFS或者掛載式的存儲(chǔ)上。整個(gè)備份過(guò)程其實(shí)是在備機(jī)上進(jìn)行備份,備份是,不會(huì)影響到我們正常的業(yè)務(wù)訪問(wèn),也不會(huì)對(duì)業(yè)務(wù)訪問(wèn)的性能帶來(lái)影響。
Q:
TDSQL的告警信息如何接入短信、語(yǔ)音、郵件告警平臺(tái)?
A:我們TDSQL的告警接入是比較靈活的,首先我們TDSQL的告警信息是一個(gè)文本的形式,他可以發(fā)送到任何的平臺(tái),我們當(dāng)前已經(jīng)適配過(guò)的客戶(hù)已經(jīng)適配過(guò)的告警接入方式有很多,比如說(shuō)客戶(hù)有HTTP接口的告警平臺(tái),也有一些其他接口的。其實(shí)我們只要根據(jù)我們的指引手冊(cè),把我們的告警信息以你根據(jù)客戶(hù)想要的接口,比如說(shuō)HTP,我們就發(fā)一個(gè)HPT的TDSQL可以對(duì)應(yīng)地發(fā)一個(gè)包,包含了我們的告警信息,發(fā)到你的告警接收平臺(tái)就可以了。怎么樣告警的接受介質(zhì)?其實(shí)短信、語(yǔ)音、郵件,這個(gè)還是由每個(gè)客戶(hù)自身的告警平臺(tái)的能力有影響,比如說(shuō)自身客戶(hù)已經(jīng)有了一個(gè)微信的告警接收的平臺(tái),此時(shí)我們TDSQL是接入到客戶(hù)微信的告警接收平臺(tái),對(duì)于不同的告警接收平臺(tái),TDSQL我們自身針對(duì)不同的語(yǔ)音、短信和郵件分別做了不同的告警信息發(fā)送。
特惠體驗(yàn)云數(shù)據(jù)庫(kù)
↓↓更多驚喜優(yōu)惠請(qǐng)點(diǎn)這兒~
https://cloud.tencent.com/act/pro/MySQLtry?fromSource=gwzcw.3180840.3180840.3180840&utm_medium=cpc&utm_id=gwzcw.3180840.3180840.3180840
本文名稱(chēng):直播回顧|TDSQL的交付-創(chuàng)新互聯(lián)
文章位置:http://jinyejixie.com/article36/ccposg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、定制開(kāi)發(fā)、小程序開(kāi)發(fā)、外貿(mào)建站、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)