Trung tâm sẽ phục vụ khách hàng thuộc nhiều lĩnh vực như ngân hàng, viễn thông, chính phủ, giáo dục đào tạo và dịch vụ hosting … Với mục tiêu nghiên cứu, tìm hiểu về Cloud Computing-một
Trang 1LUẬN VĂN THẠC SĨ
TÌM HIỂU, MÔ HÌNH HÓA VÀ MÔ PHỎNG
CLOUD COMPUTING
THÁI THANH SƠN
Hà Nội, 11/2009
Trang 2LUẬN VĂN THẠC SĨ
TÌM HIỂU, MÔ HÌNH HÓA VÀ MÔ PHỎNG
CLOUD COMPUTING
THÁI THANH SƠN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
Trang 3L ỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là nghiên cứu của chính bản thân Các nghiên cứu trong luận văn này dựa trên những tổng hợp lý thuyết và hiểu biết thực tế của mình, không sao chép từ bất kỳ một luận văn nào khác Mọi thông tin trích dẫn đều được tuân theo luật sở hữu trí tuệ, liệt kê rõ ràng các tài liệu tham khảo
Tôi xin chịu hoàn toàn trách nhiệm với những nội dung được viết trong luận văn này
Trang 4L ỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc đến tất cả mọi người đã giúp đỡ, hỗ trợ thực hiện luận văn này, xin cảm ơn Viện Đào tạo Sau Đại học, Viện Công nghệ Thông tin và Truyền thông trường Đại học Bách Khoa Hà Nội đã cho phép và tạo điều kiện để
em thực hiện luận văn này
Luận văn này sẽ không thể hoàn thành nếu không có sự giúp đỡ và chỉ bảo tận tình của thầy giáo, giáo sư Nguyễn Thúc Hải, người thầy hướng dẫn của em Em xin chân thành biết ơn về những chỉ bảo, định hướng nghiên cứu thực hiện, hỗ trợ, tạo những điều kiện tốt nhất cho em trong suốt quá trình thực hiện đề tài
Con xin bày tỏ lòng biết ơn sâu sắc đến Bố, Mẹ, những bậc sinh thành đã chịu thương, chịu khó nuôi dưỡng, hỗ trợ, động viên, ủng hộ con trong những lúc khó khăn để con có được như ngày hôm nay
Em xin chân thành cảm ơn tất cả quý thầy cô trong Viện Công nghệ Thông tin và Truyền thông đã tận tình chỉ bảo, rèn luyện, truyền đạt những tri thức, kỹ năng, kinh nghiệm quý báu cho em trong suốt 2 năm học vừa qua
Học viên thực hiện
Thái Thanh Sơn
Trang 5M ỤC LỤC
DANH M ỤC HÌNH VẼ 7
CÁC CH Ữ VIẾT TẮT 9
L ỜI NÓI ĐẦU 10
CHƯƠNG 1: TỔNG QUAN VỀ CLOUD COMPUTING 13
1.1 Cloud Computing 14
1.2 Sơ lược lịch sử Cloud Computing 16
1.2.1 Client/Server Computing: Tập trung ứng dụng và lưu trữ 16
1.2.2 Peer-to-Peer Computing: Chia sẻ tài nguyên 17
1.2.3 Distributed Computing: Cung cấp sức mạnh tính toán nhiều hơn 17
1.2.4 Collaborative Computing: Làm việc nhóm 17
1.2.5 Cloud Computing: Bước kế tiếp của sự cộng tác 18
1.3 Ưu điểm của Cloud Computing 18
1.3.1 Giảm chi phí phần cứng cho người dùng 18
1.3.2 Hiệu năng xử lý nâng cao 18
1.3.3 Giảm chi phí đầu tư cơ sở hạ tầng 18
1.3.4 Giảm chi phí bảo trì hệ thống 19
1.3.5 Sử dụng phần mềm với chi phí thấp hơn 19
1.3.6 Cập nhật nhanh hơn 19
1.3.7 Không gian lưu trữ lớn 20
1.3.8 Nâng cao độ an toàn 20
1.3.9 Tăng tính tương thích 20
1.3.10 Cộng tác nhóm 20
1.4 Nhược điểm của Cloud Computing 21
1.4.1 Yêu cầu phải có kết nối Internet 21
1.4.2 Không làm việc tốt với các kết nối chậm 21
1.4.3 Tốc độ xử lý có thể chậm 21
Trang 61.4.4 Tính năng có thể bị giới hạn 21
1.4.5 Dữ liệu lưu trữ có thể không an toàn 22
CHƯƠNG 2: KIẾN TRÚC VÀ CÔNG NGHỆ HỖ TRỢ CLOUD COMPUTING 23
2.1 Ki ến trúc Cloud Computing 23
2.1.1 Khung SPI cho Cloud Computing 23
2.1.2 Mô hình dịch vụ của Cloud Computing 24
2.1.2.1 SaaS-Mô hình phần mềm như một dịch vụ 24
2.1.2.2 PaaS-Mô hình nền tảng như một dịch vụ 25
2.1.2.3 IaaS-Mô hình hạ tầng như là một dịch vụ 26
2.1.3 Các mô hình triển khai Cloud Conputing 27
2.1.3.1 Public Clouds 28
2.1.3.2 Private Clouds 29
2.1.3.3 Hybrid Clouds 29
2.2 Các công ngh ệ hỗ trợ Cloud Computing 30
2.2.1 Các thiết bị truy cập Cloud Computing 31
2.2.2 Trình duyệt và mô hình thin clients 32
2.2.3 Truy cập băng thông tốc độ cao 32
2.2.4 Data Centers và Server Farms 32
2.2.5 Thiết bị lưu trữ 33
2.2.6 Virtualization-Công nghệ ảo hóa 33
2.2.7 APIs- Giao diện lập trình ứng dụng 35
2.2.8 Web service và Service Oreinted Architecture (SOA) 37
2.2.9 Web 2.0 38
2.2.10 Programming model 39
2.3 Ví dụ về Cloud Computing 39
2.3.1 Amazon Web Services (IaaS) 39
Trang 7CHƯƠNG 3: MÔ HÌNH HÓA VÀ MÔ PHỎNG MÔI TRƯỜNG CLOUD
COMPUTING 42
3.1 Đặt vấn đề 42
3.2 Các khái niệm và thuật ngữ chính 44
3.2.1 User 44
3.2.2 Broker 45
3.2.3 Tài nguyên 45
3.2.4 Kiến trúc Market-Oriented Cloud 46
3.2.5 Federation Cloud Computing-Liên hiệp Cloud Computing 49
3.3 Kiến trúc CloudSim 51
3.3.1 SimJava 51
3.3.2 GridSim 53
3.3.3 CloudSim 54
3.4 Mô hình tài nguyên- mô ph ỏng đa tác vụ và đa xử lý 57
3.4.1 Mô phỏng lập lịch tài nguyên time-shared 58
3.4.2 Mô phỏng lập lịch tài nguyên space-shared 62
3.5 Mô hình hóa Clouds 65
3.5.1 Mô hình hóa VM allocation 67
3.5.2 Mô hình hóa Cloud Market 69
3.6 Thi ết kế và cài đặt CloudSim 70
3.6.1 Các lớp chính của CloudSim 70
3.6.2 Luồng và thực thể 78
3.6.3 Truyền thông giữa các thực thể 80
3.7 Các thử nghiệm và đánh giá 81
3.7.1 Thử nghiệm mô phỏng không tải 81
3.7.2 Thử nghiệm có tải 85
CHƯƠNG 4: ĐÁNH GIÁ VÀ KẾT LUẬN 90
4.1 Đánh giá 90
4.2 Hướng phát triển, mở rộng của luận văn 90
Trang 8TÀI LI ỆU THAM KHẢO 92 TÓM T ẮT LUẬN VĂN 95 SUMMARY 96
Trang 9DANH M ỤC HÌNH VẼ
Hình 1.1: Chi tiêu cho CNTT trên toàn thế giới năm 2008 và 2012 15
Hình 2.1: Mô hình dịch vụ SPI 23
Hình 2.2: Public Cloud 29
Hình 2.3: Hybrid Cloud 30
Hình 2.4: Kiến trúc các công nghệ hỗ trợ Cloud Computing 31
Hình 2.5: Môi trường Sun xVM hypervisor 35
Hình 2.6: API hỗ trợ Cloud Computing 36
Hình 3.1: Mô hình kiến trúc Kiến trúc Market-Oriented Cloud 49
Hình 3.2: Các đám mây và mạng liên kết giữa chúng thông qua Cloud Exchange 50
Hình 3.3 Kiến trúc mô-đun của GridSim 54
Hình 3.4: Kiến trúc lớp của CloudSim 56
Hình 3.5: Thuật toán lập lịch chia sẻ tài nguyên time-shared 59
Hình 3.6: Phân bổ PE cho Cloudlet với lập lịch time-shared 60
Hình 3.7: Giản đồ lập lịch time-shared của các Cloudlets 61
Hình 3.8: Thuật toán lập lịch chia sẻ tài nguyên space-shared 63
Hình 3.9: Phân bổ PE cho Cloudlet với lập lịch time-shared 63
Hình 3.10: Giản đồ lập lịch space-shared của các Cloudlets 65
Hình 3.11: Các chính sách lập lịch cho các VMs 68
Hình 3.12: Lớp VMMAllocationPolicy và các lớp mở rộng của nó 73
Hình 3.13: Lớp VMScheduler và các lớp mở rộng của nó 74
Hình 3.14: Lớp VMProvisioner và các lớp mở rộng của nó 75
Hình 3.15: Lớp BWProvisioner và các lớp mở rộng của nó 76
Hình 3.16: Lớp MemoryProvisioner và các lớp mở rộng của nó 77
Hình 3.17: Biểu đồ lớp của CloudSim 78
Hình 3.18: Luồng dữ liệu mô phỏng 80
Hình 3.19: Các bước tạo một Data Center 82
Trang 10Hình 3.20: Tràn bộ nhớ Heap trong quá trình mô phỏng với 90000 host 83
Hình 3.21: Tràn bộ nhớ Heap trong quá trình mô phỏng với 100000 host 84
Hình 3.22: Thời gian thực hiện mô phỏng 85
Hình 3.23: Bộ nhớ sử dụng trong quá trình thử nghiệm 85
Hình 3.24: Kịch bản thử nghiệm mô phỏng có tải 86
Hình 3.25: Các bước tạo thực hiện mô phỏng CloudSim 87
Hình 3.26: Thực thi các tác vụ với lập lịch space-shared 88
Hình 3.27: Thực thi các tác vụ với lập lịch time-shared 89
Trang 11CÁC CH Ữ VIẾT TẮT
Trang 12L ỜI NÓI ĐẦU
Máy vi tính đã trở thành một phần tất yếu của cuộc sống Chúng ta cần máy vi tính
ở khắp mọi nơi, nó được sử dụng công việc, nghiên cứu hoặc trong bất kỳ lĩnh vực nào Cũng như việc sử dụng máy vi tính trong cuộc sống của chúng ta ngày càng gia tăng, việc tính toán nguồn lực mà chúng ta cần cũng tiếp tục tăng Đối với các công
ty như Google và Microsoft, việc khai thác các nguồn tài nguyên trên khi họ cần không phải là một vấn đề Nhưng khi nói đến các doanh nghiệp nhỏ hơn, thì điều đó
có thể trở thành một yếu tố rất lớn Với sự đầu tư cơ sở hạ tầng đến các vấn đề như máy móc bị hỏng, ổ cứng bị hư, phần mềm có lỗi,…Điều này có thể gây đau đầu cho một tổ chức như vậy Cloud Computing- điện toán đám mây, cung cấp một giải pháp cho tình trạng này
Cloud Computing là một mô hình dịch chuyển, trong đó tính toán được dịch chuyển
từ máy tính cá nhân và thậm chí cả những máy chủ ứng dụng của các doanh nghiệp riêng lẻ vào một Cloud tính toán Một Cloud là một máy chủ ảo có thể cung cấp các tài nguyên tính toán khác nhau cho các khách hàng Người dùng của hệ thống này chỉ cần quan tâm những dịch vụ tính toán theo yêu cầu Chi tiết thực hiện như thế nào để thu được kết quả là ẩn với người sử dụng Dữ liệu và các dịch vụ được cung cấp nằm trong các Data Center có thể mở rộng và có thể được truy cập từ bất kỳ thiết bị ở mọi nơi trên thế giới
Hiện nay, nhiều nhà cung cấp Cloud Computing đã xuất hiện và có một sự tăng trưởng đáng kể trong lĩnh vực này Google, Microsoft, Yahoo, IBM và Amazon là những nhà cung cấp Cloud Computing điển hình Cloud Computing được sử dụng trong rất nhiều các lĩnh vực như máy chủ web, xử lý song song theo lô, đồ họa, mô hình tài chính, phân tích gen,…
Trang 13động điện toán hoặc cho phép tiếp cận thông tin và hạ tầng công nghệ cần thiết để khách hàng có thể thiết kế hay triển khai các môi trường điện toán riêng của mình Trung tâm sẽ phục vụ khách hàng thuộc nhiều lĩnh vực như ngân hàng, viễn thông, chính phủ, giáo dục đào tạo và dịch vụ hosting …
Với mục tiêu nghiên cứu, tìm hiểu về Cloud Computing-một xu hướng phát triển mới của điện toán hiện nay cũng như xem xét đánh giá việc triển khai và áp dụng Cloud Computing tại Việt Nam, đề tài luận văn “Tìm hiểu, mô hình hóa và mô
Luận văn tập trung vào các vấn đề sau:
• Tìm hiểu về Cloud Computing hiện nay để có một bức tranh tổng quan về công nghệ, các vấn đề, các phương hướng giải quyết chủ yếu nhằm làm tiền
đề tham khảo cho việc ứng dụng, phát triển Cloud Computing trong tương lai
• Tìm hiểu, nghiên cứu mô phỏng và mô hình hóa Cloud Computing
• Thử nghiệm, đánh giá hiệu năng của việc mô phỏng, mô hình hóa
Luận văn được trình bày gồm 4 chương với nội dung như sau:
Chương 1: Tổng quan về Cloud Computing: Giới thiệu sơ lược về lịch sử, bản
chất, những ưu điểm và nhược điểm của Cloud Computing
Chương 2: Kiến trúc và công nghệ hỗ trợ Cloud Computing: Trình bày kiến trúc
mô hình dịch vụ, mô hình triển khai của Cloud Computing Đồng thời nêu ra một số các công nghệ, nền tảng hỗ trợ cho Cloud Computing
Chương 3: Mô hình hóa và mô phỏng môi trường Cloud Computing: Nêu ra bài
toán thực tế về sự cần thiết của một môi trường mô phỏng Cloud Computing đối với các nhà phát triển Tập trung đi sâu nghiên cứu các vấn đề liên quan, thử nghiệm
mô hình hóa và mô phỏng với CloudSim
Trang 14Chương 4 Đánh giá và kết luận: Tóm lược các vấn đề đã nghiên cứu tìm hiểu, đề
ra hướng phát triển trong tương lai
Trang 15CHƯƠNG 1: TỔNG QUAN VỀ CLOUD COMPUTING
Trong một thế giới mà những xu hướng công nghệ mới xuất hiện và mất đi diễn ra gần như hàng ngày, một trong những xu hướng mới hứa hẹn tuổi thọ hơn là Cloud Computing-điện toán đám mây, và nó sẽ thay đổi cách thức sử dụng máy tính và Internet
Cloud Computing báo hiệu một sự thay đổi lớn trong cách thức chúng ta lưu trữ thông tin và thực thi các ứng dụng Thay vì thực thi các chương trình và dữ liệu trên một máy tính để bàn cá nhân (PCs), tất cả mọi thứ được lưu trữ trong các Cloud (đám mây)-một tập hợp mờ các computers và servers được truy cập qua Internet Cloud Computing cho phép người dùng truy cập vào tất cả các ứng dụng và các tài liệu của họ từ bất cứ nơi nào trên thế giới, giải phóng người dùng khỏi sự hạn chế của máy tính để bàn và làm cho các thành viên trong nhóm tại các địa điểm khác nhau hợp tác làm việc với nhau trở nên dễ dàng hơn
Với điện toán để bàn truyền thống, người dùng thực thi các bản sao của chương trình phần mềm trên máy tính riêng của họ Tài liệu do họ tạo ra được lưu trữ trên máy tính mà chúng được tạo ra Mặc dù các tài liệu này có thể được truy cập từ các máy tính khác trên mạng, nhưng chúng không thể được truy cập bởi các máy tính bên ngoài mạng đó Những điều này là hình ảnh về một PC-centric
Với Cloud Computing, các chương trình phần mềm người dùng sử dụng không được thực thi từ máy tính cá nhân, mà được lưu trữ trên các servers truy cập thông qua Internet Nếu máy tính của một người dùng bị treo hoặc lỗi, thì phần mềm vẫn sẵn sàng cho những người khác sử dụng Đi cùng là các tài liệu do người dùng tạo
ra, chúng được lưu trữ trên một tập các máy chủ truy cập thông qua Internet Bất cứ
ai có quyền, không chỉ có thể truy cập vào các tài liệu, mà còn có thể chỉnh sửa và cộng tác (collaborate) trên các tài liệu này theo thời gian thực
Trang 161.1 Cloud Computing
Trước tiên, Cloud Computing không phải là một Network Computing (điện toán mạng) Với Network Computing, các ứng dụng/tài liệu được lưu trữ trên máy chủ của một công ty duy nhất và được truy cập qua mạng của công ty Cloud Computing lớn hơn rất nhiều Nó bao gồm nhiều công ty, nhiều máy chủ, và nhiều mạng Thêm vào đó, không giống như Network Computing, các dịch vụ và lưu trữ của Cloud có thể truy cập từ bất cứ nơi nào trên thế giới thông qua kết nối Internet; trong khi với Network Computing, chỉ truy cập được thông qua mạng của công ty Chìa khóa để định nghĩa về Cloud Computing chính là "Cloud" Cloud là một nhóm lớn các máy tính liên kết với nhau Những máy tính này có thể là máy tính cá nhân hoặc các máy chủ mạng (network servers); chúng có thể là công cộng (public) hoặc dành riêng (private)
Trong luận văn này, chúng ta chọn Google là đối tượng quan sát Từ những khía cạnh của Google, có sáu tính chất quan trọng của Cloud Computing:
• User-centric: Khi người dùng được kết nối với một Cloud, những gì được lưu giữ ở đó-tài liệu, bài viết, hình ảnh, ứng dụng, bất cứ điều gì, sẽ trở thành của họ Ngoài ra, người dùng cũng có thể chia sẻ nó với những người khác
• Task-centric: Thay vì tập trung vào ứng dụng và những gì nó có thể làm,
Cloud Computing tập trung vào những gì người dùng cần làm và làm thế nào các ứng dụng có thể làm điều đó cho người dùng
• Powerful: Kết nối hàng trăm hoặc hàng ngàn máy tính với nhau trong một
Cloud tạo ra sự dồi dào về sức mạnh tính toán mà một máy tính để bàn không thể có được
• Accessible: Với dữ liệu được lưu trữ trong Cloud, người dùng ngay lập tức
có thể truy cập, thu thập thông tin, mà không bị giới hạn về nguồn tài nguyên
Trang 17• Intelligent: Với tất cả những dữ liệu khác nhau được lưu trên các máy tính
trong Cloud, khai phá và phân tích dữ liệu là cần thiết để truy cập thông tin một cách thông minh
Ví dụ điển hình về các ứng dụng Cloud Computing hiện nay là các ứng dụng được cung cấp bởi Google như: Google Docs & Spreadsheets, Google Calendar, Gmail, Picasa, Tất cả các ứng dụng này được lưu trữ trên máy chủ của Google, có thể được truy cập bởi bất kỳ người dùng nào có kết nối Internet, và có thể sử dụng cho cộng tác nhóm từ bất kỳ nơi nào trên thế giới
Sự quan tâm về Cloud Computing ngày càng tăng bởi các giải pháp của Cloud Computing cung cấp sức mạnh tính toán tương tự các siêu máy tính (supercomputer) với chi phí nhỏ và phục vụ theo yêu cầu của người dùng Cloud Computing được dự đoán sẽ có sự tăng trưởng đáng kể trong chi tiêu cho CNTT trên toàn thế giới Theo IDC (International Data Corporation), các dịch vụ của Cloud Computing dự kiến sẽ tăng trưởng với tốc độ tăng trưởng bình quân hàng năm (CAGR- Compound Annual Growth Rate) 27% và đạt 42 tỉ USD vào năm 2012; chi tiêu cho các dịch vụ không dự trên Cloud Computing dự kiến sẽ tăng 5%,
Chi tiêu về IT của toàn thế giới năm 2008 và 2012
Trang 18Tóm lại, Cloud Computing mang đến một sự thay đổi từ máy tính đến người dùng,
từ ứng dụng tới tác vụ (task), và từ dữ liệu bị cô lập thành dữ liệu có thể được truy cập từ bất cứ nơi nào và chia sẻ với bất cứ ai
1.2 Sơ lược lịch sử Cloud Computing
Cloud Computing bắt nguồn từ Client/Server Computing (điện toán theo mô hình khách/chủ) và Peer-to-Peer Distributed Computing (điện toán phân tán ngang hàng) Tất cả đều tập trung vào cách thức lưu trữ tập trung như thế nào để dễ dàng cộng tác (collaboration) và cách thức nhiều máy tính làm việc cùng nhau như thế nào để gia tăng khả năng tính toán
1.2.1 Client/Server Computing: T ập trung ứng dụng và lưu trữ
Thời kỳ đầu của điện toán (trước những năm 1980 hoặc hơn), tất cả mọi thứ hoạt động dựa trên mô hình client/server Tất cả các ứng dụng phần mềm, dữ liệu, và điều khiển được tập trung trên các mainframe computer (máy tính lớn), được biết đến như các server
Người dùng truy cập vào mainframe chỉ khi được cấp phép, và nhân viên IT ( nhân viên công nghệ thông tin) không có thói quen điều khiển truy cập ngẫu nhiên Ngay
cả trên một mainframe, sức mạnh xử lý cũng bị giới hạn-và nhân viên IT là người giám sát sức mạnh đó Truy cập không tức thời, và hai người dùng không thể cùng truy cập vào cùng một dữ liệu trong cùng một thời điểm
Thực tế, khi nhiều người chia sẻ một máy tính, ngay cả khi nếu đó là một máy tính mainframe lớn, thì người dùng cũng cần phải chờ đợi đến lượt phục vụ của mình Tóm lại, không thể luôn luôn truy cập tức thì trong môi trường client/server
Vì vậy, mô hình client/server, trong khi cũng cung cấp lưu trữ tập trung, nhưng khác với mô hình Cloud Computing ở chỗ nó không tập trung vào User-centric; với Client/Server Computing, tất cả các hoạt động dựa vào mainframe, chịu sự giám sát
Trang 191.2.2 Peer-to-Peer Computing: Chia s ẻ tài nguyên
Peer-to-Peer Computing (điện toán ngang hàng) [1] định nghĩa một kiến trúc mạng, trong đó mỗi máy tính có khả năng và trách nhiệm tương đương nhau, điều này trái ngược với kiến trúc mạng client/server truyền thống Trong môi trường P2P, mỗi máy tính là một client và server; không có master và slave P2P cho phép trao đổi trực tiếp các nguồn tài nguyên và dịch vụ mà không cần một central server (máy chủ trung tâm) nào
1.2.3 Distributed Computing: Cung c ấp sức mạnh tính toán nhiều hơn
Một trong những tập con quan trọng nhất của mô hình P2P là Distributed Computing (điện toán phân tán) [2], ở đó các PCs nhàn rỗi trên mạng hoặc trên Internet được khai thác để cung cấp sức mạnh tính toán cho các dự án lớn, đòi hỏi
xử lý chuyên sâu Đó là một khái niệm đơn giản, về chia sẻ chu kỳ (cycle sharing) giữa nhiều máy tính
1.2.4 Collaborative Computing: Làm vi ệc nhóm
Từ những ngày đầu của Client/Server Computing tiếp nối qua sự phát triển của P2P Computing, đã từng có một mong muốn cho nhiều người dùng làm việc đồng thời trên cùng một máy tính Mô hình Collaborative Computing (điện toán cộng tác) [3]
là động lực đằng sau Cloud Computing, nhưng đã xuất hiện được khoảng hơn một thập kỷ Sự cộng tác nhóm (group collaboration) đã sớm được kích hoạt bởi sự kết hợp của một số công nghệ P2P khác nhau Mục tiêu là cho phép nhiều người dùng cộng tác trong các dự án nhóm trực tuyến (group projects online), theo thời gian thực
Các hệ thống cộng tác trải dài từ tương đối đơn giản (Lotus Notes và Microsoft NetMeeting) đến cực kỳ phức tạp (kiến trúc khối xây dựng của hệ thống Groove Networks) Hầu hết chúng được nhằm vào các tập đoàn lớn, và giới hạn hoạt động trên các mạng riêng của công ty
Trang 201.2 5 Cloud Computing: Bước kế tiếp của sự cộng tác
Với sự phát triển của Internet, không còn giới hạn sự hợp tác nhóm với một môi trường mạng của doanh nghiệp, mà vượt ra ngoài ranh giới công ty và ranh giới địa
lý Khái niệm các dịch vụ và tài liệu dựa trên cơ sở đám mây (cloud-based) đã cất cánh cùng với sự phát triển của các server farms (trung tâm dữ liệu lớn), chẳng hạn như Google và các công ty tìm kiếm khác
Về cơ sở hạ tầng, IBM, Sun Systems, và các nhà cung cấp lớn khác cung cấp phần cứng cần thiết để xây dựng những Cloud network (mạng lưới Cloud)
Về phần mềm, hàng chục công ty đang phát triển các ứng dụng và dịch vụ lưu trữ trên nền tảng Cloud
1.3 Ưu điểm của Cloud Computing
1.3.1 Gi ảm chi phí phần cứng cho người dùng
Đây là một lợi thế tài chính về mặt định lượng: người dùng không cần phải có máy tính cấu hình cao để chạy các ứng dụng trên nền web (web-based) của Cloud Computing Bởi ứng dụng chạy trong Cloud, nên máy tính để bàn PC không cần nhiều sức mạnh xử lý hoặc không gian đĩa cứng so với các theo yêu cầu của phần mềm máy tính để bàn truyền thống Chi phí cho các máy tính clients trong Cloud Computing có thể giảm xuống với các ổ đĩa cứng nhỏ hơn, ít bộ nhớ hơn,
1.3.2 Hi ệu năng xử lý nâng cao
Khi người dùng tham gia vào một hệ thống Cloud Computing, họ được tùy ý sử dụng sức mạnh của toàn bộ các Clouds Người dùng không còn bị giới hạn bởi những gì một máy tính để bàn có thể làm được, mà thay vào đó là sức mạnh siêu tính toán (supercomptuing) của hàng ngàn máy tính
1.3.3 Gi ảm chi phí đầu tư cơ sở hạ tầng
Trong một tổ chức lớn, bộ phận IT cũng có thể nhận thấy chi phí thấp hơn từ việc
Trang 21sung hoặc thay thế các tài nguyên tính toán nội bộ Những công ty có nhu cầu tính toán cực đại (peak computing) không còn phải mua thiết bị để xử lý các đỉnh tính toán (và sau đó không sử dụng thời gian còn lại); nhu cầu về đỉnh tính toán (peak computing) có thể dễ dàng được xử lý bởi máy tính và máy chủ trong Cloud
1.3.4 Gi ảm chi phí bảo trì hệ thống
Cloud Computing làm giảm đáng kể chi phí bảo trì phần cứng và bảo trì phần mềm cho các tổ chức thuộc mọi quy mô Về phần cứng, với số lượng phần cứng ít hơn (một vài servers) trong tổ chức, chi phí bảo trì hệ thống được giảm xuống Về phần mềm, phần mềm được lưu trữ trong Cloud, do các nhà cung cấp và phân phối chịu trách nhiệm bảo trì
1.3.5 S ử dụng phần mềm với chi phí thấp hơn
Thay vì mua gói phần mềm riêng cho mỗi máy tính người dùng sẽ thuê các phần mềm, dịch vụ ứng dụng của các nhà phát triển và phân phối theo nhu cầu và mục đích sử dụng của mình Chi phí thuê các phần mềm và dịch vụ ứng dụng này sẽ có giá thấp hơn đáng kể so với phần mềm cho máy tính để bàn Trong thực tế, nhiều công ty (như Google) cung cấp miễn phí các ứng dụng của họ trên nền tảng web cho cả cá nhân và tổ chức
1.3.6 C ập nhật nhanh hơn
Về mặt ứng dụng, do các ứng dụng dựa trên nền tảng web, quá trình cập nhật tự động xảy ra và có hiệu lực khi người dùng đăng nhập vào Cloud lần kế tiếp sau đó Bất cứ khi nào người dùng truy cập một ứng dụng trên nền tảng web, người dùng sẽ nhận được phiên bản mới nhất, mà không cần phải trả tiền hoặc tải về một bản nâng cấp
Về mặt dữ liệu, Cloud luôn lưu trữ phiên bản tài liệu mới nhất của người dùng, họ không phải lo lắng gặp rủi ro của việc có một phiên bản tài liệu lỗi thời trên máy tính đang làm việc
Trang 221.3.7 Không gian lưu trữ lớn
Cloud cung cấp dung lượng lưu trữ hầu như vô hạn Khả năng lưu trữ của các máy tính để bàn khoảng 200GB, rất nhỏ khi so sánh với hàng trăm petabyte (một triệu gigabyte) có sẵn trong Cloud
1.3.8 Nâng cao độ an toàn
Không giống như máy tính để bàn, khi ổ đĩa cứng bị hỏng có thể phá hủy toàn dữ liệu có giá trị của người dùng, một máy tính bị hỏng trong Cloud không ảnh hưởng đến lưu trữ dữ liệu của họ Đó là bởi vì dữ liệu trong Cloud tự động được sao chép lại, do đó không bao giờ bị mất Điều đó cũng có nghĩa là nếu máy tính cá nhân của người dùng bị hỏng, tất cả các dữ liệu của họ vẫn còn trong Cloud, và vẫn có thể truy cập
1.3.9 Tăng tính tương thích
Với Cloud Computing, hệ điều hành không quan trọng Người dùng có thể kết nối máy tính với hệ điều hành Windows đến đám mây và chia sẻ tài liệu với các máy tính chạy hệ điều hành Mac, Linux, hoặc UNIX Trong Cloud, dữ liệu mới quan trọng, chứ không phải là hệ điều hành
Ngoài ra, người dùng cũng không cần phải lo lắng về tính tương thích giữa các định dạng tài liệu Tất cả các tài liệu được tạo ra bởi các ứng dụng trên nền tảng web có thể được đọc bởi bất kỳ người dùng nào truy cập tới ứng dụng đó
1.3.10 C ộng tác nhóm
Chia sẻ tài liệu dẫn đến cộng tác trên các tài liệu Để nhiều người sử dụng, đây là một trong những lợi ích quan trọng nhất của Cloud Computing-khả năng cho nhiều người sử dụng để dễ dàng cộng tác trên các tài liệu và các dự án Người dùng có thể truy cập các tài liệu của dự án đồng thời; những sửa đổi của họ sẽ tự động được phản ánh tới những người khác, bởi tài liệu được lưu trữ trong Cloud Với Cloud
Trang 231.4 Nhược điểm của Cloud Computing
Bên cạnh những ưu điểm của mình, việc triển khai và áp dụng Cloud Computing cũng gặp phải một số những rủi ro sau
1.4.1 Yêu c ầu phải có kết nối Internet
Người dùng kết nối và sử dụng các ứng dụng, dịch vụ và tài liệu thông qua Internet Không thể có Cloud Computing nếu người dụng không kết nối với Internet
1.4.2 Không làm vi ệc tốt với các kết nối chậm
Những kết nối Internet tốc độ thấp, như dịch vụ dial-up, làm cho Cloud Computing hoạt động không hiệu quả và gây ra các phiền toái Các ứng dụng nền tảng web, các tài liệu kích thước lớn thường đòi hỏi nhiều băng thông để thao tác xử lý Nói cách khác, Cloud Computing không áp dụng cho mạng tốc độ chậm
Trang 24khuyết điểm, nhưng ngày càng được cải tiến để có thể thay thế dần Microsoft Word
và Excel
1.4.5 D ữ liệu lưu trữ có thể không an toàn
Không đảm bảo về tính sẵn sàng cũng là một trở ngại hiện nay, khi chỉ có một số rất
ít nhà cung cấp dịch vụ cam kết được về sự sẵn sàng và liên tục của dịch vụ, về thời gian sửa chữa và phục hồi dữ liệu Nói cách khác, những dịch vụ Cloud Computing
có vẻ không đáng tin cậy đối với một số ứng dụng quan trọng và có yêu cầu cao
Tính riêng tư trong Cloud Computing cũng là một vấn đề đáng quan tâm Với Cloud Computing, tất cả các dữ liệu của người dùng được lưu trữ trên mây Khi dữ liệu được cập nhật trong Cloud, nó có thể dễ dàng bị những tên tội phạm mạng, gián điệp và những đối thủ cạnh tranh xâm nhập Thực tế hiện nay các nhà cung cấp dịch
vụ Cloud Computing vẫn chưa có một phương pháp bảo vệ nào trong trường hợp dữ liệu bị xâm nhập
Trang 25CHƯƠNG 2: KIẾN TRÚC VÀ CÔNG NGHỆ HỖ TRỢ
CLOUD COMPUTING
2.1 Ki ến trúc Cloud Computing
2.1.1 Khung SPI cho Cloud Computing
Để mô tả các dịch vụ chính của Cloud Computing, người ta thường sử dụng chữ viết tắt "SPI", là viết tắt của ba dịch vụ chủ yếu được cung cấp thông qua Cloud: phần mềm như một dịch vụ (SaaS), nền tảng như một dịch vụ ( PaaS), và cơ sở hạ tầng như một dịch vụ (IaaS) Hình 2.1 minh hoạ mối quan hệ giữa dịch vụ, người dùng và các kiểu Cloud
Trang 262.1.2 Mô hình d ịch vụ của Cloud Computing
Mô hình các dịch vụ phân phối của Cloud Computing thường được gọi là một SPI
vá lỗi cho phần mềm hoặc các dịch vụ hỗ trợ khác Khách hàng quan tâm đến khả năng tương thích với các hệ điều hành khác nhau, cài đặt bản vá, và việc tuân thủ các thỏa thuận về giấy phép sử dụng
Trong một mô hình Soft-as-a-Service (SaaS), khách hàng không phải mua phần mềm, mà thuê để sử dụng dưới dạng một thuê bao hoặc theo mô hình pay-per-use (được gọi là OpEx) Trong một số trường hợp, dịch vụ miễn phí được cung cấp miễn phí song khả năng sử dụng bị hạn chế Thông thường, dịch vụ được mua sẽ có đầy đủ phần cứng, phần mềm, và hỗ trợ Người dùng truy cập dịch vụ thông qua bất
kỳ thiết bị nào đã được cho phép
Lợi ích chính của mô hình SaaS bao gồm:
• SaaS cho phép các tổ chức thuê ngoài dịch vụ lưu trữ-hosting và quản lý ứng
dụng của đối tác thứ ba (công ty bán phần mềm và công ty cung cấp dịch vụ)
có nghĩa là giảm chi phí mua bản quyền phần mềm, các máy chủ, và cơ sở hạ tầng khác cũng như nhân lực cần thiết để cần thiết để lưu trữ các ứng dụng nội bộ
Trang 27• SaaS cho phép công ty bán phần mềm kiểm soát và giới hạn sử dụng, cấm sao chép và phân phối, và kiểm soát của tất cả các phiên bản phần mềm của
họ
• Các ứng dụng phân phối bằng cách sử dụng mô hình SaaS thường sử dụng phương pháp phân phối một-nhiều (one-to-many), với cơ sở hạ tầng Web Một người dùng cuối có thể truy cập một ứng dụng SaaS thông qua một trình duyệt web, một số nhà cung cấp SaaS cung cấp giao diện riêng của họ được thiết kế để hỗ trợ cho các tính năng đặc trưng của ứng dụng
• Việc triển khai SaaS không yêu cầu về phần cứng và có thể thực hiện được trên các cơ sở hạ tầng hiện tại có khả năng truy cập Internet
• Quản lý ứng dụng SaaS được hỗ trợ bởi các các công ty bán phần mềm từ góc độ người dùng cuối, theo đó một ứng dụng SaaS có thể được cấu hình một số tham số và chức năng bằng cách sử dụng các APIs
vật lý phần cứng được chia sẻ giữa các khách hàng khác nhau, nhưng duy nhất cho mỗi khách hàng về mặt logic Kiến trúc multitenant tối đa hóa chia sẻ tài nguyên giữa những khách hàng khác nhau
Trong mô hình Platform-as-a-Service (PaaS), các công ty bán phần mềm cung cấp một môi trường phát triển cho những người phát triển ứng dụng, họ phát triển ứng dụng và cung cấp những dịch vụ này thông qua nền tảng của nhà cung cấp (provider) Các provider thường phát triển các bộ công cụ (toolkits) và tiêu chuẩn cho quá trình phát triển, và các kênh để phân phối và thanh toán Provider thường nhận được một khoản thanh toán cho việc cung cấp nền tảng, bán và phân phối dịch
vụ
PaaS là một biến thể của SaaS, theo đó các môi trường phát triển được cung cấp như một dịch vụ Người phát triển sử dụng các khối xây dựng-building blocks (ví
Trang 28dụ, các khối code được định nghĩa trước) của môi trường phát triển của vendor (người bán dịch vụ) để tạo ra các ứng dụng riêng của họ
Các giải pháp PaaS là nền tảng phát triển mà công cụ phát triển-được lưu trữ trong Cloud và truy cập thông qua một trình duyệt Với PaaS, các nhà phát triển có thể xây dựng các ứng dụng web mà không cần cài đặt bất kỳ công cụ trên máy tính của
họ, và sau đó có thể triển khai những ứng dụng này mà không cần những kỹ năng quản trị hệ thống đặc biệt nào
Nền tảng PaaS có những chức năng khác biệt so với nền tảng phát triển truyền thống, bao gồm:
• Các công c ụ phát triển multitenant: Các công cụ phát triển truyền thống chịu
sự tác động của một người dùng duy nhất; nhưng một môi trường phát triển dựa trên nền tảng Cloud phải hỗ trợ đa người dùng, mỗi người dùng với nhiều dự án đang hoạt động khác nhau
• Ki ến trúc triển khai multitenant: Trong PaaS, khả năng mở rộng ứng dụng và
các tầng dữ liệu phải được xây dựng sẵn bên trong (ví dụ, cân bằng tải-load balancing và khả năng chịu lỗi-failover là những yếu tố cơ bản của nền tảng phát triển Cloud)
• Tích h ợp quản lý: Các giải pháp phát triển truyền thống (thường) không được
liên kết với giám sát thời gian chạy-runtime monitoring, nhưng trong PaaS khả năng giám sát phải được xây dựng và phát triển
Trong mô hình ứng dụng truyền thống, vender cung cấp toàn bộ cơ sở hạ tầng cho một khách hàng để chạy các ứng dụng Thông thường, điều này đòi hỏi phần cứng chuyên dụng được mua hoặc thuê cho từng ứng dụng cụ thể Mô hình Infrastructure-as-a-Service (IaaS) cũng cung cấp cơ sở hạ tầng để chạy các ứng
Trang 29IaaS, có thể xây dựng một cơ sở hạ tầng kiểm soát nhu cầu tải cực đại và thấp nhất của người dùng Tương tự như vậy, trong một mô hình lưu trữ ứng dụng, các IaaS vendor có thể chỉ bao quát việc lưu trữ ứng dụng, hoặc có thể mở rộng sang các dịch vụ khác (như hỗ trợ ứng dụng, phát triển ứng dụng, và nâng cấp)
Mô hình IaaS tương tự như điện toán theo yêu cầu-Utility Computing, trong đó ý tưởng cơ bản là cung cấp dịch vụ tính toán như là các tiện ích hay yêu cầu (utilities) Tức là, người dùng phải trả tiền cho sức mạnh xử lý, không gian đĩa,…
mà họ sử dụng IaaS là một dịch vụ Cloud Computing và đề cập đến các dịch vụ trực tuyến tách người dùng ra khỏi các chi tiết của cơ sở hạ tầng, bao gồm các tài nguyên tính toán vật lý, phân vùng dữ liệu, bảo mật, sao lưu,… Trong Cloud Computing, nhà cung cấp kiểm soát toàn bộ cơ sở hạ tầng Ngược lại, trong Utility Computing, người dùng phải tìm kiếm dịch vụ cho phép họ triển khai, quản lý và dịch vụ trực tuyến quy mô sử dụng các nguồn lực của nhà cung cấp và trả tiền cho nguồn tài nguyên tiêu thụ
Tính năng của một hệ thống IaaS thường bao gồm:
• Kh ả năng mở rộng: Các yêu cầu về khả năng mở rộng cơ sở hạ tầng, chẳng
hạn như tài nguyên tính toán, bộ nhớ và không gian lưu trữ (với tốc độ cao, gần như thời gian thực) dựa trên yêu cầu sử dụng
• Pay as you go: Khả năng chi trả lượng tiền chính xác cho cơ sở hạ tầng yêu
cầu tại bất kỳ thời điểm nào
• Công ngh ệ và tài nguyên tốt nhất: Truy cập tới các giải pháp công nghệ tốt
nhất với chi phí thấp
2.1.3 Các mô hình tri ển khai Cloud Conputing
Cloud là một thuật ngữ ẩn dụ cho Internet và là một biểu diễn đơn giản cho các thiết
bị phức tạp, kết nối và hoạt động trên môi trường Internet Private Cloud và Public Cloud là tập con của Internet và được định nghĩa dựa trên mối quan hệ của chúng
Trang 30đối với doanh nghiệp Private Cloud và Public Cloud cũng có thể được xem như Internal Cloud và External Cloud
Các khái niệm Private Cloud và Public Cloud rất quan trọng bởi vì chúng hỗ trợ cho Cloud Computing, trong đó cho phép cung cấp tài nguyên động, có khả năng mở rộng và ảo hóa qua các kết nối Internet bởi một vendor hoặc một tổ chức, một doanh nghiệp CNTT tới các khách hàng với một mức chi phí nhất định Người dùng cuối (end-user) sử dụng các dịch vụ được cung cấp thông qua Cloud Computing có thể không có kiến thức, chuyên môn, hoặc kiểm soát các cơ sở hạ tầng công nghệ
hỗ trợ họ
Phần lớn các cơ sở hạ tầng Cloud Computing bao gồm các dịch vụ được phân phối xác thực thông qua các Data Center (trung tâm dữ liệu) và được xây dựng trên các servers với các mức khác nhau của công nghệ ảo hóa Những dịch vụ này có thể truy cập bất từ cứ nơi nào có quyền truy cập vào cơ sở hạ tầng mạng Cloud xuất hiện như một điểm truy cập duy nhất cho tất cả các nhu cầu tính toán của người dùng
2.1.3.1 Public Clouds
Public Clouds (hoặc External Clouds) mô tả Cloud Computing theo ý nghĩa truyền thống, theo đó các tài nguyên, nguồn lực được truy cập công cộng, tự động cung cấp, tự phục vụ (self-service) thông qua các Web Services (ví dụ: SOAP-Simple
Object Access Protocol hoặc REST- REpresentational State Transfer)
Public Cloud được lưu trữ, vận hành và quản lý bởi một hãng thứ ba từ một hoặc nhiều Data Center, theo mô hình pay-for-use Dịch vụ này được cung cấp cho nhiều người dùng thông qua một cơ sở hạ tầng chung (hình 2.2)
Trang 31Hình 2.2: Public Cloud 2.1.3.2 Private Clouds
Private Clouds (hoặc Internal Clouds) là những thuật ngữ mô tả các dịch vụ Cloud Computing được triển khai trên các private networks (mạng nội bộ) Private Clouds khác với Public Clouds về cơ sở hạ tầng mạng, tính toán, lưu trữ,…chúng được dành riêng cho một tổ chức duy nhất và không chia sẻ với bất kỳ tổ chức nào khác (ví dụ, các Clouds dành riêng cho một tổ chức, người dùng)
Nhìn chung, trong một mô hình hoạt động của Private Clouds, quản lý bảo mật và vận hành do bộ phận IT nội bộ hoặc hãng thứ ba theo các hợp đồng SLAs chịu trách nhiệm
2.1.3.3 Hybrid Clouds
Hybird Clouds là sự kết hợp của Public Clouds và Private Clouds Với Hybrid Clouds, các tổ chức có thể thực thi các ứng dụng thông thường trên các Public Clouds, trong khi duy trì các ứng dụng lõi quan trọng và dữ liệu nhạy cảm trong Private Clouds (hình 2.3)
Trang 32Hình 2.3: Hybrid Cloud
2.2 Các công ngh ệ hỗ trợ Cloud Computing
Cloud Computing không phải là một công nghệ mới mà là sự kết hợp của nhiều công nghệ trước đó Những công nghệ này đã phát triển với các mức độ, bối cảnh khác nhau và không được thiết kế liền mạch, tuy nhiên, họ đã được kết hợp với nhau để thành một môi trường kỹ thuật cho Cloud Computing Những tiến bộ mới trong vi xử lý, công nghệ ảo hóa, ổ đĩa lưu trữ, kết nối Internet băng thông rộng, và máy tính đem lại sức mạnh tính toán cao và chi phí sản xuất giảm, đã được kết hợp với nhau để làm cho Cloud Computing trở thành một giải pháp hấp dẫn
Trang 33Hình 2.4: Kiến trúc các công nghệ hỗ trợ Cloud Computing
2.2.1 Các thi ết bị truy cập Cloud Computing
Phạm vi của các thiết bị truy cập cho Cloud đã mở rộng trong những năm gần đây Máy tính cá nhân PCs, máy tính doanh nghiệp, mạng máy tính, thiết bị điện thoại di động, các thiết bị cầm tay cá nhân, và các thiết bị gia dụng,… tất cả đều online (được kết nối mạng) Sự phát triển của iPhone và sự gia tăng các ứng dụng trong App Store minh họa cho sự cải tiến khả năng truy cập vào các Clouds Sự gia tăng truy cập này là kết quả của việc sử dụng nhiều và tăng trưởng của dịch vụ Cloud Ví dụ: người dùng có thể sử dụng Skype thông qua iPhone, do đó đưa mạng ngang hàng P2P gần gũi hơn với người sử dụng; và Salesforce.com cũng đã giới thiệu một ứng dụng cho phép người dùng truy cập dịch vụ của mình từ iPhone…
Trang 342.2.2 Trình duy ệt và mô hình thin clients
Nhiều loại thiết bị của người dùng có thể truy cập các ứng dụng và thông tin từ bất
cứ nơi nào họ muốn, miễn là họ có một trình duyệt (browser) Thật vậy, trình duyệt đang ngày càng trở nên tinh vi hơn Các ứng dụng doanh nghiệp, chẳng hạn như SAP và Oracle, có thể được truy cập thông qua một giao diện trình duyệt- một sự chuyển dịch so với mô hình fat clients (là mô hình mà ứng dụng cần phải được tải
lên các máy tính để bàn)
2.2.3 Truy c ập băng thông tốc độ cao
Một thành phần quan trọng của các Clouds là mạng băng thông rộng, nó cung cấp các phương tiện để kết nối các thành phần và cung cấp một trong những sự khác biệt đáng kể từ khái niệm điện toán theo yêu cầu (Utility Computing) của 30 năm trước đây Hiện nay, truy cập băng thông rộng truy trở nên phổ biến rộng rãi, đặc biệt là ở các vùng đô thị Truy cập không dây (ví dụ: WiFi, WiMAX) cũng phát triển mạnh, cho phép thiết lập các thiết bị di động thành các điểm truy nhập tới các nguồn tài nguyên của doanh nghiệp và các Clouds
2.2.4 Data Centers và Server Farms
Các dịch vụ dựa trên nền tảng Cloud (Cloud-based services) yêu cầu khả năng tính toán lớn và được lưu trữ tại các Data Centers và Server Farms Các Data Centers và Server Farms phân tán được phân bố tại nhiều địa điểm và có thể được kết nối thông qua Internet để cung cấp tính toán phân tán và cung cấp các dịch vụ
Một số ví dụ minh họa tính linh hoạt và khả năng mở rộng sức mạnh tính toán của Cloud Computing Ví dụ: Google liên kết với một số lượng rất lớn các máy chủ rẻ tiền để cung cấp một sức mạnh tính toán lớn và linh hoạt; Amazon Elastic Compute Cloud (EC2) mang đến sự ảo hóa trong các trung tâm dữ liệu để tạo ra số lượng lớn các virtual instances (thể hiện ảo) cho các yêu cầu dịch vụ; Salesforce.com cung cấp SaaS cho lượng lớn khách hàng của mình bằng cách nhóm khách hàng của mình
Trang 352.2.5 Thi ết bị lưu trữ
Giảm chi phí và tăng tính linh hoạt trong lưu trữ được triển khai đã thay đổi cảnh quan lưu trữ Những truy cập tĩnh trực tiếp vào các thiết bị lưu trữ (DASD) đã được thay thế bằng các mạng lưu trữ (SAN), làm giảm chi phí và cho phép một thỏa thuận linh hoạt hơn trong lưu trữ của doanh nghiệp Phần mềm quản lý SAN tích hợp các thiết bị lưu trữ và có thể phân bổ không gian lưu trữ độc lập theo yêu cầu qua số lượng thiết bị
2.2.6 Virtualization-Công ngh ệ ảo hóa
Virtualization-Ảo hóa [4] là công nghệ nền tảng của Cloud Computing, làm thay đổi bộ mặt của các data centers hiện tại Thuật ngữ virtualization cho biết tính trừu tượng của các nguồn tài nguyên tính toán (CPU, storage-lưu trữ, network- mạng, memory-bộ nhớ, application stack-ngăn xếp ứng dụng, và database-cơ sở dữ liệu) từ các ứng dụng và người dùng cuối sử dụng dịch vụ Sự trừu tượng của hạ tầng cơ sở làm nảy sinh khái niệm resource democratization (dân chủ tài nguyên) về cơ sở hạ tầng, ứng dụng, hoặc các thông tin, và cung cấp khả năng cho các nguồn tài nguyên góp chung để sẵn có và dễ dàng tiếp cận với bất kỳ ai hay bất cứ điều gì được phép
để sử dụng chúng thông qua các phương thức đã được chuẩn hóa
Các công nghệ ảo hóa cho phép multitenancy các mô hình nghiệp vụ Cloud bằng cách cung cấp một nền tảng tài nguyên chia sẻ, có khả năng mở rộng (scalable) cho tất cả những người thuê dịch vụ Quan trọng hơn, chúng cung cấp một cái nhìn chuyên nghiệp hơn về tài nguyên và người dùng Từ góc độ doanh nghiệp, ảo hóa mang lại sự hợp nhất của các datacenters và nâng cao hiệu quả hoạt động của lĩnh vực CNTT trong doanh nghiệp Hiện nay, các doanh nghiệp đã triển khai công nghệ
ảo hóa trong các data centers với các hình thức khác nhau, bao gồm hệ điều hành ảo (VMware, Xen), lưu trữ ảo (NAS, SAN), ảo hóa cơ sở dữ liệu, và các ứng dụng hoặc phần mềm ảo hóa (Apache Tomcat, JBoss, Oracle App Server, WebSphere)
Trang 36Xuất phát từ Pulic Clouds, phụ thuộc vào mô hình phân phối và kiến trúc các dịch
vụ Cloud (SPI), ảo hóa xuất hiện như một tài nguyên chung giữa các lớp khác nhau của các dịch vụ ảo hóa (ví dụ, hệ điều hành, lưu trữ, cơ sở dữ liệu, ứng dụng)
Hình 2.5 minh hoạ hệ điều hành ảo hóa và các tầng của môi trường ảo hóa được định nghĩa bởi Sun Microsystems Các nhà cung cấp IaaS bao gồm Amazon (EC2), ServePath (GoGrid), và Sun Cloud, cho phép khách hàng chạy nhiều thể hiện (instances) khác nhau của các hệ điều hành trong một Public Cloud Nền tảng ảo hóa được hiển thị trong hình 2.5 là môi trường Sun xVM hypervisor ảo hóa các tài nguyên phần cứng chia sẻ cho khách hàng hoặc hoặc các điều hành máy chủ ảo (Linux, Solaris, và Microsoft Windows) được lưu trữ trên hypervisor này Hypervisor là một ứng dụng nhỏ chạy ở tầng trên cùng của lớp vật lý phần cứng máy tính, nó cài đặt và quản lý CPU ảo (vCPU), bộ nhớ ảo (vMemory), các kênh sự kiện, và bộ nhớ được chia sẻ bởi các máy ảo cư trú trên đó (VMs) Nó cũng điều khiển các hoạt động vào/ra (I/O) và truy cập bộ nhớ tới các thiết bị
Trong Xen, cũng như Sun xVM (được dựa trên nền tảng Xen), một máy ảo VM được gọi là một tên miền-domain, trong khi ở VMware nó được gọi là một hệ điều hành khách-guest OS Trong hình 2.5, các máy ảo được gán nhãn là dom0 và domU1, domU2, và domU3 Dom0 được sử dụng để quản lý các tên miền khác (domU1,… ) VMware sử dụng một cơ chế tương tự, gọi là "service console" Quá trình quản trị thông qua Dom0 hoặc qua service console bao gồm việc creating-tạo, destroying-hủy, migrating-di trú, saving-lưu trữ, hoặc khôi phục lại các user domain Một hệ điều hành chạy trong một user domain được cấu hình để có quyền hoạt động thông qua các lời gọi tới hypervisor
Trang 37Hình 2.5 : Môi trường Sun xVM hypervisor
Ngoài ảo hóa hệ điều hành và ảo hóa lưu trữ, các nhà cung cấp dịch vụ SaaS và PaaS được biết đến với vai trò cài đặt phần mềm và cơ sở dữ liệu ảo hóa, theo đó khách hàng chia sẻ stack ứng dụng phần mềm và các tài nguyên cơ sở dữ liệu Ví
dụ, Salesforce.com ảo hóa cả stack phần mềm và cơ sở dữ liệu Trong mô hình đó, tất cả các khách hàng chia sẻ mọi lớp duy nhất của cơ sở hạ tầng phân phối
2.2.7 APIs- Giao di ện lập trình ứng dụng
Application Programming Interfaces (APIs) cũng là một công nghệ hỗ trợ khác cho
mô hình phân phối các dịch vụ Cloud Computing (xem hình 2.6) APIs trao quyền cho người dùng bằng cách cho phép các tính năng như tự cung cấp (self-provisioning) và điều khiển chương trình của các dịch vụ và tài nguyên của Cloud Tùy thuộc vào mô hình cung cấp dịch vụ Cloud (SPI), mỗi API có các hình thức thể hiện khác nhau, từ thao tác URL đơn giản đến mô hình lập trình tiên tiến SOA APIs cũng trợ giúp để khai thác đầy đủ tiềm năng của Cloud Computing và những vấn đề phức tạp liên quan đến việc mở rộng quy trình quản lý CNTT và dịch vụ Cloud
Trang 38APIs được cung cấp bởi các nhà cung cấp dịch vụ Cloud (Cloud Servrce Providers) IaaS như Amazon EC2, Sun Cloud, và GoGrid cho phép người dùng tạo và quản lý tài nguyên Cloud, bao gồm tính toán, lưu trữ, và các thành phần mạng Trong trường hợp này, việc sử dụng API được thông qua HTTP Các yêu cầu GET, POST, PUT, và DELETE được sử dụng, mặc dù hầu hết các công việc có thể được thực hiện với GET và POST Trong một số trường hợp, các biểu diễn tài nguyên có trong JavaScript Object Notation (JSON) Ví dụ, các đặc điểm của Sun Cloud API bao gồm:
• Các hành vi thông thường được áp dụng cho tất cả các yêu cầu và các hồi đáp
• Các mô hình tài nguyên, mô tả cấu trúc dữ liệu JSON được sử dụng trong các yêu cầu và hồi đáp
• Các yêu cầu có thể được gửi đến các tài nguyên Cloud, và những phản ứng mong đợi
Tất cả các nhà phát triển *aaS cần phải nắm rõ các APIs cụ thể để triển khai và quản
lý các module phần mềm có nền tảng *aaS Dịch vụ SaaS thường không cung cấp các APIs ngoài các chức năng nhập (import) và xuất (export) sử dụng trình duyệt hoặc các scripts sử dụng HTTP(S) và các phương thức URI
Trang 39Hiện tại, một trong những thách thức chính mà người dùng Cloud Computing phải đối mặt là mỗi CSP chỉ có một API duy nhất Kết quả là, các ứng dụng Cloud không portable qua các Clouds, và khả năng tương tác giữa các ứng dụng chạy trên các Cloud (bao gồm cả Private Clouds) là rất khó khăn Vì các APIs là duy nhất cho mỗi dịch vụ Cloud, nên các nhà kiến trúc, phát triển, và nhân viên trung tâm dữ liệu phải nắm rõ các đặc tính của từng nền tảng cụ thể
Mặc dù không có API chuẩn cho các dịch vụ ứng dụng Cloud Computing, nhưng các nhà cung cấp và cộng đồng người dùng đang nỗ lực thúc đẩy sự chuẩn hóa Một trong những kết quả đó là Universal Cloud Interface (UCI), một giao diện Cloud chuẩn hóa và mở để thống nhất các APIs của các Clouds khác nhau
2.2.8 Web service và Service Oreinted Architecture (SOA)
SOA là một hướng tiếp cận mới trong kiến trúc phần mềm ứng dụng, trong đó, một ứng dụng được cấu thành từ một tập các thành phần độc lập, phân tán, phối hợp hoạt động với nhau được gọi là các service Các service có thể được phân tán bất cứ nơi nào, cả bên trong và ngoài một tổ chức Xa hơn nữa, các thành phần service có thể tồn tại trên nhiều nền tảng khác nhau, và có thể được cài đặt bởi các ngôn ngữ lập trình khác nhau
Điểm mấu chốt của SOA là các chức năng của service được công bố dưới dạng một giao diện chuẩn Chi tiết cài đặt cụ thể các chức năng được che dấu, và người dùng service cũng không cần quan tâm đến; người dùng chỉ gọi sử dụng các chức năng của service thông qua các phương thức công bố trên giao diện Có thể thấy tính đóng gói này được kế thừa từ phương pháp lập trình hướng đối tượng
Cùng với sự hỗ trợ của các service cơ bản như lập lịch truy xuất tài nguyên (scheduler service), chỉ mục (index service), tìm kiếm tài nguyên (discovery service),…, ứng dụng có thể xác định trong thời gian thực thi các service có chức năng giống nhau từ nhiều nguồn, từ đó chọn ra service tốt nhất để sử dụng, đáp ứng nhu cầu của ứng dụng
Trang 40Web Service là một công nghệ được sử dụng rộng rãi để triển khai mô hình SOA vào thực tế, nó đưa ra mô hình liên lạc, trao đổi giữa ứng dụng với ứng dụng trên cơ
sở ngôn ngữ đặc tả XML
Web Service sử dụng ngôn ngữ Web Services Description Language (WSDL) để
mô tả nội dung và cách sử dụng service; sử dụng giao thức SOAP để trao đổi các thông điệp giữa các Web service; sử dụng ngôn ngữ đặc tả Universal Description, Discovery and Integration (UDDI) để cho phép các nhà cung cấp Web service đăng
ký service của mình và cho phép người sử dụng Web service tìm được nhà cung cấp thỏa mãn yêu cầu mong muốn Ngoài ra, còn một số chuẩn về định nghĩa và triển khai chất lượng dịch vụ của Web service đang được xây dựng như WS-Security, WSReliable Messaging, WS-Coordination, và WS-Transaction,…
Các dịch vụ Cloud Computing thường được cung cấp dưới dạng các Web services, tuân theo các chuẩn như WSDL, SOAP và UDDI Tổ chức và phối hợp các dịch vụ trong các Clouds có thể được quản lý bởi Service Oriented Architecture (SOA) Thêm vào đó, một tập các dịch vụ Cloud có thể được sử dụng trong môi trường ứng dụng SOA, do đó làm cho chúng sẵn có trên nền tảng phân tán và giúp chúng có thể truy cập qua Internet
2.2.9 Web 2.0
Web 2.0 mô tả các xu hướng trong sử dụng công nghệ World WideWeb và thiết kế Web để nâng cao sáng tạo, chia sẻ thông tin, và đáng chú ý nhất là cộng tác giữa những người dùng Những khái niệm này đã dẫn đến sự phát triển và tiến triển của cộng đồng và các dịch vụ trên nền tảng web (web-based) [5]
Ý tưởng chủ yếu đằng sau Web 2.0 là cải tiến kết nối và tương tác của các ứng dụng web Mô hình mới để phát triển và truy cập các ứng dụng Web cho phép người dùng truy cập vào web dễ dàng và hiệu quả hơn Cloud Computing có tính chất của các ứng dụng Web Do đó, rất tự nhiên khi nói rằng Cloud Computing kế thừa các