您的位置:首頁>科技>正文

從七年的軟體發展轉型為DBA,17年資料庫老司機的經驗分享

2012 年, 正值 P2P 火遍中國的時候, 宜信做為中國首家 P2P 平臺, 已經在這個領域耕耘了 6 年。 2015 年美國時間 12 月 18 日上午 9 點 30 分, 宜信公司旗下線上 P2P 網貸平臺宜人貸正式登陸美國紐交所, 成為國內互聯網金融登陸海外市場的第一股。

宜信創建於 2006 年, 總部位於北京, 是一家從事普惠金融和財富管理事業的金融科技企業, 在支付、網貸、眾籌、機器人投顧、智慧保險、區塊鏈等前沿領域積極佈局, 通過業務孵化和產業投資參與全球金融科技創新, 公司創始人兼 CEO 是唐寧。

以下內容是記者對宜信技術研發中心資料庫架構師韓鋒的採訪。

第一次見到韓鋒的時候, 他的穿著很隨意, 這也是大多數 IT 人員的常態。 1999 年畢業的他, 在 IT 圈裡已經算是一個老兵了。

在職業發展初期, 他一直從事軟體發展工作, 後來逐步對資料庫產生了濃厚的興趣。 在工作後的第七年, 韓鋒做出了一個決定,

從軟體發展轉型為 DBA。

從最開始的資料庫基礎運維開始, 到後面的優化、設計、架構。 現在主要精力是從事與資料相關的架構、開發、管理工作。

17 年的 IT 生涯, 他經歷過傳統軟體發展商、通訊類外企、互聯網企業、電商平臺等多種類型公司。 對他而言, 豐富的職業經歷, 使他收益頗多。 不僅僅是技術上, 更多的是綜合能力的提升。

除此之外, 他還常活躍於各種技術社區。 作為一個技術佈道者, 他也非常願意將技術傳播給更多的人。 閒暇之餘, 他還筆耕不輟, 將自己多年的心得彙集成書。

宜信的 IT 轉型之路

韓鋒介紹說, 宜信作為一家金融科技企業, 技術的重要性不言而喻。 目前公司 IT 基礎設施及資料庫等等, 正處於如下階段:

基礎設施的發展,

走過了物理機、虛擬機器、容器化到雲化的過程。

硬體平臺上, 計算層是以 X86 為主, 存儲層逐步放棄使用商業存儲, 改為分散式的解決方案, 部分場景下也使用了超融合架構。

資料庫方面, 主要以 MySQL、MongoDB、Redis 為主。

大資料方面, 使用了 Hive、HBase、ES、Spark、Storm、Impala、Kafka 等。

針對雲戰略層面, 公司有自己的一些規劃, 目前仍以私有雲為主, 只將部分業務放在了公有雲上, 但僅限於少量的非核心業務。 宜信也在籌畫自己的金融雲戰略。

對於超融合技術, 使用目的是為了提高宜信上線服務的效率。 超融合可以提供很好的彈性, 但其性價比並不高, 且在彈性達到一定的規模後, 會受到限制。 在特定非發展階段, 如果中小型公司想快速擴張業務, 用超融合還是比較合適的。

在資料庫方面,

公司越來越多業務考慮用開來源資料庫解決方案, 特別是 MySQL, 也包括一些 Redis、MongoDB 等 NoSQL 方案。

對於大資料領域, 從早期傳統的資料分析報表, 到 BI 分析、資料採擷、機器學習等等, 宜信正在不斷摸索實踐, 探索在金融領域如何提供更好的服務。 旗下宜人貸的“極速模式”, 正是風控模型在大資料領域的成功實踐。

資料庫遷移的啟示

作為資料庫的一個老兵, 韓鋒經歷了很多很多。 他特意強調, 資料是企業的命脈, 資料庫的重要性如何強調都不過分。

他以一次資料庫遷移為例, 向我們說明了 DBA 工作的不容易及給我們帶來的種種啟示:

詳細的技術方案。 在整個遷移過程中, 最消耗精力的是梳理整個遷移流程:包括制定規範、遷移流程,

跟所有相關部門核對方案。

實施計畫。 具體到實施計畫要盡可能的詳細、完善。 例如, 有很多應用會連接到資料庫, 但有些 IP 位址並不在登記資訊範圍內。

因此, 在遷移準備期就需要注意排查。 這一工作是非常消耗精力的, 也表明先前工作存在不完善的地方。

部門合作。 與相關部門核對遷移方案、做好溝通、協調工作。

做好預案。 在遷移前, 團隊做了很多的預案, 包括正常遷移流程, 以及出現問題後備用的遷移流程, 以及備用的回退方案。

在正式遷移前, 團隊大概一周演練一次, 前前後後演練了四五遍, 每次都是半夜去演練。

演練完之後立即做好記錄, 包括它的操作步驟, 一步一步地去細化, 最終形成了一本厚厚的遷移文檔。 最後,真正遷移的時基本上不用敲命令,只需把腳本粘過來就可以了。

資料管理方法論

韓鋒再次強調,在過去,專利、技術或者運營模式是企業的命脈,而未來資料也是企業的命脈之一,如果企業沒有掌握資料只能被動發展,所以資料管理就顯得尤為重要了。

對公司而言,資料不僅僅只保存在資料庫中,它可以存在不同的地方,以各種形態存在。它可能是一個檔,可能是多使用者上傳的資料片、圖片,還可能是使用者的一些語音。這些資料不僅它的位置是分散的,形態是不一的,價值也是不一樣的。

面對紛繁複雜的資料,如何進行資料管理呢?

首先,企業管理者要對資料高度重視。

其次要做的是對資料進行摸底,瞭解它們在哪裡,存在的形式,以及價值。

最後才能涉及到資料管理問題。

常見的管理方法主要分為三類:

自上而下。傳統的企業,銀行、證券、金融類往往會這麼做。即成立一個類似於建模室或者資料模型部門這樣的組織,然後會有專業的人説明他們做模型設計,做規範。

這樣的辦法對資料的控制力度會很大,但是,會有些不靈活,而且人力投入過高。

自下而上。像很多互聯網公司,通常會有自己的一套系統,針對業務模式自下而上進行管理。

從中間出發。也有些公司,從開發入手,引進一些建模工具,通過它往上推出業務模式,往下構建物理模型。

以上這些方法放到宜信中都會有問題。宜信不像傳統企業,它的發展速度比較快,所以會有大量的業務需要變動,用自上而下就行不通。

而自下而上大都用於單一業務系統,這些是基於資料倉庫的,而宜信的資料倉庫沒有統一,很多開發宜信是不建模的,所以從中間做資料建模也很難。

目前,他正摸索一種適合宜信發展的資料管理方式,從大方向考慮,會選擇從下而上的方法去做。出發點把公司內部資料中共用的、非獨有的拿過來,然後再去收集各自領域的資料,最終逐步形成統一的資料視圖。

DevOps 在宜信資料庫的應用

韓鋒將 DevOps 在宜信的應用階段,簡化為“四化工程”。所謂“四化工程”,是指如下四個層次。很多企業的 DevOps 實施中,也都大致經歷了類似的四個階段。

第一階段

“文檔/標準化”階段:這一階段,往往是企業經過了初期的“人肉”模式後,隨著規模的擴大,運維遇到很多問題。

因此,原有的手工操作被逐步規範下來,形成操作標準,並通過文檔化的步驟,將標準沉澱下來。後續操作,人員只需要遵循文檔即可。通過這種方式保證了運維的品質,提升了回應效率。

第二階段

“腳本/工具化”階段:儘管在第一階段,實現了指定標準文檔化,但運維工作仍然需要大量人工成本。當運維量進一步增大後,如何減少手工操作,加快運維效率就成為重點。

因此,在這個階段,將文檔化的標準操作,通過腳本或者工具的形式固化下來,可以大幅提升運維效率。

第三階段

“自動/平臺化”階段:雖然通過工具腳本是可以完成運維工作,但仍然需要人工觸發。為完成某一具體運維場景,往往需要人工執行一系列的腳本或工具調用,這也耗費了大量人工成本。

為了進一步提升效率,考慮引入平臺自動化。通過梳理運維工作,將一系列工具、腳本整合到統一的平臺中,即可完成整個運維操作,甚至可與監控等系統聯動,實現自動化運維動作。

第四階段

“智慧/雲化”階段:這一階段更多是從運維智慧性及資源提供的形態角度出發。在自動運維的基礎上,通過引入智慧分析能力,可預測故障發生,主動採取運維動作。可評估整體資源使用,更合理地分配使用資源等等。

至於雲化,由於是將基礎設施抽象出來,在運維層面能提供更大的靈活度,可更好的滿足業務快速發展及最大化成本收益。

大資料已經不是新興技術了

他說,大資料已經不是新興技術了,所謂的大資料是什麼?

韓鋒認為,大資料是指在某一個階段所面臨的資料無法處理,把一種新的處理方式取名叫大資料技術,但是,對我們來說它只不過是一個資料處理技術。而大和不大,會隨時間而不斷變化,今天的大可能明天就不大了。

此外,很多的資料庫越來越偏重於大資料,大資料也在向資料庫學習。傳統資料庫裡面有一些大資料的技術,大資料也會被鑲嵌到資料庫裡面。

傳統資料庫積累了三、四十年,對資料的精確掌控程度遠遠超過大資料平臺,從單位生產效率來說,大資料平臺要低於傳統資料平臺。

所以現在大資料平臺要學什麼?要學優化系統怎麼做,學更精准地找到資料,發現資料。

最後,他認為,資料庫只是一個資料的存在形態,資料可存放在庫裡,也可以是大資料平臺,也有可能是其他形態。

新的硬體技術、大資料、人工智慧、雲計算會為資料庫的發展提供一種可能性。但是未來,它究竟發展成什麼樣,現在就很難下定論了。

另外還有一點可以通過自身的學習來獲取一大進步。

分享給超過5萬的程式師朋友下載,這次我把所有資料重新梳理精簡,免費分享給大家 。

究竟有哪些乾貨呢?先給你們一個目錄:

免費領取資料途徑:公眾平臺 “程式師語錄"

最後,真正遷移的時基本上不用敲命令,只需把腳本粘過來就可以了。

資料管理方法論

韓鋒再次強調,在過去,專利、技術或者運營模式是企業的命脈,而未來資料也是企業的命脈之一,如果企業沒有掌握資料只能被動發展,所以資料管理就顯得尤為重要了。

對公司而言,資料不僅僅只保存在資料庫中,它可以存在不同的地方,以各種形態存在。它可能是一個檔,可能是多使用者上傳的資料片、圖片,還可能是使用者的一些語音。這些資料不僅它的位置是分散的,形態是不一的,價值也是不一樣的。

面對紛繁複雜的資料,如何進行資料管理呢?

首先,企業管理者要對資料高度重視。

其次要做的是對資料進行摸底,瞭解它們在哪裡,存在的形式,以及價值。

最後才能涉及到資料管理問題。

常見的管理方法主要分為三類:

自上而下。傳統的企業,銀行、證券、金融類往往會這麼做。即成立一個類似於建模室或者資料模型部門這樣的組織,然後會有專業的人説明他們做模型設計,做規範。

這樣的辦法對資料的控制力度會很大,但是,會有些不靈活,而且人力投入過高。

自下而上。像很多互聯網公司,通常會有自己的一套系統,針對業務模式自下而上進行管理。

從中間出發。也有些公司,從開發入手,引進一些建模工具,通過它往上推出業務模式,往下構建物理模型。

以上這些方法放到宜信中都會有問題。宜信不像傳統企業,它的發展速度比較快,所以會有大量的業務需要變動,用自上而下就行不通。

而自下而上大都用於單一業務系統,這些是基於資料倉庫的,而宜信的資料倉庫沒有統一,很多開發宜信是不建模的,所以從中間做資料建模也很難。

目前,他正摸索一種適合宜信發展的資料管理方式,從大方向考慮,會選擇從下而上的方法去做。出發點把公司內部資料中共用的、非獨有的拿過來,然後再去收集各自領域的資料,最終逐步形成統一的資料視圖。

DevOps 在宜信資料庫的應用

韓鋒將 DevOps 在宜信的應用階段,簡化為“四化工程”。所謂“四化工程”,是指如下四個層次。很多企業的 DevOps 實施中,也都大致經歷了類似的四個階段。

第一階段

“文檔/標準化”階段:這一階段,往往是企業經過了初期的“人肉”模式後,隨著規模的擴大,運維遇到很多問題。

因此,原有的手工操作被逐步規範下來,形成操作標準,並通過文檔化的步驟,將標準沉澱下來。後續操作,人員只需要遵循文檔即可。通過這種方式保證了運維的品質,提升了回應效率。

第二階段

“腳本/工具化”階段:儘管在第一階段,實現了指定標準文檔化,但運維工作仍然需要大量人工成本。當運維量進一步增大後,如何減少手工操作,加快運維效率就成為重點。

因此,在這個階段,將文檔化的標準操作,通過腳本或者工具的形式固化下來,可以大幅提升運維效率。

第三階段

“自動/平臺化”階段:雖然通過工具腳本是可以完成運維工作,但仍然需要人工觸發。為完成某一具體運維場景,往往需要人工執行一系列的腳本或工具調用,這也耗費了大量人工成本。

為了進一步提升效率,考慮引入平臺自動化。通過梳理運維工作,將一系列工具、腳本整合到統一的平臺中,即可完成整個運維操作,甚至可與監控等系統聯動,實現自動化運維動作。

第四階段

“智慧/雲化”階段:這一階段更多是從運維智慧性及資源提供的形態角度出發。在自動運維的基礎上,通過引入智慧分析能力,可預測故障發生,主動採取運維動作。可評估整體資源使用,更合理地分配使用資源等等。

至於雲化,由於是將基礎設施抽象出來,在運維層面能提供更大的靈活度,可更好的滿足業務快速發展及最大化成本收益。

大資料已經不是新興技術了

他說,大資料已經不是新興技術了,所謂的大資料是什麼?

韓鋒認為,大資料是指在某一個階段所面臨的資料無法處理,把一種新的處理方式取名叫大資料技術,但是,對我們來說它只不過是一個資料處理技術。而大和不大,會隨時間而不斷變化,今天的大可能明天就不大了。

此外,很多的資料庫越來越偏重於大資料,大資料也在向資料庫學習。傳統資料庫裡面有一些大資料的技術,大資料也會被鑲嵌到資料庫裡面。

傳統資料庫積累了三、四十年,對資料的精確掌控程度遠遠超過大資料平臺,從單位生產效率來說,大資料平臺要低於傳統資料平臺。

所以現在大資料平臺要學什麼?要學優化系統怎麼做,學更精准地找到資料,發現資料。

最後,他認為,資料庫只是一個資料的存在形態,資料可存放在庫裡,也可以是大資料平臺,也有可能是其他形態。

新的硬體技術、大資料、人工智慧、雲計算會為資料庫的發展提供一種可能性。但是未來,它究竟發展成什麼樣,現在就很難下定論了。

另外還有一點可以通過自身的學習來獲取一大進步。

分享給超過5萬的程式師朋友下載,這次我把所有資料重新梳理精簡,免費分享給大家 。

究竟有哪些乾貨呢?先給你們一個目錄:

免費領取資料途徑:公眾平臺 “程式師語錄"

Next Article
喜欢就按个赞吧!!!
点击关闭提示