ĐẠI HỌC QUỐC GIA TPHCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Báo Cáo Môn Học: Điện toán đám mây
Đề Tài
TÓM TẮT LÝ THUYẾT VỀ MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY VÀ ỨNG
DỤNG VÀO MÔ HÌNH HƯỚNG DỊCH VỤ (SOA)
GVHD : PGS.TS. Nguyễn Phi Khứ
Học Viên: Nguyễn Thành Quân
MSHV: CH1301032
MỤC LỤC
LỜI CÁM ƠN
Em xin chân thành cảm ơn PGS.TS Nguyễn Phi Khứ về tất những bài giảng bổ ích
của Thầy. Thầy đã tận tâm chia sẻ những kinh nghiệm quý báu và truyền đạt những kiến
thức bổ ích thông qua môn học “Điện toán lưới và đám mây”.
Nhờ những kiến thức quí báu mà Thầy đã chia sẻ, em đã nâng cao được kiến thức
của mình, qua đó có cái nhìn mới mẻ về trào lưu công nghệ mới hiện nay đặc biệt là
những vấn đề liên quan đến điện toán đám mây.
LỜI MỞ ĐẦU
Hiện nay con người ngày càng phát triển cùng với đó là sự bùng nổ của khoa học
công nghệ, công nghệ là mấu chốt cho sự thành công của cuộc sống. Song với quá trình
phát triền ngày càng tăng, ngày càng có nhiều bài toán mới , đòi hỏi các năng lực xử lý
cũng được tăng theo. Tuy hiện nay các công nghệ cũng đã phần nào đáp ứng được nhu
của con người nhưng đó không phải là sự lựa chọn khôn ngoan và lâu dài cho sự phát
triển khoa học công nghệ.
Công nghệ Grid computing ra đời đời đánh dấu một bước phát triển quan trọng
trong lĩnh vực điện toán hiệu năng cao. Nó cho phép tận dụng năng lực xử lý. Lưu trữ
cùng các tài nguyên nhàn rỗi khác để cung cấp một môi trường tính toán có năng lực xử
lý lớn, khả năng lưu trữ dồi dào để giải quyết các bài toán lớn, phức tạp khó có thể giải
quyết được với các công nghệ hiện hành hoặc đòi hỏi chi phí rất cao .
Grid computing tận dụng tối đa tài nguyên, tăng cường sự hợp tác, giảm chi phí
đầu tư trong khi vẫn cung cấp năng lực tính toán như mong muốn . Trong những năm vừa
lưu trữ thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các
máy khách, bao gồm máytính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp,
các phương tiện máy tính cầm tay,
Grid computing là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt
chia sẻ, tuyển lựa và tập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo
khả năng sẵn có, công suất, hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của
người sử dụng.
Điện toán mạng lưới có nghĩa là tất cả hoặc một phần của một nhóm máy tính,
máy chủ và thiết bị lưu trữ trong mạng doanh nghiệp, được “ảo hóa” (virtualize) thành
một cỗ máy tính lớn. Vì điện toán mạng lưới giải phóng những khả năng tính toán không
được sử dụng vào một thời điểm bất kỳ, chúng có thể cho phép các doanh nghiệp tăng
cường rất nhiều về tốc độ, sức mạnh xử lý thông tin và sự liên kết, thúc đẩy các quy trình
tính toán mật độ cao. Trong khi đó, chi phí vẫn sẽ được giữ ở mức thấp vì điện toán mạng
lưới có thể được xây dựng từ chính hạ tầng hiện có, góp phần đảm bảo sự huy động tối
ưu các khả năng tính toán.
Điện toán mạng lưới cho phép ảo hóa các chức năng tính toán phân tán cũng như
các nguồn xử lý, băng thông mạng và khả năng lưu trữ, để từ đó tạo ra một hệ thống đơn
đồng nhất, cho phép người sử dụng và các ứng dụng truy cập thông suốt vào các tính
năng điện toán rộng lớn. Giống như người lướt web xem một nội dung thống nhất qua
web, người sử dụng điện toán mạng lưới cũng nhìn thấy một máy tính ảo cực lớn duy
nhất.
Hình 1: Sự ảo hóa với nhiều cấp độ
Hình trên mô tả từng cấp độ của sự ảo hóa từ đơn giản đến phức tạp khi đi theo
chiều từ trái sang phải. Ở hình trái nhất là tổ chức đồng nhất đơn tài nguyên. Tài nguyên
ở đây có thể là CPU, ổ lưu trữ, các thiết bị và chương trình. Tiếp đến là hệ thống hỗn hợp
gồm nhiều tài nguyên khác nhau. Cấp độ ảo hóa phức tạp hơn là ảo hóa trong một xí
nghiệp . Hình bên phải là mức độ ảo hóa cao nhất vơi phạm vi trên toàn mạng internet,
gồm các đa tổ chức hỗn hợp.
Trọng tâm của điện toán mạng lưới dựa trên một tập hợp mở của nhiều chuẩn và
giao thức, ví dụ kiến trúc dịch vụ lưới mở (OGSA), cho phép liên lạc qua nhiều môi
Grid computing. Các chương trình chạy trên môi trường Grid sử dụng các thuật toán để
phân chia công việc xử lý thành nhiều thành phần độc lập. Mỗi CPU trên một máy tính
trong mạng đảm nhận việc xử lý một hay nhiều thành phần đó. Tính độc lập của các
thành phần càng cao thì chương trình càng dễ dàng mở rộng trên phạm vi mạng lưới
nhiều máy tính hơn. Một mạng lưới được gọi là hoàn hảo nếu với mười máy tính, tốc độ
xử lý chung của mạng tăng lên gấp mười lần. Tuy nhiên, trên thực tế không có mạng lưới
hoàn hảo. Có 2 lý do chính để mạng lưới trên thực tế không thể trở thành hoàn hảo.
• Thứ nhất là việc sử dụng thuật toán phân chia công việc ảnh hưởng lớn đến hiệu
năng tính toán chung của mạng.
• Thứ hai là các thành phần của công việc không hoàn toàn độc lập với nhau. Không
phải ứng dụng nào cũng có thể chuyển đổi để Grid có thể xử lý song song. Hơn
nữa, không có một công cụ nào có thể chuyển đổi một ứng dụng bất kỳ sang đang
chạy song song trên Grid. Khả năng xử lý song song của một chương trình trên
mạng lưới phụ thuộc vào người thiết kế và đó không phải là công việc đơn giản.
2.2.3 Sự cộng tác các tài nguyên tổ chức ảo.
Một khả năng khác của Grid computing là tạo nên môi trường cộng tác rộng lớn
đồng nhất. Mỗi môi trường đó được gọi là một tổ chức ảo. Grid computing thậm chí có
khả năng tạo nên một môi trường rộng lớn hơn bằng cách kết hợp các tổ chức ảo, không
đồng nhất với nhau để cùng cộng tác với nhau.
Hình 2: Mạng grid ảo không đồng nhất
Hình trên mô tả môi trường đồng nhất đó. Mỗi người sử dụng mạng lưới được
phân bổ vào một tổ chức ảo nào đó. Các tổ chức ảo này có thể chia sẻ tài nguyên với
nhau như một mạng lưới lớn. Chia sẻ tài nguyên bắt đầu với dữ liệu dạng tệp hay cơ sở
dữ liệu. Lưới dữ liệu có thể mở rộng dữ liệu theo nhiều cách khác nhau. Đầu tiên, tệp hay
cơ sở dữ liệu có thể được trải rộng trên nhiều hệ thống tạo nên dung lượng lớn hơn rất
nhiều so với hệ thống đơn. Cách trải dữ liệu này có thể tăng tốc độ truyền dữ liệu với
công nghệ striping.
Dữ liệu thường xuyên được sao lưu phục vụ cho việc khôi phục dữ liệu. Ngoài
việc chia sẻ tài nguyên là các tệp và cơ sở dữ liệu, ta có thể chia sẻ nhiều tài nguyên khác,
như các thiết bị chuyên dụng, phần mềm, dịch vụ, Những tài nguyên này được “ảo hóa”
độ ưu tiên do cần hoàn thành gấp. Grid không thể xử lý được những công việc cần hoàn
thành quá gấp. Tuy nhiên grid có thể phân chia nó thành nhiều công việc nhỏ và huy
động một lượng lớn tài nguyên để xử lý nó một cách nhanh nhất
Hình 3: Chia sẻ công việc trong mạng
Một lợi ích khác khi dùng grid là cân bằng tải. Khi một công việc liên lạc với một
công việc khác, với Internet, hoặc các tài nguyên khác, Grid có thể lập lịch cho chúng để
có thể giảm thiểu tối đa lưu lượng đường truyền cũng như khoảng cách truyền. Điều này
giúp Grid có thể giảm thiểu tắc nghẽn mạng. Cuối cùng, Grid có khả năng thương mại tài
nguyên. Các trạng thái của tất cả các tài nguyên trong mạng được Grid quản lý. Các tổ
chức trên Grid có thể tạo tài khoản và trả tiền để sử dụng các tài nguyên này khi cần thiết.
Điều này tạo nên các tài chính mạng lưới.
2.2.6 Độ tin cậy.
Những hệ thống tính toán mạnh sử dụng phần cứng đắt tiền để tăng độ tin cậy.
Chúng sử dụng bộ xử lý kép để khi hỏng hóc có thể thay thế bộ xử lý thứ hai mà không
cần tắt hệ thống. Các nguồn và hệ thống làm mát cũng đều được nhân bản. Hệ thống còn
sử dụng một nguồn đặc biệt có thể phát điện khi nguồn điện bị mất. Tất cả chúng tạo nên
một hệ thống tin cậy, tuy nhiên, giá thành cho hệ thống này rất cao. Trong tương lại, một
mạng lưới có thể có khả năng thay thế một hệ thống đáng tin cậy như thế. Grid mới chỉ
bắt đầu công nghệ này. Mô hình máy chủ đáng tin cậy sử dụng Grid có thể được mô tả
như một mạng lưới gồm nhiều máy tính được phân bố khắp nơi. Do đó, khi có một sự cố
tại một nốt mạng nào đó trên mạng lưới, các điểm khác sẽ không bị ảnh hưởng. Khi một
máy tính bị hỏng hóc, phần mềm quản lý trong Grid có thể tự động chuyển công việc xử
lý từ máy này đến một máy nào đó trong mạng. Trong trường hợp quan trọng, nhiều bản
sao của công việc được tạo ra và được chuyển đến nhiều máy khác nhau trên mạng luới
như hình 4 dưới đây.
Hình 4: Các bản sao của công việc
Những hệ thống grid như thế sẽ tạo nên khả năng tính toán tự động. Nó là một
dạng phần mềm có khả năng tự sửa lỗi trên grid, trước khi thông báo cho bộ xử lý hay
ngưởi quản lý biết. Về nguyên tắc, hầu hết những hệ thông tin cậy đắt tiền ngày nay dựa
vào phần cứng hoàn toàn cũng có thể dùng phần mềm để tạo nên sự tin cậy.
Với việc đưa thêm khả năng điện toán mạng lưới, phần mềm Application Server
10g giúp khách hàng giảm thời gian, sức lao động và chi phí cho việc quản lý CNTT
bằng cách kết hợp các hệ thống máy chủ, hệ thống lưu trữ và các phần mềm cần thiết.
Kết quả là các doanh nghiệp có thể sử dụng sức mạnh của toàn bộ hệ thống hay lưới cho
tất cả các ứng dụng dành cho doanh nghiệp chứ không phải mua thêm tính năng cho các
ứng dụng riêng biệt. Oracle Application Server 10g được cung cấp với ba phiên bản: Java
Edition (giá 5.000 USD tính trên một bộ vi xử lý hoặc 100 USD/một người sử dụng),
Standard Edition (10.000 USD/bộ vi xử lý hoặc 200 USD/người sử dụng) và Enterprise
Edition (20.000 USD/bộ vi xử lý hoặc 400 USD/một người sử dụng).
Trong khi đó, Sun Microsystems gần đây tung ra một mô hình dịch vụ với cách
tiếp cận khác. Họ gọi đây là cơ chế thu tiền tính theo người sử dụng đầu tiên áp dụng đối
với kiến trúc điện toán mạng lưới. Với chi phí khởi điểm là 1 USD/bộ xử lý/giờ, dịch vụ
tính toán theo lưới này của Sun được cung cấp theo từng gói tính bằng tiếng đồng hồ. Sun
khẳng định mô hình này có thể cho phép khách hàng khai thác sức mạnh tính toán giống
như sử dụng các tiện ích thông thường như điện thoại, điện gia dụng hay nước…từ hạ
tầng của nhà cung cấp dịch vụ.
2.3 Các thành phần của Grid.
2.3.1 Thành phần quản lý.
Bất kì một lưới nào cũng cần có một thành phần quản lý. Trước hết, thành phần
này theo dõi các tài nguyên đang sẵn dùng và thành viên nào đang có mặt trong hệ thống.
Các thông tin này rất quan trọng trong việc gán công việc cho máy nào trong lưới. Tiếp
đó là thành phần đo lường xác định dung lượng của từng nút mạng và tỉ lệ tài nguyên
được sử dụng tại một thời điểm bất kì. Điều này là cơ sở cho việc lập lịch cho các tiến
trình lưới. Nó cũng cho thấy tình trạng của lưới, cảnh báo tới người sử dụng về khả năng
có thể xảy ra thất bại do thiếu tài nguyên, đụng độ hay các nguyên nhân khác. Một thủ
tục khác cũng cần đến các thông tin này là các thống kê về sử dụng hệ thống, việc chi trả
cho hệ thống khi chạy các phần mềm trên lưới.
2.3.2 Thành phần donor.
Mỗi máy tính thành viên đóng góp tài nguyên vào hệ thống đều cần có quá trình
đăng nhập trước khi được xem như một thành viên chính thức. Thường thì sẽ có các thủ
công việc được thực hiện bởi một số thành phần cài đặt trên một số máy gọi là nút đệ
trình hay máy khách đệ trình. Khi lưới được xây dựng dựa trên các tài nguyên chuyên
dụng hơn tài nguyên thường thì các thành phần đệ trình thường được cài đặt trên máy của
người dùng hay các trạm làm việc.
2.3.4 Quản lý phân tán.
Các lưới được cài đặt trên phạm vi rộng lớn thường có cấu trúc hình cây hay các
dạng thù hình khác phù hợp với dạng kết nối. Theo đó, các máy tính được kết nối thông
qua mạng LAN tạo thành các cluster. Các lưới có thể được tạo nên từ các cluster của các
cluster này. Vì thế đòi hỏi phải có các thủ tục quản lý các lưới phân tán sao cho đạt hiệu
quả tính toán cao nhất. Các thao tác trên lưới cũng như các thủ tục chia sẻ dữ liệu và lập
lịch phải phù hợp với cấu hình của lưới.
Ví dụ: bộ lập lịch trung tâm sẽ không gán trực tiếp công việc cho một máy cụ thể
mà gán cho một cluster ở dưới nó, sau đó bộ lập lịch của cluster này mới thực hiện gán
công việc cho một máy cụ thể trong cluster đó. Tương tự như thế khi một máy đệ trình
một công việc nào đó: công việc này sẽ được chuyển tới bộ quản lí của cluster chứa máy
thành phần, sau đó được tiếp tục chuyển lên bộ quản lí cao hơn để từ đó thực hiện lập lịch
cho công việc này.
2.3.5 Bộ lập lịch.
Phần lớn các lưới tính toán đều có các phần mềm lập lịch, các phần mềm này có
nhiệm vụ chọn ra các máy thành phần để thực thi các công việc được đệ trình tại một
máy nào đó. Cơ chế lập lịch đơn giản nhất là cơ chế round-robin, tức là hệ thống sẽ chọn
máy tiếp theo có các tài nguyên đáp ứng nhu cầu của công việc để thực thi. Tuy vậy trong
các hệ thống tiên tiến thì các cơ chế lập lịch phức tạp và hiệu quả hơn sẽ được áp dụng.
Một số bộ lập lịch thực hiện gán ưu tiên cho từng công việc. Điều này được thực
hiện bằng cách duy trì các hàng đợi công việc, mỗi hàng đợi chứa một tập các công việc
với cùng mức ưu tiên. Khi một máy đã thực hiện xong công việc của mình, nó sẽ chọn
tiếp một công việc ở hàng đợi có mức độ ưu tiên cao nhất. Cơ chế này sẽ được kết hợp
với một số quy định khác dựa trên cơ sở là các tài nguyên người sử dụng Ví dụ như
một tài nguyên trong tổ chức có thể bị hạn chế sử dụng trong khoảng thời gian nào đó
trong ngày.
thống hiện tại như các máy nào sẵn dùng, tỉ lệ tài nguyên được sử dụng, tải của các nút
lưới Thông thường các phần mềm donor sử dụng một số công cụ của hệ điều hành hoặc
trực tiếp đo các thông số này. Các phần mềm này đôi khi còn được gọi là “sensor tải”.
Các thông tin này không những có giá trị với việc lập lịch mà nó còn đo lường được khả
năng sử dụng lưới. Các thông số này có thể dự báo cho người quản trị thấy được xu
hướng của lưới và các thiết bị có thể cần thiết phải thêm vào hệ thống. Các thông tin đo
lường có thể tiết kiệm cho mục đích kế toán, là cơ sở cho thủ tục môi giới tài nguyên,
quản lý ưu tiên dễ dàng hơn. Người ta có thể thể hiện các thông tin đo lường dưới các
dạng biểu diễn khác nhau sao cho trực quan đối với người sử dụng nhất.
2.4 Kiến trúc điện toán đám mây.
2.4.1. Mô hình kiến trúc tổng quát.
Phần lớn hạ tầng cơ sở của điện toán đám mây hiện nay là sự kết hợp của những
dịch vụ đáng tin cậy được phân phối thông qua các trung tâm dữ liệu (data center) được
xây dựng trên những máy chủ với những cấp độ khác nhau của các công nghệ ảo hóa.
Những dịch vụ này có thể được truy cập từ bất kỳ đâu trên thếgiới, trong đó Đám mây là
một điểm truy cập duy nhất cho tất cả các máy tính có nhu cầu của khách hàng.
Các dịch vụ thương mại cần đáp ứng yêu cầu chất lượng dịch vụ từ phía khách
hàng và thông thường đều đưa ra các mức thỏa thuận dịch vụ (Service level agreement).
Các tiêu chuẩn mở (Open standard) và phần mềm mã nguồn mở (open source software)
cũng góp phần phát triển điện toán đám mây.
2.4.2. Các thành phần của điện toán đám mây.
Điện toán đám mây có thể chuyển đổi các chương trình ứng dụng diện rộng theo
kiến trúc và phân phối các dịch vụ. Trong nhiều thập kỷ qua, các hãng CNTT đã dành
nhiều công sức, thời gian và các tài nguyên để xây dựng cơ sở hạ. Phần lớn các trường
hợp theo cách tiếp cận đó dẫn đến kết quả:
- Cơ sở hạ tầng (Infrastructure)
- Lưu trữ đám mây (Cloud Storage)
- Nền tảng đám mây (Cloud Platform)
- Ứng dụng (Application)
- Dịch vụ (Services)
dịch vụ trực tuyến trên nền tảng cơ sở hạ tầng Windows. Windows Azure tách biệt
hoàn toàn các ứng dụng chạy trên các lớp hệ điều hành ứng dụng công nghệ ảo hóa
của Microsoft. Điều này cho phép các nhà quản trị không cần phải nâng cấp từng PC
độc lập khi ứng dụng được chỉnh sửa.
2.5.2.2 Nền tảng dịch vụ (Azure Services Platform).
Nền tảng dịch vụ là một giải pháp hoàn thiện cho các doanh nghiệp. Microsoft sẽ
lưu trữ các ứng dụng được xây dựng từ các hãng thứ ba cũng như những dịch vụ Web
của chính Microsoft như là Office Live, Windows Live, Exchange Online, CRM
Online, … Kết hợp chặt chẽ .NET Services (cho lập trình viên), SQL Services (cho cơ
sở dữ liệu và báo biểu), Live Services (cho việc tương tác với các thiết bị người dùng)
vào trong các dịch vụ SharePoint và CRM (cho nội dung doanh nghiệp). Điểm khác
biệt giữa Azure và Azure Services Platform: Windows Azure là một hệ điều hành còn
Azure Services Platform là một sự kết hợp của Azure, lớp các dịch vụ cơ sở hạ tầng
và lớp ứng dụng trực tuyến.
2.5.2.3 Fabric Controller.
Fabric Controller là “gia vị” chủ chốt của Windows Azure, đảm nhiệm chức năng
quản lý “vòng đời” của tất cả dịch vụ trực tuyến được triển khai. Công cụ này giúp tổ
chức và tập trung quản lý tại trung tâm dữ liệu theo mô hình chia sẻ nguồn tài nguyên
phần cứng. Điều này cho phép Azure tự động cập nhật ứng dụng chứ không cần phải
cập nhật trực tiếp trên từng PC độc lập.
2.5.2.4 Windows Azure với người sử dụng và lập trình viên.
Lập trình viên có thể xây dựng các ứng dụng mới hoặc hiệu chỉnh các ứng dụng
hiện tại cho WindowsvAzure bằng những công cụ hiện có như Visual Studio,
ASP.Net, .NET Framework và cập nhật thêm một vàivcông nghệ mới mà Microsoft sẽ
phổ biến trong thời gian sắp tới. .NET Services và SQL Services sẽ cung cấp những
khả năng “hướng đám mây” mới và Azure Tool cho Visual Studio, cung cấp các mẫu
(template) làm nền tảng xây dựng (Azure SDK). Ngoài ra, công cụ “Oslo” mới từ
Microsoft sẽ trợ giúp với các ứng dụng phân phối kiểu mẫu bao gồm một ngôn ngữ
lập trình mới với tên gọi “M.”. Azure cũng sẽ hỗ trợ các công cụ và ngôn ngữ thứ ba
như Eclipse, Ruby, PHP và Python cũng như các tiêu chuẩn và cổng như SOAP,
kết dính của mỗi hệ thống ảnh hưởng trực tiếp đến khả năng chỉnh sửa và mở rộng của
chính nó. Kết dính càng chặt bao nhiều thì càng có nhiều thay đổi liên quan cần chỉnh sửa
ở phía sử dụng dịch vụ mỗi khi có sự thay đổi nào đó xảy ra. SOA hỗ trợ liên kết lỏng
thông qua việc sử dụng hợp đồng và liên kết (contract and binding). Một người sử dụng
truy vấn đến nơi lưu trữ và cung cấp thông tin dịch vụ (registry) để lấy thông tin về loại
dịch vụ cần sử dụng. Registry sẽ trả về tất cả các dịch vụ thỏa tiêu chuẩn tìm kiếm. Người
dùng chỉ cần chọn dịch vụ mà mình cần, và thực thi phương thức trên đó theo mô tả dịch
vụ nhận được từ registry. Bên sử dụng dịch vụ không cần phụ thuộc trực tiếp vào cài đặt
của dịch vụ mà chỉ dựa trên hợp đồng mà dịch vụ đó hỗ trợ.
3.3.2. Sử dụng lại dịch vụ
Bởi vì các dịch vụ được cung cấp trên mạng và được đăng ký ở một nơi nhất định
nên chúng dễ dàng được tìm thấy và tái sử dụng. Nếu một dịch vụ không có khả năng tái
sử dụng, nó cũng không cần đến interface mô tả. Các dịch vụ có thể được tái sử dụng lại
bằng cách kết hợp lại với nhau theo nhiều mục đích khác nhau. Tái sử dụng lại các dịch
vụ còn giúp loại bỏ những thành phần trung lắp và tăng độ vững chắc