
譯者注:你是否平時的工作是用的是Linux操作系統(tǒng),但公司的重要項目使用的是SQL Server,你曾經(jīng)是否因此而鯤熬過?現(xiàn)在告訴你個好消息,微軟已經(jīng)在2017版本中,將SQL Server數(shù)據(jù)庫引入到了Linux等開源系統(tǒng)中去了,作者在本文詳細介紹了這其中的過程。以下為譯文:
早在2016年,當微軟宣布SQL Server將很快在Linux上運行時,這一消息對用戶和權威人士來說都是一個巨大的驚喜。在過去的一年中,微軟對Linux(總之就是開源的操作系統(tǒng))的支持已經(jīng)十分重視,公司的使命似乎已經(jīng)變成了只要哪里有用戶,哪里就必須得有SQL Server工具。
微軟今天發(fā)布了SQL Server 2017的第一個候選版本,這將是第一個在Windows、Linux和Docker容器上運行的版本。僅Docker容器就已經(jīng)吸引了超過100萬的申請,因此毫無疑問,會有很多人對這款新版本非常感興趣。盡管新版本有很多需要改進的地方,但SQL Server 2017支持Linux仍然是這個版本最重要的突破。
在今天發(fā)表聲明之前,我與微軟的數(shù)據(jù)庫系統(tǒng)組的總經(jīng)理羅漢·庫馬爾進行了交談,了解了這個項目的歷史,以及他的團隊如何成功地將SQL Server這么復雜的軟件給引入到Linux中去的。在微軟工作了18年的庫馬爾指出,他的團隊注意到許多企業(yè)開始使用SQL Server作為z重要任務的工作負載。但與此同時,這些企業(yè)的工作環(huán)境也是組合的,包括Windows Server和Linux。對于許多這樣的企業(yè)來說,無法在Linux上運行他們的數(shù)據(jù)庫成為了一個瓶頸。
“經(jīng)過企業(yè)的談話,很明顯,我們覺得這么做是必要的,”庫馬爾說,“我們正在強制客戶使用Windows作為他們選擇的平臺。”在微軟的另一個化身中,這可能會被視為積極的東西,但該公司今天的戰(zhàn)略卻大不相同。
庫馬爾還指出,許多企業(yè)都在尋找Oracle數(shù)據(jù)庫產(chǎn)品的替代品。畢竟如果想要運行Linux,并使用具有完全企業(yè)支持的專有關系型數(shù)據(jù)庫,那么你可能就不得不選擇Oracle了。
正如庫馬爾告訴我的,這并不是他的團隊第一次希望可以支持Linux。他告訴我:“過去我們曾進行過幾次討論,但沒有得到批準。”他說:“對于企業(yè)來說,這并不是一種戰(zhàn)略”。但這已經(jīng)是三年前的觀點了-現(xiàn)在隨著薩提亞·納德拉成為了微軟的掌舵人,這個團隊決定再次提出這個想法。“我們反反復復的查看反饋消息,”他說:“看到這些決定的速度有多快,真讓人感到驚訝。”
位于雷德蒙德一家越南餐館的照片前,團隊最后決定繼續(xù)推進這個項目。但是,在做出這個決定之后,這個團隊現(xiàn)在面臨著一項艱巨的任務:如何將數(shù)千萬條SQL Server代碼移植到Linux上?庫馬爾也不想在功能上做出任何妥協(xié),因此要么必須是SQL Server的全部核心,要么就是什么都不做(目前,這排除了公司在Windows上提供的圖形用戶界面和工具)。

該團隊在一個已經(jīng)存在于微軟的項目中找到了答案:Drawbridge。Drawbridge是一個在2011年啟動的研究項目,它提供了一個容器,它提供了一個小的API表面和一個基礎版本的Windows,可以有效地在容器中運行應用程序。這里的想法基本上是建立更好更安全的虛擬機。然后,庫操作系統(tǒng)執(zhí)行應用程序,處理內存管理和其他重要功能,并與底層操作系統(tǒng)集成。
大約兩年前,SQL Server團隊決定將其作為Linux工作的核心。“領導層表現(xiàn)出了適量的關心,”庫馬爾評論道,“我的猜測是,鑒于Drawbridge是一個實驗性的項目,人們確實對此感到擔憂。”但是SQL Server團隊接管了Drawbridge代碼庫,并將其添加到SQL操作系統(tǒng)層中。
在許多方面,這個操作系統(tǒng)層是使這個項目成為可能的原因。由于SQL Server的需求總是超出了Windows和Windows服務器所能提供的,尤其是在內存管理方面,團隊已經(jīng)將許多標準OS特性構建到SQL Server的OS層中。因此,在Drawbridge中,SQL Server也可以管理自己的內存。這方面的工作非常成功,團隊不僅在Linux上構建了SQL Server,還將SQL操作系統(tǒng)和它在Drawbridge上所做的工作合并到新的SQL平臺抽象層上,這一層現(xiàn)在在Windows和Linux上運行。
因此,SQL Server團隊可以從一個單獨的代碼庫工作,并且不必擔心代碼的運行位置(這包括Microsoft的Azure平臺)。
Linux的SQL Server應該在今年晚些時候就可以正式運行了。即使在今天,一些公司已經(jīng)在生產(chǎn)環(huán)境中使用了它,而Linux版本的運行速度和Windows版本一樣快(假設硬件一樣)。
除了最終將版本發(fā)布出來外,庫馬爾指出,團隊將密切關注下一步該做什么。盡管數(shù)據(jù)庫領域的創(chuàng)新仍在繼續(xù)加速,但并不是所有的微軟客戶都希望他們的任數(shù)據(jù)庫版本可以做到每年(甚至更快)更新一次。不過,鑒于我們最近看到SQL Server 2016和2017年發(fā)布的SQL Server版本,我對SQL Server 2018預覽版的發(fā)布將充滿信息。
以上就是腳本之家分享給大家關于Windows是如何把SQL Server遷移到Linux上的全部內容,希望對大家有所幫助。