Tải bản đầy đủ (.docx) (68 trang)

TÌM HIỂU VỀ CLOUD COMPUTING VÀ NỀN TẢNG WINDOWS AZURE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.53 MB, 68 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
Báo cáo kết thúc môn học
ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
TÌM HIỂU VỀ CLOUD COMPUTING VÀ NỀN
TẢNG WINDOWS AZURE
Giáo viên hướng dẫn :
PGS. TS. Nguyễn Phi Khứ
Sinh viên thực hiện : Lâm Hàn Vũ
MSHV : CH1301119
1
TP Hồ Chí Minh, tháng 6 năm 2014
2
MỤC LỤC
3
Trang 4
LỜI CẢM ƠN
Để có thể hoàn thành tốt bài báo cáo, trước tiên tôi gởi lời chân thành cảm ơn
đến TS. Nguyễn Phi Khứ đã tận tình giảng dạy và giúp đỡ trong thời gian thực hiện
bài báo cáo.
Xin gửi lời cảm ơn đến gia đình, cảm ơn các anh chị, bạn bè, những người
luôn sát cánh, động viên tôi trên bước đường học tập cũng như trong cuộc sống. Xin
chân thành biết ơn sự tận tình dạy dỗ và sự giúp đỡ của tất cả quý thầy cô tại trường
Đại học Công Nghệ Thông Tin, đặc biệt là các thầy cô trong khoa Khoa học Máy
tính, cảm ơn các thầy cô thuộc bộ phận quản trị thiết bị đã tạo điều kiện thuận lợi về
mặt tinh thần, điều kiện học tập trong quá trình học tập môn học. Tất cả các kiến
thức mà nhà trường và quý thầy cô đã truyền đạt là hành trang to lớn để tôi mang
theo trên con đường học tập, làm việc và nghiên cứu cũng như trong quá trình hoàn
thiện nhân cách của mình.
Tp. HCM, ngày 06 tháng 06 năm 2014


Học viên
Lâm Hàn Vũ
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 5
LỜI NÓI ĐẦU
Trong vòng vài năm trở lại đây, điện toán đám mây – cloud computing đã và
đang trở thành một trong những thuật ngữ được nhắc đến nhiều nhất trong ngành
công nghệ thông tin. Điện toán đám mây được hứa hẹn là giải pháp giải quyết được
nhiều vấn đề như độ sẵn sàng (availability), khả năng co giãn (scalability), chi phí
(cost), điện năng tiêu thụ (power consumption)… Tuy nhiên, hiểu rõ hơn về các
khái niệm của cloud computing, các đặc tính, các ưu điểm, nhược điểm cũng như
các thách thức đối với công nghệ để có thể khai thác, triển khai khi cần thiết lại là
một việc còn chưa được quan tâm đúng mức.
Đề tài này nhằm làm rõ phần nào các khía cạnh của cloud-computing, cũng
như nghiên cứu sâu hơn về một nền tảng cloud-computing cụ thể. Báo cáo sẽ cố
gắng đưa ra các định nghĩa về cloud computing, các đánh giá khách quan về ưu
nhược điểm cũng như tương lai của công nghệ này. Đồng thời, báo cáo cũng chọn
nền tảng Windows Azure Platform để đào sâu nghiên cứu, vì đây là một nền tảng có
nhiều ưu điểm, lại thân thiện với các nhà phát triển và sử dụng nhiều công cụ sẵn
có.
Bố cục của báo cáo này bao gồm:
• Phần 1: Tổng quan về cloud computing, các khái niệm, định nghĩa, các ưu
nhược điểm của các loại hình dịch vụ trong cloud computing, các nền tảng
cloud computing phổ biến
• Phần 2: Đi sâu về nghiên cứu về nền tảng Windows Azure Platform, bao
gồm nghiên cứu về cơ sở hạ tầng – infrastructure, về cấu trúc – architect, một
số use cases và API lập trình
• Phần 3: Giới thiệu về môi trường lập trình cho Windows Azure Platform
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 6

CHƯƠNG 1
TỔNG QUAN VỀ CLOUD COMPUTING
1.1. Định nghĩa về cloud computing - điện toán đám mây
Cloud-computing hiện vẫn là mẫu hình đang tiến hoán, những định nghĩa về
mô hình này vẫn chưa thống nhất và các khái niệm hiện nay chỉ là tạm thời. Những
định nghĩa được nêu trong phần 1 của báo cáo này được lấy dựa trên các tài liệu
được sử dụng khá rộng rãi như wikipedia, hay định nghĩa của NIST - National
Institute of Standards and Technology. Trên thực tế, có thể có nhiều cách định nghĩa
khác.
Theo NIST:
“Cloud computing is a model for enabling convenient, on-demand network access
to a shared pool of configurable computing resources (e.g., networks, servers,
storage, applications, and services) that can be rapidly provisioned and released
with minimal management effort or service provider interaction.”
Tạm dịch: Điện toán đám mây là một mô hình cho phép truy cập mạng dễ
dàng, theo yêu cầu, đến một tài nguyên điện toán chia sẻ (như network, máy chủ,
không gian lưu trữ, ứng dụng và dịch vụ), có thể nhanh chóng cung cấp và thu hồi
với chi phí quản lý và tương tác với nhà cung cấp dịch vụ tối thiểu.
Source: />Định nghĩa trên đã nêu ra những đặc tính cơ bản nhất của điện toán đám
mây, sẽ được trình bày rõ hơn trong phần dưới đây.
1.2. Các đặc tính của điện toán đám mây
1.2.1. 5 đặc tính cơ bản (Essential characteristics)
5 đặc tính cơ b ản ủa điện toán đám mây được NIST đưa ra như sau:
• On-demand self-service – Tự phục vụ theo nhu cầu
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 7
Khách hàng có thể tự tăng cường năng lực tính toán, ví dụ như thời gian
server hay không gian lưu trữ trên network, một cách hoàn toàn tự động dựa theo
nhu cầu mà không cần phải thương lượng với nhà cung cấp dịch vụ. Đặc tính này
thường được biết đến với tên gọi Pay-as-you-go

• Broad network access- Truy cập thông qua mạng băng thông rộng.
Truy cập mạng băng rộng. Khả năng tính toán được cung cấp thông qua
network và được truy cập thông qua một cơ cấu chuẩn, mà có thể dung bằng nhiều
nền tảng client khác nhau (như mobile phones, laptops, và PDA)
• Resource pooling – Quay vòng tài nguyên.
Tài nguyên điện toán của nhà cung cấp được quay vòng để phục vụ cho
nhiều khách hàng sử dụng một mô hình multi-tenant, với các tài nguyên thực và ảo
hóa khác nhau được cấp phát và tái cấp phát một cách động (dynamically) tùy thuộc
vào yêu cầu của khác hàng. Không phụ thuộc vị trí … khách hàng về tổng quát
không có quyền hay thậm chí là không có hiểu biết về vị trí chính xác của các tài
nguyên được cung cấp nhưng có thể xác định vị trí của các tài nguyên cấp cao hơn
(ví dụ như nước, bang, datacenter). Các tài nguyên bao gồm không gian lưu trữ, tính
toán, bộ nhớ, băng thông mạng và các máy ảo.
• Rapid elasticity - Co giãn nhanh.
Khả năng tính toán có thể được cung cấp một cách nhanh chóng và co giãn,
trong một số trường hơp là tự động, để có thể giãn ra hoặc co vào phụ thuộc vào
nhu cầu người dùng. Đối với khách hàng, tài nguyên hiện có được coi như như vô
hạn và có thể mua với bất kì số lượng nào vào bất kì thời gian nào.
• Measured Service.
Các hệ thống cloud tự động điều khiển và tối ưu hóa tài nguyên sử dụng
bằng cách trừu tượng hóa tương ứng với kiểu dịch vụ (lưu trữ, khả năng xử lý, băng
thông, và số người dùng active). Tài nguyên sử dụng có thể được giám sát, điều
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 8
khiển và báo cáo một cách trong suốt cho cả nhà cung cấp và khách hàng của dịch
vụ đã dùng.
Một số tài liệu đưa thêm đặc tính không phụ thuộc vào địa điểm – Location
Independence. Điều này có thể hiểu như có thể sử dụng các dịch vụ của cloud
computing từ mọi nơi. Tuy nhiên, đặc tính này có thể coi như đồng nhất với đặc tính
Broadband network access nên không được xét đến trong báo cáo này.

1.2.2. 3 mẫu hình dịch vụ (3 service models)
Hình 1.1: Các kiểu hình dịch vụ đối với Cloud computing
On-Premises: Ứng dụng chạy hoàn toàn trên hệ thống của doanh nghiệp. Đây là
kiểu dịch vụ phổ biến hiện nay. Doanh nghiệp quản lý hoàn toàn về hạ tầng mạng,
hệ thống lưu trữ, máy chủ, ảo hoá, hệ điều hành, phần mềm tầng giữa, các lớp
runtime, dữ liệu và ứng dụng. Trong phần còn lại của báo cáo này, các ứng dụng
chạy trên hệ thống doanh nghiệp như thế này sẽ được gọi chung là các ứng dụng
on-premises.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 9
3 mẫu hình dịch vụ cơ bản mà cloud computing đang được triển khai là
Infrastucture as a Service (IssA), Platform as a Service (PaaS) và Software as a
Service (SaaS).
• Cung cấp dịch vụ cơ sở hạ tầng (Infrastructure as as Service):
Khách hàng chỉ quản lý từ phần mềm tầng giữa – middeware trở lên, còn lại
các tầng từ hệ điều hành trở xuống do nhà cung cấp dịch vụ quản lý. Các dịch vụ
dạng IaaS hiện có:
• Computers (Amazon EC2, Rackspace, GoGrid )
• Storage (Amazon S3, MobileMe, Google Drive )
• Elasticity (Rightscale…)
• Bandwidth (Limelight, Amazon CloudFront…)
Lợi ích của IaaS Thách thức của IaaS
• Hệ thống được quản lý bởi SLA
giảm bớt được các lỗ thủng
• Thu nhập cao hơn trên tài nguyên
• Giảm chi phí do:
o Ít phần cứng hơn
o Giảm bớt chi phí không gian
o Tăng tính tự động hoá và
giảm bớt sự can thiệp của các

nhà quản trị
o Giảm bớt tiêu thụ năng lượng
• Khả năng đạt được tiêu thụ theo
yêu cầu – consumption on
demand.
• Tính di động - portability của
các ứng dụng
• Sự hoàn thiện của các công cụ
quản lý hệ thống
• Tích hợp qua giới hạn của Cloud
• Các vấn đề về bảo mật bên trong
Bảng 1.1: Lợi ích và thách thức đối với IaaS
• Cung cấp dịch vụ cơ sở hạ tầng (Platform as a Service):
Khách hàng chỉ quản lý ứng dụng và dữ liệu của mình, các tầng phía dưới, từ
tầng runtime trở xuống do nhà cung cấp dịch vụ quản lý.
Các dịch vụ dạng PaaS hiện có: Salesforce.com, Apprenda SaaSGrid, Google
App Engine, Microsoft Azure, Appistry, Talis Platform
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 10
Lợi ích của PaaS Thách thức của PaaS
- Pay-as-you-go đối với môi trường
phát triển, test và kinh doanh
- Cho phép các nhà phát triển tập
trung vào mã ứng dụng
- Nền tảng toàn cầu
- Loại bỏ các phụ thuộc phần cứng
và các vấn đề về dung lượng
(Capacity concerns)
- Tính co giãn sẵn có
- Mô hình triển khai đơn giản

- Điều hành
- Bị trói với nhà cung cấp
- Mở rộng mẫu hình bảo mật với
nhà cung cấp
- Khả năng kết nối
- Sự tin cậy đối với SLA của bên
thứ 3.
Bảng 1.2: Lợi ích và thách thức đối với PaaS
• Cung cấp dịch vụ phần mềm (SaaS):
Khách hàng sử dụng phần mềm của nhà cung cấp. Các dịch vụ dạng SaaS hiện có:
Google Apps, Zoho, Acrobat.com, iWork.com, Kashflow, FreeAgent,
WordPress.com, MobileMe, Salesforce.com
Lợi ích của SaaS Thách thức của SaaS
- Tốc độ
- Giảm chi phí ban đầu, có khả
năng giảm chi phí toàn bộ (life-
time cost
- Chuyển một phần/tất cả trách
nhiệm hỗ trợ
- Loại bỏ các nguy cơ về giấy phép
- Loại bỏ nguy cơ về tương thích
phiên bản
- Giảm ảnh hưởng của phần cứng
- Yêu cầu mô hình bảo mật với nhà
cung cấp (sự riêng tư và quyển sở
hữu dữ liệu)
- Điều hành và quản lý chi phí
- Đồng bộ giữa client và vendor
migration
- Hỗ trợ người dùng cuối tích hợp

- Khả năng co giãn
Bảng 1.3 Lợi ích và thách thức đối với SaaS
1.2.3. 4 mẫu đóng gói (4 deployment models)
• Private cloud: Kiến trúc đám mây được điều khiển bởi riêng một tổ chức.
Nó có thể được quản lý bởi tổ chức hoặc một bên thứ ba và có thể tồn tại
• Community cloud: Kiến trúc đám mây được chia sẻ giữa một số tổ chức và
hỗ trợ một cộng đồng cụ thể có cùng các mối quan tâm (ví dụ: nhiệm vụ, yêu
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 11
cầu an ninh, chính sách quản lý và … )Nó có thể được quản lý bởi các tổ
chức hoặc một bên thứ 3, và có thể tồn tại on-premises hoặc off-premises
• Public cloud: Kiến trúc đám mây được được công bố ra cộng đồng hoặc một
nhóm các doanh nghiệp lớn và do một tổ chức cung cấp dịch vụ cloud sở
hữu.
• Hybrid cloud: Kiến trúc đám mây là một tổ hợp của 2 hay nhiều cloud
(private, community hoặc public), vẫn giữ những thực thể riêng biệt nhưng
có cùng một công nghệ chuẩn hóa hay có chủ quyền, cho phép dữ liệu và
tính di động của ứng dụng
1.2.4. Cloud computing và grid computing:
Cloud computing có thể coi là một xây dựng – implementation – đặc biệt của
kiến trúc client-server. Chính vì vậy, nó thường được đem so sánh với distributed
computing và cụ thể hơn là grid computing. Dưới đây sẽ là so sánh chi tiết về 2 kiến
trúc này:
Cloud computing và grid computing đều “co giãn”. Khả năng co giãn đạt
được bằng việc cân bằng tải các instance của ứng dụng, chạy riêng rẽ trên nhiều hệ
điều hành và kết nối với nhau thông qua các Web service. CPU và băng thông
network được cấp phát và thu hồi theo yêu cầu. Khả năng lưu trữ của hệ thống tăng
và giảm phụ thuộc vào số người dùng, số instance, và lượng dữ liệu chuyển đổi ở
một thời điểm xác định.
Cả 2 kiểu điện toán kết hợp multitenacy (sẽ được giải thích ở dưới) và

multitask (đa nhiệm), điều này có nghĩa là nhiều khách hàng có thể thực hiện các
công việc khác nhau, truy cập một hay nhiều instance ứng dụng. Chia sẻ tài nguyên
giữa nhiều user hỗ trợ giảm chi phí cơ cấu hạ tầng và dung lượng tải lớn nhất (peak
load capacity). Cloud và Grid computing cung cấp SLA – service-level agreement
(thoả thuận mức ứng dụng) với đảm bảo thời gian sẵn sàng (uptime) lên đến 99%.
Nếu một dịch vụ dưới mức đảm bảo uptime đó, khách hàng sẽ nhận được tiền bồi
thường.
Multi-tenacy là một nguyên lý cấu trúc, trong đó một ứng dụng chạy ở một
instance phục vụ đồng thời nhiều user (multitenant)
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 12
Đối với cloud computing, việc lưu trữ dữ liệu là rất mềm dẻo, có thể lưu trữ
dữ liệu nhỏ 1byte, đến hàng terabytes. Grid computing có thể lưu trữ được các đối
tượng có kích thước 1 byte, nhưng điều này hoàn toàn không kinh tế. Trong mạng
lưới data, kích thước của dữ liệu phân tán phải lớn để đem lại lợi ích cao nhất
Grid computing Cloud Computing
Ý tưởng bên dưới Utility computing Utility Computing
Lợi ích chính
Giải quyết các vấn đề tính toán
phức tạp
Cung câp một môi trường
co giãn chuẩn cho việc
phát triển, kiểm tra và triển
khai các phần mềm lấy
mạng làm trung tâm
(network-centric)
Cấp phát và phân
phối tài nguyên
Điều hành và quản lý việc chia sẻ
tài nguyên, dùng các công cụ lập

lịch (schedulers)
Mô hình khách hàng <->
nhà cung cấp đơn giản, trả
tiền theo sử dụng
Domain Nhiều domain Domain duy nhất
Đặc tính Miễn phí Thương mại
Bảng 1.4. So sánh giữa Cloud computing và grid computing
1.3. Tại sao lại chọn cloud computing
Trước hết, phải nói rằng cloud-computing hoàn toàn không phải phải là một
kiến trúc phần mềm mới. Có thể thấy qua việc minh họa các dạng dịch vụ cloud
computing, như các dịch vụ máy chủ riêng ảo, hosting, webmail… đều đã được
nhắc đến từ lâu, trước khi thuật ngữ cloud-computing xuất hiện.
Trong vài năm trở lại đây, với sự tham gia của các tập đoàn phần mềm lớn
như Microsoft, Google, hay Amazon, cloud computing đã có những bước tiến mạnh
mẽ.
Các nhà phát triển có thể nhanh chóng xây dựng ứng dụng đám mây trên nền
tảng mà công ty cung cấp, với những cấu trúc và API được thiết kế dành riêng cho
cloud-computing. Một công cụ quản lý hợp nhất, cho phép khách hàng sử dụng
cloud-computing có thể tuỳ biến dịch vụ cho phù hợp với nhu cầu của mình một
cách đơn giản và dễ dàng. Những điều này khiến cloud-computing có thể trở thành
một xu hướng nổi bật trong thời gian tới.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 13
Lợi ích của Cloud-computing
Với Cloud Computing, những vấn đề này được giải quyết một cách căn bản:
• Không cần hệ thống máy chủ và hệ thống mạng nội bộ trong công ty, chỉ cần
các máy client chi phí thấp được kết nối mạng Internet.
• Giảm bớt chi phí phần mềm vì không cần các phần mềm nghiệp vụ cài riêng.
Có thể chỉ cần một hệ điều hành và một trình duyệt để làm việc.
• Giảm bớt chi phí nhân công vì không cần quản trị hệ thống.

• Giảm bớt chi phí điện năng lãng phí(Go Green)
• Linh hoạt và mềm dẻo khi có thay đổi về tải. Khi cần tải nặng, hệ thống có
thể tự tăng khả năng xử lý của mình lên mà không cần can thiệp, và cũng tự
động giảm năng lực xử lý của mình khi tải thấp
Hạn chế của Cloud computing
Tuy nhiên, cloud computing không phải là giải pháp toàn diện và có thể áp dụng
cho mọi trường hợp phần mềm. Nói cách khác, cloud computing sẽ không hoàn
toàn thay thế các giải pháp dịch vụ phần mềm hiện có:
• Trước hết, dữ liệu của doanh nghiệp, cá nhân được upload lên trên cloud.
Điều này đồng nghĩa với doanh nghiệp, cá nhân phải tin tưởng vào nhà cung
cấp dịch vụ. Ngoài ra, ở một số doanh nghiệp với dữ liệu đặc thù, như ngân
hàng, có những luật quy định doanh nghiệp phải lưu trữ dữ liệu của khách
hàng on-premises. Trong những trường hợp như vậy, việc triển khai ứng
dụng trên public cloud là điều không thể.
• Tốc độ truy xuất ứng dụng. Với một số dịch vụ, người dùng không thể xác
định hay thiết lập vị trí của dữ liệu (trừu tượng hoá hoàn toàn ở cấp độ trung
tâm dữ liệu). Nếu người dùng và trung tâm dữ liệu ở xa nhau, thì sẽ dẫn đến
hạn chế trong tốc độ truy xuất và tăng độ trễ.
• Ngoài ra, bảo mật là vấn đề rất lớn. Nhà cung cấp dịch vụ cam kết bằng hợp
đồng, nhưng đối với một số khách hàng bảo mật chỉ có thể đạt được mức độ
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 14
cần thiết khi họ toàn quyền kiểm soát dữ liệu (cả về phần cứng và phần mềm
– vật lý và logic) và áp dụng các chính sách phù hợp.
Trong đó, bảo mật vẫn là mối quan tâm lớn nhất, theo khảo sát của
InformationWeek:
Hình 1.2. Mối quan tâm đối với cloud computing
1.4. Các nền tảng cloud computing phổ biến
Như đã nói ở trên, Cloud computing đã và đang trở thành một xu hướng nổi
bật trong ngành công nghệ phần mềm và nhận được sự hậu thuẫn mạnh mẽ từ

những công ty phần mềm hàng đầu. Tuy nhiên, trong khuôn khổ của đề tài này, em
chỉ đề cập đến 3 nền tảng được sử dụng phổ biến nhất (đúng hơn là có khả năng
phát triển lớn nhất trong tương lai)
1.4.1. Amazom EC2
Website: />Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 15
EC2 là từ viết tắt của Elastic Cloud Computing. Đây là dịch vụ cung cấp khả
năng tính toán tuỳ biến trên cloud. Để lưu trữ dữ liệu, Amazon cung cấp song song
dịch vụ S3 (Simple Storage Service).
Cơ sở của EC2 là các máy ảo mà Amazon gọi là AMI – Amazon Machine
Images, chứa một hệ điều hành, các ứng dụng và dữ liệu. Khách hàng có thể quản
lý bao nhiêu instance của mỗi AMI chạy vào mỗi thời điểm. Amazon cung cấp 3 lựa
chọn cho việc tạo các AMI này: Standard, High-Memory và High-CPU, với kích cỡ
từ 1 nhân ảo chạy trên nền 32-bit, cho đến 8 nhân ảo chạy trên nền 64bit Cụ thể:
• Standard: dành cho các ứng dụng tổng quát
• High-Memory Instances: Dành cho các ứng dụng yêu cầu nhiều bộ nhớ,
như các Web Server
• High-CPU: dành cho các ứng dụng cần nhiều tài nguyên CPU hơn RAM,
thích hợp với các ứng dụng yêu cầu tính toán nặng.
EC2 hỗ trợ các ngôn ngữ: Java, PHP, Ruby, Các ngôn ngữ trên nền tảng
Microsoft .NET.
1.4.2. Google App Engine
Website: />Google App Engine là giải pháp chạy ứng dụng trên cơ cấu hạ tầng của
Google, cho phép nhà phát triển viết ứng dụng và upload lên các trung tâm dữ liệu
của Google.
Google App Engine hỗ trợ 2 ngôn ngữ chính:
• Java, và các ngôn ngữ giống như Java (Jruby, Groovy, Scala…) chạy trên
môi trường Java 6.
• Python 2.5.2 (phiên bản 2.6 chưa được hỗ trợ, phiên bản 3 đang được cân
nhắc), chạy trên nền Python Runtime Environment. Ứng dụng phải được viết

hoàn toàn trên nền Python, các extensions viết trên nền C không được hỗ trợ
Google App Engine cũng cung cấp một môi trường Sandbox (tương tự như
các máy ảo) và một hệ cơ sở dữ liệu Datastore. Datastore không phải là CSDL quan
hệ truyền thống mà thuộc dạng “schemeless”, với nền tảng lưu trữ là các thực thể -
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 16
entity và thuộc tính – property. Trong báo cáo này, chúng ta sẽ thấy Datastore tương
tự như Table service của Windows Azure Storage. Phiên bản App Engine Business
dành cho khách hàng lớn sẽ hỗ trợ BigTable, một hệ quản trị cơ sở riêng của
Google.
Google App Engine cho phép sử dụng các tài khoản Google để xác thực các
dịch vụ, đồng thời có thể sử dụng các công cụ Google khác trong dịch vụ của mình.
1.4.3. Microsoft Windows Azure
Website: :
Windows Azure là giải pháp cloud computing được đầu tư một cách nghiêm
túc nhằm thương mại hóa. Microsoft đã xây dựng 16 data centers trên khắp thế giới
và vẫn đang tiếp tục xây dựng thêm. Điều này đảm bảo cho tương lai của Windows
Azure, ít nhất là trong thời gian tới.
Windows Azure được xây dựng trên những nền tảng rất quen thuộc của
Microsoft: Windows Server, SQL Server và .NET Framework. Các ứng dụng hiện
nay (đặc biệt là các ứng dụng web ASP.NET và dịch vụ web WCF – Windows
Communication Framework) có thể chạy trên nền Windows Azure mà hầu như
không phải sửa đổi hoặc chỉ phải sửa đổi rất ít. Điều này tạo thuận lợi rất lớn cho
các nhà phát triển cũng như các công ty khi muốn triển khai ứng dụng của mình trên
Windows Azure.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 17
CHƯƠNG 2
WINDOWS AZURE PLATFORM
Windows Azue Platform là nền tảng phục vụ cho điện toán đám mây của

Microsoft. Đây là nền tảng đầu cuối (end-to-end) cho việc phát triển và triển khai
các dịch vụ đám mây. Mỗi thành phần của Windows Azure Platform được thiết kế
phục vụ một chức năng cụ thể đối với các dịch vụ cloud. Trong phần này sẽ trình
bày về kiến trúc mức cao của nền tảng Windows Azure.
2.1. Kiến trúc Windows Azure Platform
Windows Azure Platform bao gồm 3 thành phần chính: Windows Azure,
SQL Azure và App Fabric.
2.1.1. Hệ điều hành Windows Azure
Windows Azure là hệ điều hành nằm bên dưới, chịu trách nhiệm chạy các
ứng dụng cloud trên Windows Azure platform. Microsoft đặt tên Windows Azure là
hệ điều hành đám mây vì nó cung cấp tất cả các tính năng cần thiết để chạy các dịch
vụ nền cloud. Nó cung cấp môi trường runtime, bao gồm một máy chủ web, các
dịch vụ tính toán, lưu trữ đơn giản, hàng đợi (queues), các dịch vụ quản lý và các bộ
cân bằng tải (load-balancer). Windows Azure cũng cung cấp cho các nhà phát triển
một fabric cục bộ cho việc xây dựng và kiểm tra các service trước khi chúng được
triển khai tới Windows Azure trên cloud. 3 dịch vụ chủ chốt của Windows Azure
bao gồm:
• Compute:
Dịch vụ tính toán cung cấp khả năng hosting các dịch vụ trên nền tảng
Windows Server 2008 64-bit với hỗ trợ Hyper-V. Nền tảng này được ảo hóa
và được thiết kế để mở rộng động (dynamically scalable) theo yêu cầu. Nền
tảng này chạy trên Internet Information Server (IIS) 7 cho các ứng dụng Web
ASP.NET.
• Storage:
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 18
Có 3 kiểu lưu trữ được hỗ trợ trong Windows Azure: table, blob và queue.
Các kiểu lưu trữ này hỗ trợ truy cập trực tiếp dựa trên các API của REST.
Windows Azure table không phải là kiểu bảng cơ sở dữ liệu quan hệ truyền
thống như bảng trong SQL Server. Thay vào đó, chúng cung cấp khả năng

lưu trữ dữ liệu có kiến trúc, với mô hình dữ liệu độc lập, thường được gọi là
mô hình thực thể entity. Bảng được thiết kế để lưu trữ hàng terabyte dữ liệu
có độ sẵn sang cao, ví dụ như thông tin người dùng trên một site thương mại
lớn.
• Management:
Management services cung cấp cơ sở hạ tầng tự động và khả năng quản lý
đối với các dịch vụ Windows Azure trên cloud. Các khả năng này bao gồm
việc tự động quản lý các máy ảo và các dịch vụ đã triển khai, cấu hình
switch, bộ định tuyến truy cập (access router) và các bộ cân bằng tải (load-
balancer) để duy trì trạng thái của dịch vụ mà người dùng đã định nghĩa.
2.1.2. SQL Azure
SQL Azure là một cơ sở dữ liệu quan hệ trên nền tảng Windows Azure. Nó
cung cấp các khả năng cơ bản của hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) như
một dịch vụ, và nó được xây dựng trên nền tảng của SQL Server. Trong phiên bản
hiện tại, các nhà phát triển có thể truy cập đến SQL Server dử dụng tabular data
stream (TDS), là cơ cấu chuyển để truy cập các instance SQL Server on-premises
thong qua các SQL client. SQL client có thể là bất kì client nào, như ADO.NET,
LINQ, ODBC, JDBC, ADO.NET Entity Framework, hay ADO.NET Data Services
Hình 2.1. Cấu trúc của hệ quản trị cơ sở dữ liệu SQL Azure
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 19
SQL Azure cung cấp các dịch vụ sau:
• Lưu trữ dữ liệu quan hệ: Engine lưu trữ dữ liệu quan hệ là xương sống của
SQL Azure, dựa trên nền tảng SQL Server.
• Đồng bộ dữ liệu: Data Sync cung cấp sự đồng bộ và tập hợp của dữ liệu
từ/đến SQL Azure tới các thiết bị của doanh nghiệp, trạm làm việc, đối tác và
khách hàng sử dụng Microsoft Sync Framework
• Quản lý: Thành phần quản lý cung cấp khả năng cung cấp, đo đạc, tính toán,
cân bằng tải, vượt qua lỗi (failover) và bảo mật cho SQL Azure. Dựa trên
SLA, mỗi CSDL được lặp lại với trên 1 máy chủ chính và 2 máy chủ phụ.

Trong trường hợp xảy ra lỗi, việc chuyển đổi giữa các máy chủ chính và phụ
được thực hiện tự động mà không xảy ra gián đoạn.
• Truy cập dữ liệu: thành phần truy cập dữ liệu định nghĩa các phương thức
khác nhau của việc truy cập dữ liệu SQL Azure thông qua lập trình.
2.1.3. .NET Services – AppFabric
Các dịch vụ .NET là engine tầng giữa (middleware engine) của nền tảng
Windows Azure cung cấp dịch vụ điều khiển truy cập (access control service) và
service bus.
AppFabric là một kiến trúc hướng dịch vụ (service-oriented architecture),
giúp tạo các điều kiển truy cập liên hợp và phân phối message giữa các ứng dụng
cloud và on-premises. Có thể coi AppFabric là xương sống tích hợp của nền tảng
Windows Azure, vì nó cung cấp khả năng kết nối và truyền tải CSDL giữa các ứng
dụng phân tán. Nó cũng cung cấp khả năng tích hợp các ứng dụng và tiến trình kinh
doanh không chỉ giữa các dịch vụ cloud mà còn giữa các dịch vụ cloud và các ứng
dụng on-premises.
Trong bản cập nhật 4/2009, Microsoft đã tách rời AppFabric ra khỏi .NET
Services. Trong phần còn lại của báo cáo này sẽ chỉ tập trung nói về AppFabric 2
dịch vụ cơ bản của AppFabric là:
• Access Control: Access Control cung cấp việc điều khiển truy cập dựa trên
các luật và claims cho các ứng dụng phân tán. Có thể định nghĩa các luật dựa
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 20
trên claims và vai trò trên cloud để truy cập các dịch vụ cloud cũng như on-
premises.
• Service Bus: Service Bus là một kiến trúc ESB – Enterprise Service Bus ở
phạm vi Internet, nhằm đảm bảo việc trao đổi message giữa các client và
service.
2.2. Windows Azure
Windows Azure là một hệ điều hành quản lý cả các server và các dịch vụ. Có
thể coi Windows Azure là một hệ điều hành ảo chứa nhiều máy ảo chạy trên phần

cứng có khả năng co giãn rất lớn nhưng đã được ảo hóa. Sự ảo hóa giữa các dịch vụ
nhân của Windows Azure và phần cứng được quản lý bởi Fabric Controller. Fabric
controller quản lý quá trình tự động hóa đầu cuối (end-to-end) của các dịch vụ
Windows Azure, từ việc cung cấp phần cứng cho đến việc duy trì sự sẵn sàng của
dịch vụ.
Hình 2.2. Vai trò của Fabric Controller trong Windows Azure
Windows Azure được thiết kế để có độ sẵn sàng rất cao, cũng như khả năng
co giãn rất lớn. Trong hình trên, Fabric Controller đọc thông tin cấu hình của dịch
vụ do dịch vụ cloud cung cấp và tương ứng tạo các máy chủ ảo cần thiết để triển
khai dịch vụ. Sự triển khai các dịch vụ cloud và sinh các instance máy chủ ảo hoàn
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 21
toàn trong suốt đối với nhà phát triển. Nhà phát triển chỉ thấy trạng thái của việc
triển khai dịch vụ cloud trên Windows Azure developer portal. Một khi dịch dụ
cloud đã được triển khai, nó được quản lý hoàn toàn bởi Windows Azure. Nhà phát
triển chỉ cần xác định trạng thái cuối cùng của dịch vụ cloud trong file cấu hình của
nó, Windows Azure sẽ cung cấp phần cứng và phần mềm cần thiết để thực hiện điều
đó. Nói cách khác, các công việc triển khai khả năng co giãn, độ sẵn sàng, cập nhật
và cấu hình phần cứng được quản lý bởi Windows Azure.
Windows Azure bao gồm 3 dịch vụ chính: Tính toán - compute, lưu trữ -
storage và quản lý - management.
Dịch vụ tính toán cung cấp hosting cho các ứng dụng web trên nền IIS và các
tiến trình .NET chạy nền. Các ứng dụng web được gọi là web role, và các tiến trình
chạy nền được gọi là Worker role. Một dịch vụ cloud trên Windows Azure bao gồm
một Web role và/hoặc một Woker role cùng với các định nghĩa của dịch vụ.
Dịch vụ lưu trữ trên Windows Azure hỗ trợ 3 kiểu dịch vụ: blob, queue và
table, các kiểu lưu trữ này hỗ trợ truy cập cục bộ hay trực tiếp thông qua REST API.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 22
Hình 2.3. Kiến trúc tổng thể hệ điều hành Windows Azure

Có thể thấy các dịch vụ tính toán và lưu trữ là các dịch vụ độc lập với nhau
trong Windows Azure. Web và Woker role chạy trong Compute Service, và các dịch
vụ blob, queue, table chạy trên Storage service. Fabric Controller trừu tượng hóa
các thành phần của cơ sở hạ tầng phía dưới như máy chủ ảo, các thành phần mạng,
DNS và các bộ cân bằng tải đối với Compute và Storage.
2.2.1. Compute Service
Compute là một trong những dịch vụ cốt lõi của Windows Azure. Nó cũng
được gọi là Hosted Service trong thuật ngữ của Windows Azure portal. Compute
Service cung cấp khả năng phát triển và triển khai các dịch vụ cloud. Nhà phát cũng
có thể xây dựng các ứng dụng native truyền thống. Mục đích của Compute Service
là cung cấp khả năng chạy các ứng dụng phục vụ cùng lúc rất nhiều người dùng.
Điều này không thể đạt được nếu chỉ dùng các máy tính to hơn – co giãn theo kiểu
scale up. Thay vào đó, Compute Service sử dụng cách tiếp cận scale out, tức là sử
dụng nhiều máy chủ chạy đồng thời với nhau.
Một ứng dụng chạy trên Compute Service gồm có 2 thành phần cơ bản: Web
role và worker role
Web role:
Một web role là một website hay một web service có thể chạy trên môi
trường IIS. Thông thường, nó sẽ là một ứng dụng web trên ASP.NET hoặc là một
dịch vụ Windows Communication Foundation (WCF) với các endpoint HTTP
và/hoặc HTTPS.
Như đã nói ở trên, khả năng co giãn của web role được thực hiện bằng việc
chạy nhiều instance. Bộ cân bằng tải của Windows Azure không cho phép tạo một
mối quan hệ nào với một instance web role cụ thể, vì vậy, không có cách nào đảm
bảo các request từ cùng một người dùng sẽ được gửi đến cùng một web role. Theo
đó, các web role phải không giữ trạng thái – stateless. Tất cả các thông tin gắn với
người dùng phải được lưu vào Windows Azure storage hoặc trả lại người dùng.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 23
Woker role:

Worker role cung cấp khả năng chạy một tiến trình nền liên tục trên cloud.
Worker role có thể mở các endpoint, cũng như gọi các giao tiếp bên ngoài. Về
nguyên tắc, Woker role giống như một web role, trừ việc nó không tương tác với IIS
và cũng không có giao diện. Một Woker role có thể giao tiếp với các dịch vụ queue,
blob, và table của Windows Azure. Một instance của Woker role chạy độc lập với
instance của Web role, mặc dù chúng có thể là các phần khác nhau của cùng một
dịch vụ. Một Woker role chạy trên máy ảo riêng biệt với web role trong cùng một
service. Trong một số dịch vụ Windows Azure, có thể cần giao tiếp giữa một Web
role và một Woker role.
Fabric Controller:
Tất cả các ứng dụng Windows Azure và dữ liệu Windows Azure Storage
được lưu trữ trên các trung tâm dữ liệu – data center của Microsoft. Trong các trung
tâm dữ liệu này, tập hợp các máy chủ dành riêng cho Microsoft được tổ chức thành
một fabric. Windows Azure Fabric bao gồm một nhóm lớn máy tính, tất cả được
quản lý bởi phần mềm fabric controller. Fabric controller giao tiếp với một fabric
agent trên mỗi máy tính, và vì vậy kiểm soát tất cả các ứng dụng Windows Azure
trong fabric. Fabric controller giám sát tất cả các ứng dụng đang chạy, quản lý các
hệ điều hành, chịu trách nhiệm các công việc như cập nhật bản vá lỗi cho Windows
Server chạy các máy ảo Windows Azure. Nó cũng quyết định nơi các ứng dụng mới
chạy, chọn các server vật lý để tối ưu hoá việc sử dụng phần cứng.
2.2.2. Storage Bus
Windows Azure Storage service cho phép người dùng lưu trữ dữ liệu của ứng
dụng trên cloud và truy cập đến nó từ bất kì đâu, bất kì lúc nào. Kiến trúc mở của
dịch vụ lưu trữ cho phép nhà phát triển thiết kế ứng dụng và dịch vụ để lưu trữ và
lấy dữ liệu sử dụng REST APIs. Mỗi kiểu lưu trữ trong dịch vụ Storage có một API
lập trình REST độc lập.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 24
Hình 2.4. Kiến trúc của Windows Azure Storage
Như hình trên, có thể thấy các kiểu lưu trữ đều có phạm vi ở cấp độ tài

khoản. điều này có nghĩa khi người dùng mở một tài khoản lưu trữ, họ có thể truy
cập đến tất cả các dịch vụ lưu trữ của Windows Azure.
Blob Services
Dịch vụ blob được thiết kế để lưu trữ các đối tượng dạng nhị phân lớn, vớ
các siêu dữ liệu kết hợp như tài liệu, ảnh, video, và file âm thanh.
Kiến trúc của dịch vụ Blob:
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ
Trang 25
Hình 2.5. Kiến trúc của dịch vụ Blob
Lược đồ URI để truy xuất dịch vụ Blob thông qua tài khoản lưu trữ là
<http|https>://<account name>.blob.core.windows.net
Trong đó <account name> là tên duy nhất đã tạo cho tài khoản lưu trữ.
Container:
Một container là một nhóm logic chứa một tập hợp blob. Container có thể
chứa siêu dữ liệu dưới dạng cặp tên-giá trị. Có 2 kiểu container: kiểu public có thể
được nhìn thấy bởi tất cả các user (Anomynous) cho mục đích chỉ đọc (read-only)
mà không cần xác thực, và kiểu private, chỉ chủ của tài khoản mới có quyền truy
cập. Blob là kiểu lưu trữ duy nhất hỗ trợ truy cập theo chế độ public và private, kiểu
dữ liệu queue và table chỉ hỗ trợ kiểu truy cập private.
Lâm Hàn Vũ – CH1301119 GVHD: TS. Nguyễn Phi Khứ

×