從程序員的盡頭是業務説起

語言: CN / TW / HK

我感覺今日頭條挺牛的,最近總是給我推送一些編程方面的文章,特別是和C/C++相關的,前陣子還給我推送過幾篇數據庫方面的文章,居然還是PostgreSQL相關的。我從來沒有在今日頭條裏閲讀過類似的文章,不知道這種推送是哪來的?是今日頭條在窺視我的微信聊天記錄呢還是它從網上搜羅到的我的PROFILE中分析出來的。反正是十分可怕,人的隱私已經基本被剝奪的差不多了,而且我們也無能為力。

今天今日頭條推送的文章是挺JAVA,貶C/C++的,雖然寫的不怎麼樣,不過有一句話挺不錯的,那就是“程序員的盡頭是業務”,大體意思是編程語言在功能、性能上的差異越來越小了,用什麼語言編程並不重要,程序員的終極追求目標是業務。

和DBA圈子裏滿是某種數據庫的擁躉,充滿了對異種數據庫的鄙視一樣,碼農的圈子也充滿了各種語言之間的鄙視鏈。不過不管你用何種語言來編寫程序,如果你對業務的理解不深,那麼你也只能是一個初哥,成不了大家。

數據庫運維要更復雜一些,掌握數據庫運維的技術,技能要比掌握一門編程語言要複雜的多,因此在DBA圈子裏並不存在“DBA的盡頭是業務”的説法,雖然這些年這種説法在DBA圈子裏也越來越多了,不過這些觀點大多數來自於互聯網企業。可能我上了點歲數,有些保守了,我甚至有一個觀點是我們很多傳統行業企業的數據庫與數據庫應用正在被互聯網公司帶到一條歪路上去了。傳統企業的業務很難完全互聯網化,因為業務不是完全互聯網化的,因此IT系統也不可能是完全互聯網化的。另外互聯網企業在IT上的巨大投入,也不是傳統企業能夠學的來的。如果我們的高層領導瞭解了互聯網企業在IT投入上的數額和佔比,恐怕就不會整天對IT部門抱怨,你們怎麼不好好學學互聯網企業?我認識的一個企業的IT主管就是因為領導整天嘮叨這句話,有一天摟不住了,就頂了一句:“那你倒是給我互聯網企業的IT投入啊”。那個領導情商很高,聽到這句話,立馬就終止了討論,並沒有去深究互聯網企業的IT投入是個什麼情況。

對於一些管理核心業務系統的,整天盯着幾套關鍵系統看着的DBA來説,“DBA的盡頭是業務”這句話似乎是捱得上邊的,如果DBA不能對核心業務有所瞭解,那麼想要做好運維也是十分困難的。這種企業的DBA可能比研發人員更熟悉系統種的數據架構,一些數據的特徵,增長率,變更率等情況。只有這樣,才能更好的管理好數據庫。有些優化、升級、調整工作,也必須根據業務的發展情況進行分析,才能得出比較準確的結論。前陣子有個客户的一套核心系統,對於交易的延時要求越來越高,RAC的GCS/GES等待會給每個核心交易帶來差不多10%的延時。因此他們通過對業務的分析,以及每個數據庫節點承擔的交易量,得出一個結論,如果拆掉RAC,採用HA方式來實現高可用,那麼單個節點完全可以承受未來五年的業務增長,而核心交易時間可以節約10多個毫秒。不管他們的方案是否正確,DBA做到這種地步,對業務的理解不夠深入肯定是幹不了的。

在另外一個極端,大多數DBA可能一輩子都不瞭解業務,不理解業務的細節。這些DBA也活得好好的,並沒有失業的壓力。他們只需要掌握數據庫運維的關鍵技術,瞭解一點點自己管理的系統的業務特徵就可以了。現在有些企業動則數千套系統,上萬個數據庫的運維規模,DBA能知道存在這麼一套數據庫就已經挺不錯了,就不要説理解每個數據庫後面的業務了。

所以説,DBA領域並不存在“DBA的盡頭是業務”這一説法。DBA是企業IT運行支撐中的一個重要的獨立環節,獨立到社麼程度呢?系統不出問題的時候,甚至很可能會被領導和同事遺忘;不過系統有活要加班的時候,好像哪個活都得找上你,好悲催的DBA。