自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

“去IOE”激戰(zhàn)9年:深度揭秘OceanBase如何異軍突起

云計(jì)算 開發(fā)工具
作為螞蟻金服自研的分布式關(guān)系型數(shù)據(jù)庫,OceanBase 從 2008 年阿里提出“去IOE”想法,到 2017 年螞蟻金服全面實(shí)現(xiàn)“去IOE”,經(jīng)歷過許多難以想象的磨礪,也創(chuàng)下了許多影響國內(nèi)外的成就。

近十年,隨著云計(jì)算帶來的變革,傳統(tǒng)的 IOE 架構(gòu)對(duì)于企業(yè)運(yùn)營成本的影響以及對(duì)未來業(yè)務(wù)發(fā)展的制約逐漸加劇。

[[226338]]

尤其是互聯(lián)網(wǎng)的大規(guī)模、高并發(fā)、實(shí)時(shí)在線、大型網(wǎng)絡(luò)優(yōu)化等新興需求,使得為傳統(tǒng) IT 環(huán)境設(shè)計(jì)的 Oracle 數(shù)據(jù)庫越來越難以處理互聯(lián)網(wǎng)公司愈加大規(guī)模的數(shù)據(jù)量。

因此,面向超大規(guī)模互聯(lián)網(wǎng)公司的分布式計(jì)算環(huán)境而重新開發(fā)的關(guān)系型數(shù)據(jù)庫 OceanBase 應(yīng)運(yùn)而生。

作為螞蟻金服自研的分布式關(guān)系型數(shù)據(jù)庫,OceanBase 從 2008 年阿里提出“去IOE”想法,到 2017 年螞蟻金服全面實(shí)現(xiàn)“去IOE”,經(jīng)歷過許多難以想象的磨礪,也創(chuàng)下了許多影響國內(nèi)外的成就。

本文將深入 OceanBase,回溯其研發(fā)過程與研發(fā)方法論。

研發(fā)故事:軟件、硬件、業(yè)務(wù)一體化

以下僅摘選幾個(gè)典型案例作為說明:

結(jié)合業(yè)務(wù),整體優(yōu)化軟硬件

螞蟻金服基礎(chǔ)數(shù)據(jù)部(OceanBase 團(tuán)隊(duì))負(fù)責(zé) SQL 相關(guān)方向開發(fā)工作的陳萌萌介紹說,以前數(shù)據(jù)庫技術(shù)更多偏向軟件層,硬件層有專業(yè)人員、專業(yè)技術(shù)和專業(yè)的公司來解決硬件本身的穩(wěn)定性或容災(zāi)等問題。

但是在螞蟻金服這邊更多是軟硬結(jié)合的方案,OceanBase 軟件從設(shè)計(jì)之初就考慮了硬件層面不穩(wěn)定、分布式系統(tǒng)的特征,從而去做以前數(shù)據(jù)庫不會(huì)做的優(yōu)化工作。

以前的數(shù)據(jù)庫優(yōu)化根本不會(huì)考慮到底層的硬件損壞、機(jī)器宕掉、網(wǎng)絡(luò)斷網(wǎng)、天災(zāi)人禍不確定性問題,而今天 OceanBase 無時(shí)無刻不在考慮這些問題。

“以前做軟件開發(fā),先假設(shè)底層的硬件沒有問題,而只需要把上層軟件邏輯做好就行了,現(xiàn)在我們是整體的軟硬件考慮。”

以數(shù)據(jù)庫的查詢優(yōu)化技術(shù)來講,比如傳統(tǒng)的銀行柜臺(tái),通過人工窗口提供服務(wù),用戶的主要時(shí)間花在與人工窗口打交道等方面,對(duì)于數(shù)據(jù)庫的快慢體會(huì)不那么敏感。

但螞蟻金服是互聯(lián)網(wǎng)應(yīng)用,數(shù)據(jù)庫隨時(shí)的一個(gè)抖動(dòng)或查詢執(zhí)行時(shí)間變慢了一點(diǎn),用戶馬上就能直接感受到。

這與傳統(tǒng)應(yīng)用場(chǎng)景差異很大,如果數(shù)據(jù)庫的一個(gè)查詢從一毫秒變到了五毫秒,傳統(tǒng)數(shù)據(jù)庫不會(huì)認(rèn)為這是件大事。

但是互聯(lián)網(wǎng)應(yīng)用下,多出來的四毫秒可能被放大成為幾百毫秒甚至一兩秒,一旦出現(xiàn)這樣的時(shí)延,用戶體驗(yàn)馬上就變差了。

“我們每天都在做特別精細(xì)的事情,生怕一毫秒變成五毫秒這種事情出現(xiàn),因此做了很多精確防御。”

螞蟻金服基礎(chǔ)數(shù)據(jù)部(OceanBase 團(tuán)隊(duì))研究員楊傳輝進(jìn)一步解釋:數(shù)據(jù)庫查詢優(yōu)化器本身是近似解,基本上不存在最優(yōu)解,優(yōu)化的目標(biāo)就是逼近最理想的情況。

在傳統(tǒng)應(yīng)用場(chǎng)景下可以允許優(yōu)化結(jié)果差幾個(gè)毫秒甚至更多,但是在互聯(lián)網(wǎng)場(chǎng)景下就很難接受這么大的差異,所有的優(yōu)化效果都要精確到幾個(gè)毫秒以內(nèi)。

例如:每一次在支付寶付款,點(diǎn)擊一下付款按鈕,背后的數(shù)據(jù)庫可能要執(zhí)行一兩百次數(shù)據(jù)庫的 SQL 查詢,優(yōu)化器要為每一個(gè)查詢生成一個(gè)需要做的優(yōu)化執(zhí)行計(jì)劃。

如果優(yōu)化器在某一個(gè)場(chǎng)景下犯了一個(gè)錯(cuò)誤,每個(gè)查詢多出了 5 毫秒,那么整個(gè)鏈路就會(huì)多 500 毫秒,用戶在按下付款按鈕的時(shí)候發(fā)現(xiàn)交互速度有可能變慢了。

如果再加上可能不止做支付——比如買商品后下單再要支付——這幾個(gè)鏈路加在一起就有可能慢幾百毫秒甚至上到秒級(jí),這對(duì)用戶來說就已經(jīng)不能接受了。

還有地鐵的刷臉或者刷支付寶進(jìn)站的場(chǎng)景。如果用戶站在閘機(jī)前面半天刷不出來,那就不光是體驗(yàn)問題了,有可能會(huì)引來連鎖麻煩,后面人也會(huì)被堵起長龍。這些現(xiàn)實(shí)的挑戰(zhàn)都要求 OceanBase 反應(yīng)精確、迅速。

楊傳輝告訴我們,從關(guān)鍵業(yè)務(wù)系統(tǒng)的數(shù)據(jù)鏈路梳理上來看,一兩百條 SQL 是最普通的一次交易了,如果涉及到支付渠道不一樣,SQL 執(zhí)行的次數(shù)就會(huì)更多。

因?yàn)槲浵伣鸱旧硎欠植际降南到y(tǒng),所面臨一個(gè)很大的挑戰(zhàn)是對(duì)底層的基礎(chǔ)組件包括網(wǎng)絡(luò)要求非常高。

如果網(wǎng)絡(luò)出現(xiàn)了問題,就會(huì)對(duì)整個(gè)服務(wù)產(chǎn)生影響。因此 OceanBase 不僅要對(duì)數(shù)據(jù)庫層做優(yōu)化,還對(duì)網(wǎng)絡(luò)、磁盤、操作系統(tǒng)等軟硬件層都要做很精確的優(yōu)化。

那么 OceanBase 是怎么解決的呢?OceanBase 團(tuán)隊(duì)從業(yè)務(wù)的開始階段就會(huì)介入到業(yè)務(wù)的設(shè)計(jì)當(dāng)中:業(yè)務(wù)怎么用數(shù)據(jù)庫、怎么用最合理等等,從一開始就會(huì)參與整體設(shè)計(jì),與業(yè)務(wù)方和整個(gè)架構(gòu)一起演進(jìn)。

螞蟻金服基礎(chǔ)數(shù)據(jù)部(OceanBase 團(tuán)隊(duì))SQL 組負(fù)責(zé)人蔣志勇從事 SQL 引擎和優(yōu)化器工作,為 OceanBase 從無到有地建立了自己的 SQL 引擎,特別是讓原先的 MySQL 應(yīng)用不改動(dòng)任何代碼就能遷移過來。

在數(shù)據(jù)庫的兼容性方面,OceanBase 做到了對(duì) MySQL 的兼容,螞蟻金服的內(nèi)部業(yè)務(wù)從 MySQL 數(shù)據(jù)庫遷到 OceanBase,不需要任何改動(dòng)。

在優(yōu)化器方面,涉及到的系統(tǒng)統(tǒng)計(jì)信息收集,是與螞蟻金服的業(yè)務(wù)體系架構(gòu)結(jié)合起來,設(shè)計(jì)了一個(gè)動(dòng)靜分離的架構(gòu):白天把統(tǒng)計(jì)信息都存儲(chǔ)到內(nèi)存中,每天到業(yè)務(wù)低谷的時(shí)候再從內(nèi)存寫到磁盤上。

而不是像其他數(shù)據(jù)庫那樣直接寫到磁盤上,導(dǎo)致收集系統(tǒng)統(tǒng)計(jì)信息慢且不全面;也不像內(nèi)存數(shù)據(jù)庫那樣全采用高成本的內(nèi)存來存儲(chǔ)統(tǒng)計(jì)信息。

OceanBase 的這種準(zhǔn)內(nèi)存數(shù)據(jù)庫設(shè)計(jì)方式,既滿足了 SQL 查詢需要實(shí)時(shí)收集更全面系統(tǒng)統(tǒng)計(jì)信息的需求,也讓整體的信息收集成本沒有額外開銷。

OceanBase 還在 SQL 語句搜索優(yōu)化方面進(jìn)行了精細(xì)化的調(diào)節(jié)。由于是完全自研的數(shù)據(jù)庫,對(duì)于 Join 連接查詢算法可以靈活適配多種算法,而在其他數(shù)據(jù)庫中則由于已經(jīng)限制可選范圍而無法做到更精細(xì)的優(yōu)化。

“我們?cè)谒阉鳁l件的改寫上面做了巧妙的設(shè)計(jì),結(jié)果就是有更廣的可選擇范圍。而其他數(shù)據(jù)庫則只能在一個(gè)很窄的范圍內(nèi)選擇最優(yōu)策略,因此 OceanBase 的搜索結(jié)果更優(yōu)。”蔣志勇說。

因?yàn)橐嫒?MySQL,OceanBase 團(tuán)隊(duì)也精研了 MySQL,對(duì) MySQL 進(jìn)行了大量調(diào)優(yōu)工作。

在這個(gè)過程中,OceanBase 團(tuán)隊(duì)發(fā)現(xiàn)了 MySQL 的幾百個(gè)問題,向 MySQL 開源社區(qū)匯報(bào)后得到了確認(rèn)。

諸如 MySQL 對(duì)不同路徑執(zhí)行出來的結(jié)果都不一樣、MySQL 的語義不是非常完整等等,都是 OceanBase 團(tuán)隊(duì)在使用 MySQL 中發(fā)現(xiàn)的問題。

特別是由于阿里巴巴和螞蟻金服的業(yè)務(wù)規(guī)模日益擴(kuò)大,經(jīng)常會(huì)踩到各種技術(shù)的極限門檻。

OceanBase 團(tuán)隊(duì)就曾經(jīng)在開發(fā) MySQL 接口驅(qū)動(dòng)程序時(shí),通過業(yè)務(wù)排查發(fā)現(xiàn)某個(gè)事務(wù)已經(jīng)回滾但數(shù)據(jù)還是被提交進(jìn)入了數(shù)據(jù)庫,導(dǎo)致會(huì)出現(xiàn)轉(zhuǎn)賬已經(jīng)取消,但錢還是被轉(zhuǎn)走了的現(xiàn)象。

團(tuán)隊(duì)排查了很久,終于發(fā)現(xiàn)是由于 MySQL 客戶端的一個(gè)變量設(shè)置本身有問題,但這種問題只有在極限條件下才有可能出現(xiàn),屬于小概率事件。

而 OceanBase 團(tuán)隊(duì)就是這樣逐一排除小概率事件,最終走向了通用型產(chǎn)品的道路。

通用型產(chǎn)品與場(chǎng)景化產(chǎn)品最大的區(qū)別在于通用型產(chǎn)品能夠適配絕大多數(shù)場(chǎng)景,而場(chǎng)景化產(chǎn)品則只能適配單一的場(chǎng)景。

螞蟻金服基礎(chǔ)數(shù)據(jù)部(OceanBase 團(tuán)隊(duì))架構(gòu)師馮柯表示,這就是商業(yè)數(shù)據(jù)庫最強(qiáng)的地方——能夠匹配絕大多數(shù)的場(chǎng)景。

也許商業(yè)數(shù)據(jù)庫的技術(shù)不是最強(qiáng)的,但價(jià)格那么貴還能有用戶買,就說明商業(yè)數(shù)據(jù)庫的總體擁有成本更低,一個(gè)產(chǎn)品就能適配大多數(shù)場(chǎng)景。

而能夠適配絕大多數(shù)場(chǎng)景,就說明已經(jīng)把能踩的坑幾乎都踩過了,今天 OceanBase 也在經(jīng)歷同樣的過程。

Linux 觸 Bug,團(tuán)隊(duì)險(xiǎn)解散

OceanBase 踩過的另一個(gè)坑,也是在極限情況下才會(huì)出現(xiàn)的 Linux 系統(tǒng) Bug。

OceanBase 本身是在 Linux 和 C 語言基礎(chǔ)上開發(fā)的分布式數(shù)據(jù)庫系統(tǒng)。2010 年到 2011 年,OceanBase 團(tuán)隊(duì)在支持淘寶收藏夾業(yè)務(wù)。

在 2011 年雙十一的時(shí)候,遇到了穩(wěn)定性的問題:當(dāng)時(shí)的 Linux 有一個(gè)直接訪問 IO 的特性,這個(gè)特性出現(xiàn)了 Bug,而且是在極限條件下才會(huì)被觸發(fā)的 Bug。

楊傳輝回憶,當(dāng)時(shí)距離 2014 年雙十一還有不到一個(gè)月的時(shí)間,是一個(gè)周五出現(xiàn)的問題,導(dǎo)致淘寶收藏夾一天之內(nèi)連續(xù)宕機(jī)三次、每次一個(gè)小時(shí)左右,每次宕機(jī)后恢復(fù)收藏夾的流量。

一旦訪問量超過一定量就又觸發(fā)了 Linux 內(nèi)核的 Bug,導(dǎo)致再次宕機(jī),直到周五晚上 8、9 點(diǎn)后,淘寶訪問用戶變少,才恢復(fù)了運(yùn)轉(zhuǎn)。

由于當(dāng)時(shí)的開發(fā)團(tuán)隊(duì)主要集中在北京,因此第二天周六一早,所有團(tuán)隊(duì)成員搭第一班飛機(jī)從北京飛到杭州來解決問題。

“當(dāng)時(shí)的氣氛很緊張,如果這個(gè)問題解決不了, OceanBase 團(tuán)隊(duì)當(dāng)時(shí)就會(huì)解散。”楊傳輝回憶當(dāng)時(shí)的情況。

而且在解決問題的時(shí)候,負(fù)責(zé)寫代碼的程序員的壓力也很大,后面有兩三個(gè)在盯著到底怎么寫代碼。

“當(dāng)時(shí)也并不確定這么做就一定能解決問題,只是覺得有 70%-80% 的概率能解決問題,后來還真解決了這個(gè)問題。”

“阿里巴巴/螞蟻金服的系統(tǒng)發(fā)展太快、一直在變,OceanBase 也一直在開發(fā)新功能,又要支持線上業(yè)務(wù),而雙十一的爆發(fā)可能會(huì)是平常流量的十倍。像 Linux 內(nèi)核 Bug 這樣的問題,如果只是平常流量的一兩倍,是根本不會(huì)觸發(fā)的,它只有在爆發(fā)十倍的時(shí)候才會(huì)出現(xiàn)。所以我們特別緊張,也沒有時(shí)間讓我們仔細(xì)去分析、慢吞吞地解決問題。當(dāng)問題來的時(shí)候,所有人加班解決,就是這樣。”楊傳輝說。

在挫折和失敗中成長

馮柯回憶說,他加入 OceanBase 后第一件事是做診斷監(jiān)控,當(dāng)時(shí)沒有人愿意做這件事,因?yàn)樽钪饕且较到y(tǒng)中埋點(diǎn)。

大家都認(rèn)可這件事很重要,但沒有人愿意去做,因?yàn)樗婕暗剿心K,是一件非常吃力不討好的事情。自己當(dāng)時(shí)選擇做的原因,是因?yàn)檫@對(duì)業(yè)務(wù)來說非常重要,是必須要做的事情。

在此過程中碰到了很多挫折、出了很多問題。例如:OceanBase 診斷監(jiān)控功能剛上線的時(shí)候,有 N 個(gè)人去看監(jiān)控就會(huì)得出 N 種不同的結(jié)論。

“大家覺得這個(gè)功能完全不能用,覺得做得很爛,所以當(dāng)時(shí)參加的同學(xué)很沮喪,覺得沒有被承認(rèn)”。

馮柯當(dāng)時(shí)鼓勵(lì)團(tuán)隊(duì),“別人對(duì)你批評(píng)最多的時(shí)候,其實(shí)是你進(jìn)步最快的時(shí)候。你的產(chǎn)品能夠獲得更多資源,能夠被更多的人認(rèn)識(shí)到,這其實(shí)是非常好的。那個(gè)時(shí)候的觸動(dòng)確實(shí)很大。”

OceanBase 是一個(gè)一邊在業(yè)務(wù)中“討生活”,一邊尋找機(jī)會(huì)發(fā)展壯大自己的過程。在“討生活”的過程中,OceanBase 也會(huì)不得以做出妥協(xié)。

楊傳輝回憶 2010 年的 OceanBase 版本有一個(gè)比較大的缺陷,就是設(shè)計(jì)了單點(diǎn)寫入。

當(dāng)時(shí)所有寫入數(shù)據(jù)全都放在一臺(tái)機(jī)器上,這個(gè)版本可擴(kuò)展能力比較差,本質(zhì)上只能做垂直擴(kuò)展而沒有辦法做水平擴(kuò)展。

另外,因?yàn)槊總€(gè)寫入都要經(jīng)過那個(gè)節(jié)點(diǎn),最后整個(gè)性能也相對(duì)更差,數(shù)據(jù)庫的功能也受限。

這是 OceanBase 早期的版本,當(dāng)時(shí)團(tuán)隊(duì)的數(shù)據(jù)庫經(jīng)驗(yàn)沒有那么豐富,也沒有時(shí)間做長期的開發(fā)。

直到 2015 年重新設(shè)計(jì)開發(fā)的 1.0 版本才是真正面向云時(shí)代的分布式數(shù)據(jù)庫。

這個(gè)期間,OceanBase 團(tuán)隊(duì)也從各個(gè)渠道引進(jìn)數(shù)據(jù)庫人才,最終實(shí)現(xiàn)了數(shù)據(jù)庫的重構(gòu)。

OceanBase 經(jīng)歷的失敗還有很多。楊傳輝回憶,OceanBase 在 2012 年 11 月份轉(zhuǎn)到螞蟻金服到 2014 年實(shí)現(xiàn)了交易系統(tǒng),這之間的 2013 年其實(shí)在從事淘寶的庫存項(xiàng)目而不是交易系統(tǒng)。

當(dāng)時(shí),OceanBase 團(tuán)隊(duì)看到庫存的數(shù)據(jù)庫問題也是一大挑戰(zhàn),這就像賣火車票系統(tǒng)的挑戰(zhàn)本質(zhì)上也是減庫存問題——如果有兩人同時(shí)并發(fā)減庫存,就會(huì)亂掉。

當(dāng)時(shí)淘寶的 MySQL 團(tuán)隊(duì)也在做這個(gè)事情,最終業(yè)務(wù)部門選擇了 MySQL 的方案,就是因?yàn)闃I(yè)務(wù)團(tuán)隊(duì)當(dāng)時(shí)覺得用 MySQL 更放心。

“就這一個(gè)原因,也沒有其他的點(diǎn),最后沒有選擇 OceanBase,我們相當(dāng)于那一年白干,整個(gè)團(tuán)隊(duì)白干。但因?yàn)檫@個(gè)鋪墊,我們下一個(gè)交易系統(tǒng)真的做成了。”

研發(fā)方法論:發(fā)現(xiàn)問題、定義問題、解決問題

總結(jié) OceanBase 的開發(fā)過程,總會(huì)試圖尋找一些研發(fā)方法論,就像微軟的軟件開發(fā)“三駕馬車”那樣的方法論。但我們其實(shí)更多的時(shí)候是與運(yùn)維、業(yè)務(wù)團(tuán)隊(duì)等一起在定義問題。

我們會(huì)看到一些問題、找到真正要解決的問題是什么,然后幫助用戶定義這個(gè)問題。

在定義問題時(shí),有時(shí)候我們會(huì)開一個(gè)會(huì),分析某問題是由數(shù)據(jù)庫團(tuán)隊(duì)解決、還是由業(yè)務(wù)團(tuán)隊(duì)解決,而在開會(huì)之前可能大家都不知道最后要達(dá)到什么樣的效果。很多時(shí)候我們?cè)谧鲞@些不確定的事情。

OceanBase 本身就是一個(gè)沒有先例可參考的分布式數(shù)據(jù)庫。團(tuán)隊(duì)的主干成員陽振坤此前在百度帶領(lǐng)分布式技術(shù)團(tuán)隊(duì)時(shí)積累了豐富經(jīng)驗(yàn),也從谷歌吸收了很多分布式技術(shù)的思想。

但當(dāng)后來試圖把分布式架構(gòu)與關(guān)系型數(shù)據(jù)庫結(jié)合在一起的時(shí)候,就再也沒有先人的經(jīng)驗(yàn),而只能靠團(tuán)隊(duì)自己琢磨。

雖然 OceanBase 到目前為止還沒有發(fā)表過論文、還是在做業(yè)務(wù),但楊傳輝回憶 OceanBase 中有很多是別人沒有想過的方法,可能做一個(gè)新的方案要想好久,要思考半年到一年后再?zèng)Q定去做。

在具體開發(fā)的執(zhí)行過程中,測(cè)試是很重要的工作。分布式系統(tǒng)的異常處理很容易出錯(cuò),平常機(jī)器不出故障,到上線業(yè)務(wù)突然出一個(gè)故障時(shí),可能就是一個(gè)大故障,而這種異常處理的測(cè)試比較難。

OceanBase 有容災(zāi)模擬框架,就是隨時(shí)把一臺(tái)機(jī)器殺死,而這樣的容災(zāi)測(cè)試隨時(shí)在運(yùn)行。

另外,對(duì)于并發(fā)處理的測(cè)試,即某個(gè)條件的達(dá)成可能突然觸發(fā)兩個(gè)線程的先后順序或一個(gè)變量的訪問順序出錯(cuò)。OceanBase 也是隨時(shí)在模擬這樣的場(chǎng)景,讓這樣的小概率事件盡早出現(xiàn)。

在開發(fā)的過程中,OceanBase 通常是一個(gè)人寫出來的代碼,要另外一個(gè)人去讀和審查,通過的代碼才會(huì)提交。

團(tuán)隊(duì)還寫了很多自動(dòng)測(cè)試用的框架,開發(fā)人員要自己做單元測(cè)試和一部分的功能測(cè)試,集成測(cè)試則由專門的人來完成。OceanBase 的測(cè)試人員很少只有幾個(gè)人,大部分的測(cè)試都是靠自動(dòng)化完成。

因?yàn)?OceanBase 是軟件、硬件和業(yè)務(wù)集成在一起的整體優(yōu)化,而當(dāng)軟件、硬件和業(yè)務(wù)碰到一起的時(shí)候,經(jīng)常會(huì)出現(xiàn)各種碎片化的小場(chǎng)景問題,那么又是怎么解決的呢?

陳萌萌介紹說,當(dāng)遇到這樣的場(chǎng)景時(shí),就會(huì)提前把大家拉到一個(gè)群里,把需求丟到群中,技術(shù)團(tuán)隊(duì)根據(jù)需求提供反饋建議,業(yè)務(wù)團(tuán)隊(duì)也會(huì)反饋在試驗(yàn)中遇到的問題。

這些碎片化的場(chǎng)景和問題,很難區(qū)分到是軟件、硬件還是業(yè)務(wù)的問題,因此群里有運(yùn)維、開發(fā)、業(yè)務(wù)甚至還有負(fù)責(zé)業(yè)務(wù)拓展的 BD 和負(fù)責(zé)產(chǎn)品的 PD,只要需要關(guān)注的人員都可以進(jìn)到群里。

每個(gè)人有負(fù)責(zé)的業(yè)務(wù)或技術(shù)方向,空閑的時(shí)間就會(huì)把群里的來龍去脈都過一遍。

有些群是按需找人,在群里被 @ 了就肯定會(huì)關(guān)注這些消息,如果沒有被 @,就會(huì)找不是特別緊急時(shí)候再把群里的消息過一遍。

雖然群很多,但是真正過群消息的時(shí)候,幾分鐘時(shí)間還是能夠把過去幾天的消息都過一遍。這樣總是能區(qū)分哪些是需要第一時(shí)間響應(yīng)的,哪些可以后續(xù)持續(xù)關(guān)注的。

一般 OceanBase 團(tuán)隊(duì)的工作時(shí)間是早 9 點(diǎn)到晚 9 點(diǎn) 12 個(gè)小時(shí),但也有大促的“雙十一”、“6.18”、春節(jié)紅包壓測(cè)等緊急情況。

當(dāng)然,隨著 OceanBase 的發(fā)展,需要處理緊急事件的情況在減少。陳萌萌回憶,以前跟著業(yè)務(wù)團(tuán)隊(duì)壓測(cè)到凌晨,甚至說半夜被揪起來的情況,會(huì)經(jīng)常發(fā)生。

“我記得經(jīng)歷過很多故障都挺戲劇化的。因?yàn)橐坏┏霈F(xiàn)一些問題以后,各方面的人都會(huì)被半夜拉起來,大家臨時(shí)被拉到一個(gè)群里面,誰也不知道當(dāng)時(shí)發(fā)生了什么。但是每個(gè)人可能有一部分的信息,大家很快把各自的信息扔到群里面,這樣就對(duì)出來到底發(fā)生了什么。每個(gè)人都有點(diǎn)膽戰(zhàn)心驚,生怕自己做的那部分導(dǎo)致了什么問題。”

陳萌萌回憶說:“我記得有一次故障,半夜 11 點(diǎn)說有一個(gè)問題需要大家上線去看,一幫人包括主管都上線看問題,一直到凌晨四五點(diǎn)。一開始大家都在,慢慢發(fā)現(xiàn)問題越來越聚焦,相關(guān)的人員就上來,一直到凌晨四五點(diǎn)才解決問題。中間大家在群里面各種排查信息分析,提出各種建議,雖然沒有坐在一起,但就像關(guān)在一個(gè)屋子里面開了連夜的戰(zhàn)斗會(huì)一樣。”

陳萌萌總結(jié)了阿里這種獨(dú)特的技術(shù)討論群解決問題的過程:“這是一個(gè)不停過濾信息再分析的過程。如果一開始不掌握所有信息,誰也總結(jié)不了。對(duì)完信息后,有人發(fā)現(xiàn)說某個(gè)地方需要關(guān)注,別的人再把相關(guān)信息加過來,慢慢連成一個(gè)邏輯。當(dāng)你回頭再看群里消息的時(shí)候,這個(gè)現(xiàn)象特別明顯。信息一開始是散的,然后慢慢才能達(dá)成一致,最后走下去。”

當(dāng)然,群里也會(huì)有熟悉各種“疑難雜癥”的“老中醫(yī)”,一般是經(jīng)驗(yàn)比較豐富的人員,見到的問題也比較多。

所以別人可能還在猜測(cè)的時(shí)候,“老中醫(yī)”就會(huì)給一個(gè)很靠譜的可能性,沿著這個(gè)可能性去看的話,發(fā)現(xiàn)確實(shí)可以通過這個(gè)角度去挖掘解決問題的方案。

然而,即使討論出了可能的解決方案,“大家還是挺膽戰(zhàn)心驚的,敲命令都是讓專門負(fù)責(zé)運(yùn)維的人員去敲,這個(gè)時(shí)候的關(guān)鍵在于手不抖、別敲錯(cuò),因?yàn)槿f一敲錯(cuò)了那就是二次故障。所以我們都會(huì)找一個(gè)心理素質(zhì)好的同事操作,大家誰也不要吱聲,看著這個(gè)同事安靜地把命令敲完。”

因?yàn)椴还芡ㄟ^群里的討論,選擇一條最保險(xiǎn)最靠譜的操作方式,但在系統(tǒng)里面直接敲命令都有可能直接動(dòng)數(shù)據(jù),敲錯(cuò)一個(gè)鍵就有可能把所有數(shù)據(jù)都刪了,這是沒法挽回的,“所有人在操作的時(shí)候都不敢出氣”。

當(dāng)然,每次處理完故障后,也會(huì)復(fù)盤找到以后的解決方案,最后形成知識(shí)庫也就是應(yīng)急預(yù)案再固化到程序里,通過程序防止下一個(gè)錯(cuò)誤。

整個(gè) OceanBase 并沒有一個(gè)統(tǒng)一的產(chǎn)品經(jīng)理,因?yàn)?OceanBase 的功能列表是對(duì)標(biāo)商業(yè)數(shù)據(jù)庫。

但還是會(huì)有產(chǎn)品開發(fā)的規(guī)劃,通常以財(cái)年為單位、雙十一為重要節(jié)點(diǎn),比如某個(gè)版本必須要在下一個(gè)雙十一之前做出來并且穩(wěn)定運(yùn)行,再通過雙十一檢驗(yàn)。“保持這樣一個(gè)節(jié)奏”,蔣志勇補(bǔ)充。

未來展望:用時(shí)間歷練、用現(xiàn)實(shí)考驗(yàn)

蔣志勇強(qiáng)調(diào),數(shù)據(jù)庫產(chǎn)品化需要時(shí)間去歷練,如果抱著投機(jī)的心態(tài)參與就很難實(shí)現(xiàn)。

螞蟻金服最大的優(yōu)勢(shì)是業(yè)務(wù)場(chǎng)景非常豐富,讓 OceanBase 在服務(wù)外部客戶之前,就在內(nèi)部得到充分鍛煉,而這些鍛煉很難通過外部用戶去獲得。

從 2017 年開始,OceanBase 跟隨整個(gè)螞蟻金服的金融科技開放,開始了向傳統(tǒng)金融賦能的實(shí)踐過程。

負(fù)責(zé) OceanBase 外部業(yè)務(wù)的馮柯表示:“分布式是 OceanBase 的亮點(diǎn),但最重要的是 OceanBase 是按照產(chǎn)品的思維而不是單純解決業(yè)務(wù)的問題,未來肯定是要到外部發(fā)展。”

如今,OceanBase 已從金融級(jí)分布式關(guān)系數(shù)據(jù)庫服務(wù)為起點(diǎn),邁出了商用的一小步。

承受住時(shí)間的歷練和現(xiàn)實(shí)的考驗(yàn)后,團(tuán)隊(duì)有信心將 OceanBase 從一個(gè)軟件變成一款通用產(chǎn)品。

作者:吳寧川

簡(jiǎn)介:“云科技時(shí)代”創(chuàng)始人。職業(yè)生涯起步于《中國計(jì)算機(jī)報(bào)》,曾任副主編一職。采訪過 Oracle 全球 CEO、VMWare 全球 CEO、ARM 全球 CEO、亞馬遜云全球 CTO、微軟全球研究院院長、華為 CIO、京東 CTO、IBM 大中華區(qū)董事長、阿里云 CEO等高管。

責(zé)任編輯:武曉燕 來源: DBAplus社群
相關(guān)推薦

2021-05-02 22:19:46

以太坊比特幣加密貨幣

2021-11-30 09:06:27

安卓系統(tǒng)汽車

2022-10-30 22:11:44

2017-07-13 12:46:23

互聯(lián)網(wǎng)教育AI

2015-05-27 15:27:53

KVMPowerKVM

2018-04-04 15:23:00

人工智能教育信息時(shí)代

2013-08-22 09:41:52

阿里巴巴去IOE王堅(jiān)

2020-11-21 12:51:04

快手廣告短視頻

2015-12-03 18:17:59

2020-11-13 12:40:50

谷歌

2013-09-29 09:07:43

EMC閃存大數(shù)據(jù)

2014-07-09 13:48:08

去IOE浪潮

2013-11-13 10:32:56

大數(shù)據(jù)數(shù)據(jù)中心行業(yè)

2010-08-23 15:57:28

互聯(lián)網(wǎng)

2014-11-11 14:31:07

應(yīng)用交付/地鋪科技

2013-10-10 15:35:37

IOE

2022-05-05 11:13:30

Telegram加密

2015-08-13 14:21:58

云計(jì)算阿里云Alphabet

2010-06-09 12:31:10

世界杯網(wǎng)絡(luò)安全

2012-07-06 09:03:35

PaaS平臺(tái)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)