詳談云計(jì)算時(shí)代DBA角色的轉(zhuǎn)變
以往人們以為數(shù)據(jù)庫(kù)就是一個(gè)存儲(chǔ)數(shù)據(jù)的大桶,所有數(shù)據(jù)都往里面扔,而現(xiàn)在數(shù)據(jù)變得無(wú)處不在,很多數(shù)據(jù)還要同步到移動(dòng)客戶端,開(kāi)發(fā)人員的角色正悄然發(fā)生變化,他們現(xiàn)在要完成數(shù)據(jù)訪問(wèn)、數(shù)據(jù)建模、數(shù)據(jù)庫(kù)開(kāi)發(fā)等,甚至還要進(jìn)行一些系統(tǒng)管理。
不久前,不管是大型組織還是小公司,都是由數(shù)據(jù)庫(kù)專(zhuān)家處理數(shù)據(jù)驅(qū)動(dòng)的開(kāi)發(fā)任務(wù),數(shù)據(jù)庫(kù)管理員(DBA)管理多服務(wù)器環(huán)境、復(fù)制、安全和維護(hù)的。但時(shí)至今日,許多小到中型的組織都將這些任務(wù)分配給開(kāi)發(fā)人員來(lái)完成了。
加利福尼亞州OakLeaf系統(tǒng)公司的負(fù)責(zé)人Roger Jennings談到:“我在大企業(yè)一級(jí)還沒(méi)有看到那些變化,因?yàn)閺臄?shù)據(jù)安全和完整性方面考慮,DBA角色實(shí)在是太重要了,而且出于HIPAA,SOX和SEC審計(jì)的目的也是需要的,但在一些小公司中,開(kāi)發(fā)人員(特別是靈活的開(kāi)發(fā)人員)已經(jīng)接管了DBA的任務(wù)”。
科羅拉多斯普林斯Consortio Services LLC 負(fù)責(zé)人Joshua Jones 說(shuō):“這種組合的角色正在呈上升的趨勢(shì),許多公司正在嘗試雇傭更少的人做更多的事,導(dǎo)致許多具有數(shù)據(jù)庫(kù)設(shè)計(jì)能力的人離開(kāi)公司”。
“相反,有些DBA正在變成開(kāi)發(fā)人員,因?yàn)樗鼈兒芏嗑S護(hù)任務(wù)都變成自動(dòng)化的了”Jones說(shuō),它認(rèn)為只有極少數(shù)的純粹的DBA作業(yè),當(dāng)你進(jìn)入一個(gè)新的環(huán)境后一到兩個(gè)月后,基本上管理方面的任務(wù)就全部實(shí)現(xiàn)自動(dòng)化了,這時(shí)多半就開(kāi)始做一些系統(tǒng)開(kāi)發(fā)工作或重寫(xiě)存儲(chǔ)過(guò)程了。
如果開(kāi)發(fā)人員在數(shù)據(jù)建模和數(shù)據(jù)庫(kù)基礎(chǔ)方面沒(méi)有經(jīng)過(guò)適當(dāng)?shù)呐嘤?xùn),它們很可能開(kāi)發(fā)出一套無(wú)法伸縮的系統(tǒng),可能只支持特定的應(yīng)用程序版本。
Jones說(shuō):“當(dāng)我和人們?cè)谟懻撨@個(gè)領(lǐng)域時(shí),培訓(xùn)和知識(shí)庫(kù)顯得確實(shí)非常重要”,它正和越來(lái)越多的想成為DBA的開(kāi)發(fā)人員進(jìn)行互動(dòng),許多人走到我們面前說(shuō)“在公司我已經(jīng)被告知我們的職務(wù)就是DBA,但我真的不知道那意味著什么”。
如果這發(fā)生在你的開(kāi)發(fā)團(tuán)隊(duì),僅僅對(duì)ADO.NET,SQL Server Management Studio和T-SQL進(jìn)行培訓(xùn)還是不夠的,數(shù)據(jù)呈爆炸性增長(zhǎng)使系統(tǒng)變得越來(lái)越復(fù)雜,對(duì)開(kāi)發(fā)人員/DBA而言要了解這些知識(shí)和規(guī)范是一項(xiàng)不小的壯舉。
在微軟這些工作場(chǎng)所中的變化并沒(méi)有被忽視,SQL Server和相關(guān)的工具也走向更高層次的抽象和融合,以滿足更廣泛的受眾,早期的關(guān)系數(shù)據(jù)庫(kù)都是來(lái)自Ashton-Tate公司的數(shù)據(jù)庫(kù),而在企業(yè)環(huán)境中真正取得進(jìn)展的是oracle和IBM DB2數(shù)據(jù)庫(kù)。
端到端的SQL
微軟公司SQL Server數(shù)據(jù)庫(kù)產(chǎn)品管理總監(jiān)Fausto Ibarra說(shuō):“我們SQL Server的目標(biāo)不僅僅是一個(gè)數(shù)據(jù)庫(kù),我們把它看作一個(gè)數(shù)據(jù)平臺(tái),它可以管理從數(shù)據(jù)產(chǎn)生到數(shù)據(jù)歸檔整個(gè)生命周期期間的所有類(lèi)型的數(shù)據(jù),并且在任何一層實(shí)現(xiàn)-應(yīng)用層,中間層和數(shù)據(jù)層”。
除了傳統(tǒng)的查詢(xún)、報(bào)表和分析外,微軟正在SQL Server平臺(tái)上構(gòu)建服務(wù),如同步、搜索和集成。
微軟的目標(biāo)是兌現(xiàn)SQL Server平臺(tái)的可視化,根據(jù)Ibarra的說(shuō)法是“開(kāi)發(fā)人員和DBA之間的間隙正在縮小,特別是小公司,開(kāi)發(fā)人員被要求做更多的事情”。
隨著SQL Server 2008在2008年8月的發(fā)布,微軟在SQL Server Management Studio中改善了管理工具的速度和功能,并且在Visual Studio 2008和ADO.NET Entity Framework中為開(kāi)發(fā)人員提供了LINQ to SQL,在Visual Studio 2008 SP1中提供了新的對(duì)象關(guān)系映射工具。
在SQL Server 2008的高端版本中支持空間數(shù)據(jù)類(lèi)型,T-SQL合并和表值參數(shù),跨多服務(wù)器的基于策略的管理,與管理有關(guān)的數(shù)據(jù)采集和資源匯總,并提供了更好的報(bào)表和分析。
SQL Server 2008在關(guān)鍵領(lǐng)域如為移動(dòng)設(shè)備同步數(shù)據(jù)和商業(yè)智能(BI)報(bào)表及分析方面提升了抽象能力,奠定好管道和基礎(chǔ)架構(gòu)基礎(chǔ),這樣開(kāi)發(fā)人員就可以將精力集中在其它地方,如業(yè)務(wù)邏輯,微軟對(duì)SQL Server的工程方法也發(fā)生了變化,確保新的功能可以跨平臺(tái)端到端工作,包括壓縮版,工具和快速版。
下一代SQLServer(代號(hào)為Kilimanjaro)預(yù)計(jì)將在2010年上半年發(fā)布,它將會(huì)在業(yè)務(wù)分析時(shí)增加‘自助服務(wù)’式BI,這樣就降低了對(duì)IT的要求,Kilimanjaro將包括Gemini項(xiàng)目,這個(gè)項(xiàng)目被設(shè)計(jì)用來(lái)整合這些最終用戶解決方案,主要是靠SharePoint和Excel完成,微軟也有一個(gè)數(shù)據(jù)倉(cāng)庫(kù)解決方案,代號(hào)是Madison,它在SQL Server中整合了DATAllegro技術(shù)。
新角色和工具合并
微軟內(nèi)部有部分人已經(jīng)嘗試把Visual Studio和SQL Server Management Studio整合在一個(gè)工具集中,但大部分開(kāi)發(fā)人員和DBA都喜歡它們分開(kāi)使用。
Jones說(shuō)如果你同時(shí)擔(dān)任這兩個(gè)角色,那這樣的工具對(duì)你而言就太強(qiáng)大了,這樣你的開(kāi)發(fā)環(huán)境和你的管理工具只是邏輯上分離的,真正有助于你集中精力你手上的事情,可以避免你在錯(cuò)誤的服務(wù)器上干錯(cuò)誤的事情,因?yàn)槲以?jīng)見(jiàn)過(guò)核心管理員犯過(guò)這樣的錯(cuò)誤。
微軟在發(fā)布SQL Server 2005后就決定為SQL Server Management Studio采用Visual Studio shell,Ibarra說(shuō)“事實(shí)是許多開(kāi)發(fā)人員需要處理數(shù)據(jù),DBA需要搞存儲(chǔ)過(guò)程”。
在SQL Server 2008中,微軟在SQL Server Management Studio中引入了更多的Visual Studio功能,Ibarra說(shuō)“如果你正在編寫(xiě)一個(gè)存儲(chǔ)過(guò)程,你可以使用IntelliSense特性如自動(dòng)完成或數(shù)據(jù)庫(kù)對(duì)象下拉菜單,這以前通常都是在Visual Studio中開(kāi)發(fā)C#或.net應(yīng)用程序時(shí)才有的特性,現(xiàn)在DBA也可以使用類(lèi)似的功能了”。
微軟認(rèn)為可以使用數(shù)據(jù)庫(kù)版本將DBA帶到Visual Studio Team System (VSTS)套件,但這個(gè)想法并沒(méi)有實(shí)現(xiàn),DBA仍然沒(méi)有使用類(lèi)似版本控制的特性,因?yàn)橛幸粋€(gè)成本問(wèn)題,Northwest Cadence公司的培訓(xùn)顧問(wèn)Jeff Levinson這樣說(shuō),Levinson解釋到“他們喜歡傳統(tǒng)的方法,開(kāi)發(fā)人員提供了一個(gè)構(gòu)建腳本,然后發(fā)給DBA運(yùn)行”,然后他又補(bǔ)充說(shuō)“SQL Server Management Studio是Visual Studio換了一個(gè)皮膚而已,看起來(lái)有點(diǎn)不一樣,但實(shí)際上就是一個(gè)環(huán)境”。
混合開(kāi)發(fā)
雖然現(xiàn)在開(kāi)發(fā)和管理工具是分開(kāi)的,但微軟已經(jīng)宣布將會(huì)在VSTS 2010中將開(kāi)發(fā)和數(shù)據(jù)版本合并在一個(gè)IDE中,VSTS Team Foundation Server 2010將需要SQL Server 2008,主要是支持新的報(bào)表功能。
微軟的開(kāi)發(fā)工具市場(chǎng)總監(jiān)Dave Mendlen解釋說(shuō)“現(xiàn)在開(kāi)發(fā)人員的角色更混合了,同一個(gè)人既要處理程序的源代碼,也要處理數(shù)據(jù)庫(kù)了”。
盡管報(bào)告顯示微軟還在努力爭(zhēng)奪開(kāi)發(fā)版的市場(chǎng),因?yàn)榇蟛糠止δ芤呀?jīng)可用了,免費(fèi)的FxCop和單元測(cè)試現(xiàn)在也加入到Visual Studio 2008專(zhuān)業(yè)版中了,這種變化對(duì)現(xiàn)實(shí)世界中的開(kāi)發(fā)情況的確是一個(gè)好的解決辦法。
Levinson說(shuō)“我認(rèn)為微軟是第一個(gè)考慮將所有的工具整合到一起的公司”,他還說(shuō)Red Gate和Toad的工具主要是集中在數(shù)據(jù)庫(kù)開(kāi)發(fā)人員這一塊。
Levinson認(rèn)為他們不會(huì)插入任何前端代碼開(kāi)發(fā)和數(shù)據(jù)訪問(wèn),Rational工具支持前端和后端,但使用起來(lái)很困難和笨重。
Team System工具將一起都整合到一起,首先使用起來(lái)更加簡(jiǎn)單了,Levinson認(rèn)為這種變化不僅僅是工具的整合,而是更易于使用了。
紐約twentysix新技術(shù)公司的負(fù)責(zé)人Andrew Brust也認(rèn)為將這兩個(gè)工具整合到一起是個(gè)好主意,它說(shuō)“我個(gè)人認(rèn)為這是一個(gè)非常棒的團(tuán)隊(duì)套件,但有些客戶可能出于成本考慮可能只會(huì)選擇開(kāi)發(fā)版本”,這就意味著許多開(kāi)發(fā)人員錯(cuò)過(guò)了Data Dude特性。
Brust肯定地說(shuō)“混合應(yīng)用程序和數(shù)據(jù)庫(kù)開(kāi)發(fā)不是一個(gè)新的現(xiàn)象,特別是在2000-2001年技術(shù)低迷時(shí)期”。
Brust還談到‘用更少的人做更多的事’這個(gè)信條使得更多開(kāi)發(fā)人員處理DBA任務(wù),反之亦如此,這樣使得來(lái)自經(jīng)濟(jì)方面的挑戰(zhàn)就少了,無(wú)疑這是一個(gè)受歡迎的改進(jìn)。
在2008年十月下旬召開(kāi)的2008微軟開(kāi)發(fā)者大會(huì)上,最后讓VSTS 2008 Database Professional成為公司的候選者,為VSTS 2010的發(fā)布做好鋪墊。
Levinson說(shuō)“這樣做確實(shí)需要點(diǎn)雄心壯志,它已經(jīng)轉(zhuǎn)換成一個(gè)提供器模型”,IBM公司已經(jīng)宣布將以一個(gè)數(shù)據(jù)提供器支持DB2。
延伸討論
不管結(jié)合了應(yīng)用程序/數(shù)據(jù)庫(kù)開(kāi)發(fā)的角色是否容易被人接受,關(guān)于開(kāi)發(fā)人員和DBA的討論越來(lái)越激烈,Levinson完全支持開(kāi)發(fā)人員去做數(shù)據(jù)庫(kù)類(lèi)型的工作,因?yàn)閷?shí)際上他們已經(jīng)在這樣做了。他說(shuō)“我看到一些數(shù)據(jù)建模人員理解了數(shù)據(jù)和關(guān)系,但創(chuàng)建表的工作仍然是由開(kāi)發(fā)人員去完成的”。然后他又補(bǔ)充道“出于安全方面的考慮,我完全不贊同將開(kāi)發(fā)和DBA這兩個(gè)角色組合到一起,開(kāi)發(fā)人員不應(yīng)該將代碼帶出,即使他這樣做了,他也不應(yīng)該訪問(wèn)生產(chǎn)或測(cè)試環(huán)境,我們看到在一些大公司,開(kāi)發(fā)人員可以訪問(wèn)到極度私密的個(gè)人數(shù)據(jù),一旦開(kāi)發(fā)人員將這些信息帶到他們的筆記本電腦上,情況就不受控制了”。
最后Jones在DBA和開(kāi)發(fā)人員相互對(duì)抗的環(huán)境中成長(zhǎng)起來(lái)了,但這已經(jīng)超出了本文的范疇,他說(shuō)“這就象硬幣的兩面,需要明白每一面都是不可取代的,所以要理解DBA在安全方面的地位是不可動(dòng)搖的,而開(kāi)發(fā)人員在訪問(wèn)方面的地位也是不可動(dòng)搖的”。
云中的DBA何去何從
當(dāng)程序數(shù)據(jù)從企業(yè)的后端系統(tǒng)轉(zhuǎn)移到云服務(wù)如微軟的SQL Server數(shù)據(jù)服務(wù)(SSDS)時(shí)DBA的角色將會(huì)發(fā)生什么變化呢?SSDS被設(shè)計(jì)為提供數(shù)據(jù)存儲(chǔ)、查詢(xún)、可伸縮和高可用性服務(wù),微軟SQL Server產(chǎn)品總監(jiān)Fausto Ibarra說(shuō)“我們使用SSDS要做的事情是管理我們所有的客戶,但DBA角色仍然保留,在某些情況下,客戶可能在地基上使用數(shù)據(jù),也可能在云中使用,因此你需要DBA來(lái)確定數(shù)據(jù)是否是重復(fù)的,當(dāng)云中沒(méi)有數(shù)據(jù)時(shí),你也需要靠DBA將數(shù)據(jù)從地基上轉(zhuǎn)移到云中。”
目前經(jīng)濟(jì)蕭條的大環(huán)境下可能促成一些企業(yè)去了解這些服務(wù),以縮減在這方面的投入,OakLeaf系統(tǒng)公司的數(shù)據(jù)庫(kù)開(kāi)發(fā)者和負(fù)責(zé)人Roger Jennings說(shuō)“在微軟的數(shù)據(jù)中心上運(yùn)行Visual Studio 2008和傳統(tǒng)的SQL Server 2008,你仍然需要DBA,但如果你使用SSDS,對(duì)DBA的需求就明顯減少了。”
Northwest Cadence公司ALM項(xiàng)目負(fù)責(zé)人微軟MVP Jeff Levinson認(rèn)為現(xiàn)在暫時(shí)不會(huì)考慮使用這服務(wù),因?yàn)榘踩矫娴脑蚝鸵恢滦缘膯?wèn)題,他說(shuō)道“雖然目前急需要云計(jì)算,但真正的只不過(guò)是將數(shù)據(jù)存儲(chǔ)到那里,這樣的話,就更需要DBA來(lái)管理了,因?yàn)閿?shù)據(jù)的安全和一致性變得更重要了”。
【編輯推薦】