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

Tiểu luận môn điện toán lưới và đám mây GOOGLE APP ENGINE GIẢI PHÁP CHO ĐIỆN TOÁN ĐÁM MÂY

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.67 MB, 42 trang )

Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HCM
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN MÔN HỌC
TÍNH TOÁN LƯỚI & ĐIỆN TOÁN
ĐÁM MÂY
ĐỀ TÀI
GOOGLE APP ENGINE GIẢI PHÁP CHO ĐIỆN
TOÁN ĐÁM MÂY
GVHD: PGS TS Nguyễn Phi Khứ
Học viên: Nhan Thanh Nhã
Mã HV: CH1301044
Ngành: KHOA HỌC MÁY TÍNH
TP.HCM 06/ 2014
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HCM
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

HVTH: Nhan Thanh Nhã
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
BÁO CÁO ĐỒ ÁN MÔN HỌC
TOÁN CHO MÁY TÍNH
ĐỀ TÀI
GOOGLE APP ENGINE GIẢI PHÁP CHO ĐIỆN
TOÁN ĐÁM MÂY
GVHD: PGS TS Nguyễn Phi Khứ
HVTH: Nhan Thanh Nhã
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
Học viên: Nhan Thanh Nhã
Mã HV: CH1301044
Ngành: KHOA HỌC MÁY TÍNH


Lớp: Cao học Khóa 8

TP.HCM 06/ 2014
MỤC LỤC
HVTH: Nhan Thanh Nhã
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
LỜI MỞ ĐẦU
Ngày nay công nghệ thông tin phát triển đóng vai trò hết sức quan trọng trong
việc thúc đấy sự tăng trưởng kinh tế. Các công nghệ mới ra đời rất nhiều, làm cho các
dịch vụ CNTT cũng phải thường xuyên sáng tạo đổi mới, nhằm đáp ứng nhu cầu của
người sử dụng. Tuy nhiên, 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. Để có thể quản lý được nguồn dữ
liệu đó, ban đầu các doanh nghiệp. Để 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” đã 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 đề tài sẽ trình bày các phần chính như sau:
Chương 1: TỔNG QUAN VỀ CLOUD
COMPUTIONG
Chương 2: CẤU TRÚC MỘT ĐÁM MÂY MÃ NGUỒN MỞ
Chương3: GOOGLE APP ENGINE

Chương4: Tạo PROJECT
HVTH: Nhan Thanh Nhã Page 4
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
CHƯƠNG 1: TỔNG QUAN VỀ CLOUD
COMPUTING
1.1. Định Nghĩa CLOUD COMPUTING
Điện toán đám mây đã trở thành từ rất thông dụng. Tuy nhiên, có hàng chục định nghĩa
khác nhau cho Cloud Computing và có vẻ là không có sự đồng thuận về những gì một Cloud,
Mặt khác, điện toán đám mây không phải là một khái niệm hoàn toàn mới, nó có kết nối phức
tạp đến tương đối mới nhưng mười ba năm thành lập mô hình tính toán mạng lưới và các công
nghệ có liên quan khác như điện toán tiện ích, điện toán cụm, và hệ thống phân phối nói
chung.
Theo Wikipedia:
“Điện toán đám mây (cloud computing) là một mô hình điện toán có khả năng co
giãn (scalable) linh động và các tài nguyên thường được ảo hóa được cung cấp như một dịch
vụ trên mạ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ụ.
Theo Gartner ( :
“Một mô hình điện toán nơi mà khả năng mở rộng và linh hoạt về công nghệ thông
tin được cung cấp như một dịch vụ cho nhiều khách hàng đang sử dụng các công
nghệ trên Internet”.
Theo Ian Foster:
“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 (platform) 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.
HVTH: Nhan Thanh Nhã Page 5
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
Hình 1.1. Mọi thứ đều tập trung vào đám mây
Từ hai định nghĩa của Ian Foster và Rajkumar Buyya đề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.
HVTH: Nhan Thanh Nhã Page 6
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
1.2. Mô hình dịch vụ.
Hình 1.2. Mô hình dịch vụ
2.2.1. Infrastructure as a Service – IaaSLogic toán là gì?
Tầng đáy của đám mây là tầng các dịch vụ cơ sở hạ tầng. Ở đây, chúng ta thấy một tập
hợp các tài sản vật lí như các máy chủ, các thiết bị mạng và các đĩa lưu trữ được đưa ra như là
các dịch vụ được cung cấp cho người tiêu dùng. 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ằ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ành phần
Cũng như với các dịch vụ nền tảng, sự ảo hóa là một phương pháp thường được sử dụng
để tạo ra chế độ phân phối các nguồn tài nguyên theo yêu cầu. Ví dụ về các dịch vụ cơ sở hạ
tầng bao gồm IBM Bluehouse, VMware, Amazon EC2, Microsoft Azure Platform, Sun
ParaScale Cloud Storage và nhiều hơn nữa. Các dịch vụ cơ sở hạ tầng tập trung vào vấn đề
trang bị đúng các trung tâm dữ liệu bằng cách đảm bảo công suất điện toán khi cần thiết. Ngoài
ra, do thực tế là các kỹ thuật ảo hóa thường được sử dụng trong tầng này, nên có thể thấy rõ sự
tiết kiệm chi phí do việc sử dụng nguồn lực hiệu quả mang lại.
Những đặc trưng tiêu biểu:

HVTH: Nhan Thanh Nhã Page 7
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
• Cung cấp tài nguyên như là dịch vụ: bao gồm cả máy chủ, thiết bị mạng, bộ nhớ,
CPU, không gian đĩa cứng, trang thiết bị trung tâm dữ liệu.
• Khả năng mở rộng linh hoạt
• Chi phí thay đổi tùy theo thực tế
• Nhiều người thuê có thể cùng dùng chung trên một tài nguyên
• Cấp độ doanh nghiệp: đem lại lợi ích cho công ty bởi một nguồn tài nguyên tích
toán tổng hợp.
2.2.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ôi trườ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ền platform đó. 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á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.
Ở tầng này chúng ta thấy cơ sở hạ tầng ứng dụng nổi lên như là một tập hợp các dịch vụ.
Dịch vụ này nhưng không bị hạn chế tầng giữa như là một dịch vụ, truyền thông như là một
dịch vụ, tích hợp như là một dịch vụ, thông tin như là một dịch vụ, kết nối như một dịch vụ,
v.v. Các dịch vụ ở đây được dành để hỗ trợ cho các ứng dụng. Các ứng dụng này có thể đang
chạy trong đám mây và chúng có thể đang chạy trong một trung tâm dữ liệu doanh nghiệp
truyền thống hơn. Để đạt được khả năng mở rộng cần thiết trong một đám mây, các dịch vụ
khác nhau được đưa ra ở đây thường được ảo hóa. Các ví dụ về các đề nghị trong phần này của
đám mây bao gồm các ảnh ảo của IBM® WebSphere® Application Server virtual images,
Amazon Web Services, Boomi, Cast Iron, và Google App Engine.Các dịch vụ nền tảng này
cho phép người tiêu dùng chắc chắn rằng các ứng dụng của họ được trang bị để đáp ứng các
nhu cầu của người dùng bằng cách cung cấp cơ sở hạ tầng ứng dụng dựa theo yêu cầu.
Những đặc trưng tiêu biểu:
• Phục vụ cho việc phát triển, kiêm thử, triển khai và vận hành ứng dụng giống như
là môi trường phát triển tích hợp

• Các công cụ khởi tạo với giao diện trên nền web.
• Kiến trúc đồng nhất
• Tích hợp dịch vụ web và cơ sở dữ liệu
• Hỗ trợ cộng tác nhóm phát triển
• Công cụ hỗ trợ tiện tích
Sự thuận lợi của PaaS:
• Dịch vụ nền tảng (PaaS) đang ở thời kì đầu và được ưa chuộng ở những
tính năng vốn được ưa thích bơi dịch vụ phần mềm (đề cập sau), bên cạnh
đó có tích hợp các yếu tố về nền tảng hệ thống.
HVTH: Nhan Thanh Nhã Page 8
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
• Ưu điểm trong những dự án tập hợp những công việc nhóm có sự phân tán về địa
lý.
• Khả năng tích hợp nhiều nguồn của dich vụ web
• Giảm chi phí ngoài lề khi tích hợp các dịch vụ về bảo mật, khả năng mở
rộng, kiểm soát lỗi…
• Giảm chi phí khi trừu tượng hóa công việc lập trình ở mức cao để tạo dục
vụ, giao diện người dùng và các yếu tố ứng dụng khác.
• Mong đợi ở người dùng có kiến thức có thể tiếp tục hoàn thiện và hỗ trợ
tương tác với nhiều người để giúp xác định mức đô khó khăn của vấn đề
chúng ta gặp phải.
• Hướng việc sử dụng công nghệ để đạt được mục đích tạo điều kiện dễ
dàng hơn cho việc phát triển ứng dụng đa người dùng cho những người
không chỉ trong nhóm lập trình mà có thể kết hợp nhiều nhóm cùng làm
việc
Về khó khăn:
• Ràng buộc bởi nhà cung cấp: do giới hạn phụ thuộc và dịch vụ của nhà
cung cấp
• Giới hạn phát triển: độ phức tạp khiến nó không phù hợp với yêu cầu phá
triển nhanh vì những tính năng phức tạp khi hiện thực trên nền tảng web.

2.2.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 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.
Tầng này có lẽ là hầu như quen thuộc với người dùng Web hàng ngày. Tầng các dịch vụ
ứng dụng này lưu trữ các ứng dụng phù hợp với mô hình SaaS. Đây là những ứng dụng chạy
trong một đám mây và được cung cấp theo yêu cầu về các dịch vụ cho người dùng. Đôi khi các
dịch vụ này được cung cấp miễn phí và các nhà cung cấp dịch vụ tạo ra doanh thu từ những
thứ khác như là các quảng cáo Web và nhiều khi các nhà cung cấp ứng dụng tạo ra doanh thu
trực tiếp từ việc sử dụng dịch vụ. Âm thanh quen thuộc quá phải không? Nó có lẽ làm như vậy
kể từ khi hầu hết tất cả chúng ta đã sử dụng chúng. Nếu bạn đã từng gửi tệp thuế của bạn trực
tuyến bằng cách sử dụng Turbo taxe, kiểm tra thư của bạn khi sử dụng Gmail hoặc Yahoo Mail
HVTH: Nhan Thanh Nhã Page 9
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
hoặc theo kịp các cuộc hẹn khi sử dụng Google Calendar, thì bạn đã quen thuộc với tầng trên
cùng của đám mây. Đây chỉ là một vài ví dụ về các kiểu ứng dụng này. Thật vậy có hàng ngàn
ứng dụng SaaS và số lượng phát triển hàng ngày nhờ các công nghệ Web 2.0.
Có lẽ không hoàn toàn rõ ràng với đa số công chúng về việc có nhiều ứng dụng trong
tầng các dịch vụ ứng dụng được chuyển trực tiếp tới cộng đồng doanh nghiệp. Ở đó có lưu trữ
các yêu cầu phần mềm có sẵn để xử lý bảng lương, quản lý nguồn nhân lực, cộng tác, quản lý
quan hệ khách hàng, quản lý mối quan hệ đối tác kinh doanh và nhiều hơn nữa. Các ví dụ phổ
biến về các yêu cầu này bao gồm IBM® Lotus® Live, IBM Lotus Sametime®, Unyte,
Salesforce.com, Sugar CRM, và WebEx.
Trong cả hai trường hợp, các ứng dụng được cung cấp qua mô hình SaaS làm lợi cho
người tiêu dùng bằng cách giải phóng cho họ khỏi việc cài đặt và bảo trì phần mềm và các ứng
dụng có thể được sử dụng thông qua các mô hình cấp phép có hỗ trợ trả tiền để sử dụng các
khái niệm.

Những đặc trưng tiêu biểu:
• Phần mềm sẵn có đòi hỏi việc truy xuất, quản lý qua mạng.
• Quản lý các hoạt động từ một vị trí tập trung hơn là tại mỗi nơi của khách hàng,
cho phép khác hàng truy xuất từ xa thông qua web.
• Cung cấp ứng dụng thông thường gần gũi với mô hình ánh xạ từ một đến nhiều
hơn là mô hình 1:1 bao gồm cả các đặc trưng kiến trúc, giá cả và quản lý.
• Những tính năng tập trung nâng cấp, giải phóng người dùng khỏi việc tải các bản
vá lỗi và cập nhật.
• Thường xuyên tích hợp những phần mềm giao tiếp trên mạng diện rộng
1.3. Mô hình triển khai
Hình 1.3 Mô hình triển khai
1.3.1. Public Cloud
Đám mây công cộng là các dịch vụ đám mây được một bên thứ ba (người bán) cung cấp.
Chúng tồn tại ngoài tường lửa công ty và chúng được lưu trữ đầy đủ và được nhà cung cấp
đám mây quản lý.
HVTH: Nhan Thanh Nhã Page 10
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
Các đám mây cong cộng cố gắng cung cấp cho người tiêu dùng với các phần tử công
nghệ thông tin tốt nhất. Cho dù đó là phần mềm, cơ sở hạ tầng ứng dụng hoặc cơ sở hạ tầng
vật lý, nhà cung cấp đám mây chịu trách nhiệm về cài đặt, quản lý, cung cấp và bảo trì. Khách
hàng chỉ chịu phí cho các tài nguyên nào mà họ sử dụng, vì thế cái chưa sử dụng được loại bỏ.
Tất nhiên điều này liên quan đến chi phí. Các dịch vụ này thường được cung cấp với
"quy ước về cấu hình," nghĩa là chúng được phân phối với ý tưởng cung cấp các trường hợp sử
dụng phổ biến nhất. Các tùy chọn cấu hình thường là một tập hợp con nhỏ hơn so với những gì
mà chúng đã có nếu nguồn tài nguyên đã được người tiêu dùng kiểm soát trực tiếp. Một điều
khác cần lưu ý là kể từ khi người tiêu dùng có quyền kiểm soát một chút trên cơ sở hạ tầng,
các quy trình đòi hỏi an ninh chặt chẽ và tuân thủ quy định dưới luật không phải lúc nào cũng
thích hợp cho các đám mây chung.
1.3.2. Private Cloud
Đám mây riêng là các dịch vụ đám mây được cung cấp trong doanh nghiệp. Những đám

mây này tồn tại bên trong tường lửa công ty và chúng được doanh nghiệp quản lý.
Các đám mây riêng đưa ra nhiều lợi ích giống như các đám mây chung thực hiện với sự
khác biệt chính: doanh nghiệp có trách nhiệm thiết lập và bảo trì đám mây này. Sự khó khăn và
chi phí của việc thiết lập một đám mây bên trong đôi khi có thể có chiều hướng ngăn cản việc
sử dụng và chi phí hoạt động liên tục của đám mây có thể vượt quá chi phí của việc sử dụng
một đám mây chung.
Các đám mây riêng đưa ra nhiều lợi thế hơn so với loại chung. Việc kiểm soát chi tiết hơn
trên các tài nguyên khác nhau đang tạo thành một đám mây mang lại cho công ty tất cả các tùy
chọn cấu hình có sẵn. Ngoài ra, các đám mây riêng là lý tưởng khi các kiểu công việc đang
được thực hiện không thiết thực cho một đám mây chung, do đúng với các mối quan tâm về an
ninh và về quản lý.
1.3.3. Hybrid Cloud
Các đám mây lai là một sự kết hợp của các đám mây công cộng và riêng. Những đám
mây này thường do doanh nghiệp tạo ra và các trách nhiệm quản lý sẽ được phân chia giữa
doanh nghiệp và nhà cung cấp đám mây công cộng. Đám mây lai sử dụng các dịch vụ có trong
cả không gian công cộng và riêng.
Các đám mây lai là câu trả lời khi một công ty cần sử dụng các dịch vụ của cả hai đám
mây riêng và công cộng. Theo hướng này, một công ty có thể phác thảo các mục tiêu và nhu
cầu của các dịch vụ và nhận được chúng từ đám mây công cộng hay riêng, khi thích hợp. Một
đám mây lai được xây dựng tốt có thể phục vụ các quy trình nhiệm vụ-tới hạn, an toàn, như
HVTH: Nhan Thanh Nhã Page 11
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
nhận các khoản thanh toán của khách hàng, cũng như những thứ là không quan trọng bằng
kinh doanh, như xử lý bảng lương nhân viên.
Hạn chế chính với đám mây này là sự khó khăn trong việc tạo ra và quản lý có hiệu quả
một giải pháp như vậy. Phải có thể nhận được và cung cấp các dịch vụ lấy từ các nguồn khác
nhau như thể chúng có nguồn gốc từ một chỗ và tương tác giữa các thành phần riêng và chung
có thể làm cho việc thực hiện thậm chí phức tạp hơn nhiều. Do đây là một khái niệm kiến trúc
tương đối mới trong điện toán đám mây, nên cách thực hành và các công cụ tốt nhất về loại
này tiếp tục nổi lên và bất đắc dĩ chấp nhận mô hình này cho đến khi hiểu rõ hơn

HVTH: Nhan Thanh Nhã Page 12
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
CHƯƠNG 2: CẤU TRÚC CỦA MỘT ĐÁM MÂY
NGUỒN MỞ
2.1. Cấu trúc điện toán đám mây
Mặc dù không phải là một yêu cầu, nhưng công nghệ ảo hóa mang lại các lợi ích có một
không hai để xây dựng các kiến trúc có khả năng mở rộng động. Ngoài khả năng mở rộng,
công nghệ ảo hóa còn đưa vào khả năng di chuyển các máy ảo (VM) giữa các máy chủ vật lý
dùng cho các mục đích cân bằng tải. Hình 2.1 cho thấy rằng thành phần ảo hóa được tạo ra bởi
một tầng phần mềm có tên là tầng siêu giám sát -hypervisor (đôi khi được gọi là giám sát máy
ảo [VMM]). Tầng này tạo ra khả năng chạy đồng thời nhiều hệ điều hành (và các ứng dụng
của chúng) trên một máy tính vật lý. Trên tầng siêu giám sát là đối tượng gọi là máy ảo chứa
đựng hệ điều hành, các ứng dụng và cấu hình. Theo tùy chọn, sự mô phỏng thiết bị có thể được
tạo ra trong tầng siêu giám sát hoặc như là một máy ảo. Cuối cùng, do tính chất năng động mới
của công nghệ ảo hóa và các khả năng mới do nó mang lại, cần có các lược đồ quản lý mới.
Việc quản lý này tốt nhất được thực hiện trong các tầng, khi tính đến quản lý cục bộ tại máy
chủ, cũng như quản lý cơ sở hạ tầng mức cao hơn, tạo ra sự phối hợp tổng thể của môi trường
ảo.
Hình 2.1. Các phần tử cốt lõi của một nút trong đám mây
Nếu bạn lấy các nút mạng như Hình 2.1 và nhân chúng lên nhiều lần trên một mạng vật
lý với lưu trữ có chia sẻ, phối hợp quản lý trên toàn bộ cơ sở hạ tầng, rồi cung cấp cân bằng tải
ban đầu của các kết nối đến (cho dù theo cách thiết lập công cộng hay riêng tư) với việc lưu trữ
nhanh và lọc, bạn có một cơ sở hạ tầng ảo được gọi là đám mây. Cấu trúc mới này được chỉ ra
trong Hình 2.2 Các máy không hoạt động có thể được tắt nguồn điện cho đến khi cần bổ sung
HVTH: Nhan Thanh Nhã Page 13
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
thêm khả năng tính toán (tạo ra hiệu năng tốt hơn), với các máy ảo được cân bằng (thậm chí là
động) trên các nút tùy thuộc vào tải riêng của chúng.
Hình 2.2 Cơ sở hạ tầng điện toán đám mây
Với kiến trúc cơ bản của một đám mây đã xác định, bây giờ chúng ta hãy tìm hiểu xem

nguồn mở đang được áp dụng ở đâu để xây dựng cơ sở hạ tầng điện toán đám mây động.
HVTH: Nhan Thanh Nhã Page 14
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
2.2. Các công nghệ mã nguồn mở cốt lõi
Bối cảnh Linux đang chứng kiến một làn sóng phát triển tập trung vào các cơ sở hạ tầng
được ảo hóa dành cho việc ảo hóa, quản lý và tích hợp với quy mô lớn hơn của các gói phần
mềm đám mây. Chúng ta hãy bắt đầu xem xét mã nguồn mở ở cấp nút mạng riêng lẻ, sau đó
chuyển lên toàn bộ cơ sở hạ tầng để xem chuyện gì đang xảy ra ở đây
2.3. Các tầng siêu giám sát
Cơ sở của đám mây ở cấp nút mạng là tầng siêu giám sát. Mặc dù việc ảo hóa không phải
là một yêu cầu, nhưng nó cung cấp khả năng không thể thiếu được cho các kiến trúc có khả
năng mở rộng và có hiệu năng. Ở đó tồn tại một số giải pháp ảo hóa mã nguồn mở, nhưng có
hai giải pháp chủ yếu là chuyển đổi hệ điều hành Linux thành một tầng siêu giám sát: KVM
(Linux Kernel Virtual Machine - Máy ảo nhân Linux) và Lguest. KVM là giải pháp tầng siêu
giám sát chính thức, được triển khai trong môi trường sản xuất. Lguest là một giải pháp tập
trung vào Linux, chỉ chạy các máy ảo Linux, nhưng được tích hợp trong nhân (kernel) và đang
được sử dụng rộng rãi hơn.
Ngoài việc chuyển đổi Linux thành tầng siêu giám sát, có những giải pháp khác chọn
cách tiếp cận tập trung vào máy ảo khách. UML (User-Mode Linux - Linux trong chế độ người
dùng) là một cách tiếp cận, sửa đổi nhân (kernel) Linux máy khách để chạy trên hệ điều hành
Linux (không có phần mở rộng tầng siêu giám sát). Vì hầu hết người dùng muốn chạy một
nhân chưa sửa đổi, nên các giải pháp ảo hóa đầy đủ (như KVM) được ưa thích hơn.
Cách tiếp cận UML này cũng rất phổ biến, nhưng đòi hỏi phần cứng ảo hóa (như là bàn
điều khiển, đĩa ảo và kết nối mạng).
2.4. Mô phỏng thiết bị
Tầng siêu giám sát cung cấp các phương tiện để chia sẻ CPU với nhiều hệ điều hành (ảo
hóa CPU), nhưng để cung cấp công nghệ ảo hóa đầy đủ, toàn bộ môi trường phải được ảo hóa
cho các máy ảo. Việc mô phỏng máy — hay nền tảng — có thể được thực hiện theo một số
cách, nhưng một gói mã nguồn mở phổ biến hỗ trợ một số các tầng siêu giám sát được gọi là
QEMU. QEMU là trình mô phỏng và tầng siêu giám sát đầy đủ. Nhưng KVM sử dụng QEMU

để mô phỏng thiết bị như một quá trình riêng biệt trong vùng người dùng (xem Hình 2.1). Một
tính năng thú vị của QEMU là vì nó cung cấp mô phỏng đĩa (thông qua định dạng QCOW),
nên QEMU cung cấp các tính năng cao cấp khác như ảnh chụp nhanh và di chuyển máy ảo
sống.
Kể từ nhân 2.6.25, KVM sử dụng virtio như là một phương tiện tối ưu hóa hiệu năng ảo
hóa vào/ra. Virtio thực hiện điều này bằng cách đưa vào các trình điều khiển có ảo hóa một
phần vào tầng siêu giám sát với các móc nối từ máy khách để mang lại hiệu năng đến mức gần
HVTH: Nhan Thanh Nhã Page 15
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
như nguyên bản. Việc này chỉ thực hiện được khi hệ điều hành có thể được sửa đổi cho mục
đích này, nhưng tìm ra được cách sử dụng trong máy khách Linux trong các kịch bản tầng siêu
giám sát của Linux.
Hiện nay, virtio và QEMU hoạt động cùng với nhau sao cho các giao dịch thiết bị được
mô phỏng có thể được tối ưu hóa giữa máy khách Linux và bộ mô phỏng QEMU trong vùng
người sử dụng.
Nối mạng ảo
Do các máy ảo hợp nhất trong các máy chủ vật lý, nên các nhu cầu nối mạng của nền
tảng này tăng lên. Nhưng thay vì bắt buộc tất cả nối mạng các máy ảo tới các lớp vật lý của
nền tảng này, để thay thế thì truyền thông nội bộ có thể tự được ảo hóa . Để tối ưu hóa truyền
thông mạng giữa các máy ảo, có đưa vào chuyển mạch ảo. Chuyển mạch ảo vSwitch hoạt động
giống như một chuyển mạch vật lý, nhưng được ảo hóa trong nền tảng này (xem Hình 2.3).
Trong hình này, các giao diện được ảo hóa (VIF) đã liên kết với các máy ảo truyền thông qua
chuyển mạch ảo tới các giao diện vật lý (các PIF).
Hình 2.3. Khung nhìn mức cao của Open vSwitch với các giao diện ảo và giao diện vật lý
Nguồn mở cũng đang giải quyết vấn đề này, bằng một giải pháp rất thú vị được gọi là
Open vSwitch. Ngoài việc cung cấp một chuyển mạch ảo cho các môi trường ảo, vSwitch cũng
có thể tích hợp ngang qua các nền tảng vật lý và cung cấp các tính năng mức doanh nghiệp
như các mạng cục bộ ảo (VLAN), Chất lượng dịch vụ (QoS) dựa trên quyền ưu tiên, trung
chuyển và hỗ trợ tăng tốc phần cứng (như các bộ điều hợp mạng ảo hóa vào/ra một gốc [IOV-
single-root I/O virtualization]). Open vSwitch hiện có sẵn cho các nhân 2.6.15 và hỗ trợ một

loạt các giải pháp ảo hóa dựa trên Linux (Xen, KVM, VirtualBox) và các tiêu chuẩn quản lý
HVTH: Nhan Thanh Nhã Page 16
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
(Remote Switched Port Analyzer - Bộ phân tích cổng được chuyển mạch từ xa [RSPAN],
NetFlow, v.v ).
Các công cụ và các công nghệ máy ảo
Do các máy ảo là sự kết hợp của hệ điều hành, hệ thống tệp gốc và cấu hình, nên không
gian này đã chín muồi để phát triển công cụ. Nhưng để thấy rõ tiềm năng đầy đủ của các máy
ảo và các công cụ, phải có một cách di động để lắp ráp chúng. Cách tiếp cận hiện tại, được gọi
là Định dạng ảo hóa mở (OVF: Open Virtualization Format) là một cấu trúc máy ảo linh hoạt,
hiệu quả và di động. OVF gói gọn một hình ảnh đĩa ảo trong một trình bao gói XML định
nghĩa cấu hình của máy ảo, bao gồm các yêu cầu cấu hình nối mạng, bộ xử lý và bộ nhớ và
một loạt siêu dữ liệu mở rộng để định nghĩa thêm các nhu cầu hình ảnh và nền tảng của nó.
Khả năng quan trọng mà OVF cung cấp là tính di động để phân phối các máy ảo theo cách mà
tầng siêu giám sát không thể biết được.
Hiện có một số tiện ích để quản lý các ảnh máy ảo (VMI) cũng như chuyển đổi chúng
sang và từ các định dạng khác. ovftool của VMware là một công cụ hữu ích mà bạn có thể sử
dụng để chuyển đổi VMI (ví dụ, để chuyển đổi từ định dạng Bộ dụng cụ phát triển đĩa ảo
VMware [VMDK: VMware Virtual Disk Development Kit] sang OVF). Công cụ này và các
công cụ khác rất hữu ích một khi bạn có một VMI, nhưng điều gì sẽ xảy ra nếu bạn có một
máy chủ vật lý mà bạn muốn chuyển đổi thành một VMI? Bạn có thể sử dụng một công cụ hữu
ích được gọi là Clonezilla cho mục đích này. Mặc dù lúc khởi đầu Clonezilla được phát triển
như một công cụ sao chép đĩa dùng để phục hồi sau thảm họa, những bạn có thể sử dụng nó để
chuyển đổi một thực thể máy chủ vật lý thành máy ảo để triển khai dễ dàng trong một cơ sở hạ
tầng ảo hóa. Rất nhiều công cụ khác hiện có (như là các tiện ích được xây dựng trên libvirt)
hoặc đang được phát triển để chuyển đổi và quản lý khi định dạng OVF được chấp nhận.
Quản lý cục bộ
Bài viết này tìm hiểu cách quản lý từ hai quan điểm. Phần này bàn về cách quản lý nền
tảng, phần sau mở rộng sang cách quản lý cơ sở hạ tầng ở cấp độ cao hơn.
Red Hat đã giới thiệu thư viện libvirt như là một Giao diện lập trình ứng dụng (API) để

quản lý ảo hóa nền tảng (các tầng siêu giám sát và các máy ảo). Điều làm cho libvirt thú vị là
nó hỗ trợ một số các giải pháp tầng siêu giám sát (KVM và Xen là hai trong số đó) và cung cấp
các liên kết API với một số ngôn ngữ (như C, Python và Ruby). Nó cung cấp "bước đi cuối
cùng" về quản lý, giao tiếp trực tiếp với tầng siêu giám sát của nền tảng và mở rộng các API ra
tới các giải pháp quản lý cơ sở hạ tầng lớn hơn. Với libvirt, để khởi động và dừng máy ảo rất
đơn giản và nó cung cấp các API cho nhiều hoạt động cao cấp hơn, chẳng hạn như di chuyển
HVTH: Nhan Thanh Nhã Page 17
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
các máy ảo giữa các nền tảng. Khi sử dụng libvirt, có thể sử dụng trình vỏ (shell) của nó (được
xây dựng trên libvirt), được gọi là virsh.
HVTH: Nhan Thanh Nhã Page 18
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
CHƯƠNG 3: GOOGLE APP ENGINE
3.1. Giới thiệu
Google App Engine (gọi tắt là AppEngine, một số trường hợp được viết tắt là GAE ) là
giải pháp cho vấn đề điện toán đám mây. Ở đó, Google cung cấp sẵn một hệ thống máy chủ
điện toán đám mây, và người lập trình sẽ viết ứng dụng của mình lên đó. Ứng dụng này sẽ
chạy trên đám mây của Google. Google App Engine cho phép bạn chạy các ứng dụng web của
bạn trên cơ sở hạ tầng của Google. App Engine ứng dụng được dễ dàng để xây dựng, dễ bảo
trì, và dễ dàng để có quy mô như giao thông của bạn và nhu cầu lưu trữ dữ liệu lớn. Với App
Engine, không có máy chủ để duy trì: Bạn chỉ cần tải lên các ứng dụng của bạn, và nó sẵn sàng
để phục vụ người dùng của bạn. Bạn có thể sử dụng tên miền riêng của mình (chẳng hạn như
) thông qua google apps. Hoặc bạn có thể dùng sub-domain
miễn phí của appspot.com. GAE cho phép được host miễn phí với dung lượng 500 MB lưu
trữ và cho phép 10 GB băng thông lưu chuyển mỗi ngày hay tương đương 5 triệu pageview
hàng tháng,Vượt qua mức này bạn sẽ phải trả phí. 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. Hiện AppEngine hỗ trợ 2 loại ngôn ngữ
là: Python và Java. Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ
chuyển từ PHP sang Java.

3.2. Môi trường phát triển
Một ứng dụng App Engine đáp ứng các yêu cầu web. Một yêu cầu web sẽ bắt đầu khi
có một người dùng hay điển hình là các trình duyệt web của người dùng gửi một yêu cầu truy
cập vào ứng dụng thông qua giao thức HTTP. Khi App Engine nhậ n được yêu cầu, nó sẽ xác
định ứng dụng dựa vào tên miền, hoặc tên miền con của .appspot.com (cung cấp miễn phí mỗi
ứng dụng) hoặc là một tên miền riêng của chúng ta đã được đăng kí và thiết lập với Google
Apps. App Engine lựa chọn một máy chủ từ nhiều máy chủ để xử lý các yêu cầu đó. Sau đó,
App Engine sẽ gửi các yêu cầu đã nhận được từ người dùng đến ứng dụng phù hợp để xử lý,
sau khi đã xử lý xong các ứng dụng này sẽ gửi dữ liệu trả về cho App Engine, App Engine sẽ
nhận dữ liệu phản hồi từ các ứng dụng và trả về cho người dùng thông qua trình duyệt web.
Theo góc nhìn của ứng dụng, môi trường thực thi chỉ xuất hiện và tồn tại khi bắt đầu
một yêu cầu và sẽ biến mất khi yêu cầu đó được đáp ứng xong. App Engine cung cấp tối thiểu
2 cách thức lưu trữ dữ liệu tồn tại giữa các yêu cầu , nhưng các cơ chế này tồn tại bên ngoài
môi trường thực thi. Môi trường thực thi sẽ không duy trì trạng thái giữa các yêu cầu, hoặc ít
nhất không mong muốn các trạng thái sẽ được duy trì giữa các yêu cầu. App Engine có thể
HVTH: Nhan Thanh Nhã Page 19
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
phân phát lưu lượng truy cập trong nhiều server, vì nó cần phải đáp ứng cho nhiều yêu cầu xử
lý như nhau, bất kể có bao nhiêu lưu lượng truy cập nó sẽ xử lý cùng một lúc.
Bản thân GAE có cơ chế để quản lý các trạng thái của từng yêu cầu trong mỗi ứng
dụng dưới dạng Sandbox (người phát triển không biết rõ cơ chế bên trong nhưng hỗ trợ người
phát triển những dịch vụ cần thiết). Điều này cho phép App Engine xử lý một yêu cầu với một
máy chủ mà nó mong muốn trong ước tính của nó để trả về phản hồi nhanh nhất. Không có
cách nào để đảm bảo rằng phần cứng trên cùng một máy chủ sẽ xử lý hai lần yêu cầu, ngay cả
khi các yêu cầu đến cùng từ một client, và đến khá nhanh chóng.
Sandbox cho phép App Engine chạy nhiều ứng dụng trên cùng một máy chủ, trong đó
hành vi của một ứng dụng không làm ảnh hưởng đến các ứng dụng khác. Ngoài ra để giới hạn
quyền truy cập đến hệ điều hành, môi trường thực thi cũng giới hạn việc sử dụng CPU và bộ
nhớ . App Engine giữ các giới hạn này linh hoạt và chặt chẽ hơn các giới hạn này để các ứng
dụng sử dụng nhiều tài nguyên hơn để bảo vệ tài nguyên được chia sẻ từ những ứng dụng

“không mong muốn”.
Mỗi yêu cầu có tối đa 30s để trả về phản hồi cho client. Mặc dù thời gian này có vẻ đáp
ứng tốt cho một ứng dụng web, nhưng App Engine được tối ưu hóa cho các ứng dụng đáp ứng
chưa đầy một giây. Ngoài ra nếu một ứng dụng sử dụng nhiều CPU, App Engine có thể làm
chậm nó xuống, nên các ứng dụng không trì hoãn bộ vi xử lý trên một máy phục vụ đa ứng
dụng. Một CPU tập trung xử lý yêu cầu có thể mất nhiều thời gian để hoàn thành, khi App
Engine dò tìm các mô hình theo cách sử dụng CPU và phân bổ cho phù hợp.
Google App Engine cung cấp hai môi trường thực thi chính cho các ứng dụng. Đó là Java
và Python, hiện đang thử nghiệm trên Go. Môi trường chúng ta chọn sẽ phụ thuộc vào ngôn
ngữ và những công nghệ liên quan khi chúng ta dùng để phát triển ứng dụng.
Môi trường Java thực thi các ứng dụng được viết cho JVM6. Ứ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: ví dụ PHP (dùng Quercus), Ruby (dùng JRuby), Javascript (dùng
Rhino), Scala, Groovy. App Engine cũng hỗ trợ Google Web Tootkit (GWT).
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.5. App Engine gọi các ứng dụng Python nhờ vào CGI. Ứ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. Cả hai môi trường Java và Python đều sử dụng chung một mô hình: một yêu cầu gửi
đến ứng dụng trên server, ứng dụng được kích hoạt (nếu cần thiết), gọi bộ phận xử lý yêu cầu
và trả về kết quả cho client. Mỗi môi trường sử dụng bộ tiền xử lý (interpreter) cho riêng mình
(JVM hay Python).
HVTH: Nhan Thanh Nhã Page 20
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
3.3. Mô hình kiến trúc và các dịch vụ của GAE
Trong mô hình kiến trúc nà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.
Hình 3.1 Kiến trúc GA
3.4. Các thành phần chính của AppEngine
Python Runtime
AppEngine hỗ trợ Python Runtime phiên bản 2.5.2. Hầu hết các thư viện của Python
Standard Library đều được hỗ trợ. Tuy nhiên do vấn đề về security nên các extensions
viết bằng C sẽ không được hỗ trợ. Điều này có nghĩa rằng bạn không thể nhúng C extensions
vào ứng dụng của bạn khi sử dụng App Engine.
Python Runtime cung cấp APIs cho datastore, Google Accounts, App Engine services.
Để tiện lợi cho việc phát triển web AppEngine cũng cung cấp 1 web framework đơn giản là
webapp. Do viết bằng ngôn ngữ Python nên AppEngine hỗ trợ hầu hết các Python
framework như Django, CherryPy, Pylons, web.py với một ít thay đổi nhất định.
HVTH: Nhan Thanh Nhã Page 21
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
Java Runtime Environment
Bạn có thể phát triển ứng dụng của bạn cho Java Runtime Environmentsử dụng phổ
biến công cụ phát triển web Java và các tiêu chuẩn API. Ứng dụng của bạn tương tác với môi
trường bằng cách sử dụng the Java Servlet standard, và có thể sử dụng các công nghệ ứng
dụng web phổ biến như JavaServer Pages(JSP).
Java Runtime Environment sử dụng Java 6. Các App Engine Java SDK hỗ
trợ phát triển các ứng dụng bằng cách sử dụng Java 5 hoặc 6. Đối với các kho dữ liệu App
Engine, Java SDK bao gồm việc triển khai của Java Data Objects (JDO)và Java Persistence
API (JPA) interfaces. Ứng dụng của bạn có thể sử dụng các API JavaMail để gửi tin nhắn
email với dịch vụ App Engine Mail. Các java.net HTTP API truy cập vào App Engine lấy
URL dịch vụ. App Engine cũng bao gồm các API cấp thấp cho các dịch vụ của mình để thực
hiện thêm bộ điều hợp, hoặc sử dụng trực tiếp từ ứng dụng. Xem tài liệu cho the datastore,
memcache, URL fetch, mail, images and Google Accounts APIs.

Thông thường, các nhà phát triển Java sử dụng các ngôn ngữ lập trình Java và các API
để thực hiện các ứng dụng web cho JVM. Với việc sử dụng các trình biên dịch tương thích với
JVM, người phiên dịch, bạn cũng có thể sử dụng các ngôn ngữ khác để phát triển các ứng
dụng web, chẳng hạn như JavaScript, Ruby, hoặc Scala.
Datastore
Datastore là cơ chế để thao tác với dữ liệu trên hệ thống dữ liệu phân tán của Google.
APIs của Datastore sẽ cung cấp cho bạn Interface để có thể thao tác với các dữ liệu phía dưới.
Google Accounts
AppEngine liên kết mật thiết với tài khoản Google. Bạn có thể cho user login vào ứng
dụng của mình bằng tài khoản Google của họ.
App Engine Services
Cung cấp nhiều dịch vụ để bạn có thể sử dụng cho ứng dụng của mình. Những dịch vụ
có thể liệt kê ở đây là: URL Fetch, Mail, Memcache, Image Manipulation
3.5. Hạn chế
Tuy nhiên, mặt trái của việc xây dựng ứng dụng trên GAE là bạn sẽ phụ thuộc hoàn
toàn vào các công nghệ của Google và rất khó có thể tách ra thành một ứng dụng độc lập.
yahoo hay Microsoft sẽ chẳng bao giờ mua một ứng dụng xây dựng trên nền tảng của đối thủ.
Còn các nhà đầu tư cũng rất e ngại khi tài sản của công ty bạn đặt hết vào tay người khác, dù
cho đó là Google.
HVTH: Nhan Thanh Nhã Page 22
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
3.6. Hướng dẫn sử dụng Google App Engine
 Bước 1. Cài đặt jdk
Download Link: />Tải bản cho windows về, cài đặt bình thường. Sau khi cài đặt xong thì vào cmd, gõ
java –version, nếu thấy thong tin về phiên bản jdk là ok.
 Bước 2. Cài đặt eclipse
Download Link:
/>file=/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-win32.zip
Tải về, giải nén là dung được luôn
 Bước 3. Cài đặt Google App Engine development kit cho eclipse

Vào trang này để đọc hướng dẫn chi tiết:
/>Đến bước này thì có thể phát triển ứng dụng cho Google App engine được rồi, chạy
trên localhost
 Bước 4. Đăng ký tài khoản google app engine để deploy chương trình chạy trên
môi trường thật
Regíster link: /> Bước 5. Cài đặt SVN Subclipse để dung google project hosting làm nơi tập trung
chứa source code
 B5.1. Download file nén:
http:// subclipse.tigris.org/files/documents/906/47423/site-1.6.10.zip
 B5.2. Giải nén file vừa download về, cho tất cả vào thư mục [plugins] trong thư
mục đã cài đặt Eclipse.
 B5.3. Khởi động lại eclipse. Vào menu: Windows -> Show View ->
Others , gõ SVN vào hiện ra bảng sau, chọn SVN Repositories:
HVTH: Nhan Thanh Nhã Page 23
Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
Ấn OK thì sẽ thấy bảng sau, ở phần dưới của cửa sổ eclipse
Click phải chuột chọn NEW
Paste địa chỉ này vào:
 B5.4. Chọn ok. Eclipse sẽ yêu cầu nhập username và password.
Cách lấy username và password, mọi người vào
sẽ thấy thông tin
như sau:
# Project members authenticate over HTTPS to allow committing changes. svn checkout
username
Như vậy sẽ thấy username của mình, ở đây là tranlamson, ấn vào link googlcode.com
password sẽ thấy password của mình. Dùng username và password này để nhập vào khi
eclipse yêu cầu nhập.
Nếu thành công thì sẽ thấy folder UploadImage như hình dưới, vừa upload folder này lên để
Demo
HVTH: Nhan Thanh Nhã Page 24

Đồ án: Tính toán lưới & Điện toán đám mây GVHD PGS TS Nguyễn Phi Khứ
Như vậy là setup môi trường thành công. Sẽ có một tutorial giới thiệu cách sử dụng svn
 Bước 6. Tải tài liệu hướng dẫn sử dụng:
Để sử dụng Google App Engine (GAE) thì tham khảo 2 nguồn chính sau:
- (tham khảo phần java)
- ebook upload trên project hosting
/>HVTH: Nhan Thanh Nhã Page 25

×