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

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