Năm 2016, Microsoft đã làm cả người dùng và các nhà nghiên cứu phải ngạc nhiên khi họ thông báo SQL Server sẽ sớm chạy trên Linux. Trong suốt năm qua, những hỗ trợ của Microsoft cho Linux (và cộng đồng mã nguồn mở nói chung) đã trở nên rõ ràng hơn và giờ đây, dường như sứ mệnh của công ty là đưa các công cụ của họ đến người dùng của họ ở bất cứ lĩnh vực nào.
Thứ Hai tuần trước, công ty đã cho ra mắt bản phát hành lần đầu của SQL Server 2017, phiên bản đầu tiên chạy trên cả Windows, Linux và các container Docker. Riêng phiên bản cho container Docker đã có hơn 1 triệu lượt sử dụng, vì vậy không còn nghi ngờ gì nữa về việc phiên bản này đang nhận được nhiều sự quan tâm như thế nào. Và trong khi nó có nhiều tính năng mới và cải thiện về tốc độ, trên thực tế, việc SQL Server 2017 hỗ trợ Linux vẫn là một trong những điều thú vị nhất của bản phát hành này.
Trước đó, trong một buổi trao đổi với phóng viên Frederic Lardinois của trang Techcrunch, tổng giám đốc của Bộ phận Hệ thống Cơ sở dữ liệu Microsoft, ông Rohan Kumar đã cho biết thêm về lịch sử dự án này và làm thế nào cả nhóm có thể đưa một phần mềm phức tạp như SQL Server sang Linux.
Mọi việc bắt đầu từ một bát phở
Năm 2014, khi ngồi ăn phở trong một nhà hàng Việt Nam tại Redmond, ông Kumar và nhóm SQL Server của mình đã đưa ra một quyết định chưa từng có: họ cần phải đưa phần mềm nổi tiếng của mình sang Linux và xem nó như một bước đi chiến lược để duy trì vị thế của mình trên thị trường doanh nghiệp.
Nhưng như ông Kumar thừa nhận, đây cũng phải lần đầu tiên nhóm của ông tìm kiếm sự hỗ trợ cho Linux. “Trong quá khứ, chúng tôi đã có một vài cuộc thảo luận về nó, nhưng không được chấp nhận.” Ông cho biết. Nhưng 3 năm trước đây, khi ông Satya Nadella trở thành người đứng đầu công ty, cả nhóm quyết định đưa ra ý tưởng này một lần nữa, và họ đã phải bất ngờ về sự chấp thuận của công ty. “Thật ngạc nhiên khi thấy các quyết định được đưa ra nhanh như thế nào.” Tốc độ ra quyết định này ít nhiều có sự hỗ trợ của món phở Việt.
Ông Kumar nhấn mạnh rằng, nhóm của mình đã nhận thấy nhiều doanh nghiệp đã bắt đầu sử dụng SQL Server cho các tải công việc quan trọng của họ. Cùng lúc đó, họ cũng đang làm việc trong nhiều môi trường hỗn hợp, bao gồm cả Windows Server và Linux. Đối với nhiều doanh nghiệp này, việc cơ sở dữ liệu của họ không thể chạy trên Linux là một điểm trừ rất lớn.
“Nói chuyện với các doanh nghiệp, tôi nhận ra việc đó rõ ràng đang trở nên cần thiết hơn.” Kumar cho biết. “Chúng tôi đang buộc khách hàng phải sử dụng Windows làm nền tảng của họ.” Ở giai đoạn trước đây của Microsoft, đây có thể là điều gì đó tích cực, nhưng ngày nay chiến lược của công ty đã hoàn toàn khác.
Kumar cũng nhấn mạnh rằng nhiều doanh nghiệp đang tìm kiếm một sự thay thế cho các sản phẩm cơ sở dữ liệu của Oracle. Nếu bạn muốn chạy Linux và sử dụng một cơ sở dữ liệu độc quyền với sự hỗ trợ đầy đủ cho doanh nghiệp, thì sau tất cả, bạn sẽ không hoàn toàn hài lòng với lựa chọn trên, và đó là cơ hội mà SQL Server cần phải tận dụng được.
Những thách thức mà cả nhóm phải vượt qua
Với quyết định được đưa ra, giờ cả nhóm lại đối mặt với một nhiệm vụ khó khăn: Làm thế nào để port hàng chục triệu dòng code của SQL Server sang Linux? Hơn nữa, Kumar không muốn phải có bất kỳ sự thỏa hiệp nào về các tính năng của nó, vì vậy họ phải đưa được toàn bộ cốt lõi của SQL Server sang nền tảng mới hoặc không gì cả (cho đến nay, nó vẫn chưa có các đồ họa giao diện người dùng và các công cụ như công ty mang lên Windows).
Cuối cùng, cả nhóm tìm ra câu trả lời mình cần trong một dự án vốn đã có trong Microsoft: Drawbridge. Drawbridge là một dự án nghiên cứu được đưa ra vào năm 2011, nhằm cung cấp một container với một lớp API nhỏ và một phiên bản Windows cơ bản được cấu hình để chạy ứng dụng trong container đó một cách hiệu quả hơn.
Về cơ bản, ý tưởng này là việc xây dựng các máy ảo tốt hơn và bảo mật hơn. Sau đó, thư viện của hệ điều hành sẽ thực thi các ứng dụng, quản lý bộ nhớ và các chức năng quan trọng khác, cũng như tích hợp vào bên dưới hệ điều hành.
Khoảng hai năm trước, nhóm SQL Server quyết định biến ý tưởng này thành cốt lõi cho nỗ lực tiến vào Linux. Nhóm lấy mã cơ sở (code base) của Drawbridge và bổ sung vào trong layer (lớp) của hệ điều hành SQL. “Ban lãnh đạo đã thể hiện sự quan tâm đúng đắn đến ý tưởng này.”
Chính lớp layer của hệ điều hành này đã làm dự án trở nên khả thi. Bởi vì SQL Server luôn cần vượt xa những gì Windows và Windows Server có thể mang lại, đặc biệt là với tác vụ quản lý bộ nhớ, nhóm đã đưa sẵn nhiều tính năng hệ điều hành tiêu chuẩn vào trong layer hệ điều hành của SQL Server. Ví dụ, nhờ vào điều này, SQL Server trong Drawbridge cũng có thể tự quản lý bộ nhớ của riêng nó.
Nhóm còn thành công đến mức, không chỉ xây dựng nên SQL Server trên Linux mà còn thực sự sáp nhập hệ điều hành SQL và những gì họ đã làm trên Drawbridge thành lớp SQL Platform Abstraction Layer chạy trên cả Windows và Linux. Kết quả là giờ đây nhóm SQL Server có thể làm việc từ một mã cơ sở duy nhất và không thực sự phải lo lắng về việc code sẽ chạy ở đâu (và điều này cũng bao gồm cả nền tảng Microsoft Azure).
SQL Server cho Linux sẽ bắt đầu có mặt phổ biến vào cuối năm nay. Tuy nhiên, ngay trong hiện tại, một số công ty đã đang sử dụng nó trong các sản phẩm của mình, và phiên bản cho Linux giờ có thể chạy nhanh như phiên bản cho Windows (giả sử phần cứng là tương đương nhau).
Khi nhìn xa hơn phiên bản phát hành cuối cùng, Kumar nhấn mạnh rằng nhóm nghiên cứu sẽ xem xét kỹ hơn vào việc gì cần làm tiếp theo. Trong khi việc sáng tạo trong lĩnh vực cơ sở dữ liệu sẽ tiếp tục được tăng tốc, không phải mọi khách hàng của Windows đều muốn cập nhật hàng năm cho các hệ thống quan trọng của mình. Cho dù vậy, nếu nhìn vào lộ trình phát hành SQL Server hàng năm với các bản SQL Server 2016 và 2017, có lẽ chúng ta sẽ không mấy ngạc nhiên khi bản phát hành lần đầu cho SQL Server 2018 sẽ sớm ra mắt trong thời gian tới.
Theo GenK