DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CSDL Cơ sở dữ liệu IaaS Infrastructure as a Service : Hạ tầng là dịch vụ PaaS Platform as a Service : Nền tảng là dịch vụ SaaS Sotware as a Service
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
PHAN LÊ BẰNG
GIẢI PHÁP THỰC TẾ CỦA ĐIỆN TOÁN ĐÁM MÂY
VÀ ỨNG DỤNG TRONG GIẢNG DẠY ĐẠI HỌC
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SỸ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Nguyễn Kim Khánh
Hà Nội – Năm 2015
Trang 2MỤC LỤC
BỘ GIÁO DỤC VÀ ĐÀO TẠO 1
LỜI CẢM ƠN 5
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6
DANH MỤC CÁC HÌNH, BẢNG 7
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 5
1.1 Khái niệm điện toán đám mây 5
1.1.1 Định nghĩa: 5
1.1.2 Sự cần thiết của điện toán đám mây 7
1.1.3 Đặc tính của điện toán đám mây 8
1.2 Cấu trúc phân lớp: 9
1.2.1 Lớp khách hàng (Client): 9
1.2.2 Lớp ứng dụng (Application): 9
1.2.3 Lớp nền tảng (Platform): 9
1.2.4 Lớp cơ sở hạ tầng (Infrastructure) 9
1.2.5 Lớp máy chủ (Server): 9
1.3 Cách thức hoạt động: 9
1.4 Các mô hình ĐTĐM: 10
1.4.1 Các mô hình đám mây : 10
1.4.2 Các mô hình dịch vụ: 12
1.5 Khả năng mở rộng: 14
1.5.1 Khái niệm: 14
1.5.2 Khả năng mở rộng của ĐTĐM Có 2 phương pháp để tăng khả năng mở rộng đó là: 14
1.5.3 Các kỹ thuật mở rộng 14
1.5.4 Công nghệ đảm bảo khả năng mở rộng của ĐTĐM 15
CHƯƠNG 2: NỀN TẢNG MICROSOFT WINDOWS AZURE 16
2.1 Giới thiệu về Windows Azure Platform 16
2.1.1 Giới thiệu 16
2.1.2 Windows Azure 19
2.1.3 SQL Azure 26
2.1.4 Windows Azure platform AppFabric 29
Trang 32.2 Bộ lưu trữ Windows Azure 31
2.2.1 Giới thiệu bộ lưu trữ Windows Azure 31
2.2.2 Windows Azure Blob 32
2.3 Giới thiệu về SQL Azure 44
2.3.1 Giới thiệu 44
2.3.2 Tổng quan kiến trúc 45
2.3.3 Ứng dụng của SQL Azure 48
CHƯƠNG 3: ỨNG DỤNG WINDOWS AZURE TRONG 49
GIẢNG DẠY ĐẠI HỌC 49
3.1 Xây dựng hệ thống nhập học sinh viên, tạo khóa học và tập huấn trên Microsoft Azure sử dụng ASP.NET MVC5 49
3.1.1 Cài đặt môi trường phát triển : 49
3.1.2 Tạo một ứng dụng ASP.NET MVC5 : 49
3.2 Tạo trang Web quản lý việc nhập học của sinh viên, tạo khóa học và tập huấn 52
3.2.1 Mô hình cơ sở dữ liệu : 52
3.2.2 Xây dựng các thành phần của ứng dụng : 54
3.2.3 Xây dựng các phân hệ : 60
3.3 Đăng kí tài khoản Microft Azure 63
3.4 Đưa trang Web lên Windows Azure 67
3.4.1 Tạo trang Web rỗng trên Windows Azure 67
3.4.2 Đưa trang Web và cơ sở dữ liệu lên Microsoft Azure 69
CHƯƠNG 4 – KẾT LUẬN 74
4.1 Kết quả đạt được 74
4.1.1 Về nghiên cứu các giải pháp của điện toán đám mây 74
4.1.2 Về tìm hiểu điện toán đám mây của Windows Azure của Microsoft 74
4.1.3 Xây dựng trang Web hệ thống nhập học sinh viên, tạo khóa học và tập huấn trên Windows Azure 74
4.2 Kết quả chưa đạt được 74
4.3 Phương hướng phát triển 75
KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đề tài nghiên cứu của tôi hoàn toàn do tôi tự làm và thực hiện dưới sự hướng dẫn trực tiếp của Thầy giáo TS Nguyễn Kim Khánh Viện Công nghệ Thông Tin và Truyền Thông thuộc Trường đại học Bách Khoa Hà nội Những kết quả nghiên cứu, thực nghiệm được thực hiện trên máy tính cá nhân của tôi, với mục đích học tập, nghiên cứu nhằm nâng cao kiến thức và trình độ chuyên môn nên tôi đã làm luận văn này một cách nghiêm túc và hoàn toàn trung thực
Để hoàn thành bản luận văn này, ngoài các tài liệu tham khảo đã liệt kê, tôi cam đoan không sao chép toàn văn các công trình hoặc thiết kế tốt nghiệp của người khác
Hà Nội, tháng 10 năm 2015
Học viên
Phan Lê Bằng
Trang 5LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành và sâu sắc tới thầy giáo hưỡng dẫn TS Nguyễn Kim Khánh đã tận tình hưỡng dẫn và truyền đạt những kinh nghiệm quý báu cho tôi trong suốt quá trình học tập và làm luận văn tốt nghiệp
Để hoàn thành luận văn này, tôi đã nhận được rất nhiều sự giúp đỡ, chỉ bảo tận tình của các Thầy, Cô giáo trong Viện Công nghệ Thông tin và Truyền thông thuộc Trường Đại học Bách khoa Hà Nội, các anh chị, bạn đồng nghiệp trong Khoa Công nghệ thông tin Trường Đại học Sư phạm Kỹ thuật Vinh
Tôi xin gửi lời cảm ơn đến Ban lãnh đạo Viện Công nghệ Thông tin và Truyền thông thuộc Trường Đại học Bách khoa Hà Nội, Ban lãnh đạo Khoa Công nghệ thông tin, Ban giám hiệu Trường Đại học sư phạm kỹ thuật Vinh đã tạo điều kiện thuận lợi nhất cho tôi để hoàn thành luận văn tốt nghiệp này
Tôi xin cảm ơn gia đình, bạn bè, những người đã quan tâm giúp đỡ và động viên khuyến kích tôi trong suốt thời gian qua để tôi hoàn thành luận văn
Tuy nhiên, do thời gian thực hiện và khả năng, kiến thức của bản thân, luận văn không tránh khỏi hạn chế thiếu sót, tôi rất mong nhận được sự đóng góp ý kiến của các Thầy, Cô và toàn thể các bạn Tôi xin chân thành cảm ơn
Hà Nội, tháng 10 năm 2015
HỌC VIÊN
Phan Lê Bằng
Trang 6
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
CSDL Cơ sở dữ liệu
IaaS Infrastructure as a Service : Hạ tầng là dịch vụ
PaaS Platform as a Service : Nền tảng là dịch vụ
SaaS Sotware as a Service : Phần mềm là dịch vụ
ABI Applicationbinary interface: Giao diện ứng dụng nhị phân
API Applicationprogramming interface: Giao diện lập trình ứng dụng HLL High Level Language: Ngôn ngữ cao cấp
VMM Vitual Machine Monitor: Giao diện máy ảo
AWS Amazon Web Services : các dịch vụ web của Amazon
GAE Google App Enginne : Nền tảng điện toán đám mây của Google CMS Content Management System: Hệ thống quản trị nội dung
DMA Direct Memory Access: Truy bộ nhớ trực tiếp
VMApp Vitual Machine Application: ứng dụng chế độ người dùng
VMDriver Vitual Machine Driver: trình điều khiển thiết bị
ID Identification: dùng để nhận dạng một đối tượng đặc trưng, có tính
duy nhất DBMS Hệ quản trị cơ sở dữ liệu
RDBMS Hệ quản trị cơ sở dữ liệu quan hệ
Trang 7DANH MỤC CÁC HÌNH, BẢNG DANH MỤC HÌNH
Hình 1.1 : Đám mây điện toán [10] 5
Hình 1.2 : Di trú tài nguyên vào đám mây [9] 6
Hình 1.3: Ảo hóa server [8] 6
Hình 1.4 : Sky Computing cho các “đám mây” [12] 7
Hình 1.5 Đám mây riêng [2] 10
Hình 1.6: Đám mây chung [2] 11
Hình 1.7: Đám mây công cộng [2] 11
Hình 1.8: Mô hình phần mềm là dịch vụ [2] 12
Hình 1.9: Mô hình nền tảng là dịch vụ [2] 13
Hình 1.10: Mô hình Cơ sở hạ tầng là dịch vụ [2] 14
Hình 2.1: Ba thành mô hình ứng dụng trên Azure [8] 16
Hình 2.2: Tổng quan Windows Azure Platform [8] 18
Hình 2.3: Windows Azure cung cấp các dịch vụ lưu trữ và tính toán cho ĐM [8] 22
Hình 2.4: Windows Azure cho phép lưu trữ dữ liệu trong Blobs, 26
Table và Queue theo kiểu REST qua giao thức HTTP [8] 26
Hình 2.5: Các dịch vụ bên trong SQL Azure [8] 27
Hình 2.6: Cơ sở dữ liệu quan hệ SQL Azure Database [8] 27
Hình2.7:Đồng bộ dữ liệu giữa SQL Azure Database và các nguồn CSDL khác[1] 28 Hình 2.8: Service Bus kết nối giữa các ứng dụng Cloud và on-premise [4] 30
Hình 2.9: Access Control qui định quyền truy cập với Users và Applications [8] 30
Hình 2.10: Mô hình ví dụ dữ liệu Blob tài khoản lưu trữ [8] 32
Hình 2.11: Khái niệm lưu trữ Blob Block [8] 35
Hình 2.12: Windows Azure Table [8] 37
Hình 2.13: Các giá trị của Patition Key [8] 40
Hình 2.14: Sơ đồ hoạt động role [8] 42
Hình 3.1: Cài đặt Windows Azure SDK 49
Hình 3.2: Tạo New Project 50
Trang 8Hình 3.3: Đặt tên dự án và thư mục lưu trữ 50
Hình 3.4: Chọn MVC 51
Hình 3.5: Chọn No Authentication 51
Hình 3.6: Màn hình hệ thống thống nhập học sinh viên, tạo khóa học và tập huấn 51 Hình 3.7: Lược đồ cơ sở dữ liệu 54
Hình 3.8: Trang chủ của trang web 60
Hình 3.9: Cập nhật các thông tin cho sinh viên 61
Hình 3.10: Cập nhật thông tin các môn học 61
Hình 3.11: Cập nhật thông tin về giảng viên 62
Hình 3.12: Cập nhật thông tin về khoa giảng dạy 63
Hình 3.13 Vào địa chỉ của trang Web Microsoft 63
Hình 3.14 Đăng ký tài khoản Microsoft Azure 64
Hình 3.15 Đăng nhập tài khoản 64
Hình 3.16 Điền thông tin đăng ký 65
Hình 3.17 Gửi thông tin vào mail kích hoạt tài khoản 66
Hình 3.18 Nhập các thông tin về để mở tài khoản 66
Hình 3.19 Màn hình Microsoft Azure Portal 67
DANH MỤC BẢNG Bảng 2.1: Các kiểu dữ liệu Windows Azure Table hỗ trợ 39
Bảng 2.2: Bảng tóm tắt các API cho Windows Azure Table 41
Bảng 3.1 : Thiết kế bảng Person 52
Bảng 3.2 : Thiết kế bảng OfficeAssignment 52
Bảng 3.3 : Thiết kế bảng Enrollment 52
Bảng 3.4 : Thiết kế bảng Department 53
Bảng 3.5 : Thiết kế bảng CourseInstructor 53
Bảng 3.6 : Thiết kế bảng Course 53
Trang 9Điện toán đám mây chưa hẳn là một công nghệ mới, nhưng nó là một cuộc cách mạng đang làm thay đổi bản chất của công nghệ thông tin và tác động mạnh đến mọi lĩnh vực trong đó có giáo dục đặc biệt là giáo dục đại học
Có hàng trăm ứng dụng dành cho ngành giáo dục và việc tranh thủ các ứng dụng này để nâng cao khả năng nghiên cứu, học tập là thật sự cần thiết Đây là cơ hội tốt cho giáo dục, đặc biệt với 3 đối tượng nhà trường, giảng viên và sinh viên
Để phục vụ giáo dục, ngoài những ứng dụng miễn phí thông thường như email, calendar (lịch hẹn), talk (tán gẫu), Google còn cung cấp một loạt các hỗ trợ miễn phí khác như Docs (duyệt văn bản), Site (website nội bộ), Video, Group (trao đổi nhóm)… nhằm giúp cho môi trường học tập thêm đa dạng và phong phú Các ứng dụng này được xây dựng dựa trên nền tảng điện toán đám mây, cung cấp các dịch vụ hạ tầng là dịch vụ - IaaS (Infrastructure as a Service), nền tảng là dịch vụ - PaaS (Platform as a Service), phần mềm là dịch vụ - SaaS (Software as a Service) nên mang lại nhiều tiện ích cho nhà trường như không cần phải đầu tư hệ thống máy chủ, không cần mua bản quyền hay thực hiện bảo trì, bảo dưỡng cũng như giảm thiểu rủi ro và công sức cho việc vận hành hệ thống công nghệ thông tin trong nhà
trường Do đó tôi chọn đề tài giải pháp thực tế của điện toán đám mây và ứng dụng
trong giảng dạy đại học
Trang 102
* Tính cấp thiết của đề tài
Thay vì dành một ngân sách khá lớn để đầu tư cho hệ thống máy tính hoặc sử dụng những phần mềm không có bản quyền tại Khoa Công Nghệ Thông Tin- Trường Đại Học Sư Phạm Kỹ Thuật Vinh
Việc áp dụng điện toán đám mây bước đầu đã đem lại các lợi ích sau đây cho nhà trường:
- Giúp nhà trường tiếp thị, xây dựng hình ảnh một cách dễ dàng giảm chi phí xây dựng, bảo trì hệ thống như chi phí đầu tư server, chi phí bảo trì, không cần phải
có cơ sở hạ tầng nội bộ, bộ máy nhân sự cồng kềnh và cơ chế thuê bao, có thể dễ dàng thay đổi quy mô khi cần thiết;
- Giúp khoa công nghệ thông tin của Trường tham gia cộng đồng điện toán đám mây của Microsoft;
- Đạt 4 không (không máy chủ, không bảo trì, không rủi ro, không bản quyền);
- Giảm chi phí cho việc liên hệ và quản lý cán bộ công nhân viên và sinh viên;
- Nâng mặt bằng CNTT của nhà trường;
- Hỗ trợ giảng viên, sinh viên không gian lưu trữ tài liệu trên mạng;
Trang 113
* Đối tượng nghiên cứu:
Luận văn tiếp cận và trình bày nghiên cứu về những giải pháp thực tế, các công nghệ ứng dụng trong điện toán đám mây Cấu trúc bên trong các “đám mây” là những cơ sở hạ tầng như phần cứng, phần mềm, mạng, phương thức lưu trữ, bảo trì, backup, v v của Microsoft Azure
* Phạm vi nghiên cứu:
Do phạm vi công nghệ sử dụng trong mô hình điện toán đámmây rất rộng,
vì vậy luận văn dừng ở mức nghiên cứu tổng quan về những giải pháp thực tế điện toán đám mây, những kiến thức cơ bản, các công nghệ được áp dụng và các thành phần thiết kế của nó Đi sâu nghiên cứu điện toán đám mây của Windows Azure nhằm thiết kế, xây dựng hệ thống nhập học sinh viên, tạo khóa học và tập huấn trên Microsoft Azure sử dụng ngôn ngữ lập trình Microsoft Visual Studio ASP.NET MVC5
4 Tóm tắt các luận điểm cơ bản và đóng góp của luận văn
Về mặt lý thuyết, luận văn tập trung trình bày các khái niệm cơ bản về điện toán đám mây, các vấn đề lưu trữ và xử lý dữ liệu làm cơ sở để nghiên cứu các giải pháp thực tế điện toán đám mây và ứng dụng Windows Azure
Về mặt ứng dụng, luận văn đã đi sâu nghiên cứu các giải pháp thực tế của Windows Azure ứng dụng vào thiết kế, xây dựng hệ thống nhập học sinh viên, tạo khóa học và tập huấn sử dụng ngôn ngữ lập trình Microsoft Visual Studio ASP.NET MVC5
Nội dung luận văn được chia làm 4 chương cụ thể như sau:
* Chương 1: Tổng quan về điện toán đám mây Chương này giới thiệu về kiến trúc
và các cấu trúc, mô hình của điện toán đám mây Đồng thời cũng đưa ra cái tổng quan về điện toán đám mây
* Chương 2: Nền tảng của Microsoft Windows Azure Chương này giới thiệu về Windows Azure Platform, bộ lưu trữ Windows Azure, giới thiệu về SQL Azure
* Chương 3: Ứng dụng Windows Azure trong giảng dạy đại học Chương này trình bày cách thiết kế, xây dựng hệ thống nhập học sinh viên, tạo khóa học và tập huấn
Trang 124
trên Microsoft Azure sử dụng ASP.NET MVC5 Cài đặt môi trường phát triển, tạo trang Web quản lý việc nhập học của sinh viên, tạo khóa học và tập huấn bao gồm thiết kế cơ sở dữ liệu, các trang tạo mới, cập nhật thông tin cho ứng dụng hệ thống nhập học sinh viên, tạo khóa học và tập huấn và đưa được trang web lên lưu trữ trên
Microsoft Azure Portal
* Chương 4: Kết luận Chương này đưa ra những vấn đề đạt được của đề tài đã thực hiện được, những tồn tại và hướng phát triển đề tài
5 Phương pháp nghiên cứu
Trong quá tiếp cận, nghiên cứu và thực hiện luận văn bản thân tác giả đã sử dụng kết hợp hai phương pháp nghiên cứu:
Phương pháp nghiên cứu lý thuyết:
- Nghiên cứu các tài liệu, ngôn ngữ và công nghệ liên quan đến điện toán đám mây
- Tổng hợp các tài liệu
Phương pháp nghiên cứu thực nghiệm:
- Phân tích yêu cầu thực tế của bài toán và xây dựng các bước phân tích hệ thống để hỗ trợ việc lập trình, xây dựng ứng dụng
- Vận dụng các vấn đề nghiên cứu về Microsoft Azure, học viên đã tiến hành thiết kế, cài đặt cơ sở dữ liệu, trang web với môi trường phát triển Microsoft visual studio APS.NET MVC5
- Đưa được trang Web và cơ sở dữ liệu của hệ thống nhập học sinh viên, tạo khóa học và tập huấn lên Microsoft Azure Portal
- Đánh giá kết quả đạt được
Trang 13Hình 1.1 : Đám mây điện toán [10]
Theo định nghĩa, các nguồn điện toán khổng lồ như phần mềm, dịch vụ … sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn phòng ( trên mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần
Một trong những ý tưởng quan trọng nhất của điện toán đám mây là khả năng
mở rộng và công nghệ chủ chốt là công nghệ ảo hóa Ảo hóa cho phép sử dụng tốt hơn một server bằng cách kết hợp các hệ đều hành và các ứng dụng trên một máy tính chia sẻ đơn lẻ Ảo hóa cũng cho phép di trú trực tuyến (online migration) để khi một server quá tải, một instance của hệ điều hành ( và các ứng dụng trên đó) có thể
di trú đến một server mới, ít tải hơn
Từ góc nhìn bên ngoài, điện toán đám mây đơn giản chỉ là việc di trú tài nguyên tính toán và lưu trữ từ doanh nghiệp vào “đám mây” Người dùng chỉ định
Trang 146
yêu cầu tài nguyên và Cloud provider hầu như tập hợp các thành phần ảo này trong
hạ tầng của nó
Hình 1.2 : Di trú tài nguyên vào đám mây [9]
Ưu điểm mới của cloud computing là khả năng ảo hóa và chia sẻ tài nguyên giữa các ứng dụng
Hình 1.3: Ảo hóa server [8]
Trang 157
Hiện nay, các nhà cung cấp đưa ra nhiều dịch vụ của điện toán đám mây theo nhiều hướng khác nhau, đưa ra các chuẩn riêng cũng như cách thức hoạt động khác nhau Do đó, việc tích hợp các cloud để giải quyết một bài toán lớn của khách hàng vẫn còn là một vấn đề khó khăn Chính vì vậy, các nhà cung cấp dịch vụ đang có xu hướng tích hợp các cloud lại với nhau thành “sky computing”, đưa ra các chuẩn chung để giải quyết các bài toán của khách hàng
Hình 1.4 : Sky Computing cho các “đám mây”[12]
1.1.2 Sự cần thiết của điện toán đám mây
Điện toán đám mây ra đời giải quyết các vấn đề sau:
- Vấn để lưu trữ dữ liệu:
Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ Các công ty lớn như Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm rải rác khắp trên thế giới Các công ty lớn này sẽ cung cấp các dịch vụ cho phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của họ trên các kho lưu trữ trung tâm
- Vấn đề về sức mạnh tính toán :
Trang 168
Có 2 giải pháp chính:
+ Sử dụng các siêu máy tính để xử lý tính toán
+ Sử dụng các hệ thống tính toán song song, phân tán, tính toán lưới
- Vấn đề về cung cấp tài nguyên, phần mềm:
Cung cấp các dịch vụ hạ tầng là dịch vụ - IaaS (Infrastructure as a Service), nền tảng là dịch vụ - PaaS (Platform as a Service), phần mềm là dịch vụ - SaaS (Software as a Service)
1.1.3 Đặc tính của điện toán đám mây
Những đặc tính nổi bật của điện toán đám mây:
- Ảo hóa và chia sẻ tài nguyên: Trái tim của điện toán đám mây là khả năng ảo hóa Ảo hóa cung cấp khả năng chia sẻ tài nguyên tính toán như servers, storege, data… Nhờ khả năng ảo hóa, hệ thống sẽ tận dụng hiệu quả hơn
- Khả năng tự phục vụ ( Self-service access) : Cloud computing cung cấp khả năng tự phục vụ cho các User Người sử dụng có khả năng truy cập trực tiếp vào các tài nguyên và sử dụng theo nhu cầu
- Co giãn tài nguyên (Elastic resource pools) : Tài nguyên cung cấp cho người
sử dụng ( servers, storage, data,…) có thể dẽ dàng co giãn tùy theo nhu cầu sử dụng Những tài nguyên không còn được sử dụng sẽ được giải phóng cho hệ thống
- Hướng dịch vụ ( Service-oriented) : Hệ thống cloud computing là hướng dịch vụ và được xây dựng dựa trên tập các dịch vụ Các dịch vụ có thể độc lập hoặc được xây dựng dựa trên các dịch vụ đã có nhờ khả năng re-use
- Chi trả theo mức sử dụng (Pay per use): Người dùng chi trả cho những tài nguyên nào họ sử dụng, về phía nhà cung cấp, khả năng này cho phép họ theo dõi các dịch vụ được sử dụng
- Tự sửa lỗi (Self-Healing): Các ứng dụng/dịch vụ chạy trong môi trường cloud computing đều có đặc tính tự sửa lỗi Mỗi ứng dụng khi thực thi đều có các bản sao chép; các phiên bản này tự động cập nhật Khi ứng dụng gặp sự cố sẽ luôn
có 1 bản sao chép tiếp tục được thực thi
Trang 179
1.2 Cấu trúc phân lớp:
Điện toán đám mây được chia ra thành 5 lớp riêng biệt, có tác động qua lại lẫn nhau
1.2.1 Lớp khách hàng (Client):
Lớp Client của điện toán đám mây bao gồm phần cứng và phần mềm, dựa vào
đó, khách hàng có thể truy cập và sử dụng các ứng dụng/dịch vụ được cung cấp từ điện toán đám mây
1.2.2 Lớp ứng dụng (Application):
Làm nhiệm vụ phân phối phần mềm như một dịch vụ thông qua Internet, người dùng không cần phải cài đặt và chạy các ứng dụng đó trên máy tính của mình, các ứng dụng dễ dàng được chỉnh sửa và người dùng dễ dàng nhận được sự
hỗ trợ
1.2.3 Lớp nền tảng (Platform):
Cung cấp nền tảng cho điện toán và các giải pháp của dịch vụ, chi phối đến cấu trúc hạ tầng của “đám mây” và là điểm tựa cho lớp ứng dụng, cho phép các ứng dụng hoạt động trên nền tảng đó
Trang 181.4.1.1 Đám mây riêng (Private Cloud):
Các đám mây riêng (dùng cho nội bộ cơ sở) cho phép một công ty phủ các lớp ảo hóa và phần mềm quản lý lên cơ sở hạ tầng
Các đám mây riêng tư tồn tại bên trong tường lửa của công ty ta và do tổ chức của ta quản lý Chúng là các dịch vụ đám mây do ta tạo ra và kiểm soát trong doanh nghiệp của mình Các đám mây riêng tư cũng cung cấp nhiều lợi ích tương tự như các đám mây công cộng - sự khác biệt chủ yếu là tổ chức của ta chịu trách nhiệm thiết lập và duy trì đám mây đó
Hình 1.5 Đám mây riêng [2]
1.4.1.2 Đám mây chung (Community cloud):
Các đám mây chung là các đám mây được chia sẻ bởi một số tổ chức và hỗ trợ một cộng đồng cụ thể có mối quan tâm chung Nó có thể quản lý bởi các tổ chức hoặc một bên thứ ba
Trang 1911
Hình 1.6: Đám mây chung
1.4.1.3 Đám mây công cộng (Public cloud):
Các đám mây công cộng có sẵn cho công chúng hoặc một nhóm ngành nghề lớn và do một tổ chức bán các dịch vụ đám mây sở hữu và cung cấp Một đám mây công cộng là cái mà người ta hình dung là đám mây theo nghĩa thông thường; đó là, các tài nguyên được cung cấp động trên Internet bằng cách sử dụng các ứng dụng web từ một nhà cung cấp bên thứ ba bên ngoài cung cấp các tài nguyên chia sẻ và gửi hóa đơn tính cước trên cơ sở tính toán việc sử dụng
Hình 1.7: Đám mây công cộng [2]
Trang 2012
1.4.1.3 Đám mây lai (Hybrid Cloud):
Các đám mây lai là một sự kết hợp của đám mây công cộng và riêng tư khi sử dụng các dịch vụ có trong cả hai vùng công cộng và riêng tư Các trách nhiệm quản
lý được phân chia giữa các nhà cung cấp dịch vụ đám mây công cộng và chính doanh nghiệp Khi sử dụng một đám mây lai, các tổ chức có thể xác định các mục tiêu và các yêu cầu của các dịch vụ được tạo ra và có được chúng dựa vào sự lựa chọn thích hợp nhất
1.4.2 Các mô hình dịch vụ:
1.4.2.1 Phần mềm là dịch vụ (SaaS - Software as a Service):
Là tầng kiến trúc của ĐTĐM liên quan tới phần mềm, và thường được phân phối thông qua môi trường Web - là một môi trường quen thuộc với hầu hết người dùng, có thể phục vụ cho hàng trăm nghìn khách hàng cùng một lúc (dịch vụ đám mây công cộng) hoặc môi trường mạng dùng riêng gồm các máy tính và thiết bị mạng cài đặt các phần mềm chuyên dụng (dịch vụ đám mây riêng) Về phía người
sử dụng, SaaS đồng nghĩa với việc họ không cần đầu tư mua sắm, sở hữu máy chủ
và bản quyền phần mềm Còn đối với nhà cung cấp, họ chỉ phải duy trì một phần mềm ứng dụng có thể chia sẻ và dùng chung cho nhiều khách hàng, nên chi phí tổng sở hữu rẻ hơn so với cách hosting truyền thống
SaaS tiêu biểu cho tiềm năng sử dụng phần mềm với chi phí thấp hơn cho các
cơ sở - sử dụng phần mềm theo yêu cầu chứ không mua một giấy phép cho mỗi máy tính
Hình 1.8: Mô hình phần mềm là dịch vụ [2]
Trang 2113
1.4.2.2 Nền tảng là dịch vụ (PaaS - Platform as a Service)
Là một dạng dịch vụ biến thể từ SaaS, nhưng khi dựa trên công nghệ ĐTĐM
đã trở thành một loại dịch vụ đám mây mới để cung cấp nền tảng vận hành các ứng dụng Một tổ chức hay doanh nghiệp có thể xây dựng ứng dụng chạy trên PaaS của nhà cung cấp dịch vụ đám mây và phân phối lại cho người sử dụng hay khách hàng của mình
Hình 1.9: Mô hình nền tảng là dịch vụ [2]
1.4.2.3 Cơ sở hạ tầng là dịch vụ (IaaS - Infrastructure as a Service):
Là tầng thấp nhất của ĐTĐM, nơi tập hợp các tài sản vật lý như các phần cứng máy chủ, hệ thống lưu trữ và các thiết bị mạng, được chia sẽ và cung cấp dưới dạng dịch vụ IaaS cho các tổ chức hay doanh nghiệp khác nhau Cũng giống như dịch vụ PaaS, ảo hóa là công nghệ được sử dụng rộng rãi để tạo ra cơ chế chia sẻ và phân phối các nguồn tài nguyên theo yêu cầu
Ví dụ về các dịch vụ IaaS như IBM BlueHouse, Vmware, Amazon EC2, Microsoft Azure Platform, Sun Parascale Cloud Storage
Với IaaS, ta có khả năng xử lý dự phòng, nơi lưu trữ, làm việc với mạng, và các tài nguyên điện toán khác, ở đây ta có thể triển khai và chạy phần mềm tùy ý như hệ điều hành và các ứng dụng
Trang 22- Kích thước: Tăng lượng người dùng và/hoặc tài nguyên
- Địa lý: Một hệ thống có thể phát triển về địa lý hay khoảng cách
- Quản lý: Khi một hệ thống phát triển các thành phần ngày càng mở rộng và
đa dạng hơn
1.5.2 Khả năng mở rộng của ĐTĐM Có 2 phương pháp để tăng khả năng mở rộng đó là:
- Khả năng mở rộng theo chiều dọc
- Khả năng mở rộng theo chiều ngang
1.5.3 Các kỹ thuật mở rộng
- Che dấu độ trễ liên lạc
- Phân tán
- Các dữ liệu bộ đệm thường dễ áp dụng
Trang 2315
1.5.4 Công nghệ đảm bảo khả năng mở rộng của ĐTĐM
Khả năng mở rộng trong ĐTĐM có thể chia thành những nội dung chính sau:
- Khả năng mở rộng kho dữ liệu (Scalable Datastore)
- Khả năng mở rộng bộ lưu trữ file (Scalable File Storage )
- Phương pháp tiếp cận để chịu lỗi trong cơ sở hạ tầng đám mây (Approaches
to Fault Tolerance in Cloud Infrastructure)
- Khả năng mở rộng xử lý theo khối (Scalable Batch Processing)
Trang 2416
CHƯƠNG 2: NỀN TẢNG MICROSOFT WINDOWS AZURE
2.1 Giới thiệu về Windows Azure Platform
2.1.1 Giới thiệu
Windows Azure là một nền tảng Cloud Computing của Microsoft thường để xây dựng, triển khai và quản lý các ứng dụng thông qua trung tâm dữ liệu (Datacenters) Window Azure cho phép các nhà phát triển (developers) có thể sử dụng nhiều ngôn ngữ lập trình, các công cụ, frameworks Các developers có thể thống nhất ứng dụng Public Cloud với môi trường IT sẵn có của họ Windows Azure Platform có 3 mô hình ứng dụng trên Cloud
Hình 2.1: Ba thành mô hình ứng dụng trên Azure [8]
2.1.1.1 Virtual Machine:
Windows Azure (VMs) có thể được sử dụng trong nhiều cách khác nhau Ta
có thể sử dung để tạo một nền tảng để phát triển và kiểm thử phần mềm với ít chi phí và ta có thể kết thúc khi ta hoàn thành việc sử dụng nó Ta cũng có thể tạo ra một ứng dụng và chạy nó bởi bất kì ngôn ngữ và thư viện mà ta muốn Các ứng dụng đó có thể sử dụng bất kì chương trình quản lí dữ liệu mà Windows Azure cung
Trang 2517
cấp, và ta cũng có thể chọn SQL Server hay các hệ thống quạn trị dữ liệu chạy trên máy ảo Một tùy chọn khác là sử dụng VMs như một phần mở rộng trung tâm dữ liệu của máy local (on-premises datacenter) Để hỗ trợ điều này, nó có khả năng tạo các domain trên Cloud bởi Active Directory trên VMs Đây là cách mới để tiếp cận Cloud Computing mà có thể nhắm tới nhiều vấn đề khác nhau
2.1.1.3 Cloud Services:
Đây là công nghệ giúp ta có thể xây dựng ứng dụng và triển khải nó ngay trên
hệ thống đám mây Azure mà không cần quan tâm tới phần cứng Developer có thể đưa lên một Website dựa trên Windows Azure Web Sites và một Webservice dựa trên Windows Azure Hosted Service hay tự cấu hình một máy chủ qua Windows Azure VMs
Mỗi mô hình thực thi đều có vai trò riêng của nó Windows Azure Virtual Machines cung cấp một môi trường điện toán thông thường Windows Azure Web Sites đưa ra hosting cho web với chi phí thấp và Windows Azure Cloud Service là một sự lựa chọn tốt nhất cho việc tạo các ứng dụng có khả năng mở rộng, độ tin cậy cao và với chi phí quản lý thấp Tóm lại, ta có thể sử dụng riêng rẽ các hoặc kết hợp chúng để tạo nên cơ sở đúng cho ứng dụng của ta, và sự lựa chọn đó còn tùy thuộc vào những vấn đề mà ta cần phải giải quyết
Trang 2618
Hình 2.2: Tổng quan Windows Azure Platform [8]
Các thành phần của Windows Azure Platform :
- Windows Azure: cung cấp môi trường nền tảng Windows để chạy ứng dụng
và lưu trữ dữ liệu trên máy chủ trong trung tâm dữ liệu của Microsoft
- SQL Azure: cung cấp dịch vụ lưu trữ dữ liệu quan hệ trên đám mây dựa trên
SQL Server
- Windows Azure Platform AppFabric: cung cấp các dịch vụ đám mây để
kết nối các ứng dụng chạy trên đám mây hoặc on-premise
Windows Azure chạy trên nhiều máy tính đặt trong trung tâm dữ liệu của Microsoft và truy xuất qua Internet Một Windows Azure fabric liên kết chặt chẽ nhiều sức mạnh xử lí này thành một thể thống nhất
Dịch vụ tính toán dựa trên Windows Lập trình viên có thể xây dựng ứng dụng
sử dụng NET Framework, native-code Các ứng dụng này được viết bằng các ngôn ngữ thông thường như: C#, Visual Basic, C++ và cả Java, sử dụng Visual Studio hoặc công cụ phát triển khác Lập trình viên có thể tạo ứng dụng Web, sử dụng công nghệ như ASP.Net, WCF và PHP, ứng dụng cũng có thể chạy như một xử lí nền độc lập, hoặc kết hợp cả Web và xử lí nền Cả ứng dụng Windows Azure và ứng dụng on-premise có thể truy xuất dịch vụ lưu trữ Windows Azure, và cả hai cùng truy xuất bằng REST API Dịch vụ lưu trữ cho phép lưu trữ các đối tượng dữ
Trang 2719
liệu lớn qua blob, cung cấp các queue để liên lạc giữa các thành phần trong ứng dụng, và cung cấp dạng table với ngôn ngữ truy vấn đơn giản Đối với các ứng dụng
có nhu cầu lưu trữ dữ liệu quan hệ truyền thống, Windows Azure Platform cung cấp
cơ sở dữ liệu SQL Azure
Tuy nhiên, để đạt được những thuận lợi trên đòi hỏi phải quản lí hiệu quả Trong Windows Azure, mỗi ứng dụng có một tập tin cấu hình Bằng cách cấu hình tập tin này, người chủ ứng dụng có thể cấu hình nhiều thành phần như thiết lập số thể hiện mà ứng dụng Windows Azure nên chạy Sau đó, Windows Azure fabric giám sát ứng dụng để duy trì trạng thái mong muốn
2.1.2 Windows Azure
Windows Azure là một nền tảng để chạy các ứng dụng Windows và lưu trữ dữ liệu của các ứng dụng này trên đám mây Windows Azure chạy trên rất nhiều máy, tất cả đều được đặt trong trung tâm dữ liệu của Microsoft và có thể truy cập nhờ mạng Internet Kết cấu Windows Azure liên kết các trạng thái xử lý thành một khối thống nhất Các dịch vụ lưu trữ và chạy ứng dụng của Windows Azure được xây dựng phía trên các kết cấu này
Trong phiên bản Windows Azure được đưa ra tại buổi hội thảo của các chuyên gia tổ chức vào mùa thu năm 2008, lập trình viên có thể tạo ra các phần mềm dựa trên công nghệ NET như các ứng dụng ASP.NET và các dịch vụ Windows Communication Foundation (WCF) Để làm được điều này, họ có thể sử dụng C# và những ngôn ngữ NET khác, cùng với các công cụ phát triển truyền thống như Visual Studio 2008 Họ cũng có thể sử dụng phiên bản này của Windows Azure để tạo ra các ứng dụng Web
Cả ứng dụng Windows Azure và các ứng dụng chạy trên máy cá nhân có thể truy cập các dịch vụ lưu trữ của Windows Azure theo cùng một cách: sử dụng phương thức RESET Tuy nhiên, thành phần lưu trữ dữ liệu không phải là Microsoft SQL Server, cũng không phải là một hệ thống quan hệ và ngôn ngữ truy vấn của nó không phải là SQL Thành phần này được thiết kế để hỗ trợ chạy các ứng dụng của
Trang 2820
Windows Azure, nó cung cấp các kiểu lưu trữ đơn giản hơn, linh động hơn Nó cũng cho phép lưu các đối tượng dữ liệu lớn (Blobs), cung cấp hàng đợi để giao tiếp giữa các thành phần của ứng dụng Windows Azure và thậm chí cung cấp các bảng với ngôn ngữ truy vấn đễ hiểu
Chạy ứng dụng và lưu dữ liệu trên đám mấy rất có ý nghĩa Thay vì phải mua sắm, cài đặt và xử lý chính hệ thống của mình, một tổ chức có thể chỉ phụ thuộc vào nhà cung cấp đám mây Khách hàng cũng chỉ phải trả cho việc chạy ứng dụng và lưu trữ mà họ sử dụng thay vì phải duy trì rất nhiều máy chủ chỉ để phục vụ một số nhu cầu nào đó Và nếu được viết chính xác, các ứng dụng có thể được thay đổi đễ dàng, tận dụng được những tính năng của trung tâm dữ liệu mà đám mây cung cấp Trong Windows Azure, mỗi ứng dụng có một file cấu hình Bằng việc thay đổi thông tin lưu trong file này, chủ sở hữu của ứng dụng có thể thay đổi số lượng các thể hiện mà Windows Azure sẽ chạy Kết cấu Windows Azure giám sát ứng dụng
để duy trì trạng thái mong muốn của ứng dụng đó
Để cho phép khách hàng tạo ra, cấu hình và giám sát các ứng dụng, Windows Azure cung cấp một cổng có thể truy cập được qua trình duyệt Mỗi khách hàng được cung cấp một tài khoản Windows Azure ID, một tài khoản để chạy ứng dụng, một tài khoản để lưu trữ dữ liệu
Windows Azure có thể được ứng dụng theo nhiều cách khác nhau Một số ứng dụng tiêu biểu:
- Tạo ra một trang web mới: Windows Azure hỗ trợ cả các dịch vụ web và các tiến trình bên dưới, ứng dụng có thể cung cấp giao diện người dùng tương tác cũng như xử lý công việc để đồng bộ người dùng
Một nhà bán lẻ phần mềm độc lập (ISV) tạo ra phiên bản phần mềm hoạt động như là dịch vụ (SaaS) của một ứng dụng đã có ứng dụng NET có thể được xây dựng trên Windows Azure Vì Windows Azure cung cấp một môi trường NET chuẩn nên việc chuyển các ứng dụng NET lên đám mây không gây ra nhiều vấn đề Xây dựng ứng dụng trên một nền tảng đã tồn tại cho phép ISV hướng đến việc kinh doanh của họ thay vì mất thời gian cho cơ sở hạ tầng
Trang 2921
- Một ứng dụng doanh nghiệp: Chọn các ứng dụng trong trung tâm dữ liệu của Microsoft giúp các doanh nghiệp không phải trả tiền cho việc quản lý máy chủ mà tập trung toàn bộ chi phí vào việc xử lý
Chạy ứng dụng trên đám mây là một trong những xu hướng quan trọng nhất của điện toán đám mây Với Windows Azure, Microsoft cung cấp một nền tảng để làm việc này, cùng với cách thức lưu dữ liệu Windows Azure làm hai việc chính: chạy ứng dụng và lưu trữ dữ liệu
- Chạy ứng dụng: Trong Windows Azure, một ứng dụng có nhiều thể hiện, mỗi thể hiện chạy một phần của mã ứng dụng
Mỗi thể hiện chạy trên máy ảo của nó Những máy ảo này chạy Windows Sever 2008 64 bit, chúng được thiết kế đặc biệt để sử dụng trên đám mây Một ứng dụng Windows Azure không thể thấy được máy ảo mà nó đang chạy trong đó Lập trình viên không được phép cung cấp hình ảnh máy ảo của mình cho Windows Azure, cũng không cần quan tâm về cách duy trì bản sao của hệ điều hành Windows Thay vào đó, phiên bản đầu tiên cho phép lập trình viên tạo ra ứng dụng NET 3.5 với Web role và/hoặc Worker role
Mỗi web role chấp nhận các yêu cầu HTTP hay HTTPS đến qua IIS7 Một web role có thể thực thi sử dụng ASP.NET, WCF hay các công nghệ NET framework khác làm việc với IIS Windows Azure cung cấp cân bằng tải có sẵn để
mở rộng các yêu cầu qua web role như một phần của ứng dụng
Trang 3022
Hình 2.3:Windows Azure cung cấp các dịch vụ lưu trữ và tính toán cho ĐM [8]
Một worke role, ngược lại, không thể chấp nhận các yêu cầu trực tiếp từ bên ngoài, nó không cho phép các kết nối đến và IIS không chạy trên máy ảo của nó Thay vào đó, nó nhận dữ liệu vào từ web role, qua hàng đợi trong Windows Azure Storage
Kết quả của việc này có thể được ghi vào Windows Azure Storage hoặc được gửi ra ngoài Không giống như web role được tạo ra để xử lý một yêu cầu HTTP đến và kết thúc khi yêu cầu đã được xử lý, một worke role có thể chạy mãi mãi Một worke role được thực thi sử dụng bất kỳ công nghệ NET nào
Bất kể là chạy web role hay worke role, mỗi máy ảo chứa một tác nhân Windows Azure (Windows Azure Agent) cho phép ứng dụng tương tác với kết cấu Windows Azure
Phiên bản đầu tiên của Windows Azure duy trì một mối quan hệ-một giữa máy ảo và nhân xử lý vật lý của nó Vì vậy, hiệu suất của ứng dụng có thể được đảm bảo Để tăng hiệu suất của ứng dụng, có thể tăng số lượng thể hiện trong file cấu hình Kết cấu Windows Azure sẽ chuyển sang máy ảo mới, gán chúng với nhân
Trang 31Với lập trình viên, xây dựng một ứng dụng Windows Azure trong phiên bản PDC giống như xây dựng một ứng dụng NET truyền thống Microsoft cung cấp khuôn mẫu (template) project Visual Studio 2008 để tạo ra web role, worke role hoặc cả hai Lập trình viên tự do sử dụng bất kỳ ngôn ngữ NET nào Gói phát triển phần mềm Windows Azure gồm phiên bản của môi trường Windows Azure chạy trên máy của lập trình viên Gói này bao gồm Windows Azure Storage, một Windows Azure Agent và bất kỳ ứng dụng gì có thể thấy trên đám mây lập trình viên có thể tạo ra và sửa ứng dụng bằng hệ thống này, sau đó triển khai trên đám mây khi đã sẵn sàng Tuy nhiên không thể đưa bộ gỡ lỗi lên đám mây, vì vậy sửa lỗi trên đám mây phụ thuộc vào việc viết ra bản ghi (log) thông tin Windows Azure qua Windows Azure Agent
Windows Azure cũng cung cấp những dịch vụ khác cho lập trình viên Ví dụ: một ứng dụng Windows Azure có thể gửi một chuỗi thông báo qua Windows Azure Agent và Windows Azure sẽ chuyển tiếp thông báo đó qua thư, thông điệp tức thời hay một cơ chế nào đó tới người nhận cụ thể Nếu muốn, Windows Azure
có thể phát hiện xem ứng dụng nào lỗi và gửi thông báo Windows Azure Platform cũng cung cấp thông tin chi tiết về tài nguyên ứng dụng, gồm thời giân xử lý, băng thông đi và đến, lưu trữ
Trang 3224
Truy cập dữ liệu: Cách đơn giản nhất để lưu dữ liệu là sử dụng blob
Một tài khoản lưu trữ có thế có một hoặc nhiều container, mỗi container có một hoặc nhiều blob Blob có thể lớn (50 gigabytes) và để sử dụng blob hiệu quả, mỗi blob có thể được chia thành các khối (block).Nếu có lỗi xảy ra, việc chuyển dữ liệu có thể được khôi phục lại với khối gần nhất thay vì phải gửi lại toàn bộ blob
Blob được lưu trong phạm vi Blob container Trong cùng một container, mỗi blob có tên riêng Dữ liệu trong một blob là các cặp <tên, giá trị>, có kích thước khoảng 8 KB
Blob chỉ thích hợp cho một số kiểu dữ liệu Để ứng dụng làm việc với dữ liệu hiệu quả hơn, Windows Azure Storage cung cấp bảng (table) Dữ liệu chưa trong bảng gồm các thực thể với các thuộc tính Các khái niệm liên quan đến bảng:
- Thực thể (hàng):là những đối tượng dữ liệu cơ bản được lưu trong bảng Một thực thể chứa tập hợp các thuộc tính Mỗi bảng có hai thuộc tính tạo thành khóa riêng cho thực thể Mỗi thực thể có nhiều nhất 255 thuộc tính gồm cả các thuộc tính
hệ thống như khóa phân vùng (Partition Key), khóa hàng (RowKey), thời gian lưu lại thay đổi (Timestamp)
- Thuộc tính (cột): thể hiện một giá trị đơn trong một thực thể Tên thuộc tính
có phân biệt chữ hoa, chữ thường
- Khóa phân vùng (partitionkey): thuộc tính khóa đầu tien của mọi bảng Hệ thống sử dụng khóa phân vùng để tự động phân bổ các thực thể của bảng trên nhiều nút lưu trữ khác nhau Khóa phân vùng có kiểu string
- Thời gian lưu lại thay đổi: thời gian hệ thống lưu lại phiên bản của thực thể
- Phân vùng: tập hợp các thực thể trong bảng có cùng khóa phân vùng
- Thứ tự sắp xếp: mỗi thực thể trong bảng được sắp xếp theo khóa phân vùng
và khóa hàng để truy vấn theo những khóa này hiệu quả hơn, kết quả trả về được sắp xếp theo những khóa này
Một bảng không có giản đồ định nghĩa sẵn (defined schema), thuộc tính có nhiều loại khác nhau: int, string, bool, Date time Thay vì sử dụng SQL, ứng dụng truy cập dữ liệu bảng sử dụng lênh truy vấn với cú pháp LINQ Một bảng có thể
Trang 3325
lớn, với hàng tỉ thực thể lưu hàng triệu byte dữ liệu, nếu cần thiết, Windows Azure
có thể phân chia các bảng trên nhiều máy chủ để cải thiện hiệu suất
Blob và bảng đều được dùng để lưu dữ liệu Lựa chọn thứ ba là hàng đợi (queue) Hàng đợi cung cấp cách để web role giao tiếp với worke role Một hàng đợi có thể chứa nhiều thông điệp Tên của hàng đợi có phạm vi trong tên tài khoản
Số lượng các thông điệp lưu trong hàng đợi không bị giới hạn Mỗi thông điệp được lưu nhiều nhất là một tuần, sau đó hệ thống sẽ tự thu dọn những thông điêp lâu hơn một tuần Dữ liệu trong hàng đợi cũng có dạng <tên, giá trị> và mỗi hàng đợi chứa tối đa 8 KB dữ liệu
Thông điệp được lưu trong hàng đợi Khi được đưa vào hàng đợi, thông điệp
có thể có dạng nhị phân nhưng khi thấy thông điệp ra khỏi hàng đợi, đáp ứng trả về
có dạng XML còn thông điệp được mã hóa base64 Thông điệp được trả về từ hàng đợi không theo thứ tự, mỗi thông điệp có thể được trả về nhiều hơn một lần Một số tham số được sử dụng trong hàng đợi của Azure là:
MessageID:giá trị định danh thông điệp trong hàng đợi
VisibilityTimeout: số thực xác định thời gian chờ tính bằng giây có thể thấy được thông điệp, Giá trị cực đại là 2 giờ Thời gian mặc định là 30 giây
PopReceipt: chuỗi được trả về khi truy vấn thông điệp Chuỗi này cùng với MessageID là những giá trị bắt buộc khi muốn xóa một thông điệp khỏi hàng đợi MessageTTL: xác định thời gian sống tính bằng giây của thông điệp Thời gian sống cực đại là 7 ngày, giá trị mặc định là 7 ngày Nếu trong thời gian sống mà thông điệp không bị chủ tài khoản xóa khỏi hàng đợi, hệ thống lưu trữ sẽ tự động xóa thông điệp
Trang 3426
Hình 2.4: Windows Azure cho phép lưu trữ dữ liệu trong Blobs,
Table và Queue theo kiểu REST qua giao thức HTTP [8]
Windows Azure Storage có thể truy cập ứng dụng Windows Azure hoặc một ứng dụng chạy ở một nơi nào đó Trong cả hai trường hợp, các kiểu lưu trữ của Windows Azure sử dụng tiêu chuẩn REST để xác định và lấy dữ liệu Mọi thứ được đặt tên sử dụng URIs và được truy cập với chuẩn HTTP Một máy khách NET có thể sử dụng dịch vụ dữ liệu ADO.NET và LINQ
2.1.3 SQL Azure
SQL Azure là ứng dụng chạy trên trung tâm dữ liệu, cung cấp khả năng lưu trữ dữ liệu cho các cả các ứng dụng điện toán đám mây và các ứng dụng khác SQL Azure cung cấp tập các dịch vụ đám mây hỗ trợ lưu trữ và làm việc với nhiều loại thông tin Hiện tại, Microsoft đưa ra 2 thành phần chính của SQL Azure: SQL Azure Database và “Huron” Data Sync
Trang 3527
Hình 2.5: Các dịch vụ bên trong SQL Azure [8]
SQL Azure Database cung cấp một RDBMS trong “đám mây” Nó cho phép ứng dụng đám mây và ứng dụng có sẵn (on-premises) có thể lưu trữ cơ sở dữ liệu quan hệ hoặc dạng khác trên các máy chủ tại trung tâm dữ liệu Chi phí sẽ được tính dựa trên những gì sử dụng, thay đổi tùy theo nhu cầu sử dụng
Hình 2.6: Cơ sở dữ liệu quan hệ SQL Azure Database [8]
Trang 3628
Thành phần thứ hai trong SQL Azure được giới thiệu là “Huron” Data Sync, xây dựng dựa trên Microsoft Sync Framework và SQL Azure Database, công nghệ này cho phép đồng bộ dữ liệu thông qua các on-premises DBMS Người sử dụng và
sở hữu dữ liệu sẽ xác định những gì cần đồng bộ, giải quyết các xung đột như thế nào,…
Hình 2.7: Đồng bộ dữ liệu giữa SQL Azure Database và các nguồn CSDL khác[1]
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 công 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 Sever 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 toán đám 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 có các chức năng:
Trang 3729
- 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 trug 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
SQL Azure 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 dãn linh hoạt tùy 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 Sever 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
2.1.4 Windows Azure platform AppFabric
Windows Azure platform AppFabric cung cấp cơ sở hạ tầng dựa trên đám mây được sử dụng bởi ứng dụng đám mây và ứng dụng on-premise
Các thành phần của Windows Azure platform AppFabric:
- Service Bus: Mục tiêu của Service Bus là cho phép các ứng dụng expose các endpoins có thể được truy xuất bởi các ứng dụng khác Mỗi exposed được gán một URI Client sử dụng URI này để xác định vị trí và truy xuất dịch vụ Service Bus
Trang 3830
cũng xử lý việc chuyển đổi địa chỉ mạng và vươt qua tường lửa mà không cấn mở port mới để expose ứng dụng
Hình 2.8: Service Bus kết nối giữa các ứng dụng Cloud và on-premise [4]
- Access Control: Dịch vụ này cho phép ứng dụng client chứng thực chính nó
và cung cấp một ứng dụng sever với thông tin xác thực Máy chủ sau đó có thể sử dụng thông tin này để quyết định những gì ứng dụng này được phép làm
Hình 2.9: Access Control qui định quyền truy cập với Users và Applications [4]
Trang 3931
Các dịch vụ này có thể được sử dụng trong nhiều cách khác nhau như sau: Giả sử một doanh nghiệp muốn cho phần mềm được truy cập bởi các đối tác thương mại đến một trong các ứng dụng của nó Nó có thể expose các chức năng của ứng dụng qua dịch vụ Web: SOAP hoặc REST, sau đó đăng ký các endpoint của họ với Service Bus Các đối tác thương mại có thể sử dụng Service Bus để tìm các endpoint này và truy xuất các dịch vụ
Một ứng dụng chạy Windows Azure có thể truy xuất dữ liệu lưu trữ trong cơ
sở dữ liệu on-premise Để làm được điều này, có thể giải quyết bằng cách tạo một service truy xuât dữ liệu, sau đó expose service này qua Service Bus
Hãy tưởng tượng một doanh nghiệp expose nhiều dịch vụ ứng dụng cho các đối tác kinh doanh của mình Nếu những dịch vụ đó được expose bằng cách sử dụng REST, ứng dụng có thể dựa vào các Access Control để xác thực và cung cấp thông tin nhận dạng cho mỗi ứng dụng khách hàng Thay vì duy trì thông tin nội bộ về từng ứng dụng đối tác thương mại, thông tin này có thể được lưu trữ trong dịch vụ Access Control
2.2 Bộ lưu trữ Windows Azure
2.2.1 Giới thiệu bộ lưu trữ Windows Azure
Bộ lưu trữ Windows Azure cho phép các lập trình viên lưu dữ liệu của họ trên đám mây Ứng dụng có thể truy xuất dữ liệu từ bất kì nơi đâu, tại bất kì thời điểm nào, lưu trữ lượng dữ liệu tùy ý trong khoảng thời gian bất kì và nó đảm bảo rằng
dữ liệu được lưu trữ bền vững và không bị thất lạc Bộ lưu trữ Windows Azure cung cấp một bộ trừu tượng hóa dữ liệu phong phú:
- Windows Azure Blob - cung cấp lưu trữ cho các mẫu dữ liệu lớn
- Windows Azure Table - cung cấp bộ lưu trữ có cấu trúc để lưu trữ tình trạng
sử dụng
- Windows Azure Queue - cung cấp các thông báo công việc để khởi động dịch vụ liên lạc
Trang 40Hình 2.10: Mô hình ví dụ dữ liệu Blob tài khoản lưu trữ [8]
Tất cả truy xuất đến bộ lưu trữ Windows Azure đều được thực hiện thông qua tài khoản lưu trữ Một tài khoản có thể có nhiều container
Blob Container - Một container chứa nhiều blob
Một container có thể có metadata kết hợp với chúng Metadata ở dạng cặp
<tên, giá trị> và chúng có kích thước tối đa 8KB với mỗi container Container chỉ chứa các blob và không thể chứa các thùng chứa khác bên trong vì thế nó không thể tạo ra hệ thống phân cấp các blob Tuy nhiên, tên blob có thể chứa kí tự "/", vì thế một lập trình viên có thể giả lập hệ phần cấp cho blob khi có nhu cầu
Blob: Blob được lưu trữ trong container Kích thước mỗi blob có thể lên đến
200GB Một blob có một tên duy nhất trong một container Blob có thể có metadata