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