Bối cảnh và vấn đề nghiên cứu

Trong sự phát triển của công nghệ thông tin, xu hướng dịch chuyển từ các ứng dụng để bàn (desktop applications) sang các ứng dụng web và ứng dụng cho thiết bị di động ngày càng rõ nét. Mọi ứng dụng này đều đòi hỏi hạ tầng máy chủ kết nối Internet để người dùng có thể truy cập liên tục. Theo phương thức truyền thống ("hosting"), các doanh nghiệp và tổ chức phải mua vùng lưu trữ, tự cài đặt máy chủ, trực tiếp quản lý và chi trả chi phí duy trì hàng tháng. Khi số lượng người dùng gia tăng, mô hình hosting truyền thống bộc lộ nhiều hạn chế về năng lực mở rộng hạ tầng, chi phí quản lý vận hành và bảo đảm chất lượng dịch vụ.

Điện toán đám mây (Cloud Computing) xuất hiện như một mô hình khắc phục các bất cập trên bằng cách đưa tài nguyên tính toán và lưu trữ khổng lồ lên các máy chủ ảo truy cập qua Internet. Doanh nghiệp không cần đầu tư và bảo trì hệ thống phần cứng cục bộ phức tạp mà có thể tập trung vào nghiệp vụ cốt lõi, chi trả theo mức sử dụng thực tế. Microsoft đã giới thiệu nền tảng chiến lược Azure Services Platform nhằm cung cấp hệ điều hành và các khối dịch vụ hoàn chỉnh trên nền web cho các nhà phát triển.

Khóa luận tốt nghiệp của tác giả Đỗ Thị Phương tập trung nghiên cứu cơ sở lý thuyết về điện toán đám mây, khảo sát chi tiết nền tảng Microsoft Azure và ứng dụng vào bài toán xây dựng hệ thống học từ tiếng Anh trực tuyến.

Các mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể bao gồm:

  1. Nghiên cứu tổng quan về điện toán đám mây: khái niệm, kiến trúc, đặc tính, các thành phần cơ bản và chính sách an toàn bảo mật.
  2. Đi sâu phân tích kiến trúc nền tảng Microsoft Azure Services Platform: cấu trúc và nguyên lý hoạt động của Windows Azure, .NET Services, SQL Services, Live Services và dịch vụ định danh Windows Live ID.
  3. Phân tích yêu cầu, thiết kế kiến trúc, mô hình dữ liệu và xây dựng chương trình thử nghiệm dịch vụ học từ tiếng Anh trực tuyến ứng dụng công nghệ Azure.
  • Đối tượng nghiên cứu: Công nghệ điện toán đám mây, nền tảng Microsoft Azure Services Platform và quy trình xây dựng ứng dụng web học tập trực tuyến.
  • Phạm vi nghiên cứu:
    • Không gian: Thực hiện tại Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội.
    • Thời gian và phiên bản công nghệ: Hoàn thành vào tháng 5 năm 2009, khảo sát trên nền tảng Microsoft Azure được công bố tại hội thảo Professional Developers Conference (PDC) mùa thu năm 2008, bộ công cụ Windows Azure SDK, .NET Framework 3.5 và Visual Studio 2008.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khóa luận xây dựng trên các khái niệm nền tảng của điện toán đám mây và hệ thống công nghệ của Microsoft:

  • Khung lý thuyết và phân loại:

    • Định nghĩa điện toán đám mây dựa trên sự kết hợp của ba mô hình tiền thân: điện toán lưới (grid computing - tính toán phân tán phối hợp giữa các máy tính), điện toán theo nhu cầu (utility computing - tài nguyên tính toán như một dịch vụ trắc lượng) và điện toán tự trị (autonomic computing - hệ thống tự quản lý).
    • Phân tầng mô hình dịch vụ: Phần mềm như một dịch vụ (SaaS - tiêu biểu như Salesforce.com, Google Apps), Nền tảng như một dịch vụ (PaaS) và Cơ sở hạ tầng như một dịch vụ (IaaS).
    • Khung công nghệ Microsoft Azure Services Platform gồm 4 thành phần trụ cột: Windows Azure, Microsoft .NET Services, Microsoft SQL Services và Live Services.
    • Khung định danh và xác thực: Kiến trúc dựa trên tuyên bố (Claim-based Identity) qua giao thức SAML, dịch vụ STS (Security Token Service), hệ thống Windows Live ID và cơ chế Web Authentication.
  • Phương pháp nghiên cứu:

    • Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu đặc tả kỹ thuật, tài liệu kiến trúc của Microsoft về Azure Services Platform, các giao thức chuẩn mở (HTTP, HTTPS, REST, SOAP, XML, SAML, WS-Trust, WS-Federation, FeedSync, AtomPub).
    • Phương pháp thiết kế kiến trúc phần mềm: Áp dụng mô hình hướng dịch vụ (SOA), phân tách vai trò tính toán (Web role và Worker role), thiết kế tầng lưu trữ phi quan hệ (Azure Storage).
    • Phương pháp thực nghiệm: Xây dựng ứng dụng mẫu học từ tiếng Anh bằng C# trên nền .NET Framework 3.5, sử dụng Visual Studio 2008 và Windows Azure SDK để kiểm thử vận hành cục bộ và kết nối dịch vụ xác thực Windows Live ID.
  • Nguồn dữ liệu: Tài nguyên kỹ thuật chính thức từ Microsoft Developer Network (MSDN), tài liệu hội thảo PDC 2008, các thông số API của Windows Azure SDK, Windows Live ID Client/Server SDK (Relying Party Suite SDK) và Live Framework Toolkits.


Nội dung chính theo từng chương

Chương 1: Điện toán đám mây và Azure Services Platform

Chương này cung cấp cái nhìn tổng quan về bản chất, phân loại và kiến trúc của điện toán đám mây:

  • Khái niệm và đặc điểm: Điện toán đám mây là hình thức tính toán mà tài nguyên được cung cấp dưới dạng dịch vụ qua mạng. Các đặc tính cốt lõi gồm: tránh phí tổn đầu tư phần cứng cho khách hàng, độc lập thiết bị và vị trí, khả năng phục vụ nhiều người dùng (chia sẻ tài nguyên/đa người thuê), phân phối theo nhu cầu, quản lý được hiệu suất, độ tin cậy, khả năng mở rộng linh hoạt và duy trì hệ thống.
  • Kiến trúc và thành phần: Hệ thống gồm 4 tầng kiến trúc (Cloud Platform, Cloud Service, Cloud Infrastructure, Cloud Storage) và 6 thành phần vận hành: Ứng dụng (Application), Máy khách (Clients), Cơ sở hạ tầng (Infrastructure), Nền tảng (Platform), Dịch vụ (Services), Lưu trữ (Storage).
  • Chính sách bảo mật: Đề xuất 7 tiêu chí đánh giá an toàn thông tin khi chuyển dịch lên đám mây: (1) Phân quyền truy cập người dùng; (2) Điều chỉnh sự chấp thuận (kiểm định từ bên thứ ba); (3) Định vị dữ liệu; (4) Chia tách dữ liệu (mã hóa đa giai đoạn); (5) Khôi phục dữ liệu khi có sự cố; (6) Hỗ trợ điều tra hoạt động bất hợp pháp; (7) Khả năng tồn tại lâu dài của dữ liệu khi nhà cung cấp dừng hoạt động.
  • Các nhóm đối tượng liên quan: Nhà cung cấp (sở hữu, vận hành đám mây), Người dùng (khách hàng sử dụng dịch vụ) và Nhà bán lẻ phần mềm độc lập (ISV - phát triển sản phẩm SaaS).

Chương 2: Nền tảng dịch vụ Microsoft Azure

Chương 2 đi sâu phân tích cấu trúc kỹ thuật của Azure Services Platform và các dịch vụ thành phần:

  • Windows Azure: Hệ điều hành đám mây chạy trên các máy ảo Windows Server 2008 64-bit trong trung tâm dữ liệu Microsoft, được quản lý thống nhất bởi kết cấu xử lý (Fabric Controller) và tác nhân Windows Azure Agent:
    • Mô hình tính toán: Chia thành Web role (chạy trên IIS7, tiếp nhận yêu cầu HTTP/HTTPS từ bên ngoài qua bộ cân bằng tải tích hợp, xử lý bằng ASP.NET/WCF) và Worker role (chạy nền liên tục, không mở cổng kết nối trực tiếp, nhận tác vụ qua hàng đợi Queue).
    • Hệ thống lưu trữ Windows Azure Storage: Không sử dụng mô hình cơ sở dữ liệu quan hệ truyền thống mà cung cấp 3 cơ chế lưu trữ truy cập qua chuẩn REST/HTTP:
      1. Blob: Lưu trữ dữ liệu lớn (dung lượng tối đa 50 GB/blob), tổ chức trong Blob Container, chia thành các khối (block) để tối ưu truyền tải và khôi phục lỗi, hỗ trợ metadata cặp <tên, giá trị> 8 KB.
      2. Table: Lưu trữ có cấu trúc nhưng không định sẵn lược đồ (schema-less), gồm các thực thể (tối đa 255 thuộc tính). Sử dụng hai khóa chính bắt buộc: PartitionKey (để phân bổ thực thể trên các nút lưu trữ) và RowKey (định danh duy nhất trong phân vùng), kết hợp trường Timestamp. Truy vấn dữ liệu bằng cú pháp LINQ hoặc ADO.NET Data Services.
      3. Queue: Cơ chế hàng lưu trữ thông điệp (tối đa 8 KB/thông điệp) phục vụ giao tiếp bất đồng bộ giữa Web role và Worker role. Thông điệp được lưu tối đa 7 ngày (MessageTTL), kiểm soát hiển thị qua VisibilityTimeout (mặc định 30 giây, tối đa 2 giờ) và định danh bằng MessageID cùng chuỗi PopReceipt.
  • Live Services và Live Framework: Cung cấp môi trường Live Operating Environment chạy trên đám mây hoặc trên các thiết bị máy tính (Windows Vista/XP, Mac OS X, Windows Mobile 6) tạo thành một mạng lưới (mesh). Sử dụng giao thức FeedSync qua HTTP để đồng bộ dữ liệu tự động giữa đám mây và các thiết bị trong mesh. Khái niệm ứng dụng "Web mesh" (mesh-enabled web application) phát triển bằng Silverlight, DHTML hoặc Flash cho phép chạy đồng nhất và chia sẻ dữ liệu trên mọi nút của mesh.
  • Microsoft SQL Services (SQL Data Services): Cơ sở dữ liệu đám mây xây dựng trên Microsoft SQL Server nhưng truy cập phi quan hệ qua mô hình phân cấp: Authority (đơn vị vùng địa lý có tên DNS riêng) $\rightarrow$ Container $\rightarrow$ Entity (thực thể chứa các thuộc tính có tên, kiểu, giá trị). Hỗ trợ các kiểu dữ liệu: String, DateTime, Base64 binary, Boolean, Decimal, MIME Blob. Thao tác cập nhật thực hiện trên toàn bộ Entity; truy vấn hỗ trợ các toán tử logic, so sánh cùng ORDER BY, JOIN thông qua REST, SOAP hoặc LINQ.
  • Microsoft .NET Services: Cung cấp hạ tầng phân tán trên đám mây gồm:
    • Access Control Service (ACS): Quản lý định danh dựa trên tuyên bố (Claim-based Identity), sử dụng mã thông báo SAML được cấp phát và chuyển đổi bởi dịch vụ STS (Security Token Service) trên đám mây, tuân thủ chuẩn WS-Trust và WS-Federation.
    • Service Bus: Đăng ký điểm cuối dịch vụ (URI endpoint) qua giao thức AtomPub registry, duy trì kết nối outbound hai chiều giúp ứng dụng bên trong vượt qua cơ chế biên dịch địa chỉ mạng (NAT) và tường lửa mà không cần mở cổng, đồng thời đóng vai trò DMZ bảo vệ địa chỉ IP nội bộ.
    • Workflow Services: Cung cấp môi trường thực thi luồng công việc (Sequential Workflow) dựa trên Windows Workflow Foundation (WF 3.5) và thư viện hoạt động Base Activity Library (BAL).
  • Dịch vụ Windows Live ID và Web Authentication: Cơ chế xác thực người dùng quy mô lớn (hỗ trợ kiểm chứng 22 tỉ lượt/tháng). Trình bày quy trình tích hợp Web Authentication vào website qua iframe điều khiển, chuyển hướng đăng nhập, tiếp nhận token kiểm chứng qua HTTP FORM POST, giải mã bằng Secret Key và quản lý phiên bằng HttpCookie.

Chương 3: Phát triển dịch vụ học từ tiếng Anh

  • Mô tả bài toán: Xác định vai trò của tiếng Anh trong bối cảnh toàn cầu hóa và nhu cầu cấp thiết về các công cụ hỗ trợ học từ vựng trực tuyến.
  • Giải pháp và kiến trúc hệ thống: Ứng dụng các dịch vụ của nền tảng Azure (.NET Services, Windows Azure, Live Services) để xây dựng phần mềm học từ tiếng Anh trên nền web.
  • Các nội dung triển khai: Trình bày mục tiêu, các yêu cầu chức năng, thiết kế kiến trúc phân tầng, thiết kế cơ sở dữ liệu và kết quả thử nghiệm giao diện các chức năng cơ bản của hệ thống.

Chương 4: Kết luận

Tổng kết các kết quả nghiên cứu lý thuyết và thực nghiệm đã thu được, đồng thời đưa ra các đánh giá tổng thể về khả năng ứng dụng của Azure Services Platform.


Thiết kế và triển khai hệ thống

Hệ thống học từ tiếng Anh trong khóa luận được thiết kế dựa trên kiến trúc phân tán tận dụng các dịch vụ của Microsoft Azure:

1. Bảng tổng hợp công nghệ và thành phần kiến trúc

Thành phần hệ thống Công nghệ / Dịch vụ áp dụng Vai trò và cơ chế kỹ thuật
Giao diện người dùng (Front-end) ASP.NET, DHTML, Web role trên IIS7 Tiếp nhận yêu cầu HTTP/HTTPS, hiển thị nội dung bài học, form tra cứu và giao diện điều khiển.
Xử lý nền (Back-end) Worker role, .NET Framework 3.5, C# Xử lý các tác vụ tính toán, đồng bộ dữ liệu học tập chạy nền độc lập với máy chủ web.
Truyền thông liên vai trò Windows Azure Queue Storage Điều phối thông điệp tác vụ giữa Web role và Worker role; sử dụng MessageTTL (7 ngày) và VisibilityTimeout.
Lưu trữ dữ liệu Windows Azure Table & SQL Data Services Lưu trữ danh mục từ vựng, thông tin phân vùng (PartitionKey, RowKey) và cấu trúc Entity không schema.
Xác thực và phân quyền Windows Live ID, Web Authentication Tích hợp Single Sign-On (SSO) qua iframe, nhận mã token xác thực bằng FORM POST và giải mã bằng khóa bí mật.
Môi trường phát triển & SDK Visual Studio 2008, Azure SDK, Live SDK Môi trường lập trình, kiểm thử mô phỏng máy ảo đám mây cục bộ và cấu hình tệp triển khai.

2. Quy trình xác thực người dùng qua Web Authentication

Hệ thống học từ vựng triển khai cơ chế đăng nhập tập trung sử dụng Windows Live ID theo chu trình 8 bước tiêu chuẩn:

  1. Người dùng chưa đăng nhập truy cập vào trang web học tiếng Anh thông qua trình duyệt web.
  2. Trang web trả về giao diện chứa liên kết đăng nhập tích hợp trong một thẻ <iframe> trỏ tới máy chủ Windows Live ID cùng tham số appid (chuỗi định danh 16 ký tự của ứng dụng), context và style.
  3. Người dùng nhấp chọn liên kết đăng nhập trên giao diện iframe.
  4. Trình duyệt được chuyển hướng tới trang đăng nhập bảo mật của hệ thống Windows Live ID.
  5. Người dùng nhập thông tin tài khoản (username và password) và gửi yêu cầu xác thực.
  6. Dịch vụ Windows Live ID kiểm tra thông tin định danh người dùng trên hệ thống máy chủ Microsoft.
  7. Sau khi xác thực hợp lệ, Windows Live ID chuyển hướng người dùng trở lại trang web học tiếng Anh (Return URL) kèm theo mã thông báo (token) bảo mật được đóng gói trong một HTTP FORM POST.
  8. Trang web tiếp nhận token, sử dụng khóa bí mật (Secret Key) đã đăng ký trên cổng Azure Developer Portal để giải mã, khởi tạo HttpCookie phiên làm việc và hiển thị nội dung dữ liệu học tập tương ứng với người dùng.

Kết quả và đóng góp

Kết quả đạt được

  • Về mặt lý thuyết: Hệ thống hóa toàn diện các khối kiến trúc của nền tảng điện toán đám mây Microsoft Azure Services Platform ở giai đoạn đầu (năm 2008 - 2009), làm rõ sự khác biệt giữa lưu trữ phi quan hệ (Azure Table/Blob) và hệ quản trị quan hệ truyền thống, cơ chế phân tách Web/Worker role và kiến trúc định danh dựa trên tuyên bố (Claim-based STS).
  • Về mặt thực nghiệm: Xây dựng thành công hệ thống thử nghiệm chương trình học từ tiếng Anh, hoàn thiện việc tích hợp đăng nhập người dùng qua Windows Live ID Web Authentication và vận hành các chức năng cơ bản theo kịch bản đặt ra.

Đóng góp của đề tài

  • Là một trong những công trình khóa luận sớm tại Việt Nam (tháng 5/2009) nghiên cứu có hệ thống và thực nghiệm triển khai phần mềm trên nền tảng Microsoft Azure ngay sau khi Microsoft công bố công nghệ này tại PDC 2008.
  • Cung cấp tài liệu hướng dẫn kỹ thuật chi tiết bằng tiếng Việt về cách tích hợp dịch vụ Windows Live ID vào website (quy trình đăng ký Application ID, Secret Key, cấu hình Return URL, xử lý HTTP POST token và cookie).

Hạn chế và hướng nghiên cứu tiếp theo

  • Hạn chế:
    • Nghiên cứu được thực hiện tại thời điểm Azure Services Platform còn ở giai đoạn thử nghiệm sơ khởi (Community Technology Preview / PDC 2008 version), chưa có công cụ gỡ lỗi trực tiếp trên đám mây (việc sửa lỗi phụ thuộc hoàn toàn vào ghi log thông qua Windows Azure Agent).
    • Ứng dụng học từ tiếng Anh mới dừng lại ở quy mô thử nghiệm các chức năng cơ bản, chưa mở rộng toàn diện hệ thống bài tập và kho học liệu từ vựng phức tạp.
  • Hướng nghiên cứu tiếp theo:
    • Tiếp tục hoàn thiện đầy đủ các phân hệ chức năng cho chương trình học từ tiếng Anh.
    • Nghiên cứu ứng dụng sâu hơn các tính năng nâng cao của Azure khi nền tảng hoàn thiện thương mại hóa, bao gồm dịch vụ luồng công việc (Workflow Services), dịch vụ kết nối Service Bus và cơ chế đồng bộ dữ liệu đa thiết bị của Live Mesh.

Giá trị tham khảo

Khóa luận là nguồn tài liệu học thuật và kỹ thuật phù hợp cho:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Tham khảo mô hình phân tầng dịch vụ đám mây (SaaS, PaaS, IaaS), cấu trúc ứng dụng phân tán nhiều vai trò (Web role và Worker role), cũng như phương pháp luận khi tiếp cận một nền tảng công nghệ mới.
  • Lập trình viên và người phát triển ứng dụng web trên môi trường .NET: Tham khảo các đặc tả kỹ thuật của Azure Storage (cấu trúc phân vùng Table Storage, cơ chế truyền thông Queue Storage, mô hình lưu trữ Blob) và quy trình tích hợp Single Sign-On với Windows Live ID / Web Authentication.

Câu hỏi thường gặp

1. Hệ thống lưu trữ Windows Azure Storage trong khóa luận gồm những thành phần nào và có sử dụng SQL Server quan hệ không?

Không. Windows Azure Storage không sử dụng Microsoft SQL Server và không phải là hệ cơ sở dữ liệu quan hệ (không dùng ngôn ngữ SQL truyền thống). Nó bao gồm 3 thành phần lưu trữ phi quan hệ truy cập qua chuẩn REST/HTTP:

  • Blob: Lưu trữ đối tượng dữ liệu lớn lên đến 50 GB, chia thành các khối (block).
  • Table: Lưu trữ thực thể có tối đa 255 thuộc tính không định sẵn lược đồ (schema-less), truy vấn bằng cú pháp LINQ hoặc ADO.NET Data Services dựa trên PartitionKey và RowKey.
  • Queue: Lưu trữ các thông điệp có kích thước tối đa 8 KB để truyền dữ liệu bất đồng bộ giữa Web role và Worker role.

2. Sự khác biệt cơ bản về mặt vận hành giữa Web role và Worker role trong Windows Azure là gì?

  • Web role: Được tích hợp máy chủ IIS7, có nhiệm vụ chấp nhận trực tiếp các yêu cầu HTTP/HTTPS từ mạng bên ngoài thông qua bộ cân bằng tải tích hợp; xử lý các yêu cầu đến và kết thúc khi yêu cầu hoàn thành (thực thi qua ASP.NET, WCF).
  • Worker role: Không chạy IIS, không chấp nhận kết nối trực tiếp từ bên ngoài; nhận dữ liệu đầu vào gián tiếp từ Web role thông qua hàng đợi (Queue), xử lý các tác vụ tính toán nền và có khả năng chạy liên tục vô hạn.

3. Mô hình tổ chức dữ liệu của Microsoft SQL Data Services được phân cấp như thế nào?

SQL Data Services phân cấp theo 3 cấp độ:

  • Authority: Đơn vị theo vùng địa lý, đặt tại trung tâm dữ liệu cụ thể và có một tên miền DNS riêng.
  • Container: Nằm trong Authority, là phạm vi chứa các thực thể và là đơn vị của các câu lệnh truy vấn.
  • Entity: Nằm trong Container, chứa các thuộc tính (dưới dạng tên, kiểu dữ liệu, giá trị). Thao tác cập nhật dữ liệu được thực hiện trên toàn bộ Entity chứ không cập nhật riêng lẻ từng thuộc tính.

4. Dịch vụ Access Control Service (ACS) của .NET Services giải quyết vấn đề định danh người dùng bằng cơ chế nào?

ACS cung cấp một dịch vụ tạo mã thông báo bảo mật (Security Token Service - STS) trên đám mây. Dịch vụ này tiếp nhận mã thông báo SAML từ máy khách, kiểm tra chữ ký xác thực, sau đó thực hiện chuyển đổi các tuyên bố (claim transformation) theo các quy tắc định nghĩa sẵn để tạo ra một mã thông báo SAML mới chứa chính xác các quyền mà ứng dụng yêu cầu, đảm bảo mối quan hệ tin cậy giữa các bên thông qua chuẩn WS-Trust và WS-Federation.

5. Để tích hợp Web Authentication của Windows Live ID vào một trang web, nhà phát triển cần những thông tin và tham số kỹ thuật gì?

Nhà phát triển cần đăng ký dự án trên cổng quản trị dịch vụ để nhận được:

  • Application ID (appid): Chuỗi 16 ký tự đại diện duy nhất cho ứng dụng web.
  • Secret Key: Khóa bí mật dùng để giải mã và xác thực token nhận được từ máy chủ Windows Live ID.
  • Return URL: Địa chỉ URL của trang web mà Windows Live ID sẽ chuyển hướng người dùng trở lại sau khi đăng nhập thành công kèm mã token qua HTTP POST.
  • Mã nhúng iframe: Nhúng liên kết đăng nhập vào trang web với các tham số appid, context (lưu trạng thái ứng dụng) và style.

Kết luận

Khóa luận tốt nghiệp của tác giả Đỗ Thị Phương đã hoàn thành việc khảo sát toàn diện cơ sở lý thuyết về điện toán đám mây và cấu trúc chi tiết của nền tảng Microsoft Azure Services Platform trong giai đoạn sơ khởi của công nghệ này. Tác giả đã phân tích sâu các thành phần tính toán, lưu trữ phi quan hệ, truyền thông dịch vụ và xác thực định danh người dùng. Đồng thời, đề tài đã ứng dụng thành công các dịch vụ của Azure để xây dựng và thử nghiệm một hệ thống học từ tiếng Anh trực tuyến, mở ra hướng đi thực tiễn cho việc phát triển ứng dụng phần mềm trên nền tảng hạ tầng đám mây.