” Theo Rajkumar Buyya: “Cloud là một loại hệ thống phân bố và xử lý song song gồm các máy tỉnh ảo kết nối với nhau và được cung cấp động cho người dùng như một hoặc nhiầi tài nguyên đồng
Trang 1NHIỆM VỤ ĐỒ ÁN
Đồ án tập trung nghiên cứu về điện toán đám mây và xây dựng ứng dụng với nền tảng Google App Engine bao gồm các nội dung chính:
> Khái niệm và các tính chất cơ bản của điện toán đám mây
> Các mô hình và kiến trúc của điện toán đám mây
> Công nghệ nền tảng của điện toán đám mây
>• Giải pháp điện toán đám mấy của một số nhà cung cấp dịch vụ
> Giải pháp Google App Engine của Google
>• Cách xây dựng một ứng dụng trên nền tảng Google App Engine
> Xây dựng ứng dụng với nền tảng Google App Engine
Trang 2LỜI CẢM ƠN
Em xin cam đoan: Đồ án này em thực hiện dưới sự hướng dẫn trực tiếp củathầy Trần Trung Dũng, không sao chép từ bất cứ đồ án nào Các tài liệu tham khảo
sử dụng trong đồ án đều được cho phép họp lệ
Nếu có vi phạm qui định làm đồ án em xin hoàn toàn chịu trách nhiệm
Em xin chân thành cảm ơn!
Sinh viên
Đinh Thị Yến
Trang 3Ngày nay, công nghệ thông tin phát triển rất nhanh chóng, nắm giữ vai tròquan trọng trong việc thúc đấy sự tăng trưởng kinh tế, với sự ra đời của rất nhiều côngnghệ mới, các dịch vụ công nghệ thông tin đáp ứng nhu cầu của người dùng cũng như
là các doanh nghiệp, Tuy nhiên, trong giai đoạn suy thoái kinh tế như hiện nay, thìviệc ứng dụng một công nghệ hay một dịch vụ công nghệ thông tin đáp ứng việc quản
lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là mộttrong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn chodoanh nghiệp Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệpphải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng, phần mềm,mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa,
Ngoài ra họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị, phải kiểmsoát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu Đe giải quyết vấn đềtrên thì chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lýtốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng,công nghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì sẽ mang lại cho
họ hiệu quả và lợi nhuận ngày càng cao hơn Khái niệm “điện toán đám mây”(ĐTĐM) đã ra đời trong hoàn cảnh đó và đang dần trở nên quen thuộc đối với cácdoanh nghiệp, đặc biệt là đối với các doanh nghiệp vừa và nhỏ
Em chọn đề tài: “Nghiên cứu về điện toán đám mây và xây dựng ứng dụng với nền tảng Google App Engine” bởi công nghệ điện toán đám mây đang là một
yêu cầu tất yếu trong xu thế hiện nay
Nội dung đồ án gồm 3 chương:
Chương 1: Tổng quan về điện toán đám mây
Chương 2: Giải pháp Google App Engine của Google
Chương 3: Xây dựng ứng dụng với nền tảng Google App Engine
Trang 4MỤC LỤC
NHIỆM VỤ ĐỒ ÁN 1
LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
LỜI MỞ ĐẦU 4
MỤC LỤC 5
M c L CHÌNH NH 8
THUẬT NGỮ VIẾT TẮT 9
CHUƠNG 1 11
TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 11
1.1 Khái niệm điện toán đám mây 11
1.2 Tính chất cơ bản 13
1.2.1 Tự phục vụ theo nhu cầu (On-demand self-service) 13
1.2.2 Truy xuất diện rộng (Broad network access) 13
1.2.3 Dùng chung tài nguyên (Resource pooling) 14
1.2.4 Khả năng co giãn (Rapid elasticity) 14
1.2.5 Điều tiết dịch vụ (Measured service) 14
1.3 Các mô hình điện toán đám mây 15
1.3.1 Mô hình dịch vụ 15
1.3.1.1 Dịch vụ hạ tầng IaaS (Infrastructure as a Service) 15
1.3.1.2 Dịch vụ nền tảng PaaS (Platform as a Service) 16
1.3.1.3 Dịch vụ phần mềm SaaS (Software as a Service) 16
1.3.2 Mô hình triển khai 16
1.3.2.1 Đám mây “công cộng” (Public Cloud) 16
1.3.2.2 Đám mây “doanh nghiệp” (Private Cloud) 17
1.3.2.3 Đám mây “lai” (Hybrid Cloud) 18
1.4 Kiến trúc điện toán đám mây 20
1.5 Công nghệ nền tảng của điện toán đám mây 22
1.5.1 Giới thiệu về công nghệ ảo hóa 22
1.5.2 Đặc điểm nổi bật của ảo hóa 24
Trang 51.5.2.1 Tối ưu hóa công suất sử dụng phần cứng 24
Trang 61.5.2.2 Nhu cầu lưu trữ dữ liệu
1.5.2.3 ứng dụng công nghệ xanh để đạt hiệu quả sử dụng năng lượng tốt hơn 26 1.5.2.4 Chi phí quản lý hệ thống rất lớn và ngày càng tăng 26
1.5.3 Các ứng dụng ảo hóa phổ biến 27
1.5.3.1 Ả o hóa máy chủ 27
1.5.3.2 Ả o hóa lưu trữ 32
1.5.3.3 Ảo hóa ứng dụng 33
1.6 Giải pháp điện toán đám mấy của một sổ nhà cung cấp dịch vụ 34
1.6.1 Máy ứng dụng của Google 35
1.6.2 Azure của Microsoft 38
1.6.3 Đám mây điện toán linh hoạt của Amazon 39
1.6.4 Đám mây màu Xanh dương của IBM 41
1.7 Lợi ích và hạn chế của điện toán đám mây 43
1.7.1 Lợi ích của điện toán đám mây 43
1.7.2 Hạn chế của điện toán đám mây 44
CHƯƠNG 2 45
GIẢI PHÁP GOOGLE APP ENGINE CỦA GOOGLE 45
2.1 Giới thiệu Googe App Engine 45
2.1.1 Giới thiệu 45
2.1.2 Khái niệm và sự ra đời 46
2.2 Kiến trúc hoạt động 47
2.3 Các thành phần chính và chức năng 48
2.3.1 Một số đặc tính của Google App Engine 48
2.3.2 Môi trường thực thi (runtime environment) 49
2.3.3 Các file server tĩnh (static file servers) 50
2.3.4 Kho dữ liệu (datastore) 50
2.3.4.1 Thực thể (entities) và Thuộc tính (properties) 52
2.3.4.2 Truy vấn (queries) và Chỉ mục (indexes) 52
2.3.4.3 Phiên giao dịch (transaction) 53
Trang 72.3.6 Tài khoản Google (google accounts) 54
2.3.7 Các công cụ lập trình (programming tools) 54
2.3.8 Google Web Toolkit 55
2.4 Cách xây dựng một ứng dụng trên nền tảng GAE 55
2.4.1 Yêu cầu 55
2.4.2 Cách tạo Google App Engine 56
2.4.3 Cài đặt Google plugin cho Eclipese 61
2.4.4 Các bước để triển khai một ứng dụng lên GAE 64
2.5 Lợi ích của Google App Engine 69
2.6 Hạn chế của Google App Engine 70
CHƯƠNG 3 71
XÂY DựNG ỨNG DỤNG VỚI NỀN TẢNG GOOGLE APP ENGINE 71
3.1 Mục tiêu ứng dụng 71
3.2 Triển khai ứng dụng 71
3.3 Đánh giá ứng dụng 76
3.4 Hướng phát triển ứng dụng 77
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO 79
NHẬN XÉT CỦA GIÁO VIÊN 80
Trang 8MỤC LỤC HÌNH ẢNH
M c L CHÌNH NH 8
Hình 1.1: M i th đ ut p trung vào đám mây 11
Hình 1.2: Hình nh Cloud Computing 12
Hình 1.3: Các lo id chv đi n toán đám mây 15
Hình 1.4: Mô hình đám mây công c ng 17
Hình 1.5: Mô hình đám mây doanh nghi p 18
Hình 1.6: Mô hình đám mây lai 19
Hình 1.7: Ki n trúc đi n toán đám mây 20
Hình 1.8: Máy o ubuntu ch y trên Windows XP 22
Hình 1.9: Ch y MS Office trên trình duy t Internet Explorer 24
Hình 1.10: Ph ngphápmôph ng ph nc ng 29
c Paravirtuallzatlon 30
Hình 1.11: Mô hình Paravlrtuallzatlon 31
Hình 1.12: o hóa ngd ng - Wine cho phép ch y MS Office và IE trên Linux 34
Hình 1.13: Amazon EC2 40
Hình 1.14: IBM Smartcioud Application Services 42
Hình 2.1: KI n trúc ho tđ ng 47
Hình 3.1: c u trúc project 71
Hình 3.2: Giao di n front-end 72
Hình 3.3: Giao dl n backend 73
Hình 3.4: Giao di n qu n lý thành viên 74
Hình 3.5: Giao dl n qu n lý bình lun 75
Hình 3.6: Giao di n qu n lý tài li u 76
Trang 9THUẬT NGỮ VIẾT TẮT
AMI Amazon Machine Instance Cá the Máy của Amazon
API Application Programming Interface Giao diện lập trình ứng dụng
CaaS Communication as a service Truyền thông như là một dịch vụ
CGI Common Gateway Interface Giao diện cổng nối chung
CPU Central Processing Unit Bộ vi xử lý trung tâm
EC2 Amazon Elastic Compute Cloud
Đám mây điện toán linh hoạt củaAmazon
GAE Google App Engine
Nen tảng điện toán đám mây củaGoogle
GWT Google Web Toolkit Bộ công cụ Web của Google
HTTPS Hypertext Transfer Protocol Secure
Giao thức truyền tải bảo mật siêuvăn bản
IaaS Infrastructure as a Service Dịch vụ hạ tầng
IDE
Integrated Development Environment
Môi trường thiết kế hợp nhất
Trang 10JDK Java Development Kit Bộ công cụ phát triển Java
NAT Network Address Translation Chuyển đổi địa chỉ mạng
SDK Software development kit
Công cụ dành cho những nhà phát triển phần mềm
SQL Structured Query Language
ẩ gôn ngữ truy vấn mang tính cấu trúc
URL Uniform Resource Locator
Địa chỉ của 1 tài nguyên trên Internet
XMPP Extensible Messaging and Presence
XML dùng trong nhắn tin nhanh và thông tin hiện diện trực tuyến
Trang 11ra các định nghĩa và cách nhìn của riêng mình.
Theo định nghĩa của Wikipedia thì ĐTĐM là môi trường tính toán dựa trêninternet mà ở đó tất cả phần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính
và các thiết bị khác theo nhu cầu (tương tự như mạng điện)
Code
Cloud Computing
everything and the kitchen sink
Hình 1.1: Mọi thứ đều tập trung vào đám mây.
App Serve r
Trang 12Đứng ở góc nhìn khoa học kỹ thuật cũng có nhiều định nghĩa khác nhau, trong đó
có hai định nghĩa của Ian Foster và Rajkumar Buyya được dủng khá phổ biến và có nhiềuđiểm tương đồng
Theo Ian Foster: “Cloud Computing là một mô hình điện toán phân tản có tỉnh co giãn ỉớn mà hưởng theo co giãn về mặt kỉnh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng và các dịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được phần phối theo nhu cầu cho cảc khách hàng bên ngoài thông qua Internet ”
Theo Rajkumar Buyya: “Cloud là một loại hệ thống phân bố và xử lý song song gồm các máy tỉnh ảo kết nối với nhau và được cung cấp động cho người dùng như một hoặc nhiầi tài nguyên đồng nhất dựa trên sự thỏa thuận dịch vụ giữa nhà cung cấp và người sử dụng ”
Hình 1.2: Hình ảnh Cloud Computing
Cả hai định nghĩa trên đều định nghĩa Cloud Computing là một hệ phân bế, cungcấp các dạng tài nguyên ảo dưới dạng dịch vụ một cách lỉnh động theo nhu cầu của ngườidùng trên môi trường internet
Theo Viện tiêu chuẩn và công nghệ quốc gia Bộ Thưomg mại Mỹ (NIST): “Điện toán đám mây là một mô hình cho phép truy cập mạng thuận tiện, theo nhu cầu đến một
Trang 13kho tài nguyên điện toán dùng chung, có thể định cẩu hình (ví dụ như mạng, máy chủ, lưu trữ, ứng dụng) cỏ thể được cung cấp và thu hồi một cách nhanh chóng với yêu cầu toi thiểu về quản lỷ hoặc can thiệp của nhà cung cap dịch vụ ”
Tác giả thấy rằng định nghĩa của NIST là rõ ràng YỚi cách nhìn bao quát Theo
đó, mô hình chính là cho phép sử dụng dịch vụ theo yêu cầu (on-demam service), cungcấp khả năng truy cập dịch vụ qua mạng rộng rãi từ máy tính để bàn, máy tính xách taytới thiết bị di động (broad net-work access), với tài nguyên tính toán động, phục vụ nhiềungười (resource pooling for multi-tenanci), năng lực tính toán phần mềm dẻo, đáp ứngnhanh với nhu cầu thấp tới cao (rapid elasticity) Mô hình cc cũng đảm bảo việc sử dụngcác tài nguyên được “đo” để nhà cung cấp dịch vụ quản trị và tối ưu được tài nguyên,đồng thời người dùng chỉ phải trả chi phí cho phần tài nguyên đã sử dụng (pay-by-use)
1.2 Tính chất Ctf bản
1.2.1 Tự phục vụ theo nhu cầu (On-demand self-service)
Tự phục vụ theo nhu cầu đề cập đến các dịch vụ được cung cấp bởi các nhà cungcấp điện toán đám mây cho phép việc cung cấp các nguồn tài nguyên điện toán đám mâytheo yêu cầu bất cứ khi nào họ được yêu cầu Trong dịch vụ tự theo nhu cầu, người dùngtruy cập các dịch vụ đám mây thông qua một bảng điều khiển trực tuyến
Theo yêu cầu tự nguồn dịch vụ tìm nguồn cung ứng là một tính năng chính củahầu hết các dịch vụ đám mây, nơi người dùng có thể mở rộng cơ sở hạ tầng cần thiết lênđến một mức độ đáng kể mà không làm gián đoạn các hoạt động máy chủ
1.2.2 Truy xuất diện rộng (Broad network access)
Truy xuất diện rộng liên quan đến tài nguyên lưu trữ trong một hệ thống điện toánđám mây tư nhân (hoạt động trong tường lửa của công ty) mà có sẵn để truy cập từ mộtloạt các thiết bị, chẳng hạn như máy tính bảng, máy tính, máy tính Mac và điện thoạithông minh Những tài nguyên này cũng có thể truy cập từ một loạt các địa điểm cungcấp truy cập trực tuyến
Các công ty có thể truy xuất diện rộng trong một mạng lưới điện toán đám mâycần phải đối phó với các vấn đề bảo mật nhất định phát sinh Đó là một chủ đề gây tranh
Trang 14cãi vì nó chạm ở trung tâm của sự khác biệt giữa điện toán đám mây riêng và công cộng.Thông thường, các công ty lựa chọn dịch vụ điện toán đám mây tư nhân vì họ lo ngại vềkhả năng rò rỉ thông tin thông qua các khoảng trống còn bỏ ngỏ với các mạng bên ngoàitrong một đám mây công cộng.
1.2.3 Dùng chung tài nguyên (Resource pooling)
Tài nguyên máy tính của nhà cung cấp được gộp lại để phục vụ cho nhiều ngườitiêu dùng sử dụng một mô hình nhiều người thuê, với nguồn tài nguyên vật lý và ảo khácnhau tự động được phân công và bố trí theo nhu cầu của người tiêu dùng Có một cảmgiác độc lập trong vị trí mà khách hàng thường không có kiến thức hoặc kiểm soát trêncác vị trí chính xác của các nguồn tài nguyên được cung cấp nhưng có thể xác định vị trí
ở một mức độ trừu tượng cao hom (ví dụ, quốc gia, tiểu bang, hoặc trung tâm dữ liệu) Yí
dụ về các nguồn tài nguyên bao gồm lưu trữ, xử lý, bộ nhớ, băng thông mạng, và các máyảo
1.2.4 Khả năng co giãn (Rapid elasticity)
Khả năng co giãn là khả năng quy mô các nguồn lực lên và xuống khi cần thiết.Cho người tiêu dùng, các đám mây dường như là vô hạn, và người tiêu dùng có thể muanhiều hay sức mạnh tính toán ít nhất là họ cần
1.2.5 Điều tiết dịch vụ (Measured Service)
Sử dụng tài nguyên điện toán đám mây có thể được đo lường, kiểm soát, báo cáo
và cung cấp minh bạch cho cả nhà cung cấp và người tiêu dùng của các dịch vụ sử dụng.Dịch vụ điện toán đám mây sử dụng khả năng định lượng cho phép kiểm soát và tối ưuhóa sử dụng tài nguyên Điều này có nghĩa là giống như thời gian không khí, điện hoặcnước đô thị, dịch vụ công nghệ thông tin được tính phí cho mỗi số liệu sử dụng - trả tiềnmỗi lần sử dụng Bạn càng sử dụng cao
Trang 15thi các hóa đơn càng nhiều Cũng như các công ty điện bán điệncho các thuê bao, và các công ty điện thoại bán các dịch vụ thoại và dữliệu, dịch vụ công nghệ thông tin như mạng lưới quản lý an ninh, trungtâm dữ liệu lưu trữ hoặc thanh toán thậm chí bây giờ có thể dễ dàngcung cấp như một dịch vụ hợp đồng.
1.3 Các mô hình điện toán đảm mây
Các mô hình điện toán đám mây được phân thành hai loại:
- Các mô hình dịch vụ (Service Models): Phân loại các dịch vụ của các nhà cung cấp dịch vụ điện toán đám mây
Các mô hình triển khai (Deployment Models): Phân loại cách thức triển khai dịch
vụ điện toán đám mây đến với khách hảng
1.3.1 Mô hình dich vu ■ •
Hình 1.3: Các loại dịch vụ điện toán đảm mây
1.3.1 L Dịch vụ hạ tầng laaS (Infrastructure as a Service)
Trong loại dịch vụ này, khách hàng được cung cấp những tài nguyên máy tính cơbản (như bộ xử lý, dung lượng lưu trữ, các kết nếỉ mạng ) Khách hàng sẽ cài hệ điềuhành, triển khai ứng dụng và có thể nối các thành phần như tường lửa và bộ cân bằng tải.Nhà cung cấp dịch vụ sẽ quản lý cơ sở hạ tầng cơ bản bên dưới, khách hàng sẽ phải quản
lý hệ điều hành, lưu trữ, các ứng dụng triển khai trên hệ thống, các kết nối giữa các thànhphần
Trang 161.3.1.2 Dịch vụ nền tảng PaaS (Platform as a Service)
Nhà cung cấp dịch vụ sẽ cung cấp một nền tảng (platform) cho khách hàng Kháchhàng sẽ tự phát triển ứng dụng của mình nhờ các công cụ và môi trường phát triển đượccung cấp hoặc cài đặt các ứng dụng sẵn có trên nền platform đó Khách hàng không cầnphải quản lý hoặc kiểm soát các cơ sở hạ tầng bên dưới bao gồm cả mạng, máy chủ, hệđiều hành, lưu trữ, các công cụ, môi trường phát triển ứng dụng nhưng quản lý các ứngdụng mình cài đặt hoặc phát triển
1.3.1.3 Dịch vụ phần mềm SaaS (Software as a Service)
Đây là mô hình dịch vụ mà trong đó nhà cung cấp dịch vụ sẽ cung cấp cho kháchhàng một phần mềm dạng dịch vụ hoàn chỉnh Khách hàng chỉ cần lựa chọn ứng dụngphần mềm nào phù họp với nhu cầu và chạy ứng dụng đó trên cơ sở hạ tầng Cloud Môhình này giải phóng người dùng khỏi việc quản lý hệ thống, cơ sở hạ tầng, hệ điều hành tất cả sẽ do nhà cung cấp dịch vụ quản lý và kiểm soát để đảm bảo ứng dụng luôn sẵnsàng và hoạt động ổn định
1.3.2 Mô hình triển khai
Từ “đám mây” (cloud) xuất phát từ hình ảnh minh họa mạng Internet đã được sửdụng rộng rãi trong các hình vẽ về hệ thống mạng máy tính của giới công nghệ thông tin.Một cách nôm na, điện toán đám mây là mô hình điện toán Internet Tuy nhiên, khi môhình cc dần định hình, các ưu điểm của nó đã được vận dụng để áp dụng trong các môitrường có quy mô và phạm vi riêng, hình thành các mô hình triển khai khác nhau
I.3.2.I Đám mây “công cộng” (Public Cloud)
Mô hình đầu tiên được nói đến khi đề cập tới cc chính là mô hình Public Cloud.Đây là mô hình mà hạ tầng cc được một tổ chức sỡ hữu và cung cấp dịch vụ rộng rãi chotất cả các khách hàng thông qua hạ tầng mạng Internet hoặc các mạng công cộng diệnrộng Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ Dovậy, hạ tầng cc được thiết kế để đảm bảo cô lập về dữ liệu giữa các khách hàng và táchbiệt về truy cập
Trang 17Hình 1.4: Mô hình đám mây công cộng
Các dịch vụ Public Cloud hướng tới số lượng khách hàng lán nên thường có nănglực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chỉ phí thấp cho kháchhảng Do đó khách hàng của dịch vụ trên Public Cloud sẽ bao gầm tất cả các tầng lớp màkhách hàng cá nhân và doanh nghiệp nhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận cácứng dụng công nghệ cao, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp,linh hoạt
I.3.2.2 Đám mây “doanh nghiệp” (Private Cloud)
Đám mây doanh nghiệp (Private Cloud) là mô hình trong đó hạ tầng đám mâyđược sở hữu bởi một tổ chức và phục vụ cho người dùng của tổ chức đó Private Cloud cóthể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên tronghoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí ỉà một bênthứ tư)
Trang 18Private Cloud
Hình 1.5: Mô hình đám mây doanh nghiệp
Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khaithác ưu điểm về công nghệ và khả năng quản trị của cc Với Private Cloud, các doanhnghiệp tối ưu được hạ tầng IT của mình, nâng cao hiệu quả sử đụng, quản lý trong cấpphát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, ldnh doanh rathị trường
I.3.2.3 Đám mây “lai” (Hybrid Cloud)
Hybrid Cloud là sự kết hợp của Public Cloud và Private Cloud Trong đó doanhnghiệp sẽ “out-source” các chức năng nghiệp vụ và dữ liệu không quan trọng, sử dụngcác dịch vụ Public Cloud để giải quyết và xử lý các dữ liệu này Đồng thòi, doanh nghiệp
sẽ giữ lại các chúc năng nghiệp vụ và dữ liệu tếỉ quan trọng trong tầm kiểm soát (PrivateCloud)
Private
Cloud
Trang 19Hình ỉ 6: Mô hình đám mây lai
Một khó khăn khi áp dụng mô hình Hybrid Cloud là làm sao triền khai cùng mộtứng dụng trên cả hai phía Public và Private Cloud sao cho ứng dụng đó có thề kết nối,trao đồỉ dữ liệu để hoạt động một cách hiệu quả
Doanh nghiệp có thể chọn để triển khai các ứng dụng trên Public, Private hayHybrid Cloud tùy theo nhu cầu cụ thể Mỗi mô hình đều có điểm mạnh và yếu của nó.Các doanh nghiệp phải cân nhắc đối với các mô hình Cloud Computing mà họ chọn Và
họ có thề sử dụng nhiều mô hình để giải quyết các vấn đề khác nhau Nhu cầu về một ứngdụng có tính tạm thời có thể triển khai ứên Public Cloud bởi vì nó giúp tránh việc phảimua thêm thiết bị để giải quyết một nhu cầu tạm thời Tương tự, nhu cầu về một ứngdụng thường trú hoặc một ứng dụng có những yêu cầu cụ thể về chất lượng dịch vụ hay vịtrí của dữ liệu thì nên triển khai trên Private hoặc Hybrid Cloud
> Vậy mô hình “Điện toán đám mây” VÓI “Client/server” có gì khác biệt? Giống nhau: Client trong cloud computing và client trong mô hình client/server
giống nhau ở vai trò là hiển thị dữ liệu và tiếp nhận các thao tác của người dùng, mọi tínhtoán nghiệp vụ đều được thực hiện ở máy chủ
Trang 20Điện toán đám mây Client/Server
- Server trong điện toán mây sẽ làm nhiệm
vụ tính toán cho bất kì Client nào với bất
kì công việc nào (mà nó hỗ trợ)
- Với điện toán đám mây mọi thứ sẽ được
cung cấp dưới dạng dịch vụ, và người
dùng sẽ chỉ phải trả phí sử dụng các dịch
vụ đó
- Server trong mô hình clienư server thườngmang ỷ nghĩa là 1 hoặc 1 cụm máy chủtrung tâm chỉ làm nhiệm vụ thực hiện tínhtoán cho 1 số Client cụ thể (trong 1 công tyhoặc 1 tổ chức nào đó)
1.4 Kiến trúc điện toán đám mây
Kiến trúc điện toán đám mây nhìn chung gồm có các thảnh phần chính như hình:
CLŨUD SERVICES I CLQUD RUNTIME (Partner Appticationsand 1
Hình 1.7: Kiến trúc điện toán đám mầy
Khác nhau:
Trang 21Hạ tầng: Cơ sở hạ tầng (Infrastructure) của ĐTĐM là phần cứng được cung cấp
như là các dịch vụ, nghĩa là được chia sẻ và có thể sử dụng lại dễ dàng Các tài nguyênphần cứng được cung cấp theo thời gian cụ thể theo yêu cầu Dịch vụ kiểu này giúp chokhách hàng giảm chi phí bảo hành, chi phí sử dụng
Lưu trữ (Storage): Lưu trữ đám mây là khái niệm tách dữ liệu khỏi quá trình xử
lý và chúng được lưu trữ ở những vị trí từ xa Lưu trữ đám mây cũng bao gồm cả các dịch
vụ cơ sở dữ liệu, ví dụ như BigTable của Google, SimpleDB của Amazon
Cloud Runtime: Là dịch vụ phát triển phần mềm ứng dụng và quản lý các yêu
cầu phần cứng, nhu cầu phần mềm Ví dụ nền dịch vụ như khung ứng dụng web, webhosting
Dịch vụ: Dịch vụ đám mây là một phần độc lập có thể kết họp với các dịch vụ
khác để thực hiện tương tác, kết họp giữa các máy tính với nhau để thực thi chương trìnhứng dụng theo yêu cầu trên mạng Ví dụ các dịch vụ hiện nay như: Simple QueueService, Google Maps, các dịch vụ thanh toán linh hoạt trên mạng của Amazon,
ứng dụng: ứng dụng đám mây (Cloud application) là một đề xuất về kiến trúc
phần mềm sẵn sàng phục vụ, nhằm loại bỏ sự cần thiết phải mua phần mềm, cài đặt, vậnhành và duy trì ứng dụng tại máy bàn/thiết bị của người sử dụng, ứng dụng đám mây loại
bỏ được các chi phí để bảo trì và vận hành các chương trình ứng dụng
Hạ tầng khách hàng: (Client Infrastructure) là những yêu cầu phần mềm hoặc
phần cứng để sử dụng các dịch vụ ĐTĐM trên mạng Thiết bị cung cấp cho khách hàng
có thể là trình duyệt, máy tính để bàn, máy xách tay, điện thoại di động
1.5 Công nghệ nền tảng của đỉện toán đám mây
1.5.1 Giới thiệu về công nghệ ảo hóa
Ảo hoá là công nghệ tiên tiến nhất trong một loạt các cuộc cách mạng côngnghệ nhằm tăng mức độ ảo hóa hệ thống cho phép tăng hiệu suất làm việc của máy tínhlên một cấp độ chưa từng có
Ở mức đơn giản nhất, ảo hóa cho phép bạn sử dụng ít nhất một máy tính hoạtđộng trong nhiều môi trường khác nhau trên một phần cứng duy nhất Ví dụ, với ảo
Trang 22hóa, bạn có thể đồng thời sử dụng một máy Linux và một máy Windows cùng trên một
hệ thống Hay bạn có thể dùng một máy bàn Windows95 và một máy bàn Windows XPtrên một trạm máy
Hình L8: Mảy ảo Uhuntu chạy trễn WindowsXP
về mặt kĩ thuật, ảo hóa tách biệt người sử đụng và ứng đụng về những đặctính phần cứng chuyên biệt của các hệ thống mà họ sử dụng đề thực hiện các công việccủa máy tính Công nghệ này hứa hẹn mở ra một làn sóng cách mạng phần cứng vàphần mềm hoàn toàn mới Ví dụ về một ích lợi của ảo hóa là đơn
giản hóa quá trình nâng cấp các hệ thống (trong một số trường họp, không cần nâng cấp
hệ thống), bằng việc cho phép người sử dụng nắm bắt được trạng thái của máy ảo (YM),
và sau đó chuyển trạng thái đó trong tình trạng nguyên vẹn từ hệ thống cũ sang một hệthống mới
Ngoài ra, ảo hóa cũng hứa hẹn tạo ra khả năng điện toán với hiệu quả cao hơn Sốlượng thực các bộ xử lý, bộ nhớ, và các nguồn lưu trữ cần có cho hệ thống ngày nay sẽđược điều chỉnh và quyết định bởi các tính năng tính toán của ảo hóa
Trang 23Ưu điểm lớn nhất mà ảo hóa mang lại cho chúng ta là khả năng họp nhất hàng loạtcác server dịch vụ vào một server duy nhất Thông thường, các server chỉ sử dụng rất íttài nguyên của hệ thống, trong đó phần lớn là bộ vi xử lý và bộ nhớ Điều đó cũng cónghĩa là chúng ta đang lãng phí tài nguyên và tăng chi phí cho những gì mà ta không cần.Việc triển khai hàng loạt các máy ảo (mỗi máy áo tương ứng với 1 dịch vụ) trên mộtserver duy nhất sẽ nâng cao hiệu suất sử dụng tài nguyên hệ thống.
Chính vì vậy, ảo hóa chính là tương lai của điện toán đám mây (cloud computing).Mặc dù không phải là bắt buộc, nhưng những mô hình “đám mây” sử dụng côngnghệ ảo hóa sẽ có hiệu năng và tính linh hoạt cao hơn nhờ có khả năng chia sẻ các tàinguyên ảo thông qua hệ thống mạng Thực ra, chia sẻ tài nguyên không phải là cái gì mới
mẻ, nhưng bằng cách sử dụng ảo hóa, chi phí triển khai hệ thống sẽ được giảm đáng kể vàbên cạnh đó còn đảm bảo được tính hiệu quả trong việc sử dụng các tài nguyên
Google, IBM và Microsoft là các ông lớn đang trong quá trình tìm tòi, khai phánhững tiềm năng của lĩnh vực này Một ví dụ của điện toán đám mây chính là MicrosoftOffice Web Applications có dạng một ứng dụng web miễn phí (kèm quảng cáo)
Trang 2415§) Hunt Inert Hrtîory
ã
Cut CiliM - Il - := - J=- fjj,AaBbCc AaBbCt AaBbCc
ỈPa>F
»e -jî
Cb w b I a ‘.V- à- F IB Kcfl<ding l Hir»dinig 2 Hîe jd'rtç 3
icreaiefl aifiarednoiebook for sn sriyooe to suggest places
Trip Detsiiaj
Hình L9: Chạy MS Office trên trình duyệt Internet Explorer
1.5.2 Đăc điểm nểi bât của ảo hóa • •
Dường như mọi nơi bạn đến, người ta đều đang đang nói đến ảo hóa Các tạp chícông nghệ thổi phồng công nghệ này trên các mặt báo Các phiên bản ảo hóa luôn được
đề cao trong các hội nghị công nghệ Và các nhà cung ứng công nghệ mô tả tại sao sảnphẩm của họ lại tân tiến nhất trong công nghệ ảo hóa Tại sao ảo hóa là chủ đề nóng hổinhư vậy? Có 4 lý do để trả lời cho câu hỏi trên như sau:
1.5.2.1 Tối ưu hóa công suất sử dụng phần cứng
Ngày nay, hệ thống máy chủ ở các trung tâm dữ liệu thường hoạt động vói 10hoặc 15% tổng hiệu suất Nói cách khác, 85% hoặc 90% công suất của máy không đượcdùng đến Tuy nhiên, một máy chủ dùng chưa hết công suất vin chiếm diện tích sử dụng
và hao tổn điện năng, vì vậy chi phí hoạt động của một máy không được sử dụng đúngmức có thể gần bằng với chi phí khỉ chạy hết công suất
England
Summer 2009 Uff&t Attends, Stephanie Don't forget you r
Rtt<»or»nli Hotili What to Piik Ema gency Cp«rt*ll Fhghi Info (rermeny Spain
J53*
Paris Trip
Tuesday Onctef iLI-PCi
imm
Trang 25Như vậy, quả thật là chúng ta đang lãng phí các tài nguyên của cả hệ thống Hãyxem điều gì sẽ xảy ra? Với sự không ngừng cải tiến các đặc điểm hoạt động của phầncứng máy tính, máy tính trong năm tới sẽ có công suất gấp đôi máy tính của năm nay(đây là tưomg lai có thể thấy trước được) Hiển nhiên, phải có một cách nào đó hữu hiệuhơn để công suất của làm việc của máy tương ứng với tỷ lệ sử dụng và đó là những gì mà
ảo hóa có thể làm được bằng việc dùng một phần cứng duy nhất để hỗ trợ cùng một lúcnhiều hệ thống, ứng dụng ảo hóa, các công ty có thể nâng cao đáng kể hiệu suất sử dụngphần cứng và sử dụng vốn hiệu quả hơn Vì vậy, đây chính là lý do tại sao ảo hóa giúpnâng cao công suất của máy tính lại khiến mọi người quan tâm đến vậy
1.5.2.2 Nhu cầu lưu trữ dữ liệu
Các trung tâm dữ liệu đang dùng hết dung lượng của mình Trong 20 năm qua,các tài liệu kinh doanh đã và đang được chuyển từ dạng giấy tờ sang dạng điện tử Đây làquá trình số hóa tài liệu
Sự xuất hiện của Internet đã thúc đhỳ nhanh hơn nữa sự chuyển biến này Cáccông ty muốn trao đổi trực tiếp với khách hàng và đối tác qualntemet Đương nhiên, việcnày thúc đĩỷ việc các tài liệu kinh doanh được vi tính hóa
Trong một thấp kỷ qua, ảnh hưởng của Internet khiến một số lượng lớn các máychủ được đồng loạt đưa vào sử dụng tại các trung tâm dữ liệu để lưu trữ hệ thống tài liệukhổng lồ này và vấn đề của nó là: khả năng lưu trữ của các trung tâm dữ liệu này đangcạn kiệt và sự gia tăng nhanh chóng dữ liệu đòi hỏi phương pháp lưu trữ dữ liệu mới.Những phương pháp này thường được gọi là ảo hóa lưu trữ, có nghĩa là việc lưu trữ này
có khả năng được xử lý bởi bất kỳ một phần cứng độc lập nào
Với khả năng host cùng lúc các hệ thống khách trên một máy chủ vật lý duy nhất,
ảo hóa cho phép các công ty nâng cấp trung tâm dữ liệu, do đó cắt giảm chi phí mở rộngdung lượng trung tâm dữ liệu Đây là lợi ích lớn nhất của ảo hóa, vì chi phí xây dựng cáctrung tâm dữ liệu có thể lên tới hàng chục triệu đôla
1.5.2.3 ứng dụng công nghệ xanh để đạt hiệu quả sử dụng năng lượng tốt hon
Tác động của cuộc cách mạng xanh khiến các công ty đang tìm cách giảm lượng
Trang 26năng lượng tiêu thụ và một trong số những nơi họ nhận thấy có thể làm được điều đó đầutiên là các trung tâm dữ liệu Để thấy rõ sự quan tâm của mọi người đến lượng nănglượng tiêu thụ trong các trung tâm dữ liệu, hãy xem xét thực tế sau: “Một cuộc nghiêncứu do một nhà khoa học thực hiện chỉ ra rằng trong những năm 2000 đến năm 2005,lượng năng lượng các trung tâm dữ liệu ở Mỹ tiêu thụ tăng đã gấp đôi Hơn nữa, nhà khoahọc này cũng dự đoán tới cuối thập niên này, lượng năng lượng tiêu thụ sẽ tăng 40%.Lượng năng lượng các máy chủ ở trung tâm dữ liệu tiêu thụ và để làm mát chiếm khoảng1,2% tổng năng lượng tiêu thụ ở Mỹ.
Dựa trên kết quả của cuộc nghiên cứu, Cơ quan bảo vệ môi trường Hoa Kỳ (EPA)
đã thành lập một nhóm làm việc để xây dựng các tiêu chuNi cho các kế hoạch và việc tiêuthụ năng lượng của máy chủ và áp dụng các tiêu chí “Ngôi sao năng lượng” (ES) mới chocác máy chủ sử dụng năng lượng hiệu quả
Do chi phí để vận hành các máy tính cùng với thực tế là nhiều máy tính chiếm hếttrung tâm dữ liệu và đang hoạt động với hiệu suất thấp, khả năng giảm số lượng máy chủvật lý có thể giúp cắt giảm rất đáng kể tổng chi phí năng lượng của các công ty
1.5.2.4 Chi phí quản lý hệ thống rất lớn và ngày càng tăng
Các máy không hoàn toàn tự hoạt động Mỗi máy chủ đều cần đến sự giám sát vàcung cấp điện của hệ thống quản lý Các tác vụ quản lý phổ biến của hệ thống bao gồm:giám sát trạng thái của phần cứng, thay các chi tiết phần cứng bị lỗi, cài đặt hệ điều hành(OS) và phần mềm ứng dụng, bảo trì và sửa chữa nhanh ứng dụng, quản lý các tài nguyênmáy chủ then chốt như bộ nhớ và đĩa, và sao lưu dữ liệu máy chủ sang các phương tiệnlưu trữ để bảo mật và dự phòng
Như chúng ta có thể tưởng tượng, những công việc này đòi hỏi rất nhiều nhân lực
Để thuê những nhân viên quản trị hệ thống người giữ cho các máy có thể hoạt động tốtkhông hề rẻ chút nào Và không giống như các lập trình viên, các nhân viên quản trị hệthống thường làm việc bên cạnh máy chủ, do họ cần xử lý phần cứng vật lý
Đe kiểm soát sự gia tăng chi phí điều hành, ảo hóa mang lại cơ hội cắt giảm chiphí quản lý hệ thống bằng việc giảm số lượng máy tính cần được quản trị Mặc dù, nhiều
Trang 27công việc liên quan đến quản lý hệ thống (hệ điều hành và ứng dụng, sao lưu dự phòng)không thể thay đổi trong một môi trường được ảo hóa, rất nhiều tác vụ không cần phảithực hiện nếu các máy chủ vật lý chuyển sang ảo hóa Nói chung, ảo hóa có thể giảmthiểu phần lớn các yêu cầu quản lý Do đó, ảo hóa trở thành sự lựa chọn tuyệt vời để giảiquyết vấn đề tăng chi phí thuê nhân viên điều hành.
1.5.3 Các ứng dụng ảo hóa phổ biến
Một số ứng dụng phổ biến nhất của ảo hóa tập trung xung quanh khái niệm: ảohóa là sự trừu tượng hóa các tài nguyên vật lý Thực tế là có nhiều phương pháp ảo hóađến nỗi chúng ta phải bối rối khi lựa chọn phương pháp ảo hóa nào để ứng dụng trongcông ty Hai phương pháp ảo hóa được ứng dụng nhiều nhất trong các trung tâm dữ liệu
là ảo hóa máy chủ và ảo hóa lưu trữ Trong mỗi phương pháp ảo hóa, có cái hay vàphương pháp riêng của mình, mỗi phương pháp đều có ưu và nhược điểm riêng
I.5.3.I Ảo hóa máy chủ
Có 3 phương pháp ảo hóa máy chính: ảo hóa hệ điều hành, mô phỏng phần cứng,
và paravirtualization (tạm gọi ảo hóa song song), một khái niệm tương đối mới phân chiathành các khối lượng công việc nhỏ hơn và hoạt động tốt hơn
a Ảo hóa hệ điều hành
Một hệ điều hành được vận hành ngay trên một hệ điều hành chủ đã tồn tại và cókhả năng cung cấp một tập hợp các thư viện tương tác với các ứng dụng, khiến cho mỗiứng dụng được hỗ trợ cảm thấy như đang chạy trên một máy chủ vật lý Từ bối cảnh củaứng dụng, nó được nhận thấy và tương tác với các ứng dụng chạy trên hệ điều hành ảo, vàtương tác với hệ điều hành ảo mặc dù nó kiểm soát tài nguyên hệ điều hành ảo Nóichung, không thể thấy các ứng dụng này hoặc các tài nguyên hệ điều hành đặt trong hệđiều hành ảo khác
Phương pháp ảo hóa này đặc biệt hữu dụng nếu nhà cung cấp muốn mang lại chocộng đồng người sử dụng khác nhau các chức năng khác nhau của hệ thống trên một mộtmáy chủ duy nhất Đây là một phương pháp lý tưởng cho các công ty máy chủ Web: Họ
sử dụng ảo hóa container (OS ảo) để khiến cho một trang Web chủ “tin rằng” trang web
Trang 28này kiểm soát toàn bộ máy chủ tuy nhiên, trên thực tế mỗi trang Web chủ chia sẻ cùngmột máy với các trang Web khác, mỗi trang Web này lại có một container riêng.
Ảo hóa hệ điều hành yêu cầu rất ít tài nguyên hệ thống, do đó bảo đảm hầu hết tàinguyên máy sẵn có cho các ứng dụng chạy trên container
Tuy nhiên, ảo hóa hệ điều hành vẫn có một số nhược điểm Nhược điểm đầu tiên
và lớn nhất là phương pháp này thường giới hạn sự lựa chọn hệ điều hành Sự containerhóa nghĩa là các container cung cấp một hệ điều hành tương tự như hệ điều hành chủ vàthậm chí thống nhất về phiên bản và các bản vá lỗi
Như chúng ta có thể tưởng tượng, có thể xảy ra vấn đề nếu nhà cung cấp muốnchạy các ứng dụng khác nhau trên các container, do các ứng dụng thường được chứngthực cho một phiên bản hệ điều hành và các bản vá lỗi Do đó, ảo hóa hệ điều hành thíchhợp nhất với cấu hình thuần nhất, trong các tình huống này ảo hóa hệ điều hành là sự lựachọn hoàn hảo
Phương pháp ảo hóa này được hiểu là các ứng dụng chạy trên một hệ điều hànhkhách hoàn toàn biệt lập với ít nhất một hệ điều hành khách đang hoạt động, một hệ điềuhành chạy trên mỗi VMM Các VMM đều lưu trú trên một hypervisor ảo Phương phápnày không chỉ hỗ trợ nhiều hệ điều hành, nó còn hỗ trợ nhiều hệ điều hành khác nhau, ẩhững hệ điều hành này cố thể khác nhau về phiên bản thậm chí là các hệ điều hành hoàn
Trang 29toàn khác như Windows và Linux có thể chạy đồng thời trên phần mềm ảo hóa phầncúng.
Trình điều khiển máy ảo phải cung cấp cho máy ảo một “ảnh” của toàn bộ hệthống, bao gồm BIOS ảo, không gian bộ nhớ ảo, và các thiết bị ảo Trình đỉềun khiển máy
ảo cũng phải tạo và duy trì cấu trúc dữ liệu cho các thành phần ảo (đặc biệt là bộ nhớ), vàcấu trúc này phải luôn được cập nhật cho mỗi một truy cập tương ứng được thực hiện bởimáy ảo
Hình 1.10: Phương pháp mô phỏng phần cứng
Ảo hóa phần cứng được sử dụng rộng rãi trong ngành phát ừỉển phần mềm và bảođảm chất lượng (QA), vì nó cho phép các hệ điều hành khác nhau chạy đồng thời trênmột máy Điều này cho phép phát triển song song hoặc thử nghiệm phần mềm ở nhiềumôi trường hệ điều hành khác nhau Mô phỏng phần cứng cũng được dùng để hợp nhấtmáy chủ, ở đó các môi trường ứng dụng hệ điều hành được copy và chuyển từ nhiều máychủ vật lý riêng rẽ sang một máy chủ vật lý duy nhất chạy phần mềm ảo
Một trong những nhược điểm của việc mô phỏng phần cứng là nó ảnh hưởng đếnkhả năng hoạt dộng của hệ thống điều này khiến cho các ứng dụng trên các máy ảo chạychậm hơn bình thường
Một nhược điểm khác là phần mềm ảo hóa xuất hiện trước hệ điều hành kháchtrong một giao diện phần cứng được tiêu chuẩn hóa (VMM) Hypervisor mang đến choVMM một giao diện, sau đó chuyển thành các yêu cầu đối với các tài nguyên vật lý thựctrên máy ẩ ghĩa là hypervisor phải giữ các giao diện cho các tài nguyên của máy, các tài
Trang 30nguyên này được gọi là các trình điều khiển thiết bị Vấn đề của trình điều khiển thiết bịđối với mô phỏng phần cứng đó là hypervisor đã có các trình điều khiển và người sử dụngkhông thể cài đặt các trình điều khiển mới (không giống như trên máy tính cá nhân).
Do đó, nếu một máy có tài nguyên phần cứng và hypervisor không có trình điềukhiển, phần mềm ảo hóa không thể chạy trên máy Điều này có thể gây vấn đề, đặc biệtcho các công ty muốn sử dụng các phần cứng mới
Các công ty cung cấp phần mềm ảo hóa mô phỏng phần cứng gồm có VMWare (ởhai phiên bản VMWare Server và ESX Server) và Microsoft Microsoft cung cấp một sảnphẩm được gọi là Virtual Server VMWare chỉ hỗ trợ các máy chủ x86, đặc biệt là Hệđiều hành Microsoft Phần mềm Virtual Server của Microsoft được dự đoán là sẽ bịHyper-V thay thế, phần mềm này được biết đến là một phần của Microsoft WindowsServer 2008 Một phần mềm khác đó là Xen, phần mềm thay thế nguồn mở dựa trênhypervisor
c Paravirtualization
Là một phương pháp ảo hóa máy chủ khác Với phương pháp ảo hóa này, thay vì
mô phỏng một môi trường phần cứng hoàn chỉnh, phần mềm ảo hóa này là một lớp mỏngdồn các truy cập các hệ điều hành máy chủ vào tài nguyên máy vật lý cơ sở, sử dụng môtkernel đơn để quản lý các server ảo và cho phép chúng
Trang 31chạy củng một lúc (có thể ngầm hiểu, một server chính là giaodiện người dùng được sử dụng để tương tác với hệ điều hành hay nóicách khác: đây là cách để ta cảm nhận được hệ điều hành).Paravirtualization đem lại tốc độ cao hơn so với Full Virtualization vàhiệu quả sử dụng các nguồn tài nguyên cũng cao hơn.
ẩ hưng nó yêu cầu các guest os chạy trên máy áo phải được chỉnh sửa Điều này
có nghĩa là không phải bất cú hệ điều hành nào cũng có thể chạy Paravirtualization được(trái với Full Virtualization) XP Mode của Windows 7 là một ví dụ điển hình vềParavirtualization
Paravirtualization
Guest Guest Guest Guest Guest Guest OSOS OS
Hypervisor
Hình 1.11: Mô hình Paravirtuaỉization Phương pháp ảo hóa
này có hãi ưu điểm:
- Thứ nhất, giảm chỉ phí hoạt động do số lượng mã rất ít Mô phỏng phần cứng chèntoàn một lớp mô phỏng phần cứng giữa hệ điều hành chủ và phần cứng vật lý Ngược lại,lớp phần mềm mỏng của paravirtualization hoạt động giống một cảnh sát giao thông hơn,
nó cho phép một hệ điều hành chủ truy cập các tài nguyên vật lý của phần cứng, đồngthời ngăn không cho các hệ điều hành chủ khác truy cập các nguồn tài nguyên đó
Modification Modification Modification Modification Modification Modification
Trang 32- Thứ hai của paravirtualization so với mô phỏng phần cứng là paravirtualizationkhông giới hạn các trình điều khiển thiết bị trong phần mềm ảo hóa, thực tế làparavirtualization không hề có các trình điều khiển thiết bị Thay vào đó, nó sử dụng cáctrình điều khiển thiết bị có trong một hệ điều hành chủ, gọi là máy chủ đặc quyền Nó chophép các công ty tận dụng hiệu suất phần cứng các máy chủ, chứ không bị giới hạn phầncứng mà các trình điều khiển phải sẵn có ứong phần mềm ảo hóa này như trong ảo hóa
mô phỏng phần cứng
Tuy nhiên, phưomg pháp ảo hóa này cũng có một nhược điểm lớn: Do ít quanhọng và dồn truy cập vào một phần cứng cơ sở, paravirtualization yêu cầu các hệ điềuhành chủ phải được thay đổi để tương tác với giao diện paravirtualization Công việc nàychỉ có thể được thực hiện khi truy cập mã nguồn của hệ điều hành
Do đó, nhược điểm này sẽ được giảm thiểu khi sử dụng các máy chủ có các conchip mới trong cơ sở hạ tầng sản xuất Một ví dụ của paravirtualization là một sản phẩmnguồn mở mới được gọi là Xen, được công ty thương mại XenSource bảo trợ Xen cũngxuất hiện trong các nguồn phân phối Linux gần đây từ Red Hat và ẩ ovell, và có trongnhiều nguồn phân phối cộng đồng Linux như Debian và Ubuntu XenSource cũng tự báncác sản phẩm dựa trên Xen Một phần mềm tiềm năng khác là Virtual Iron, một giải phápdựa trên Xen
I.5.3.2 Ảo hóa lưu trữ
Số lượng các công ty phát triển và lưu trữ dữ liệu tăng ngày càng nhanh Do sựchuyển dịch các chu trình kinh doanh sang các ứng dụng số dựa trên Web, các công tyđang bị chìm ngập trong biển dữ liệu Việc tăng quá nhanh dữ liệu đang gây ra vấn đề chonhiều công ty
Thứ nhất, do dung lượng lưu trữ nhỏ, nhiều ứng dụng đã tạo ra quá nhiều dữ liệuhơn khả năng lưu trữ vật lý trên một máy chủ Thứ hai, nhiều ứng dụng, đặc biệt nhữngứng dụng dựa trên Internet, có nhiều máy cần truy cập cùng dữ liệu Tất cả các dữ liệu trìhoãn trên một máy có thể gây ra sự tắc nghẽn, đó là không đề cập đến nguy cơ các máychủ có thể không hoạt động nếu một máy chủ
chứa toàn bộ các dữ liệu của ứng dụng bị hỏng Cuối cùng, sự bùng nổ các máy mà đã
Trang 33được nhắc đến trong trong phần trước của chưcmg này có thể gây ra các vấn đề về saolưu, nói cách khác, sao chép dữ liệu là nhiệm vụ không tưởng khi có hàng trăm nghìnmáy cần được sao lưu dữ liệu.
Vì những lý do này, dữ liệu cũng được ảo hóa Các công ty sử dụng phương pháplưu trữ tập trung (lưu trữ ảo hóa) như một biện pháp tránh các vấn đề truy cập dữ liệu.Hơn nữa, chuyển sang lưu trữ dữ liệu tập trung có thể giúp các công ty công nghệ thôngtin giảm chi phí và tăng hiệu quả quản lý dữ liệu
Vai trò của phần cứng
Mặc dù ảo hóa là một công nghệ phần mềm, tác động của ảo hóa là khiến phầncứng trở nên càng quan trọng hơn Đó là do việc tháo dỡ rất nhiều máy chủ và dịchchuyển các hệ điều hành đến các máy ảo khiến các máy chủ còn lại, những máy mà hỗ trợtất cả các máy ảo đó, trở nên quan trọng hơn bao giờ hết
Mặc dù, các công ty công nghệ thông có thể chấp nhận các máy chủ riêng rẽ trongmôi trường “một ứng dụng, một máy chủ” bị hỏng bởi mỗi lỗi hệ thống sẽ ảnh hưởng đếnmột nhóm người sử dụng, ảo hóa thì hoàn toàn khác Mỗi máy chủ hỗ trợ nhiều máy ảo
và nhiều ứng dụng của người sử dụng Nếu một máy chủ ảo hóa gặp sự cố, nó sẽ gây ảnhhưởng đến nhiều ứng dụng và toàn bộ người sử dụng các ứng dụng đó
Phần cứng sẽ chỉ trở nên quan trọng hơn khi một phần cứng mới và sẵn sàng để ảohóa xuất hiện trên thị trường Các nhà sản xuất phần cứng đang tạo ra những khả năng ảohóa có tầm quan trọng lớn Do vậy, khi ứng dụng phần mềm ảo hóa, một tác động khôngngờ là phần cứng mới trở nên ngày càng quan trọng hơn
l.s.3.3 Ảo hóa ứng dụng
Mục tiêu của ảo hóa ứng dụng chính và cung cấp các lớp tương thích(compatibility layers), nó có thể giúp người sử dụng có thể chạy các phần mềm củaWindows trên Linux chẳng hạn Dự án mã nguồn mở Wine chính là một ví dụ tiêu biểucủa ảo hóa ứng dụng
Một cách rõ ràng hơn, ảo hóa ứng dụng như một công nghệ phần mềm giúp tăng
sự mềm dẻo trong quản lý và tương thích của các ứng dụng bằng cách tách chúng ra khỏi
Trang 34hệ điều hành chủ Một ứng dụng khơng tương thích với hệ điều hành chủ, sau khỉ đượckích hoạt để chạy sẽ bị “lừa” để nĩ lầm tưởng là đang chạy và tương tác trên một hệ điềuhành tương thích.
Word in Wine
Hình LI 2: Ảo hỏa ứng dụng - Wine cho phép chạy MS Office và IE trên Linux
1.6 Giải phảp điện tốn đám mấy của một số nhà cung cấp dịch vụ
Các ơng lớn đã bắt đầu rục rịch trong cuộc chạy đua đến với điện tốn đám mây.Những Google, Microsoft, Amazone, IBM đều đã và đang phát triển những nền tảng điệntốn đám mây của riêng mình Các nền tảng điện tốn đám mây lốn cĩ thể kể đến bây giờbao gồm:
- Máy ứng dụng của Google: http://code
- Đám mây màu Xanh dương của IBM
Mí eđ£ VWVJ iraeit fteinât 1osii lalilì fldfiVj [Jsip
ü ữ ¿ÿ a a ? ft <* « • & a □ G 3 Si +i ®
rtĩếír.al - rniÄi JJiwWaihSfi - u J u = as gs s ịE iE Ĩ “
' i '
Q Wlỵcrosofl PcaiÇiFoünl - [Prs? 5 enÌ 3 Íirm;|
l&Qơe 6 * ‘ítrrt Insert Fyiirui Toob side Slow Windtw üeip
5iT53By • ß ■ - i san id ầ
ïlte Sdt ¥■ WIIM realty tic« windows AS ‘1*00 can
*> ■* i-e n lilts screenshot wre hạe Word. Esce'l, PiiwerPclnt aid IE!
Back Aidless I -S] It
Trang 35- Khái niệm mở, so với độc quyền, so với hỗn hợp (và cách hỗn hợp) một vài kháiniệm trong từng lựa chọn này là đủ.
- Cấu trúc và các hạn chế lưu trữ trên máy chủ: Hỗ trợ điều này chứ không phải điều kia,
- Các phương pháp phân bổ tài nguyên: Mức tự động hóa, dễ tiếp cận, dễ dàng phân
bổ cũng như không phân bổ,
- Các khả năng và các phương pháp lưu trữ dữ liệu: có tồn tại lâu bền tự động không hay chỉ theo yêu cầu,
- Các công cụ phát triển hỗ trợ các công cụ quản lý được hỗ trợ
- Hiệu năng so với các kiểu giao dịch và khối lượng
- Bảo mật của các thành phần đám mây khác nhau: Xử lý bảo mật ra sao?
Sau đây là bài đánh giá về các nền tảng điện toán đám mây của John Rhoton
(Nhà chiến lược Điện toán đám mây) được đăng trên tờ báo IBM với tựa đề “Choose thebest PaaS cloud for your needs”
1.6.1 Máy ứng dụng của Google
Google App Engine là một trong các dịch vụ nền tảng nổi tiếng nhất Ngoài mộtmôi trường runtime cơ bản, nó loại bỏ nhiều yêu cầu quản trị hệ thống và phát triển liênquan đến việc xây dựng các ứng dụng có thể mở rộng quy mô lên tới hàng triệu ngườidùng Nó gồm nhiều phương tiện để triển khai mã cho một cụm, cũng như các khả năngnhư giám sát, chuyển đổi dự phòng, mở rộng quy mô tự động và cân bằng tải
Google App Engine ban đầu đã hỗ trợ các môi trường runtime chỉ dựa vào
Trang 36Python Sau đó, nó đã bổ sung hỗ trợ cho các máy ảo Java (JVM), vì thế cho phép cácứng dụng được viết không chỉ bằng ngôn ngữ Java mà còn bằng các ngôn ngữ JVM khác,chẳng hạn như Groovy, JRuby, Jython, Scala hoặc Clojure Bộ công cụ phát triển phầnmềm gồm có một môi trường phát triển cục bộ đầy đủ, mô phỏng Google App Enginetrên máy tính để bàn của nhà phát triển.
Có một số hạn chế về các ngôn ngữ lập trình Ví dụ, các mô đun Python phải làPython thuần vì các mô đun c và Pyrex không được hỗ trợ Tương tự như vậy, các ứngdụng Java chỉ có thể sử dụng một tập hợp con (JRE Class White List - Danh sách trắngcủa lớp JRE) của các lớp từ Java Runtime Environment (JRE), Ấn bản tiêu chuẩn; chúng
bị ngăn cản tạo ra các luồng mới
Liệt kê 1 cho thấy một ứng dụng "Hello World" đơn giản trong Google AppEngine
Liệt kê 1 "Hello World" của Google App Engine:
from google.appengine.ext import webapp from
google.appengine.ext.webapp.util import run wsgi app class
MainPage(webapp.RequestHandler): def get(seli):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, World!') application =
webapp.WSGIApplication(
[('/', MainPage)])def main():
Trang 37nghĩa một trình xử lý yêu cầu có tên là MainPage để xử lý tất cả các yêu cầu HTTP GETcho URL gốc Phương thức này có thể viết đáp ứng HTTP bằng cách sử dụng đối tượngself.response Hàm run_wsgi_app() nhận một cá the WSGIApplication và chạy nó trongmôi trường CGI (Common Gateway Interface - Giao diện cổng kết nối chung) củaGoogle App Engine Công việc chỉ có thế nếu nhu cầu của bạn là bình thường.
Kho lưu trữ dữ liệu của Google App Engine hỗ trợ các truy vấn, sắp xếp và cácgiao dịch bằng cách sử dụng kiểm soát đồng thời rõ ràng Đó là một cơ sở dữ liệu phântán nhất quán mạnh được xây dựng dựa trên hệ thống lưu trữ dữ liệu BigTable mức thấphơn so với một số chức năng bổ sung Ngôn ngữ truy vấn của Google App Engine (đượcgọi là GQL) tương tự như SQL (Structured Query Language - Ngôn ngữ truy vấn có cấutrúc) trong các câu lệnh SELECT của nó, nhưng có một số hạn chế đáng kể Ví dụ, GQL
cố tình không hỗ trợ câu lệnh JOIN và do đó chỉ có thể cung cấp các truy vấn bảng đơn
Mặc dù môi trường này đi kèm với một số hạn chế, nhưng nó cũng cung cấp mộttập họp các giao diện lập trình ứng dụng (API) phong phú Ngoài chức năng lưu trữ dữliệu được đề cập ở trên, còn có một bộ các chức năng thư viện như sau:
- Authentication (Xác thực): Các ứng dụng có thể giao tiếp với các tài khoản
.Google để xác thực người dùng Nó có thể hướng dẫn người dùng đăng ký bằng một tàikhoản Google và sau đó truy cập địa chỉ email và hiển thị tên sau khi người dùng đã đượcxác thực Những người dùng OpenlD cũng có thể tạo ra một mã định danh với bất kỳ nhàcung cấp OpenlD nào và sử dụng cùng một mã định danh đó để xác thực cho một ứngdụng của Google App Engine
- Memcached (Hệ thống lưu trữ trong bộ nhớ đệm phân tán đa năng):
Các dịch vụ Memcached cung cấp cho các ứng dụng một bộ nhớ đệm giá trị- khóa trong
bộ nhớ, mà bộ nhớ đệm này có thể truy cập được bằng nhiều cá thể của ứng dụng Nó rất
có ích với dữ liệu tạm thời mà không cần các tính năng giao dịch và tồn tại lâu bền, chẳnghạn như một bộ nhớ đệm cục bộ của kho lưu trữ dữ liệu để truy cập tốc độ cao
- Scheduled tasks (Các tác vụ có lịch biểu): Dịch vụ cron cho phép người dùng lập
lịch biểu các tác vụ chạy theo định kỳ Ví dụ, theo hàng ngày hoặc hàng giờ Thậm chíứng dụng có thể thực hiện các nhiệm vụ mà nó đã thêm vào một hàng đợi của mình Ví
dụ, nó có thể gửi một công việc nền trong khi đang xử lý một yêu cầu
Trang 381.6.2 Azure của Microsoft
Windows Azure là đề xuất PaaS của Microsoft Tương tự như khái niệm vớiGoogle App Engine, nó cho phép các ứng dụng dựa trên các công nghệ của Microsoftđược lưu trữ trên máy chủ và chạy từ các trung tâm dữ liệu của Microsoft Các trình điềukhiển Fabric của nó tự động quản lý các tài nguyên, cân bằng tải, sao chép để phục hồi vàquản lý vòng đời ứng dụng
Nen tảng Windows Azure được xây dựng như là một dịch vụ phân tán được lưutrữ trên máy chủ trong các trung tâm dữ liệu của Microsoft trên một hệ điều hành dànhriêng Nó được triển khai thực hiện theo ba thành phần: tính toán, lưu trữ và một cấu trúc
để quản lý nền tảng Các cá thể tính toán được trưng ra cho khách hàng như là các kiểuvai trò mà chúng chỉ rõ các cấu hình phù họp với các mục đích điển hình Các cá thể vaitrò web thường tương tác với người dùng và có thể lưu trữ các trang web và mã ngoại vikhác trên máy chủ Ngược lại, các cá thể vai trò người làm phục vụ cho các nhiệm vụ nềngiống như các công việc cron của Google App Engine
Mặc dù các kiểu vai trò web và người làm được yêu thích nhất, nhưng WindowsAzure vẫn cung cấp thêm các khuôn mẫu cho các nhu cầu cụ thể Ví dụ, vai trò web CGI
hỗ trợ giao thức FastCGI và do đó cho phép các ngôn ngữ lập trình khác, gồm PHP,Ruby, Python và Java Dịch vụ WCF (Windows Communications Foundation - Thiết lậpcác cách truyền thông Windows) là một vai trò web để tạo điều kiện thuận lợi cho việc hỗtrợ các dịch vụ WCF Hiện nay, Windows Azure cũng cung cấp một dịch vụ cơ sở hạtầng (dưới dạng của một vai trò Máy ảo-VM) chấp nhận tải lên một hình ảnh R2 YM củaWindows Server® 2008
Việc lưu trữ của Windows Azure cung cấp các dịch vụ để lưu trên máy chủ baloại dữ liệu:
- Blobs (Các đối tượng nhị phân lớn): Blobs là các luồng dữ liệu không có cấu trúc
hoặc ít nhất là dữ liệu mờ, dữ liệu có thể là một hình ảnh, một tệp hoặc bất cứ thứ gì khác
mà ứng dụng cần
Tables (Các bảng): Các bảng được sử dụng cho dữ liệu có cấu trúc Chúng
thường chứa một tập họp các hàng đồng nhất (được gọi là các thực thể), được định nghĩa
Trang 39bởi một tập hợp các cột (được gọi là các đặc tính) Mặc dù có sự giống nhau về kháiniệm, nhưng cũng có những khác biệt quan trọng giữa các bảng lưu trữ của WindowsAzure và các bảng quan hệ Windows Azure không thực thi một lược đồ, cũng không hỗtrợ SQL như là một ngôn ngữ truy vấn.
Queues (Các hàng đợi) Các hàng đợi cung cấp một cơ chế cho các ứng dụng để
truyền thông và phối hợp không đồng bộ
Cấu trúc (fabric) trong thuật ngữ của Windows Azure đề cập đến một tập hợp cácmáy tính chạy hệ điều hành Windows Azure được quản lý chung và thường được đặtcùng với nhau trong cùng một khu vực Các trình điều khiển Fabric (Fabric Controller) làtầng mã cung cấp tất cả các cá thể người dùng (các vai trò web và người làm) và thựchiện bất kỳ các nâng cấp cần thiết nào Nó cũng theo dõi các ứng dụng, cung cấp lại vàphân bổ lại các tài nguyên khi cần để bảo đảm rằng tất cả các dịch vụ vẫn khỏe mạnh
1.6.3 Đám mây điện toán linh hoạt của Amazon
Người dẫn đầu thị trường và tiêu chuẩn phổ biến cho các dịch vụ cơ sở hạ tầng làAmazon Sự khác biệt chính giữa AWS (Amazon Web Services - Các dịch vụ Web củaAmazon) và một dịch vụ nền tảng điển hình là ở chỗ Amazon không thiết lập một môitrường runtime cụ thể Bạn có thể sử dụng một trong các