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

Tìm hiểu và ứng dụng công nghệ Cloud Computing với nền tảng Google App Engine

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

ĐẠI HỌC QUỐC GIA TP.HCM

Bài thu hoạch môn: Điện toán lưới và Đám mây

 !"#$
$%&'$$#()%%*(
+,-./.01-2
++3456
7.+89:8:;<
-7=>:?@A:8B
Bài thu hoạch môn Điện toán lưới và Đám mây
7 C
HV: Vũ Thị Hường Trang 2
Bài thu hoạch môn Điện toán lưới và Đám mây
C6DEF
Ngà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ông nghệ mới, các dịch vụ CNTT đá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ụ CNTT đá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ột trong những bài
toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho doanh nghiệp. Để 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. Để 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”
(Cloud Computing) đã ra đời trong hoàn cảnh đó và đang dần trở nên quen thuộc đối với các doanh
nghiệp, đặc biệt là đối với các doanh nghiệp vừa và nhỏ.
Trong khuôn khổ bài thu hoạch nhỏ này, em xin trình bày nền tảng điện toán đám mây Google


Apps Engine của hãng khổng lồ tìm kiếm Google trong việc xây dựng và triển khai ứng dụng Web.
Em xin gửi lời cảm ơn chân thành đến PGS.TS Nguyễn Phi Khứ, là người đã trực tiếp giảng
dạy, truyền đạt những kiến thức liên quan tới môn học, cung cấp thông tin, tư liệu cho chúng em.
Tuy có nhiều cố gắng, nhưng với lượng kiến thức còn hạn hẹp không tránh khỏi thiếu sót trong quá
trình thực hiện, mong nhận được ý kiến đóng góp của thầy để em có thể hoàn thiện hơn.
Em xin chân thành cảm ơn!
Học viên
Vũ Thị Hường
5G8/
HV: Vũ Thị Hường Trang 3
Bài thu hoạch môn Điện toán lưới và Đám mây
8 HIJ)+KLMM77MN
8/8/2>"E"$>E>O0P#$$%Q
Theo định nghĩa của Wikipedia thì: Cloud computing 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
Hình 1.1. Mọi thứ đều tập trung vào đám mây
Đứ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 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.
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.
HV: Vũ Thị Hường Trang 4
Bài thu hoạch môn Điện toán lưới và Đám mây
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ố, cung cấp các dạng

tài nguyên ảo dưới dạng dịch vụ một cách linh động theo nhu cầu của người dùng trên môi trường
internet.
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à cung
cấp dịch vụ.
Có rất nhiều định nghĩa về Cloud Computing, nhưng với người dùng thông thường thì có thể
hiểu một cách đơn giản như sau: Điện toán đám mây là các phát triển dựa vào mạng Internet sử
dụng các công nghệ máy tính. Đây là một kiểu điện toán trong đó những tài nguyên tính toán và lưu
trữ được cung cấp như những dịch vụ trên mạng. Người dùng không cần biết hay có kinh nghiệm
điều khiển và vận hành những công nghệ này.
8/AR S GT'
Cloud Computing có năm tính chất nổi bật so với mô hình truyền thống.
8/A/8/U% ($ FPLV(WX(#YVX(Z (Q
Mỗi khi có nhu cầu, người dùng chỉ cần gửi yêu cầu thông qua trang web cung cấp dịch vụ, hệ
thống của nhà cung cấp sẽ đáp ứng yêu cầu của người dùng.
Người dùng có thể tự phục vụ yêu cầu của mình như tăng thời gian sử dụng server,tăng dung
lượng lưu trữ… mà không cần phải tương tác trực tiếp với nhà cung cấp dịch vụ, mọi nhu cầu về
dịch vụ đều được xử lý trên môi trường web (Internet).
8/A/A/Z0[S"Z\P]Z$W(^$Z_W (XXQ
Cloud Computing cung cấp các dịch vụ thông qua môi trường internet. Do đó, người dùng có
kết nối internet là có thể sử dụng dịch vụ. Hơn nữa, Cloud Computing ở dạng dịch vụ nên không đòi
HV: Vũ Thị Hường Trang 5
Bài thu hoạch môn Điện toán lưới và Đám mây
hỏi khả năng xử lý cao ở phía client, vì vậy người dùng có thể truy xuất bằng các thiết bị di dộng
như điện thoại, PDA, laptop… Với Cloud Computing người dùng không còn bị phụ thuộc vị trí nữa,
họ cóthể truy xuất dịch vụ từ bất kỳ nơi nào, vào bất kỳ lúc nào có kết nối Internet.
8/A/9/,` 0aP(X$Z (%$$#Q
Tài nguyên của nhà cung cấp dịch vụ được dùng chung, phục vụ cho nhiều người dùng dựa trên

mô hình “multi-tenant” . Trong mô hình “multitenant”,tài nguyên sẽ được phân phát động tùy theo
nhu cầu của người dùng. Khi nhu cầu của một khách hàng giảm xuống, thì phần tài nguyên dư thừa
sẽ được tận dụng để phục vụcho một khách hàng khác. Ví dụ như khách hàng A thuê 10 CPU mỗi
ngày từ 7 giờ đến 11 giờ, một khách hàng B thuê 10 CPU tương tự mỗi ngày từ 13 giờ đến 17 giờ
thì hai khách hàng này có thểdùng chung 10 CPU đó.
Cloud Computing dựa trên công nghệ ảo hóa, nên các tài nguyên da phần là tài nguyên ảo. Các
tài nguyên ảo này sẽ được cấp phát động theo sự thay đổi nhu cầu của từng khách hàng khác nhau.
Nhờ đó nhà cung cấp dịch vụ có thể phục vụ nhiều khách hàng hơn so với cách cấp phát tài nguyên
tĩnh truyền thống.
8/A/B/2'@ $bPW%(#WX 0Q
Đây là tích chất đặc biệt nhất, nổi bật nhất và quan trọng nhất của Cloud Computing.Đó là khả
năng tự động mở rộng hoặc thu nhỏ hệ thống tùy theo nhu cầu của người dùng. Khi nhu cầu tăng
cao, hệ thống sẽ tự mở rộng bằng cách thêm tài nguyên vào. Khi nhu cầu giảm xuống, hệ thống sẽ tự
giảm bớt tài nguyên.
Ví dụ: khách hàng thuê một Server gồm 10 CPU. Thông thường do có ít truy cập nên chỉ cần 5
CPU là đủ, khi đó hệ thống quản lý của nhà cung cấp dịch vụ sẽ tự ngắt bớt5 CPU dư thừa, khách
hàng không phải trả phí cho những CPU dư thừa này (những CPU này sẽ được cấp phát cho các
khách hàng khác có nhu cầu). Khi lượng truy cập tăng cao, nhu cầu tăng lên thì hệ thống quản lý của
nhà cung cấp dịch vụ sẽ tự “gắn” thêm CPU vào, nếu nhu cầu tăng vượt quá 10 CPU thì khách hàng
phải trả phí cho phần vượt mức theo thỏa thuận với nhà cung cấp. Khả năng co giãn giúp cho nhà
cung cấp sử dụng tài nguyên hiệu quả, tận dụng triệtđể tài nguyên dư thừa, phục vụ đượcnhiều
khách hàng. Đối với người sử dụng dịch vụ,khả năng co giãn giúp họ giảm chiphí do họ chỉ trả phí
cho những tài nguyên thực sự dùng.
8/A/c/d4 P7(WXZ(X(Z (Q
Hệ thống Cloud Computing tự động kiểm soát và tối ưu hóa việc sử dụng tài nguyên (dung
lượng lưu trữ, đơn vị xử lý, băng thông…). Lượng tài nguyên sử dụng có thể được theo dõi, kiểm
soát và báo cáo một cách minh bạch cho cả hai phía nhà cung cấp dịch vụ và người sử dụng.
8/9/> !$$%
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.
HV: Vũ Thị Hường Trang 6
Bài thu hoạch môn Điện toán lưới và Đá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ụ
Cloud Computing đến với khách hàng.
8/9/8/7!4 
Hiện tại có rất nhiều nhà cung cấp dịch vụ Cloud Computing cung cấp nhiều loại dịch vụ khác
nhau. Tuy nhiên có ba loại dịch vụ Cloud Computing cơ bản là:
• Dịch vụ cơ sở hạ tầng (Infrastructure as a Service - IaaS),
• Dịch vụ nền tảng(Platform as a Service – PaaS)
• Dịch vụ phần mềm (Software as a Service SaaS).
Cách phân loại này thường được gọi là “mô hình SPI”.
Hình 1.3. Các loại dịch vụ Cloud Computing
YZWXZ Z(WXW.(Z (eWW.
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ối mạng…). Khách hàng sẽ cài hệ điều hà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ằngtả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ành phần.
-#WY$ZWXW.(Z (e-WW.
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ôi trường p hát triển được cung cấp hoặc cài đặt
các ứng dụng sẵn có trên nền platform đó. K há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ác công cụ, môi trường
phát triển ứng dụng nhưng quản lý các ứng dụng mình cài đặt hoặc phát triển.
.$Y^WZ(WXW.(Z (e.WW.
HV: Vũ Thị Hường Trang 7
Bài thu hoạch môn Điện toán lưới và Đám mây
Đây là mô hình dịch vụ mà trong đó nhà cung cấp dịch vụ sẽ cung cấp cho khách hà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ụ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ệ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ẵn sàng và hoạt động ổn định.
Hình 1.4. Mô hình SPI
8/9/A7!Z_W
Các hình thức triển khai của điện toán đám mây: dựa vào nhu cầu của người dùng cũng như của
phía nhà cung cấp mà hình thành nên bốn phương thức triển khai điện toán đám mây trong thực tế :
• Đám mây công cộng ( Public Cloud)
• Đám mây cá nhân ( Private Cloud)
• Đám mây lai ( Hybrid Cloud)
• Đám mây cộng đồng ( Community Cloud)
HV: Vũ Thị Hường Trang 8
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 1.5. Các mô hình triển khai Cloud Computing
-T# #$
Đây là mô hình mà các dịch vụ Cloud được nhà cung cấp dịch vụ cung cấp cho mọi người sử
dụng rộng rãi. Các dịch vụ được cung cấp và quản lý bởi một nhà cung cấp dịch vụ và các ứng dụng
của người dùng đều nằm trên hệ thống 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 chi phí 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ệ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ệ cap, chất lượng mà
không phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt.
-ZW(#$
Trong mô hình Private Cloud, cơ sở hạ tầng và các dịch vụ được xây dựng để phục vụ cho một
tổ chức (doanh nghiệp) duy nhất. Điều này giúp cho doanh nghiệp có thể kiểm soát tối đa đối với dữ
liệu, bảo mật và chất lượng dịch vụ.
0TZ#$

Hybrid Cloud là sự kết hợp của Public Cloud và Private Cloud. Trong đó doanh nghiệp sẽ “out-
source” các chức năng nghiệp vụ và dữ liệu không quan trọng, sử dụng cá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ối quan trọng trong tầm kiểm soát (Private Cloud).
$0#$
Community Cloud là mô hình trong đó hạ tầng đám mây được

chia sẻ bởi một số tổ chức cho
cộng đồng người dùng trong các tổ chức đó. Các tổ chứ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 Cloud để nâng cao hiệu quả đầu tư và sử dụng.
HV: Vũ Thị Hường Trang 9
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 1.6. Mô hình Community Cloud
Doanh nghiệp có thể chọn để triển khai các ứng dụng trên Public, Private hay Hybrid 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 ứng dụng có tính tạm thời có thể triển khai trên Public
Cloud bởi vì nó giúp tránh việc phải mua 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 ứng dụ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
8/B2dZf E"$>E>O0
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:
Hình 1.7. Kiến trúc Cloud Computing
HV: Vũ Thị Hường Trang 10
Bài thu hoạch môn Điện toán lưới và Đám mây
gF: 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
theo thời gian cụ thể theo yêu cầu. Dịch vụ kiểu này giúp cho khách hàng giảm chi phí bảo hành, chi
phí sử dụng,…
C5ZhP.$ZW(Q: 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ư
BigTable của Google, SimpleDB của Amazon,…
#$(: 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,…
,4 : 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,…
i: Ứ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á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.
gF_> : (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,…
8/c/V5j E kWE"$>E>O0
E
Điện toán đám mây ra đời cho phép các ứng dụng bớt chịu lệ thuộc vào cơ sở hạ tầng. Người
dùng chỉ phải trả cho những gì họ sử dụng và trả cho nhu cầu. Dữ liệu được đặt trên đám mây thay
vì được lưu trên máy tính cá nhân, việc xử lý và chỉnh sửa dữ liệu được hoàn toàn thực hiện trên
đám mây. Sự độc lập giữa thiết bị và vị trí giúp người dùng có thể truy cập vào đám mây bất kỳ khi
nào, từ bất cứ nơi đâu, qua bất kỳ thiết bị gì miễn là có kết nối Internet. Chi phí phải trả cho quá
trình sử dụng được tính căn cứ vào những gì mà khách hàng sử dụng hoặc tính theo nhu cầu sử dụng
của họ. Dưới đây là một số ưu điểm nổi trổi của GAE:
• Có thể truy nhập từ bất cứ thiết bị, máy tính có kết nối Internet.
• Không giới hạn khả năng mở rộng. Người dùng có thể mở rộng yêu cầu quy mô tính
toán, dụng dung lượng lưu trữ lớn.
• Khă năng tăng đáng kể tài nguyên cơ sở hạ tầng với chi phí thấp.
• Làm việc cộng tác nhóm dễ dàng hơn, đặc biệt khi làm việc trên tài liệu và dự án.
• Người sử dụng được ứng dụng phần mềm nhanh chóng.

HV: Vũ Thị Hường Trang 11
Bài thu hoạch môn Điện toán lưới và Đám mây
• Cập nhật phần mềm tự động, dễ dàng, nhanh chóng. Tiết kiệm thời gian nâng cấp hệ
thống.
• Có khả năng giảm chi phí. Người sử dụng thanh toán dịch vụ sử dụng “theo yêu cầu”
hay “SaaS” trên cơ sở đăng ký, chứ không phải mua phần mềm”.
• Không có chi phí cố định, tất cảcác chi phí biến đổi.
• Tiết kiệm chi phí do việc sử dụng hiệu quả hơn phần cứng và điện năng
• ĐTĐM tốt cho:
o Môi trường làm việc hợp tác
o Khi có nhiều địa điểm làm việc và cần truy cập dữ liệu, ứng dụng theo nhu cầu.
o Khi cần nhiều dung lượng lưu trữ, hoặc upscale, tính toán nhanh.
o Khi muốn chia đều chi phí đồng đều theo thời gian
5j E
Để truy cập được vào đám mây và sử dụng các tiện ích mà đám mây cung cấp đòi hỏi thiết bị
phải được kết nối vào mạng Internet. Nghĩa là nếu không được kết nối với mạng, người dùng sẽ
không thể truy cập được bất cứ thứ gì kể cả tài liệu của chính họ. Ngoài ra dữ liệu trên đám mây có
thể không bảo mật.
8/?>   S%
Hiện nay có một số nhà cung cấp điện toán đám mây, tiêu biểu có thể kể đến như: Google,
IBM, Microsoft, Amazon, Salesforce…
8/l/m_d 5G
Chương này đã trình bày những khái niệm cơ bản về điện toán đám mây, kiến trúc, thành phần,
ưu nhược điểm của điện toán đám mây.
Hiện nay có rất nhiều nhà cung cấp dịch vụ điện toán đám mây. Mỗi nhà cung cấp cung cấp các
đặc trưng riêng cho điện toán đám mây của họ. Chương sau sẽ đi tìm hiểu cụ thể ứng dụng Google
App Engine của nhà cung cấp điện toán đám mây Google để thấy được lợi ích mà nó mang lại.
HV: Vũ Thị Hường Trang 12
Bài thu hoạch môn Điện toán lưới và Đám mây
5GA/ n7oJ+KLLC*) **

A/8/&"_$ kW$$#(P$$#()%%XQ
Google apps là một bộ các trình ứng dụng hiệu quả dựa trên đám mây, giúp người sử dụng có
thể truy cập kết nối Internet từ bất kỳ máy tính vào và ở bất kỳ thời điểm nào. Bản thân các dữ liệu
và các trình ứng dụng được vận hành bởi các trung tâm dữ liệu của Google. Hiện đang có một số
phiên bản các ứng dụng Google như phiên bản miễn phí, phiên bản tiêu chuẩn, phiên bản giáo dục,
phiên bản cho các tổ chức phi lợi nhuận và phiên bản dành cho chính phủ.
Hình 2.8. các ứng dụng Google Apps
Một số ứng dụng trong Google apps:
• W#: là nền tảng email của Google và cung cấp cho người sử dụng 25GB lưu trữ.
• $$#(W#(WZlà một công cụ quản lý dạng chương trình nghị sự, cho phép người
sử dụng sắp xếp và chia sẻ lịch trực tuyến và được đồng bộ hóa với thiết bị di động của
người sử dụng
• $$#(,$ X: là một nhóm các công cụ giúp người sử dụng tạo mới văn bản, bảng
biểu, đồ thị và các bài thuyết trình
• $$#(Z$%X là các nhóm do người sử dụng tạo ra, cho phép người sử dụng tạo và
quản lý các danh sách thư, chia sẻ nội dụng và tạo các lưu trữ có thể tìm kiếm được
• $$#(.(X: là một công cụ chp phép tạo mới các trang web dành cho mạng nội bộ và
các trang được quản lý theo nhóm.
• $$#(+($: là công cụ chia sẻ video được bảo mật.
• $$#(,Z(Z: dịch vụ lưu trữ, đồng bộ và chia sẻ dữ liệu nhanh chóng.
• …
A/A/$$#()%%*(
A/A/8/&"
HV: Vũ Thị Hường Trang 13
Bài thu hoạch môn Điện toán lưới và Đám mây
Google App Engine (GAE) là một nền tảng điện toán đám mây của Google để phát triển và lưu
trữ ứng dụng web trong những trung tâm dữ liệu do Google quản lý.
GAE là nền tảng điện toán đám mây theo mô hình PaaS. GAE cho phép khách hàng triển khai
các ứng dụng web để chạy trên cơ sở hạ tầng của Google. Với các đặc trưng dễ dàng xây dựng, bảo
trì, tăng lưu lượng truy cập và tăng dung lượng lưu trữ. Với App Engine, chúng ta không cần bảo trì

máy chủ, chỉ cần tải lên ứng dụng của bạn, và nó sẵn GAE đã được các nhà phát triển và các doanh
nghiệp triển khai sử dụng.
Bạn có thể dùng tên miền của bạn (ví dụ hoặc dùng tên miền miền
phí của GAE có đuôi appspot.com. Bạn có thể chia sẻ các ứng dụng của bạn với thế giới, hoặc giới
hạn truy cập cho các thành viên trong tổ chức của bạn.
Với GAE, bạn chỉ phải trả phí cho những gì bạn sử dụng. Không có chi phí thiết lập ban đầu và
không có phí định kỳ. GAE cho phép được host miễn phí lên đến 500MB dung lượng lưu

trữ và đủ
CPU và băng thông để hỗ trợ một ứng dụng hiệu quả phục vụ cho khoảng 5 triệu

lượt xem một
tháng. Dùng GAE, chúng ta khỏi phải thiết kế database, viết SQL để truy vấn data, map data vô
object. Chúng ta chỉ cần design các class và GAE tự động lo phần làm việc với database.
Với chi phí xây dựng và triển khai ứng dụng ban đầu gần như bằng 0, khách hàng dễ dàng xây
dựng các ứng dụng theo yêu cầu. Khi ứng dụng đã thu được lợi nhuận và vượt qua mức sử dụng thì
khách hàng chỉ phải trả khoản phí tài nguyên mà mình đã sử dụng.
A/A/A/R@
!h!Z56U 
GAE hỗ trợ các ứng dụng viết bằng nhiều ngôn ngữ lập trình khác nhau như Java, Python, PHP
và Go. Mỗi ngôn ngữ đều có một môi trường thực thi và SDK riêng cung cấp các công cụ để phát
triển, kiểm tra ở local và triển khai ứng dụng. Bạn có thể download Google app Engine SDK từ
trang chủ của Google app engine.
CWW( (
Java
Môi trường Java thực thi các ứng dụng được viết cho JVM7. Ứng dụng cóthể được
phát triển dựa vào ngôn ngữ lập trình Java hoặc hầu hết các ngôn ngữ có thể biên
dịch và chạy trên JVM, như: PHP (dùng Quercus), Ruby (dùng JRuby), Javascript
(dùng Rhino), Scala, Groovy. App Engine cũng hỗ trợ Google Web Tootkit
(GWT).

Python
Môi trường Python thực thi các ứng dụng được viết dựa vào ngôn ngữ lập
trình Python bản 2.7. App Engine gọi các ứng dụng Python nhờ vào CGI
(Common Gateway Interface). Ứng dụng có thể dùng hầu hết các thư viện của
Python, các framework của Python như Django, web2py, Pylons.
PHP PHP 5.4 environment. (Preview)
HV: Vũ Thị Hường Trang 14
Bài thu hoạch môn Điện toán lưới và Đám mây
(Preview)
Go
(exprimental)
Go 1.1 environment. (Thử nghiệm)
Google cho biết sẽ sớm hỗ trợ thêm nhiều ngôn ngữ trong tương lai và GAE sẽ độc lập với
ngôn ngữ lập trình.
C5Zhh#"
R@ 7!' !hpZj
Data store
Đối tượng kho dữ liệu phi lược đồ, cung cấp
khả năng lưu trữ chắc chắn, có thể mở rộng
cho ứng dụng web, API phong phú và ngôn
ngữ truy vấn tựa SQL được gọi là GQL
Python Java Go
Blobstore
Cho phép lưu trữ dữ liệu lớn như: video,
audio…
Python Java Go
Search
Cho phép ứng dụng chức năng tìm kiếm tựa
như Google trên cấu trúc dữ liệu, như: plain
text, HTML, số, ngày, vị trí địa lý…

Python Java Go
Memcache Tăng hiệu quả của ứng dụng. PHP Python Java Go
Logs
Cho phép yêu cầu ghi nhật kí hệ thống từ ứng
dụng của bạn.
PHP Python Java Go
HRD
Migration

Tool
Sao chép tất cả dữ liệu của bạn sang HRD
(High Replication Datastore) với thời gian tối
thiểu.
Python Java Go
A/A/9/7!_dZf  > 4  kW)*
Trong mô hình kiến trúc dưới đây cho thấy được hoạt động của GAE. Một yêu cầu từ trình
duyệt của máy bàn, máy xách tay, điện thoại, … được gửi tới GAE thông qua lối vào (Front End).
Một ứng dụng chủ (App Master) sẽ điều khiển, lập lịch cho tất cả các yêu cầu. Nếu yêu cầu truy cập
tệp tin tĩnh, yêu cầu sẽ gửi đến dịch vụ các tệp tĩnh (Static Flies). Nếu yêu cầu nội dung động, yêu
cầu sẽ được gửi tới ứng dụng của mình trên GAE, thông qua các thư viện APIs, ứng dụng có thể
truy cập tới các dịch vụ lưu trữ (Datastore), dịch vụ lưu trữ bộ nhớ (Memcache), dịch vụ thao tác
ảnh (Image manipulation),… Mỗi dịch vụ có chức năng và hoạt động riêng biệt, không phụ thuộc
lẫn nhau. Khi xây dựng ứng dụng với ngôn ngữ Java, GAE hỗ trợ thư viện kết hợp thư viện chuẩn
Java cho phép ứng dụng truy cập vào các dịch vụ tương ứng.
HV: Vũ Thị Hường Trang 15
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.9. Kiến trúc của GAE
A/9/Eq
Trong bài thực hành này, chúng ta chỉ sử dụng ngôn ngữ Java để làm quen với một số tính năng
của GAE.

A/9/8/@_R$$#()%%*(
]5&  

8: Truy cập và đăng nhập bằng tài khoản Gmail
của bạn. Chọn Create Application.
Hình 2.10. Đăng nhập tài khoản Gmail
]5& A: Nhập thông tin đăng ký gồm tên tài khoản, tiêu đề. Chú ý kiểm tra tên tài khoản

của
bạn đã được đăng ký chưa. Sau đó chọn mục đồng ý với các điều khoản sử dụng và

nhấn chọn
Z(W()%%# W$/
HV: Vũ Thị Hường Trang 16
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.11. Khởi tạo ứng dụng
]5& 9: Đăng kí thành công
Hình 2.12. Đăng kí thành công
A/9/A/Eq* #%X($$#(-#V $* #%X(/
]5& 8 Cài đặt JDK.
Download và cài đặt JDK tại:
/>]5& A: Download Eclipse tại (bản 4.3):
/>win32.zip
]5& 9: Cài đặt Google Plug-in cho Eclipse
HV: Vũ Thị Hường Trang 17
Bài thu hoạch môn Điện toán lưới và Đám mây
Khởi động Eclipse, chọn (#% XW##(^Software, điền URL sau vào khung Work with:

Hình 2.13. Cài đặt Google Plug-in cho Eclipse
Chọn những gói mà bạn muốn cài đặt rồi nhấn ([. Tiếp tục làm theo hướng dẫn. Sau khi cài

đặt xong, cần khởi động lại Eclipse
]5& B Đăng nhập Google
Mở Eclipse, click vào dòng chữ .$$$#(… ở góc dưới bên phải và đăng nhập vào
Google bằng tài khoản của bạn.
Hình 2.14. Sign in to tài khoản Google đã đăng kí
HV: Vũ Thị Hường Trang 18
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.15. Đăng nhập thành công
A/9/9g$&
]5& 8 Khởi tạo ứng dụng
Chọn File menu -> New -> Web Application Project. Hoặc click chọn biểu tượng 
New Web Application Project  Next.
Hình 2.16. Tạo ứng mới
HV: Vũ Thị Hường Trang 19
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.17. Khởi tạo Web Application Project
Cửa sổ “Z(W( W r(T )%%# W$ -Z$s( ” xuất hiện. Điền tên project vào “-Z$s( 
W(”, tên package vào mục “-W _W(”.
C5 t Bỏ chọn “Use Google Web Toolkit” và chắc chắn “Use Google App Engine”
được

chọn.
Cấu trúc file Project có dạng như sau:
Hình 2.18. Cấu trúc file Project
HV: Vũ Thị Hường Trang 20
Bài thu hoạch môn Điện toán lưới và Đám mây
u#(($v#WT.(Z#(/sWW
Các ứng dụng App Engine Java sử dụng java servlet API để tương tác với máy chủ web. Một
HTTP Servlet là một lớp ứng dụng có khả năng xử lý và phản hồi các yêu cầu web. Lớp này


thừa
kế lớp javax.servlet.GenericServlet hoặc lớp javax.servlet.http.HttpServlet. File
demo_labServlet.java có nội dung như sau:
package demo_lab;
import java.io.IOException;
import javax.servlet.http.*;
@SuppressWarnings("serial")
public class demo_labServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws
IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
u#(^(T/[#
Khi máy chủ web nhận được request, nó sẽ quyết định class servlet nào để gọi, sử dụng file
web.xml.
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi=" />xmlns=" />xmlns:web=" />xsi:schemaLocation=" /> version="2.5">
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>demo_lab.Register</servlet-class>
</servlet>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>demo_lab.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/Register</url-pattern>

</servlet-mapping>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<security-constraint>
HV: Vũ Thị Hường Trang 21
Bài thu hoạch môn Điện toán lưới và Đám mây
<web-resource-collection>
<web-resource-name>profile</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
File ^(T/[# khai báo 1 servlet tên là HelloWorld và ánh xạ nó vào đường dẫn URL
/helloworld. Nó cũng cho biết mỗi khi người dùng mở truy cập một URL không được ánh xạ vào
một servlet, máy chủ sẽ kiểm tra file index.xml.
u#(W%%((V^(T/[#
AppEngine cần thêm một file cấu hình nữa để xác định làm sao triển khai và chạy ứng dụng, đó
là file appengine-web.xml. Nó bao gồm application ID, phiên bản ứng dụng và danh sách các file
tĩnh (như là hình ảnh, CSS), file resource (như là JSP và các dữ liệu ứng dụng khác).
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns=" /> <application>demo_lab</application>
<version>1</version>

<!
Allows App Engine to send multiple requests to one instance in parallel:
>
<threadsafe>true</threadsafe>
<! Configure java.util.logging >
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
</appengine-web-app>
]5& A Chạy ứng dụng trên local
Nhấp chuột phải vào project của bạn và chọn Run as… Web Application.
Ứng dụng sẽ được chạy trên cổng 8888 (hoặc cổng khác phụ thuộc vào cấu hình của bạn), Mở
trình duyệt và gõ vào thanh địa chỉ http://localhost:8888/
HV: Vũ Thị Hường Trang 22
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.19. Chạy ứng dụng trên local
]5& 9: Triển khai ứng dụng lên Google App Engine
Bạn có thể cấu hình lại Application Id cho Eclipse trong trường hợp muốn thay đổi so với khi
tạo project. Nhấp chuột phải vào project của bạn và chọn -Z$%(Z(X $$#( )%%*( và
nhập Application Id của bạn. Nhấn OK.
HV: Vũ Thị Hường Trang 23
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.20. Triển khai ứng dụng lên Google App Engine
Để triển khai ứng dụng bạn nhấp chuột phải vào %Z$s(  $$#(,(%#$0$W%%((.
Bây giờ bạn có thể vào để xem ứng dụng của mình (thay demo-lab
bằng application id của mình).
Hình 2.21. Quá trình Deploy
HV: Vũ Thị Hường Trang 24
Bài thu hoạch môn Điện toán lưới và Đám mây
Hình 2.22. Kết quả sau khi Deploy

A/B/m_d 5G
GAE cho chúng ta một cái nhìn rõ nét về điện toán đám mây, về một mô hình sử dụng nền tảng
của nhà cung cấp, ở đó công nghệ ảo hóa tài nguyên phần cứng, phần mềm lẫn hệ thống mạng, tài
nguyên được cấp phát động đảm bảo tính đơn giản, khả năng mở rộng linh hoạt và độ tin cậy cao
được đặt lên hàng đầu. Với GAE, khách hàng có thể xây dựng và triển khai các ứng dụng web lên
cơ sở hạ tầng của gã khổng lồ Google – một trong các hãng có uy tín nhất trên thế giới.
HV: Vũ Thị Hường Trang 25

×