為什麼我們用的係統這麼爛?誰的鍋?
作者介紹
吳虞,SQL專家雲團隊成員,擅長解決SQL Server數據庫性能、高可用、負載均衡等問題。
開篇小故事
下麵的故事都是真實的,猶如雷同純屬同類,請仔細反思。
故事1:升級硬件
客戶後台數據庫存在性能問題,查詢特別慢,長時間語句很多。客戶因此而苦惱,谘詢了軟件廠商我該怎麼辦?軟件廠商給出的答案:升級硬件吧,現在的資源不能滿足了!
那麼客戶是什麼硬件配置?數據庫什麼體量?
答:128的CPU、512的內存、高端的存儲,跑了一個200G數據量的庫,好像硬件滿滿的夠用呀!
問題的根源就是最基本的大量少索引而已!
故事2:負載均衡
客戶想做數據庫的負載均衡,於是找到我們,各種方案各種高大上的說,我深深的被客戶的前衛思想洗禮了一下,畢竟傳統行業很多對數據庫性能,安全方麵的一些保障不是很完善。
前期談得很愉快,然後我去檢查客戶的現有環境,更驚奇的事情發生了,2台跑在同一個物理機上的虛擬機要做負載均衡?
合久必分,分久必合的節奏?
故事3:高配更慢?
客戶在原有64CPU、128內存的服務器進行升級變成128CPU、512內存,升級硬件也是軟件廠商建議提高服務器配置,升級完成以後客戶發現係統更慢了!這也可以?
正常的情況添加硬件資源不會出現這樣的情況,那這個客戶是為什麼呢?找了服務器的廠商各種檢測,各種報告分析,無法得知原因,最終換回原配置的服務器。
這是為什麼:該軟件廠商的程序基本是使用定製化模板,根據業務拚接,開發方便,但是後台語句條件複雜,語句龐大在數據量增大以後語句的執行變得很耗資源,也更依賴與CPU的並行,在沒有設置並行度的情況下升級硬件(添加CPU),導致並行度過高,語句執行更慢。說白了就是簡單的一個參數配置問題!
這些問題你是否有?
這樣那樣的問題到底是什麼原因呢?誰又該來改善這樣的現狀呢?
用戶的問題
在很多傳統行業裏,IT部門沒有專門的DBA,或者所謂的DBA是這樣一種角色:往往身兼數職(網管、項目管理、協調廠商、DBA、開發、應用、寫報告),既有很多協調性的管理工作,又有一些專業技術工作。這其實和網上產品經理的段子很類似。
其實也就是說用戶沒有管理好自己的數據庫,很多時候數據庫的一些運維配置都停留在軟件廠商部署時候的配置,經過幾年的業務和數據的積累這些配置可能早就不適用了。再說日常的體檢,隨著業務增長的長期規劃....好吧,那就更是沒有了!
而且更糟的是,在日常的使用過程中對數據庫還存在一些改造,比如毫無規劃的添加數據表,一些周邊功能的開發,其他方案的拚接。
所以問題慢慢地積累,慢慢地爆發。
看到這有些看官自然會想,我們購買的軟件,數據庫不應該是軟件廠商管的東西麼?為什麼我們要請DBA呢?
軟件廠商的問題
我幾年的開發經曆中就有過在軟件廠商做運維的經曆,那個時候真的是頭大,天天電話不斷今天這問題,明天那問題:業務問題,數據不一致問題,功能修改,新功能上線,無聊的會議,客戶突發奇想我還得跟著聽聽吹牛。我可以誇大點說當時在做開發沒有轉到DBA的時候,我的數據庫技能可能是整個運維團隊裏最好的:基本的調優,索引的應用,一些係統視圖的應用,指標的檢測,聽起來挺厲害了吧!
所以我就是運維中的DBA了?
現在回想起來,其實那個時候對數據庫的了解根本沒有成體係,對問題的分析也是比較片麵的。解決問題也是東一錘子西一棒子,加個索引CPU指標降下來了,語句也快起來了,認為問題解決了,其實可能並沒有。
嗬嗬,但是!在運維的時候我一天天忙得像狗一樣,客戶不反應問題,我肯定不會主動做優化做體檢,客戶反映問題了,簡單看一看能推就推,客戶急眼了,能安撫就安撫,迫不得以出手解決一下,長期積累的問題花了很長的時間,還很可能解決不了(苦笑)。
看到幾個指標高,又解決不了,那麼第一反應基本就是加硬件吧。
矛盾點
用戶不會配置專門的人幹這樣的事情,感覺都是廠商的問題,而廠商的人手技能也有限,很多軟件廠商沒有專業的數據庫人員,又不一定能做這樣的事情,最酷(苦)的就是運維人員、開發人員整天從早忙到晚連口水都喝不上,卻被打上差評的標簽。廠商在客戶麵前慢慢的失去了信服力,客戶對於遲遲不能解決的問題更是很氣憤,還想繼續收運維費用?廠商有時也很無奈,很多時候又並不是軟件的問題。
矛盾 矛盾 矛盾
扯皮 扯皮 扯皮
說說企業運維
也許是崇洋媚外,接觸過幾家國外的軟件公司他們的運維保障服務做得確實好,但價錢也確實高,反觀國內的一些軟件公司很多公司在開發階段基本是賠錢賺吆喝,而運維保障費用才是收入的開始,但是運維保障的效果確實不怎麼理想,當然如果你是大客戶給得起錢,那自然駐場工程師多多,服務周到,解決不了的問題也要死磕到天亮。
慢慢的,國內協作運維服務已經熱起來,專業的人幹專業的事兒~也許這樣的第三方運維引入可以解決上麵的問題,一部分企業已經先行嚐到了這種你好,我好,他也好的甜頭。
目前的企業運維服務已經是這個樣子了:
企業服務市場,橫向按客戶規模分為大客戶市場和中小客戶市場,縱向目前最火的三大領域分別是大數據、雲計算和運維服務市場,雲再細分為SaaS、PaaS和IaaS,這樣就構成了如下市場布局:
從運維服務產品角度來說,至少分為三層不同的能力,每一層都有各自不同的特點和要求:
-
可視化統一管理能力:從統一信息采集、監控告警到可視化運維管理能力,這個是ITOM的基礎能力,做到運維服務的統一管理和可視化;
-
自動化運維服務能力:從運維自動化的統一控製、任務編排、網絡業務開通和執行到自動化運維服務場景迭代,這是ITOM升級進化的必然之路,做到工具解放人力。
-
場景化驅動業務能力:運維產品最終要為運維服務、要為業務服務,從敏捷開發到敏捷運維,實現工具優化業務,讓運維更敏捷。
本文來自雲棲社區合作夥伴DBAplus
最後更新:2017-05-15 17:01:46