Khái niệm Cloud Computing Theo định nghĩa của Wikipedia thì ĐTĐM là môi trường tính toán dựa trên internet 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
Trang 1Lớp: Cao Học Khoa Học Máy Tính – Khóa 08
BÀI THU HOẠCH MÔN ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
TÌM HIỂU CLOUD COMPUTING VÀ XÂY DỰNG DEMO WEBSITE CHUẨN BỆNH CÂY LÚA TRÊN GOOGLE CLOUD VỚI NỀN TẢNG GOOGLE APP ENGINE
Giảng viên phụ trách:
PGS.TS NGUYỄN PHI KHỨ
Học viên thực hiện:
LÊ PHÚ QUÍ - CH1301108
Trang 3LỜI CÁM ƠN
Đầu tiên, em xin chân thành cám ơn thầy PGS.TS Nguyễn Phi Khứ – người
đã truyền đạt cho em những kiến thức quý báu trong môn Điện toán lưới và đám mây.
Tiếp theo, em xin gửi lời cám ơn đến các thầy cô ở các khoa cũng như tạicác phòng ban tại trường ĐH Công Nghệ Thông Tin đã tận tình giúp đỡ emtrong thời gian học vừa qua
Do kiến thức có hạn cũng như kinh nghiệm nghiên cứu khoa học trên thực
tế không nhiều nên bài làm của em không tránh khỏi thiếu sót Em rất mongnhận được sự đóng góp quí báu của quí thầy cô
TpHCM, ngày 7 tháng 06 năm 2014 Lớp Cao học KHMT khóa 8
Lê Phú Quí
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5Mục lục
I Mục tiêu đề tài 5
II Tổng quan về Cloud Computing 5
2.1 Khái niệm Cloud Computing 5
2.2 Tính chất cơ bản 6
2.3 Các mô hình Cloud Computing 7
2.3.1 Mô hình dịch vụ 7
2.3.1.1 Infrastructure as a Service – IaaS 7
2.3.1.2 Platform as a Service – PaaS 7
2.3.1.3 Software as a Service – SaaS 7
2.3.2 Mô hình triển khai 8
2.3.2.1 Public Cloud 8
2.3.2.2 Private Cloud 8
2.3.2.3 Community Cloud 9
2.3.2.4 Hybrid Cloud 10
2.4 Kiến trúc điện toán đám mây 11
2.5 So sánh 12
2.6 Lợi ích và hạn chế của ĐTĐM 12
2.6.1 Lợi ích của ĐTĐM 12
2.6.2 Một số hạn chế 12
III Công nghệ ảo hóa 13
3.1 Ảo hóa là gì? 13
3.2 Lợi ích từ ảo hóa 13
3.3 Các phương pháp ảo hóa phổ biến 13
3.3.1 Ảo hoá server 13
3.3.2 Ảo hoá Storage 13
3.3.3 Ảo hoá Network 14
Trang 63.3.4 Ảo hoá Application 14
3.4 Kỹ thuật ảo hóa 14
3.5 Quản lý cơ sở hạ tầng ảo (VIM) 15
IV Một số hãng cung cấp dịch vụ Cloud Computing 15
4.1 Công nghệ ĐTĐM của IBM 15
4.2 Công nghệ ĐTĐM của Amazone 16
4.3 Công nghệ ĐTĐM của Google 17
4.4 Công nghệ ĐTĐM của Microsoft 17
V Ứng dụng Cloud Computing trên nền tản Google App Engine 17
5.1 Công nghệ Google App Engine 17
5.1.1 Tổng quan về Google App Engine 17
5.1.2 Môi trường phát triển 18
5.1.3 Mô hình kiến trúc và các dịch vụ của GAE 20
5.2 Cài đặt ứng dụng 21
5.2.1 Cách tạo một ứng dụng trên Google App Engine 21
5.2.2 Build ứng dụng trên Cloud 25
5.2.3 Chạy thử nghiệm ứng dụng 26
VI.Tổng kết 29
VII Tài liệu tham khảo 29
Trang 7I Mục tiêu đề tài
Đối với một doanh nghiệp 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ột trong những bài toán được
ưu tiên hàng đầu Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệp phả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ểm soá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 Công nghệ điện toán đám mây (ĐTĐM) là một giải pháp tối ưu cho cácdoanh nghiệp, đặc biệt là đối với các doanh nghiệp vừa và nhỏ
Ngoài ra lợi ích công nghệ điện toán đám mây được ứng dụng rỗng rẽ trongnhiều lĩnh vực đời sống như giáo dục, y tế, nông nghiệp…
Trong giới hạn đề tài này em xây dụng ứng dụng website chuẩn đoán một
số bệnh ở cây lúa trên google cloud với nền tảng google app engine
II Tổng quan về Cloud Computing
2.1 Khái niệm Cloud Computing
Theo định nghĩa của Wikipedia thì ĐTĐM là môi trường tính toán dựa trên internet 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)
Hình 2.1 Mọi thứ đều tập trung vào đám mây
Trang 8Theo Ian Foster: Cloud Computing là một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về mặt kinh 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.
Hình 2.2 Hình ảnh Cloud Computing
Theo Rajkumar Buyya: Cloud là một loại hệ thống phân bố và xử lý 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ều 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.
Theo Viện tiêu chuẩn và công nghệ quốc gia Bộ Thương 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 kho 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 tối thiểu về quản lý hoặc can thiệp của nhà cungcấp dịch vụ.
2.2 Tính chất cơ bản
Tự phục vụ theo nhu cầu (On-demand self-service)
Truy xuất diện rộng (Broad network access)
Dùng chung tài nguyên (Resource pooling)
Khả năng co giãn (Rapid elasticity)
Trang 9 Điều tiết dịch vụ (Measured service)
2.3 Các mô hình Cloud Computing
Các mô hình Cloud Computing đượ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ụ Cloud Computing
Các mô hình triển khai (Deployment Models): Phân loại cách thức triển khai dịch vụ Cloud Computing đến với khách hàng
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ành phần
2.3.1.2 Platform as a Service – PaaS
Nhà cung cấp dịch vụ sẽ cung cấp một nền tảng (platform) cho khách hàng.Khách hàng sẽ tự phát triển ứng dụng của mình nhờ các công cụ và môitrường phát triển được cung cấp hoặc cài đặt các ứng dụng sẵn có trên nềnplatform đó Khách hàng không cần phả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áccông cụ, môi trường phát triển ứng dụng nhưng quản lý các ứng dụng mìnhcài đặt hoặc phát triển
2.3.1.3 Software as a Service – SaaS
Đây là mô hình dịch vụ mà trong đó nhà cung cấp dịch vụ sẽ cung cấp cho
Trang 10khách hàng một phần mềm dạng dịch vụ hoàn chỉnh Khách hàng chỉ cầnlựa chọn ứng dụng phầ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ệcquản lý hệ thống, cơ sở hạ tầng, hệ điều hành… tất cả sẽ do nhà cung cấpdịch vụ quản lý và kiểm soát để đảm bảo ứng dụng luôn sẵn sàng và hoạtđộng ổn định
2.3.2 Mô hình triển khai
Cho dù sử dụng loại mô hình dịch vụ nào đi nữa thì cũng có bốn mô
hình triển khai chính là: Public Cloud, Private Cloud, Community Cloud
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ăng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chiphí thấp cho khách hà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ệpnhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận các ứng dụng công nghệcap, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp, linhhoạt
Trang 112.3.2.2 Private Cloud
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ô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 đặtbên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hànhhoặc thậm chí là một bên thứ tư)
Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng cho mìnhnhằm khai thác ưu điểm được các tổ chức, doanh nghiệp lớn xây dựng chomình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị củaĐTĐM Với Private Cloud, các doanh nghiệp tối ưu được hạ tầng IT củamình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu hồi tàinguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thịtrường
Trang 12chức này do đặc thù không tiếp cận với các dịch vụ Public Cloud và chia sẻchung một hạ tầng ĐTĐM để nâng cao hiệu quả đầu tư và sử dụng.
2.3.2.4 Hybrid Cloud
Hybrid Cloud là mô hình bao gồm hai hoặc nhiều hơn các đám mây trêntích hợp với nhau Mô hình Hybrid Cloud cho phép chia sẻ hạ tầng hoặcđáp ứng nhu cầu trao đổi dữ liệu
Trang 132.4 Kiến trúc điện toán đám mây
Kiến trúc ĐTĐM nhìn chung gồm có các thành phần chính như hình:
Trang 14Hình 2.4 Kiến trúc Cloud Computing
Hạ 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ên phần cứng được cung cấp theothời gian cụ thể theo yêu cầu Dịch vụ kiểu này giúp cho khách hànggiả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ụ CSDL, ví dụ như BigTablecủ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, web hosting,…
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 Queue Service, 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ận hành và duy trì ứng dụng tại máybàn/thiết bị của người sử dụng Ứng dụng đám mây loại bỏ được cácchi 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,…
2.5 So sánh
Điện toán máy chủ ảo thường bị lẫn lộn với điện toán lưới, là "một dạng
của điện toán phân tán trong đó tồn tại một 'siêu máy tính ảo', là sự baogồm một cụm mạng máy tính, những máy tính liên kết mềm, hoạt động phối
hợp để thực thi những tác vụ cực lớn", điện toán theo nhu cầu (utility computing) ("khối những tài nguyên máy tính, như các bộ xử lý và bộ nhớ,
trong vai trò một dịch vụ trắc lượng tương tự với các công trình hạ tầng kỹ
thuật truyền thống chẳng hạn như điện lực hay mạng điện thoại") và điện toán tự trị (autonomic computing) ("những hệ thống máy tính có khả năng
tự quản lý")
Thực ra việc triển khai nhiều hệ thống điện toán máy đám mây ngày nayđược trang bị hệ thống lưới, có tính năng tự trị và được tiếp thị giống nhưnhững tiện ích, nhưng điện toán đám mây có thể được nhìn nhận như một
Trang 15bước phát triển tự nhiên tiếp theo từ mô hình lưới-theo nhu cầu Nhiều kiếntrúc đám mây thành công có cơ sở hạ tầng không quy tập hay ít quy tậphay những hệ thống tiếp thị trong đó có mạng ngang hàng như BitTorrent
Mất kiểm soát và phụ thuộc
III Công nghệ ảo hóa
có thể tạo thành nhiều máy ảo độc lập Mỗi một máy ảo đều có một thiết lậpnguồn hệ thống riêng rẽ, hệ điều hành riêng và các ứng dụng riêng
3.2 Lợi ích từ ảo hóa
Ảo hóa giải quyết các thách thức của việc quản lý trung tâm dữ liệu và cungcấp một số lợi thế như sau:
Sử dụng điện năng thấp hơn
Trang 16 Tiết kiệm không gian.
Khắc phục rủi ro
Giảm chi phí hoạt động
3.3 Các phương pháp ảo hóa phổ biến
3.3.1 Ảo hoá server
Một máy chủ riêng ảo (Virtual Private Server) hay máy chủ ảo hoá là một phương pháp phân vùng một máy chủ vật lý thành máy tính nhiều máy chủ
ảo, mỗi máy chủ đã có khảnăng của riêng của mình chạy trên máy tính dành riêng Mỗi máy chủ ảo riêng của nó có thể chạy full-fledged hệ điều hành, và mỗi máy chủ độc lập có thể được khởi động lại
Lợi thế của ảo hoá máy chủ:
Tiết kiệm được chi phí đầu tư máy chủ ban đầu
Hoạt động hoàn toàn nhưmột máy chủriêng
Có thể dùng máy chủ ảo hoá cài đặt các ứng dụng khác tùy theo nhu cầu của doanh nghiệp
Bảo trì sửa chữa nâng cấp nhanh chóng và dễ dàng
Dễ dàng nâng cấp tài nguyên RAM, HDD, băng thông khi cần thiết
Có thể cài lại hệ điều hành từ 5-10 phút
Không lãng phí tài nguyên
3.3.2 Ảo hoá Storage
Một công nghệ ảo hoá lưu trữ mà khá đình đám mà ta biết đến SAN
(Storage Area Network) SAN là một mạng được thiết kếc ho việc thêm các thiết bị lưu trữ cho máy chủ một cách dễ dàng như: Disk Aray Controllers, hay Tape Libraries
Với những ưu điểm nổi trội SANs đã trở hành một giải pháp rất tốt cho lưu trữ thông tin cho doanh nghiệp hay tổ chức SAN cho phép kết nối từ xa tới các thiết bị lưu trữ trên mạng như: Disks và Tape drivers Các thiết bị lưu trữ trên mạng, hay các ứng dụng chạy trên đó được thể hiện trên máy chủ như một thiết bị của máy chủ (as locally attached divices)
Có hai sự khác nhau cơ bản trong các thành phần của SANs:
Mạng (network) có tác dụng truyền thông tin giữa thiết bị lưu trữ và
hệ thống máy tính Một SAN bao gồm một cấu trúc truyền tin, nó cung cấp kết nối vật lý, và quản lý các lớp, tổ chức các kết nối, các thiết bị lưu trữ, và hệ thống máy tính sao cho dữ liệu truyền trên đó với tốc độ cao và tính bảo mật Giới hạn của SAN thường được nhận biết với dịch vụ Block I/O đúng hơn là với dịch vụ File Access
Một hệ thống lưu trữ bao gồm các thiết bị lưu trữ, hệ thống máy tính, hay các ứng dụng chạy trên nó, và một phần rất quan trọng là các phần mềm điều khiển, quá trình truyền thông tin qua mạng
Trang 173.3.3 Ảo hoá Network
Các thành phần mạng trong cơ sở hạ tầng mạng như Switch, Card mạng, được ảo hoá một cách linh động Switch ảo cho phép các máy ảo trên cùngmột máy chủ có thể giao tiếp với nhau bằng cách sử dụng các giao thức tương tự mà như trên thiết bị chuyển mạch vật lý mà không cần phần cứng
bổ sung Chúng cũng hỗ trợ VLAN tương thích với việc triển khai VLAN theo tiêu chuẩn từ nhà cung cấp khác, chẳng hạn như Cisco
Một máy ảo có thể có nhiều card mạng ảo, việc tạo các card mạng ảo nầy rất đơn giản và không giới hạn số card mạng tạo ra Ta có thể nối các máy
ảo này lại với nhau bằng một Switch ảo Điều đặc biệt quan trọng, tốc độ truyền giữa các máy ảo này với nhau thông qua các switch ảo được truyền với tốt độ rất cao theo chuẩn Gigabytes (1GB), đẫn đến việc đồng bộ giữa các máy ảo với nhau diễn ra rất nhanh
3.3.4 Ảo hoá Application
Ảo hóa ứng dụng là giải pháp tiến đến công nghệ điện tóan đám mây cho phép bạn sử dụng phần mềm của công ty mà không cần phải cài vài phần mềm này vào bất cứ máy tính con nào,
3.4 Kỹ thuật ảo hóa
Một số kỹ thuật ảo hóa phần cứng được sử dụng bởi các VMMs (Virtual Machine Monitor) sẵn có:
Ảo hóa toàn phần
Ảo hóa song song
Ảo hóa hệ điều hành
Ảo hóa Hardware-assisted
3.5 Quản lý cơ sở hạ tầng ảo (VIM)
Điện toán đám mây cần phần mềm có thể quản lý nguồn tài nguyên vật lý
và các nguồn tài nguyên ảo và trình bày một cái nhìn đầy đủ về tình trạng hiện tại của đám mây Nó cũng có thể giám sát toàn bộ vòng đời của các máy ảo được triển khai trên đầu nguồn tài nguyên vật lý Các phần mềm được sử dụng cho các mục đích này được gọi là quản lý cơ sở hạ tầng ảo (VIM-Virtual Infrastructure Manager)
Các gói nguồn mở sau đây có cách tiếp cận toàn diện hơn bằng cách tích hợp tất cả các chức năng cần thiết vào trong một gói duy nhất (bao gồm cả
ảo hóa, quản lý, các giao diện và an ninh) Khi được thêm vào một mạng các máy chủ và lưu trữ, các gói này tạo ra các cơ sở hạ tầng điện toán đámmây và lưu trữ linh hoạt: OpenNebula, Eucalyptus, OpenStack, Nimbus.IV.Một số hãng cung cấp dịch vụ clound computing