ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH
TÊN ĐỀ TÀI TIỂU LUẬN
TÌM HIỂU WINDOWS AZURE
VÀ XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM
Giảng viên hướng dẫn:
PGS.TS. Nguyễn Phi Khứ
Học viên thực hiện:
Võ Anh Tuấn – CH1301113
TP.HCM, 07/06/2014
LỜI MỞ ĐẦU
i
Điện toán đám mây (tiếng Anh: cloud computing), còn gọi là điện toán máy
chủ ảo, là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào
mạng Internet. Thuật ngữ “đám mây” ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa
vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về
độ phức tạp của các cơ sở hạ tầng chứa trong nó. Ở mô hình điện toán này, mọi khả
năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ",
cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó
“trong đám mây” mà không cần phải có các kiến thức, kinh nghiệm về công nghệ
đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó.
Với việc nghiên cứu điện toán đám mây, cụ thể là công nghệ Azure của
Microsoft, bài tiểu luận này chủ yếu tập trung tìm hiểu những khái niệm cơ bản về
điện toán đám mây nói chung, công nghệ Azure nói riêng, các vấn đề về Windows
Azure Platform như kiến trúc, thành phần, chức năng, lợi ích, các mô hình ứng
dụng nhằm đưa ra một tầm nhìn tổng quan về Windows Azure Platform và ứng
dụng vào phân tích, xây dựng thử nghiệm một hệ thống mạng xã hội ảo cho cựu
sinh viên.
ii
MỤC LỤC
Chương 1 Tổng quan 1
1.1. Đặt vấn đề 1
1.2. Mục tiêu đề tài 2
1.3. Nội dung thực hiện 2
Chương 2 Tổng quan Windows Azure Platform 3
2.1. Tổng quan điện toán đám mây 3
2.1.1. Định nghĩa 3
2.1.2. Các giải pháp 3
2.1.3. Các tầng tạo nên đám mây 5
2.1.4. Lợi ích của điện toán đám mây 6
2.1.5. Xu hướng phát triển 6
2.2. Tổng quan Windows Azure Platform 6
2.2.1. Giới thiệu 6
2.2.2. Giới thiệu Windows Azure 7
2.2.3. Giới thiệu SQL Azure 8
2.2.4. Windows Azure Platform AppFabric 10
Chương 3 Giới thiệu về Windows Azure 12
3.1. Tổng quan Windows Azure 12
3.2. Các thành phần Windows Azure 12
3.2.1. Dịch vụ tính toán (Compute Service) 13
3.2.2. Dịch vụ lưu trữ (Storage Service) 14
3.2.3. Windows Azure Fabric 15
Chương 4 Giới thiệu bộ lưu trữ Windows Azure 18
4.1. Giới thiệu bộ lưu trữ Windows Azure 18
4.2. Windows Azure Blob 18
4.2.1. Giới thiệu 18
4.2.2. Giao tiếp REST với Blob 19
4.2.3. Với Blob là một danh sách các block 20
iii
4.3. Windows Azure Table 22
4.3.1. Giới thiệu 22
4.3.2. Phân vùng Table 24
4.3.3. Lập trình Table 25
4.4. Windows Azure Queue 27
4.4.1. Giới thiệu 27
4.4.2. Mô hình dữ liệu Queue: 28
4.4.3. Thực tiễn tốt nhất 29
Chương 5 Giới thiệu SQL Azure 30
5.1. Giới thiệu 30
5.2. Tổng quan kiến trúc 30
5.2.1. Mô hình Provisioning 30
5.2.2. Mô hình dữ liệu quan hệ 31
5.2.3. Kiến trúc truy xuất dữ liệu 31
5.2.4. Mô hình bảo mật 31
5.2.5. Triển khai 32
5.3. Ứng dụng của SQL Azure 32
Chương 6 Tổng quan Windows Azure Platform AppFabric 33
6.1. Giới thiệu 33
6.2. Giới thiệu AppFarbic Service Bus 33
6.2.1. Giới thiệu 33
6.2.2. Kiến trúc Service Bus 34
6.2.3. Message Buffer 40
6.3. Tổng quan Fabric Access Control 41
6.3.1. Giới thiệu 41
6.3.2. Xây dựng Web Services Trust Access Control 42
6.3.3. Access Control Management Service 47
Chương 7 Ứng dụng mạng xã hội ảo cho cựu sinh viên 48
7.1. Giới thiệu 48
7.2. Chức năng 49
iv
7.3. Use-case 51
7.3.1. Mô hình Use-case 51
7.3.2. Danh sách Use-case 51
7.4. Kiến trúc hệ thống 53
7.4.1. Theo góc nhìn thiết kế 53
7.4.2. Ở góc nhìn ứng dụng 54
7.4.3. Kiến trúc Application 55
7.5. Sơ đồ lớp 57
7.6. Thiết kế dữ liệu 63
7.7. Thiết kế giao diện 66
7.7.1. Trang chủ 66
7.7.2. Thông tin cá nhân 68
7.7.3. Bạn bè 68
70
7.7.4. Diễn đàn 71
7.7.5. Trang quản lí 72
7.8. Cấu hình và triển khai ứng dụng 72
Chương 8 Kết luận 78
8.1. Đánh giá 78
8.1.1. Về cơ sở lý thuyết 78
8.1.2. Về ứng dụng 78
8.2. Hướng phát triển 80
8.2.1. Về cơ sở lý thuyết 80
8.2.2. Về ứng dụng 80
v
DANH MỤC CÁC HÌNH
Hình 2.1 - Mọi thứ đều tập trung vào đám mây 3
Hình 2.2 - Minh họa về các dịch vụ 4
Hình 2.3 - Các tầng tạo nên đám mây 5
Hình 2.4 – Tổng quan Windows Azure Platform 7
Hình 2.5 – Windows Azure cung cấp dịch vụ tính toán và dịch vụ lưu trữ 7
Hình 2.6 - SQL Azure cung cấp dịch vụ định hướng dữ liệu trong đám mây 9
Hình 2.7 - Ứng dụng truy xuất dữ liệu trong Cơ sở dữ liệu SQL Azure 10
Hình 2.8 - Windows Azure Platform AppFabric cung cấp cơ sở hạ tầng 11
Hình 3.9 - Ứng dụng Windows Azure 12
Hình 3.10 - Các thành phần Windows Azure 12
Hình 3.11 - Ứng dụng Windows Azure có thể chứa Web role và Worker role.13
Hình 3.12 - Bộ lưu trữ Windows Azure: Blob, Table, Queue 14
Hình 3.13 - Fabric Controller 15
Hình 3.14 - Fabric Controller và Fault Domain 16
Hình 3.15 - Fabric Controller và Update Domain 17
Hình 4.16 - Mô hình ví dụ dữ liệu Blob 18
Hình 4.17 - Khái niệm lưu trữ Blob Block 21
Hình 4.18 - Windows Azure Table 22
Hình 4.19 – Hình minh họa phân vùng 24
Hình 4.20 – Các thao tác với message 27
Hình 6.21 - Kiến trúc Service Bus 34
Hình 6.22 - Mô hình tích hợp Service bus và Access Control 35
Hình 6.23 – Sơ đồ tên gọi của Service Bus 37
Hình 6.24 – Message Buffer trong Service Bus 40
Hình 6.25 – Sơ đồ trao đổi 43
Hình 6.26 - Lược đồ tài nguyên Access Control 47
Hình 7.27 - Sơ đồ Use-case 51
Hình 7.28 – Sơ đồ kiến trúc tổng quan hệ thống 53
Hình 7.29 – Sơ đồ kiến trúc chi tiết hệ thống 54
vi
Hình 7.30 – AlumniNetworking ở góc nhìn ứng dụng 55
Hình 7.31 – Sơ đồ kiến trúc Application 55
Hình 7.32 – Cấu trúc AppPage 56
Hình 7.33 – Sơ đồ module Account, Profile, Friend 57
Hình 7.34 – Sơ đồ lớp Forum, Group 58
Hình 7.35 – Sơ đồ lớp module Message, Photo, Comment, Rating 59
Hình 7.36 – Sơ đồ lớp module Job, Scholarship 61
Hình 7.37 – Lược đồ CSDL 63
Hình 7.38 – Màn hình trang chủ 66
Hình 7.39 – Màn hình đăng nhập 67
Hình 7.40 – Màn hình đăng ký 67
Hình 7.41 – Màn hình thông tin cá nhân 68
Hình 7.42 – Màn hình bạn bè của tôi 68
Hình 7.43 – Màn hình tìm kiếm bạn bè 69
Hình 7.44 – Màn hình nhập địa chỉ mail từ Outlook 69
Hình 7.45 – Màn hình giới thiệu nhóm 70
Hình 7.46 – Màn hình thành viên nhóm 70
Hình 7.47 – Màn hình diễn đàn 71
Hình 7.48 – Màn hình bài viết trên diễn đàn 72
Hình 7.49 – Màn hình trang quản lí 72
Hình 7.50 – Đóng gói ứng dụng 73
Hình 7.51 – Đóng gói ứng dụng 73
Hình 7.52 – Màn hình đăng nhập tài khoản Windows Live 74
Hình 7.53 – Màn hình Microsoft Azure sau khi đăng nhập 75
Hình 7.54 – Màn hình tạo Azure cloud service 75
Hình 7.55 – Màn hình tạo Azure SQL database 75
Hình 7.56 – Màn hình tạo Azure storage account 76
Hình 7.57 – Các bước lấy chuỗi Connection Strings 76
Hình 7.58 – Màn hình hiển thị chuỗi Connection Strings 77
Hình 7.59 – Màn hình cấu hình dịch vụ 77
vii
Hình 8.60 – Các application và plugin đã xây dựng 79
viii
DANH MỤC CÁC BẢNG
Bảng 4.1 – Các kiểu dữ liệu Windows Azure Table hỗ trợ 24
Bảng 4.2 – Bảng tóm tắt các API cho Windows Azure Table 25
Bảng 6.3 – Bảng giá trị của TransportClientCredentialType 36
Bảng 6.4 – Bảng giá trị của Message Security 36
Bảng 6.5 – WCF và AppFabric Service Bus Binding 39
Bảng 6.6 – Giá trị ConnectivityMode 39
Bảng 6.7 – Key trong một SWT Token 44
Bảng 6.8 – Các kiểu yêu cầu Access Control 46
Bảng 7.9 – Danh sách các Use-case 51
Bảng 7.10 – Các thành phần kiến trúc Application 55
Bảng 7.11 – Các lớp/quan hệ của sơ đồ module Account, Profile, Friend 57
Bảng 7.12 – Các lớp/quan hệ của sơ đồ module Forum, Group 59
Bảng 7.13 – Các lớp/quan hệ của sơ đồ lớp Message, Photo, Comment, Rating.
59
Bảng 7.14 – Các lớp/quan hệ của sơ đồ module Job, Scholarship 61
Bảng 7.15 – Các table của ứng dụng AlumniNetworking 63
MỘT SỐ THUẬT NGỮ
Từ viết tắt Diễn tả
ix
CNTT Công nghệ thông tin.
IDC International Data Corporation
On-premise
Chỉ các ứng dụng hoặc dịch vụ được triển khai và quản lí bởi một
doanh nghiệp sở hữu nó và đặt tại vị trí doanh nghiệp đó.
x
Điện toán lưới và đám mây
Chương 1 Tổng quan
1.1. Đặt vấn đề
Trong
lĩnh
vực
công
nghệ
thông
tin,
ngày
nay
ngoài
các
ứng
dụng
để
bàn,
một
xu
hướng
mới
đáng
chú
ý
là
phát
triển
các
ứng
dụng
web
và
các
ứng
dụng
cho
thiết
bị
di
động.
Tất
cả
các
ứng
dụng
này
đều
cần
được
lưu
ở
một
máy
chủ
để
người
dùng
có
thể
truy
cập
được
thông
qua
mạng.
Để
phát
triển
kinh
doanh,
các
công
ty
thường
có
website
riêng
giúp
quảng
bá
sản
phẩm
và
thông
tin
liên
lạc
hoặc
cung
cấp
dịch
vụ
trên
môi
trường
mạng.
Tuy
nhiên
khi
số
lượng
khách
hàng
tăng
lên,
việc
đáp
ứng
nhu
cầu
của
người
dùng
truy
cập
vào
các
máy
chủ
này
sẽ
gặp
rất
nhiều
vấn
đề.
Thường
các
trang
web
này
được
đặt
trên
một
máy
chủ
nào
đó
và
các
công
ty
phải
mua
vùng
lưu
trữ,
cài
đặt
trang
web
của
họ
trên
máy
chủ.
Cách
đó
được
gọi
là
“hosting”
và
công
ty
phải
tự
cài
đặt,
quản
lý
và
trả
phí
duy
trì
hàng
tháng.
Điện
toán
đám
mây
ra
đời
mang
lại
rất
nhiều
lợi
ích.
Trước hết, điện
toán đám mây có thể cắt giảm các chi phí liên quan đến việc cung cấp các
dịch vụ công nghệ thông tin. Bạn có thể giảm cả vốn và chi phí vận hành bằng
cách nhận được tài nguyên thỉ khi bạn cần chúng và chỉ trả tiền cho những gì
bạn sử dụng. Ngoài ra, do làm giảm một số trong các món chi tiêu bắt buộc
kết hợp với việc quản lý nguồn tài nguyên khác nhau trên toàn doanh nghiệp,
nhân viên chủ chốt của bạn có thể tập trung nhiều hơn vào giá trị sản xuất và
đổi mới nghiệp vụ. Cuối cùng, các mô hình điện toán đám mây cung cấp sự
nhanh nhẹn kinh doanh. Kể từ khi toàn bộ cơ sở hạ tầng công nghệ thông tin
có thể điều chỉnh mở rộng lên hoặc giảm xuống để đáp ứng nhu cầu, các
doanh nghiệp có thể đáp ứng dễ dàng hơn các nhu cầu thay đổi nhanh chóng
của thị trường để đảm bảo các nhu cầu luôn đứng hàng đầu cho những người
tiêu dùng của họ.
Microsoft
là
một
trong
những
nhà
cung
cấp
dịch
vụ
điện
toán
đám
mây
hiện
nay,
trong
đó
Azure
Services
Platform
là
một
nền
tảng
chiến
lược
của
1
Điện toán lưới và đám mây
Microsoft.
Azure
cung
cấp
cho
lập
trình
viên
nhiều
tiện
ích
và
hạ
tầng
để
xây
dựng
các
ứng
dụng
trên
nềm
web.
1.2. Mục tiêu đề tài
Hiện này, đất nước đang thực hiện công cuộc công nghiệp hóa, hiện đại hóa,
trong đó việc rút ngắn sự tụt hậu, phát triển về khoa học công nghệ là yếu tố then
chốt quyết định sự thành công của công cuộc đổi mới. Song song với quá trình phát
triển, ngày càng có nhiều bài toán mới, đòi hỏi năng lực xử lí lớn xuất hiện trong
khoa học, thương mại và quản lí đất nước. Việc nghiên cứu, áp dụng Windows
Azure Platform là một giải pháp tốt để giải quyết những vấn đề này.
Mục tiêu của bài tiểu luận này là tìm hiểu công nghệ đám mây nói chung,
công nghệ Azure của Microsoft nói riêng và ứng dụng vào xây dựng hệ thống mạng
xã hội ảo trên Azure.
1.3. Nội dung thực hiện
Với tinh thần tham gia nghiên cứu, học hỏi công nghệ, đề tài nghiên cứu
“Tìm hiểu Windows Azure và xây dựng ứng dụng thử nghiệm” được thực hiện
nhằm đi những bước đầu tiên trong quá trình nghiên cứu, phát triển, ứng dụng
Windows Azure vào thực tế. Đề tài nghiên cứu các vấn đề chung của Windows
Azure Platform, xây dựng mạng xã hội ảo dành cho cựu sinh viên trên ứng dụng
Windows Azure.
Báo cáo lý thuyết tổng quan và các thành phần của Windows Azure
Platform: Windows Azure, Bộ lưu trữ Windows Azure (Blob, Table, Queue), SQL
Azure, Windows Azure platform AppFabric (Service Bus, Access Control).
Xây dựng được ứng dụng mạng xã hội cho cựu sinh viên trên Windows Azure
gồm những thành phần sau: tài khoản, thông tin, tin nhắn, bạn bè, nhóm, blog, diễn
đàn, hình ảnh, quyên góp, trung tâm công việc. Ứng dụng phát huy được một số
tính năng Windows Azure hỗ trợ như: mở rộng lưu trữ, xử lí song song, xử lí nền.
2
Điện toán lưới và đám mây
Chương 2 Tổng quan Windows Azure Platform
2.1. Tổng quan điện toán đám mây
2.1.1. Định nghĩa
Theo Gartner:
“Điện toán đám mây là một kiểu tính toán trong đó các năng lực CNTT có khả
năng mở rộng rất lớn được cung cấp “dưới dạng dịch vụ” qua mạng Internet đến
nhiều khách hàng bên ngoài.”
Theo Forrester Research:
“Điện toán đám mây là một kho tài nguyên cơ sở hạ tầng ảo hóa, có khả năng
mở rộng cao và được quản lý, có thể hỗ trợ các ứng dụng của khách hàng cuối và
được tính tiền theo mức độ sử dụng.”
Theo NIST (National Institute of Standards and Technology):
“Điện toán đám mây là một mô hình cho phép truy cập mạng thuận tiện, theo
nhu cầu đến một kho tài nguyên điện toán dùng chung, có thể định cấu hình: mạng,
máy chủ, lưu trữ, ứng dụng,…có thể được cung cấp và thu hồi một cách nhanh
chóng với yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung cấp dịch vụ.”
Hình 2.1 - Mọi thứ đều tập trung vào đám mây.
2.1.2. Các giải pháp
Điện toán đám mây ra đời để giải quyết các vấn đề sau:
- Vấn đề về lưu trữ dữ liệu:
3
Điện toán lưới và đám mây
o Dữ liệu được lưu trữ tập trung ở các trung tâm dữ liệu khổng
lồ. Các công ty lớn như Microsoft, Google có hàng chục trung tâm dữ
liệu nằm rải rác khắp nơi 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 trung tâm lưu trữ.
- Vấn đề về sức mạnh tính toán: có 2 giải pháp chính
o Sử dụng các siêu máy tính để xử lý tính toán.
o Sử dụng các hệ thống tính toán song song, phân tán.
- Vấn đề về cung cấp tài nguyên, phần mềm.
o Cung cấp các dịch vụ như IaaS (infrastructure as a service), PaaS
(platform as a service), SaaS (software as a service).
Hình 2.2 - Minh họa về các dịch vụ.
4
Điện toán lưới và đám mây
2.1.3. Các tầng tạo nên đám mây
Hình 2.3 - Các tầng tạo nên đám mây.
• Các dịch vụ ứng dụng (SaaS)
Tầng dịch vụ ứng dụng này lưu trữ các ứng dụng phù hợp với mô hình SaaS.
Đây là những ứng dụng chạy trong một đám mây và được cung cấp theo yêu cầu.
Đôi khi các dịch vụ này được cung cấp miễn phí và các nhà cung cấp dịch vụ tạo ra
doanh thu từ những thứ khác như các quảng cáo Web và nhiều khi các nhà cung cấp
ứng dụng tạo ra doanh thu trực tiếp từ việc sử dụng dịch vụ. Nếu bạn đã kiểm tra
thư của bạn khi sử dụng Gmail hoặc Yahoo Mail hoặc được nhắc các cuộc hẹn khi
sử dụng Google Calendar, thì bạn đã quen thuộc với tầng trên cùng của đám mây.
Đây chỉ là một vài ví dụ về các kiểu ứng dụng này.
Các ứng dụng được cung cấp qua mô hình SaaS làm lợi cho người tiêu dùng
bằng cách giải phóng cho họ khỏi việc cài đặt và bảo trì phần mềm và các ứng dụng
có thể được sử dụng thông qua các mô hình cấp phép có hỗ trợ trả tiền để sử dụng.
• Các dịch vụ nền tảng
Đây là tầng ở đó chúng ta thấy cơ sở hạ tầng ứng dụng nổi lên như là một tập
hợp các dịch vụ. Các dịch vụ ở đây được dành để hỗ trợ cho các ứng dụng. Các ứng
dụng này có thể đang chạy trong đám mây và chúng có thể đang chạy trong một
trung tâm dữ liệu doanh nghiệp truyền thống. Để đạt được khả năng mở rộng cần
thiết trong một đám mây, các dịch vụ khác nhau được đưa ra ở đây thường được ảo
hóa. Các ví dụ trong phần này của đám mây bao gồm Amazon Web Services,
Boomi, và Google App Engine. Các dịch vụ nền tảng này cho phép khách hàng
chắc chắn rằng các ứng dụng của họ được trang bị để đáp ứng các nhu cầu của
người dùng bằng cách cung cấp cơ sở hạ tầng ứng dụng dựa theo yêu cầu.
5
Điện toán lưới và đám mây
• Các dịch vụ cơ sở hạ tầng
Ở đây, chúng ta thấy một tập hợp các tài sản vật lí như các máy chủ, các thiết
bị mạng và các đĩa lưu trữ được đưa ra như là các dịch vụ được cung cấp cho người
tiêu dùng. Các dịch vụ ở đây hỗ trợ cơ sở hạ tầng ứng dụng và nhiều người tiêu
dùng hơn. Cũng như với các dịch vụ nền tảng, sự ảo hóa là một phương pháp
thường được sử dụng để tạo ra chế độ 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ụ cơ sở hạ tầng bao gồm IBM Bluehouse, VMware, Amazon
EC2, Microsoft Azure Platform, Sun ParaScale Cloud Storage và còn nữa.
2.1.4. Lợi ích của điện toán đám mây
Nhanh nhẹn: Có khả năng cung cấp các tài nguyên cơ sở hạ tầng, công nghệ
có sẵn một cách nhanh chóng và ít tốn kém.
Chi phí thấp: Giảm chi phí đầu tư, nâng cấp, bảo trì các cơ sở hạ tầng tốn
kém như: máy chủ, mạng, các thiết bị lưu trữ, phần mềm…và việc tính chi phí dựa
trên nhu cầu sử dụng giúp tiết kiệm chi phí.
Độc lập với các thiết bị và vị trí: Người dùng có thể truy cập vào ứng dụng
đám mây bằng nhiều thiết bị và tại bất cứ vị trí nào thông qua Internet.
Hỗ trợ nhiều người thuê: cho phép chia sẻ tài nguyên và chi phí giữa một
phạm vi lớn người dùng nhằm:
- Tập trung cơ sở hạ tầng tại một vùng với chi phí thấp.
- Khả năng chịu tải cao.
- Cải thiện việc sử dụng và nâng cao hiệu suất cho hệ thống.
Khả năng co giãn linh độngm(theo nhu cầu): Doanh nghiệp cũng có thể dễ
dàng điều chỉnh thêm, bớt người sử dụng và bổ sung dịch vụ tùy theo nhu cầu sử
dụng.
Bảo mật: Vấn đề bảo mật cải thiện nhờ vào việc tập trung hóa dữ liệu, tăng
chi phí đầu tư cho việc bảo mật.
2.1.5. Xu hướng phát triển
Thuật ngữ “điện toán đám mây” ra đời từ giữa năm 2007, cho đến nay đã
không ngừng phát triển mạnh mẽ và được hiện thực bởi nhiều công ty lớn trên thế
giới như IBM, Sun, Amazon, Google, Microsoft, Yahoo, SalesForce, …
2.2. Tổng quan Windows Azure Platform
2.2.1. Giới thiệu
Windows Azure Platform là một nhóm các công nghệ đám mây, mỗi công
nghệ cung cấp một tập các dịch vụ đặc trưng để phát triển ứng dụng.
6
Điện toán lưới và đám mây
Hình 2.4 – Tổng quan Windows Azure Platform.
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.
2.2.2. Giới thiệu Windows Azure
Windows Azure được hiểu đơn giản là một nền tảng để chạy ứng dụng
Windows và lưu trữ dữ liệu trên đám mây.
Hình 2.5 – Windows Azure cung cấp dịch vụ tính toán và dịch vụ lưu trữ.
7
Điện toán lưới và đám mây
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ữ 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.2.3. Giới thiệu SQL Azure
Mục tiêu của SQL Azure cung cấp các dịch vụ dựa trên đám mây để lưu trữ và
xử lí dữ liệu. Trong khi đó Microsoft nói rằng SQL Azure sẽ bao gồm một loạt các
tính năng định hướng dữ liệu, đồng bộ hóa dữ liệu, báo cáo, phân tích dữ liệu và
những chức năng khác.
8
Điện toán lưới và đám mây
Hình 2.6 - SQL Azure cung cấp dịch vụ định hướng dữ liệu trong đám mây.
Cơ sở dữ liệu SQL Azure cung cấp một hệ thống quản lí cơ sở dữ liệu dựa trên
đám mây. Công nghệ này cho phép ứng dụng on-premise và ứng dụng đám mây lưu
trữ dữ liệu quan hệ và những kiểu dữ liệu khác trên các máy chủ trong trung tâm dữ
liệu của Microsoft. Cũng như các công nghệ đám mây khác, người dùng chỉ trả cho
những gì họ sử dụng.
Cơ sở dữ liệu SQL Azure được xây dựng dựa trên Microsoft SQL Server.
Công nghệ này cung cấp môi trường SQL Server trong đám mây, bổ sung index,
view, store procedure, trigger,… Dữ liệu này có thể được truy xuất bằng ADO.Net
và các giao tiếp truy xuất dữ liệu Windows khác.
Khi ứng dụng sử dụng Cơ sở dữ liệu SQL Azure thì yêu cầu về quản lí sẽ
được giảm đáng kể. Thay vì lo lắng về các công việc như giám sát việc sử dụng đĩa
và theo dõi tập tin nhật ký (log file), khách hàng sử dụng Cơ sở dữ liệu SQL Azure
chỉ tập trung vào dữ liệu. Microsoft sẽ xử lí các hoạt động chi tiết.
9
Điện toán lưới và đám mây
Hình 2.7 - Ứng dụng truy xuất dữ liệu trong Cơ sở dữ liệu SQL Azure.
Một ứng dụng sử dụng Cơ sở dữ liệu SQL Azure có thể chạy trên Windows
Azure, trong một trung tâm dữ liệu của doanh nghiệp, trên thiết bị di động,…Một
ứng dụng Cơ sở dữ liệu SQL Azure có thể sử dụng thư viện client SQL Server hiện
có. Bao gồm ADO.Net, ODBC, và PHP. Và bởi vì Cơ sở dữ liệu SQL Azure giống
như hệ thống SQL Server thông thường nên các công cụ hỗ trợ có thể được sử
dụng, bao gồm: SQL Server Management Studio, SQL Server Integration Service,
…
Như trong bộ lưu trữ Windows Azure, tất cả các dữ liệu được lưu trữ trong Cơ
sở dữ liệu SQL Azure được sao ba bảng. Mục đích là để cung cấp việc lưu trữ dữ
liệu đáng tin cậy ngay cả khi đối mặt với lỗi của hệ thống và mạng.
2.2.4. Windows Azure Platform AppFabric
Windows Azure Platform AppFabric cung cấp dịch vụ cơ sở hạ tầng dựa trên
đám mây.
10
Điện toán lưới và đám mây
Hình 2.8 - Windows Azure Platform AppFabric cung cấp cơ sở hạ tầng.
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 ứng dụng expose các
endpoint để có thể được truy xuất bởi các ứng dụng khác. Mỗi endpoint đã expose
đượ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 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.
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 server 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.
11
Điện toán lưới và đám mây
Chương 3 Giới thiệu về Windows Azure
3.1. Tổng quan Windows Azure
Nhìn một cách tổng quan, Windows Azure là một hệ điều hành dùng để chạy
các ứng dụng Windows và lưu dữ liệu của nó trên đám mây. Nhưng khác với một
hệ điều hành bình thường, người dùng phải cài đặt và chạy trên máy tính của mình,
Windows Azure là một dịch vụ: Khách hàng dùng nó để chạy ứng dụng và lưu trữ
dữ liệu trên các máy chủ ở trung tâm dữ liệu của Microsoft, có thể truy cập qua
Interner. Các ứng dụng này có thể cung cấp dịch vụ cho doanh nghiệp và khách
hàng.
Hình 3.9 - Ứng dụng Windows Azure.
3.2. Các thành phần Windows Azure
Hình 3.10 - Các thành phần Windows Azure.
12
Điện toán lưới và đám mây
Dịch vụ tính toán sẽ chạy ứng dụng, trong khi dịch vụ lưu trữ lưu dữ liệu.
Thành phần thứ ba, Windows Azure Fabric, cung cấp cách thức để quản lý và theo
dõi các ứng dụng sử dụng nền tảng đám mây này.
3.2.1. Dịch vụ tính toán (Compute Service)
Dịch vụ tính toán Windows Azure có thể chạy nhiều kiểu ứng dụng khác
nhau. Mục tiêu chính của kiến trúc này là hỗ trợ các ứng dụng có lượng người sử
dụng truy cập đồng thời cực lớn. Windows Azure được thiết kế để hỗ trợ chạy nhiều
bản sao của cùng một mã nguồn trên nhiều máy chủ khác nhau.
Để đạt được điều này, ứng dụng Windows Azure có thể có nhiều thể hiện, mỗi
thể hiện được thực thi trên một máy chủ ảo.
Dịch vụ tính toán hỗ trợ 2 loại thể hiện: Web role và Worker role.
Hình 3.11 - Ứng dụng Windows Azure có thể chứa Web role và Worker role.
Một thể hiện Web role có thể chấp nhận một request HTTP/HTTPS. Để thực
hiện điều này, thể hiện Web role chạy trên một máy ảo có cài Internet Information
Services 7 (IIS 7). Lập trình viên có thể tạo ra Web role bằng ASP.NET, WCF, hay
bất kì kĩ thuật .NET khác có thể hoạt động được với IIS 7. Ngoài ra, lập trình viên
có thể viết các ứng dụng với native code, có nghĩa là có thể chạy các ứng dụng sử
dụng kĩ thuật khác như PHP, Java. Khi một request được gửi đến Web role, nó sẽ
được truyền qua bộ cân bằng tải đến các thể hiện của Web role trong cùng một ứng
dụng. Do đó, không đảm bảo rằng, các yêu cầu từ một người dùng có thể được gửi
đến cùng một thể hiện của ứng dụng.
Một thể hiện Worker role không giống như Web role, nó không chấp nhận
request từ bên ngoài, các máy ảo của nó không chạy IIS. Một Worker role cho bạn
khả năng để chạy các xử lý ngầm liên tục trên đám mây. Một Worker role có thể
làm việc với queue, table, blob trong dịch vụ lưu trữ. Nó chạy hoàn toàn độc lập với
13
Điện toán lưới và đám mây
thể hiện Web role, mặc dù có thể cùng thuộc một phần của dịch vụ. Việc liên lạc
giữa Web role và Worker role có thể thông qua queue của dịch vụ lưu trữ.
Lập trình viên có thể chỉ sử dụng thể hiện Web role, hay Worker role, hoặc kết
hợp cả hai để tạo ra ứng dụng Windows Azure. Sử dụng Windows Azure portal để
thay đổi số lượng thể hiện của Web role, Worker role tùy theo yêu cầu của ứng
dụng.
Khi chạy các thể hiện Web role hay Worker role, các máy ảo cũng chạy đồng
thời các Fabric agent. Các agent phục vụ cho việc tương tác giữa các thể hiện với
Windows Azure Fabric. Các agent này trình bày các API được định nghĩa để các thể
hiện có thể làm một số việc như: ghi chép, tìm thư mục gốc của tài nguyên lưu trữ
cục bộ trên máy ảo của nó.
Windows Azure cho phép lập trình viên chọn cấu hình máy ảo: một nhân, hai
nhân, bốn nhân và tám nhân. Và để tăng hiệu suất, người sở hữu ứng dụng có thể
tăng số lượng thể hiện đang chạy được đặt tả trong tập tin cấu hình ứng dụng.
Windows Azure fabric sẽ thêm máy ảo mới, gán thêm nhân và bắt đầu chạy ứng
dụng. Fabric cũng dò khi một thể hiện Web role hoặc Worker role bị chết, nó sẽ tạo
một thể hiện mới.
3.2.2. Dịch vụ lưu trữ (Storage Service)
Dịch vụ lưu trữ Windows Azure hỗ trợ 3 kiểu dịch vụ: blob, table, queue.
Hình 3.12 - Bộ lưu trữ Windows Azure: Blob, Table, Queue.
Một cách đơn giản nhất để lưu trữ dữ liệu là sử dụng blob. Windows Azure
blob có kiến trúc đơn giản: một tài khoản lưu trữ có một hoặc nhiều container, mỗi
container có một hoặc nhiều blob. Blob có thể rất lớn – mỗi blob có thể chứa vài
terabyte dữ liệu. Blob có thể kết hợp với metadata, như thông tin về nơi chụp ảnh
hoặc người sáng tác bài hát.
14
Điện toán lưới và đám mây
Một cách khác để sử dụng blob là Windows Azure XDrive, được gắn với mỗi
thể hiện Web role và Worker role. Lưu trữ bên dưới một XDrive là một blob, như
vậy mỗi blob là một ổ đĩa được gắn kết, mỗi thể hiện có thể đọc và ghi dữ liệu như
hệ thống tập tin.
Để cho phép ứng dụng làm việc với dữ liệu hiệu quả hơn, bộ lưu trữ
Windows Azure cung cấp table. Không giống với bảng quan hệ, các table lưu trữ
một tập các entity với các property. Một table không có giản đồ và các property có
nhiều kiểu dữ liệu khác nhau như int, string, bool, hoặc datetime. Một ứng dụng có
thể truy xuất dữ liệu của table sử dụng ADO.Net Data Service hoặc LINQ. Một
table có thể rất lớn, với vài triệu entity chứa vài terabyte dữ liệu, và bộ lưu trữ
Windows Azure có thể phân vùng nó qua nhiều máy chủ nếu cần cải thiện hiệu
suất.
Blob và table tập trung vào lưu trữ dữ liệu, thành phần lưu trữ thứ ba là queue
lại có một mục đích khác. Mục đích chính của queue là cung cấp cách thức để thể
hiện Web role liên lạc với thể hiện Worker role. Ví dụ, một người dùng có thể gửi
một request để thực hiện các nhiệm vụ tính toán chuyên sâu qua trang Web được
thực thi bởi Web role. Thể hiện Web role nhận request này và viết một message vào
queue - mô tả công việc được thực hiện. Một thể hiện Worker role đợi queue này,
sau đó đọc message và thực hiện nhiệm vụ.
Bộ lưu trữ Windows Azure có thể được truy xuất bởi một ứng dụng Windows
Azure hoặc bởi một ứng dụng khác. Cả 3 thành phần của bộ lưu trữ Windows
Azure đều sử dụng giao thức REST để truy xuất dữ liệu.
3.2.3. Windows Azure Fabric
Tất cả các ứng dụng Windows Azure và dữ liệu của nó đều tồn tại trên trung
tâm dữ liệu của Microsoft. Bên trong trung tâm dữ liệu này, một tập hợp các máy
dành cho Windows Azure được tổ chức thành một fabric.
Hình 3.13 - Fabric Controller.
15