• Thứ Hai, 16/08/2010 16:28 (GMT+7)

    Lưu trữ dữ liệu trên Azure

    Trịnh Minh Cường
    Được hàng tỷ người trên hành tinh biết đến nhờ các ứng dụng thân thiện, tin cậy trên máy trạm, máy chủ, cho đến hệ thống lưu trữ dữ liệu, Microsoft đã chuyển đổi toàn bộ nền tảng, cơ sở dữ liệu cũng như ứng dụng lên “đám mây”, với các phiên bản Windows Azure, Office Web Apps, Xbox Live…

    >> Thời của điện toán đám mây

    “Microsoft là công ty đầu tiên và duy nhất đưa ra dịch vụ điện toán đám mây với đầy đủ các tính năng và độ linh hoạt giúp triển khai theo yêu cầu của khách hàng tại bất kỳ thời gian và không gian nào, cho dù khách hàng là nhà cung cấp dịch vụ, hay khách hàng quản trị trung tâm dữ liệu khách hàng, hoặc là sự kết hợp của các yếu tố trên”, ông Bob Muglia, Chủ tịch mảng Kinh doanh Máy chủ và Công cụ của Microsoft chia sẻ tại Hội nghị Đối tác Toàn cầu của Microsoft, tổ chức ngày 12 - 13/7/2010 tại Mỹ. Trong khuôn khổ hội nghị này, Window Azure Platform - nền tảng điện toán đám mây thế hệ đầu tiên dành cho các nhà cung cấp dịch vụ lớn và các doanh nghiệp, giúp điều khiển trung tâm dữ liệu - cũng đã được giới thiệu.

    Windows Azure là hệ điều hành dịch vụ điện toán đám mây do Microsoft phát triển, cho phép cung cấp dịch vụ và phát triển dịch vụ điện toán trên Internet và tại cơ sở doanh nghiệp (on premise). Trong phạm vi bài viết này, xin được giới thiệu chi tiết về việc lưu trữ thông tin của Windows Azure, là bước cơ bản của các lập trình viên cần quan tâm khi xây dựng hệ thống cơ sở dữ liệu (CSDL) trên nền tảng đám mây. Có nhiều phương thức khác nhau để lưu trữ thông tin trong Windows Azures, tuy nhiên có hai cách chính để lưu dữ liệu có cấu trúc, đó là SQL Azure và Windows Azure Table.

    SQL Azure

    Là dịch vụ cơ sở dữ liệu quan hệ đám mây (cloud-based relational database service) xây dựng trên lõi công nghệ SQL Server. SQL Azure giúp đơn giản hóa công tác kế hoạch dự phòng và triển khai của nhiều CSDL khác nhau. Trên Azure, lập trình viên không còn phải cài đặt, cấu hình, nâng cấp, hay vá lỗi phần mềm máy chủ CSDL như trước đây. Khả năng sẵn sàng, chịu lỗi cao, và tối giản thao tác bảo trì phần cứng phục vụ CSDL là yêu cầu mặc định – tiên quyết trong SQL Azure. Lập trình viên thành thạo cú pháp T-SQL (Transact-SQL), mô hình dữ liệu quan hệ trên phiên bản SQL Server hoàn toàn có thể dùng lại kỹ năng này với SQL Azure. SQL Azure giúp giảm tối đa chi phí vận hành bằng tích hợp tập công cụ có sẵn để đồng thời quản lý CSDL tại cơ sở và trên điện đoán mây. Ngoài ra, lập trình viên web công nghệ Microsoft, hay từ các công nghệ khác như PHP, Java, có thể sử dụng công cụ có tên mã là Houston - một giao diện web gọn nhẹ, giao diện thân thiện để quản trị, truy vấn, cập nhật dữ liệu và thiết kế bảng trên SQL Azure. SQL Azure với các chức năng:

    • Phát triển ứng dụng web đáp ứng tải truy cập linh hoạt (scalable), phù hợp với các doanh nghiệp cỡ nhỏ (<100 người) đến trung bình (<2000 người, theo tiêu chuẩn của Microsoft)
    • Phát triển và bán ứng dụng đóng gói như là dịch vụ trên nền điện toán đám mây
    • Xây dựng những ứng dụng cỡ phòng ban trong một tập đoàn lớn
    • Thông qua các chuẩn mở như WCF Service hay RESTful, để tổng hợp dữ liệu từ nhiều nguồn khác nhau trên điện toán đám mây và cho phép truy cập dữ liệu an toàn từ nhiều địa điểm, thiết bị điện toán khác nhau.

    Có thể đem lại các lợi ích lớn:

    • Tối thiểu quản trị (không phải cài đặt, vá lỗi, hay bảo trì phần cứng)
    • Tự động chống lỗi, khắc phục sự cố - tối đa tính sẵn sàng
    • Đơn giản hóa công tác lập kế hoạch dự phòng phần cứng, phần mềm khi triển khai nhiều CSDL khác nhau
    • Co giãn linh hoạt tuy biến theo nhu cầu sử dụng thực tế
    • Có thể đặt ở nhiều địa điểm khác nhau trên thế giới để rút ngắn tuyến truy cập
    • Tích hợp sẵn với các công cụ phổ biến SQL Server và Visual Studio. Ngoài ra có giao diện web cho các lập trình viên sử dụng công nghệ không phải Microsoft truy vấn tới
    • Hỗ trợ T-SQL trên mô hình tương tự với dữ liệu quan hệ truyền thống.

    Windows Azure Table

    Một dịch vụ dữ liệu mới cho phép lưu trữ, truy vấn, xử lý một số lượng rất lớn dữ liệu có cấu trúc đa dạng tùy biến. Windows Azure Table không dùng các cơ chế thường thấy trong CSDL quan hệ như constrain, views, indices, relationships và stored procedure. Windows Azure Table sử dụng cặp key-value (khóa – giá trị) để truy vấn giá trị. Với lượng dữ liệu rất lớn, phân bố theo tiêu chí khác nhau như thời gian, địa phương, phòng ban… có thể sử dụng partition key (khóa phân vùng) để dễ dàng cân bằng tải khi dịch vụ Windows Azure Table quyết định mở rộng dữ liệu ra các máy chủ khác nhau. Lưu ý: máy chủ mở rộng có thể là máy chủ ảo khác nhau trên cùng một máy vật lý, hay các máy vật lý khác nhau.

    Điểm thú vị nhất của Windows Azure Table đó là bảng cấu trúc linh hoạt. Có nghĩa, mỗi hàng có thể lưu các cấu trúc dữ liệu khác nhau hoặc giống nhau. Điều này cho phép viết những ứng dụng dịch vụ hết sức mở trong cấu trúc dữ liệu, đặc biệt thích hợp với các dịch vụ mạng xã hội, nơi thông tin thành viên, hoạt động, quan hệ thường rất đa dạng và phát triển với một tốc độ nhanh khiến mô hình dữ liệu quan hệ chặt chẽ trở nên nhanh chóng bị lỗi thời.

    Với Windows Azure Table, lập trình viên không thiết kế bảng rồi đặt quan hệ, lập trình truy vấn sử dụng ADO hay ORM, mà chỉ tập trung vào mô hình các class và các container (tương đương với bảng). Một container có thể chứa một hay nhiều kiểu class khác nhau. Lập trình viên có thể dễ dàng lưu một đối tượng xuống Windows Azure Table như là một hàng (row).

    Thuộc tính cần có ở mọi class khi lưu vào Windows Azure Table là: Partition Key (khóa phân vùng), Row Key (khóa hàng) và TimeStamp (tem thời gian). Partition Key và Row Key là kiểu chuỗi (string). Hai khóa này sẽ cùng phối hợp để đánh chỉ mục dữ liệu. Lập trình viên cần khéo léo đặt giá trị cho hai key để tối ưu giữa: truy vấn, giao dịch và đáp ứng mở rộng tải.
     
    Thông tin về Windows Azure có thể tham khảo tại www.microsoft.com/windowsazure/windowsazure/; http://msdn.microsoft.com/en-gb/magazine/ff796231.aspx

    Nắm bắt được dữ liệu và xử lý nhanh nhạy là yếu tố tiên quyết trong việc điều hành thành công doanh nghiệp. Chính bởi vậy, mô hình điện toán đám mây, đã trở thành mô hình thời thượng, được đánh giá cao nhờ ở khả năng linh hoạt trong xử lý dữ liệu, và hiệu quả khi triển khai cả ở các tổ chức lớn hay doanh nghiệp vừa và nhỏ. “Với mô hình chủ đạo là các doanh nghiệp có chi nhánh trải rộng trên nhiều tỉnh thành, Việt Nam sẽ thu được nhiều lợi ích lớn khi triển khai mô hình điện toán đám mây…”, ông Lê Việt Hùng, giám đốc chiến lược của Techcombank cho biết.