Tải bản đầy đủ (.pdf) (21 trang)

Tìm hiểu về dịch vụ Google App Engine của Google

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 (429.86 KB, 21 trang )

Tìm hiểu dịch vụ Google App Engine của Google

NHẬN XÉT ĐÁNH GIÁ
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................

Nhóm 3

Trang 1




Tìm hiểu dịch vụ Google App Engine của Google

LỜI MỞ ĐẦU
Hiện nay chúng ta nghe nói về điện toán đám mây (Cloud Computing) khá
nhiều. Đây là mô hình điện toán sử dụng mạng máy tính và phát triển dựa vào mạng
Internet. Điện toán đám mây là khái niệm tổng thể bao gồm các khái niệm như phần
mềm dịch vụ, Web 2.0 và các vấn đề khác xuất hiện gần đây, các xu hướng công
nghệ nổi bật nhưng chủ yếu dựa vào Internet để đáp ứng những nhu cầu điện toán
của người dùng.
Google App Engine (viết tắt là AppEngine hay GAE), một trong những nền
tảng điện toán đám mây phát triển hàng đầu trên thị trường. Ở đó, Google có 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 viết ứng dụng
của mình trên đó. Ứng dụng này sẽ chạy trên đám mây của Google. Google App
Engine cũng cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy
cập từ một trình duyệt web, còn các dữ liệu và phần mềm được lưu trên máy chủ.
Google App Engine là một hệ thống tích hợp đầy đủ các kĩ thuật cho một ứng
dụng web hiện đại. Google App Engine cung cấp một khả năng phát triển và triển
khai ứng dụng nhanh chóng, việc quản lý đơn giản, dễ dàng để quy mô như lưu
lượng truy cập và nhu cầu lưu trữ dữ liệu của ứng dụng lớn. Người dùng không cần
lo lắng đến phần cứng, các bản vá lỗi hoặc sao lưu.
Qua đó để nắm bắt được công nghệ tương lai này, em thực hiện đề tài: “Tìm
hiểu về dịch vụ Google App Engine của Google” .

Nhóm 3

Trang 2



Tìm hiểu dịch vụ Google App Engine của Google

CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
1. Khái niệm

Điện toán đám mây (tiếng Anh: Cloud Computing), còn gọi là điện toán máy chủ
ảo, là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng
Internet. Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào
cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ
phức tạp của các cơ sở hạ tầng chứa trong nó. Ở mô hình điện toán này, mọi khả
năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ",
cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó
"trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ
đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó. Theo
tổ chức IEEE "Nó là hình mẫu trong đó thông tin được lưu trữ thường trực tại các
máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy khách, bao gồm
máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các phương tiện
máy tính cầm tay,...".

Hình 1: Cloud Computing

Điện toán đám mây là khái niệm tổng thể bao gồm cả các khái niệm như phần
mềm dịch vụ, Web 2.0 và các vấn đề khác xuất hiện gần đây, các xu hướng công
nghệ nổi bật, trong đó đề tài chủ yếu của nó là vấn đề dựa vào Internet để đáp ứng
những nhu cầu điện toán của người dùng. Ví dụ, dịch vụ Google AppEngine cung

Nhóm 3

Trang 5



Tìm hiểu dịch vụ Google App Engine của Google

cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy nhập từ một
trình duyệt web, còn các phần mềm và dữ liệu đều được lưu trữ trên các máy chủ.
2. Lịch sử

Thuật ngữ điện toán đám mây xuất hiện bắt nguồn từ ứng dụng điện toán lưới
(grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility
computing) và phần mềm dịch vụ (SaaS).
Điện toán lưới đặt trọng tâm vào việc di chuyển một tải công việc (workload) đến
địa điểm của các tài nguyên điện toán cần thiết để sử dụng. Một lưới là một nhóm
máy chủ mà trên đó nhiệm vụ lớn được chia thành những tác vụ nhỏ để chạy song
song, được xem là một máy chủ ảo.
Với điện toán đám mây, các tài nguyên điện toán như máy chủ có thể được định
hình động hoặc cắt nhỏ từ cơ sở hạ tầng phần cứng nền và trở nên sẵn sàng thực hiện
nhiệm vụ, hỗ trợ những môi trường không phải là điện toán lưới như Web ba lớp
chạy các ứng dụng truyền thống hay ứng dụng Web 2.0.
3. Kiến trúc

Đại bộ phận hạ tầng cơ sở của điện toán đám mây hiện nay là sự kết hợp của
những dịch vụ đáng tin cậy được phân phối thông qua các trung tâm dữ liệu (data
center) được xây dựng trên những máy chủ với những cấp độ khác nhau của các
công nghệ ảo hóa. Những dịch vụ này có thể được truy cập từ bất kỳ đâu trên thế
giới, trong đó Đám mây là một điểm truy cập duy nhất cho tất cả các máy tính có
nhu cầu của khách hàng. Các dịch vụ thương mại cần đáp ứng yêu cầu chất lượng
dịch vụ từ phía khách hàng và thông thường đều đưa ra các mức thỏa thuận dịch vụ
(Service level agreement). Các tiêu chuẩn mở (Open standard) và phần mềm mã
nguồn mở (open source software) cũng góp phần phát triển điện toán máy chủ ảo.


Nhóm 3

Trang 6


Tìm hiểu dịch vụ Google App Engine của Google

Hình 2: Kiến trúc của điện toán đám mây.

4. Đặc điểm của điện toán đám mây
4.1: Tính tự phục vụ theo nhu cầu

• Đặc tính kỹ thuật của điện toán đám mây cho phép khách hàng đơn phương
thiết lập yêu cầu nguồn lực nhằm đáp ứng yêu cầu của hệ thống như: Thời
gian sử dụng Server, dung lượng lưu trữ, cũng như là khả năng đáp ứng
các tương tác lớn của hệ thống ra bên ngoài.
4.2: Truy cập diện rộng

• Điện toán đám mây cung cấp các dịch vụ chạy trên môi trường Internet do
vậy khách hàng chỉ cần kết nối được với Internet là có thể sử dụng được
dịch vụ.Các thiết bị truy xuất thông tin không yêu cầu cấu hình cao (thin
or thick client platforms) như : Mobile phone, Laptop và PDAs…
4.3: Dùng chung tài nguyên và độc lập vị trí

• 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”. Mô hình này cho phép tài
nguyên phần cứng và tài nguyên ảo hóa sẽ được cấp pháp động dựa vào
nhu cầu của người dùng. Khi nhu cầu người dùng giảm xuống hoặc tăng
nên thì tài nguyên sẽ được trưng dụng để phục vụ yêu cầu.


Nhóm 3

Trang 7


Tìm hiểu dịch vụ Google App Engine của Google

• Người sử dụng không cần quan tâm tới việc điều khiển hoặc không cần
phải biết chính xác vị trí của các tài nguyên sẽ được cung cấp. Ví dụ : Tài
nguyên sẽ được cung cấp bao gồm : Tài nguyên lưu trữ, xử lý, bộ nhớ,
băng thông mạng và máy ảo.
4.4: Khả năng co giãn nhanh chóng

• Khả năng này cho phép tự động mở rộng hoặc thu nhỏ hệ thống tùy theo
nhu cầu của người sử dụng một cách nhanh chóng. Khi nhu cầu tăng, hệ
thống sẽ tự động mở rộng bằng cách thêm tài nguyên vào. Khi nhu cầu
giảm, hệ thống sẽ tự động giảm bớt tài nguyên.
• 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ụ được nhiề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 chi phí do họ chỉ
trả phí cho những tài nguyên thực sự dùng.
4.5: Chi trả theo thực dùng

• Nhiều dịch vụ điện toán đám mây sử dụng mô hình điện toán theo nhu cầu,
mô hình tương tự với cách các tiện ích theo nhu cầu truyền thống như điện
được tiêu thụ, trong khi một số khác tiếp thị dựa vào tiền đóng trước. Điện
toán đám mây cho phép giới hạn dung lượng lưu trữ, băng thông, tài
nguyên máy tính và số lượng người dùng kích hoạt theo tháng.
• Ngoài năm đặc điểm chính đã mô tả ở trên, điện toán đám mây còn cung
cấp một số các đặc điểm sau :

• Độ tin cậy: Độ tin cậy cải thiện thông qua việc sử dụng các site có nhiều
dư thừa, làm nó thích hợp cho tính liên tục trong kinh doanh và khôi phục
thất bại. Tuy nhiên, phần lớn các dịch vụ của cloud computing có những
lúc thiếu hụt và người giám đốc kinh doanh, IT phải làm cho nó ít đi.
• Hiệu suất: Hiệu suất hoạt động được quan sát và các kiến trúc nhất quán,
kết nối lỏng lẽo được cấu trúc dùng web service như giao tiếp hệ thống.
• Khả năng chịu đựng: Khả năng chịu đựng xảy ra thông qua việc tận dụng
tài nguyên đã được cải thiện, các hệ thống hiệu quả hơn. Tuy nhiên, các
máy tính và cơ sở hạ tầng kết hợp là những thứ tiêu thụ năng lượng chủ
yếu.

Nhóm 3

Trang 8


Tìm hiểu dịch vụ Google App Engine của Google

5. Mô hình dịch vụ trong điện toán đám mây

Dịch vụ Cloud Computing (CC) rất đa dạng và bao gồm tất cả các lớp dịch vụ
điện toán từ cung cấp năng lực tính toán trên dưới máy chủ hiệu suất cao hay các
máy chủ ảo, không gian lưu trữ dữ liệu, hay một hệ điều hành, một công cụ lập trình,
hay một ứng dụng kế toán… Các dịch vụ cũng được phân loại khá đa dạng, nhưng
các mô hình dịch vụ CC phổ biến nhất có thể được phân thành 3 nhóm: Dịch vụ hạ
tầng (IaaS), Dịch vụ nền tảng (PaaS) và Dịch vụ phần mềm (SaaS).
5.1: Dịch vụ hạ tầng Iaas (Infrastructure as a Service)

Dịch vụ IaaS cung cấp dịch vụ cơ bản bao gồm năng lực tính toán, không gian
lưu trữ, kết nối mạng tới khách hàng. Khác hàng (cá nhân hoặc tổ chức) có thể sử

dụng tài ngiên hạ tầng này để đáp ứng nhu cầu tính toán hoặc cìa đặt ứng dụng riêng
cho người sử dụng. Với dịch vụ này khác hàng làm chủ hệ điều hành, lưu trữ các
ứng dụng do khách hàng cài đặt. Khách hàng điển hình của dịch vụ IaaS có thể là
mọi đối tượng cần tới một máy tính và tự cài đặt ứng dụng của mình.Ví dụ điển hình
về dịch vụ này là dịch vụ EC2 của Amazon. Khách hàng có thể đăng ký sử dụng một
máy tính ảo trên dịch vụ của Amazon và lựa chọn một hệ điều hành (ví dụ, Windows
hoặc Linux) và tự cài đặt ứng dụng của mình.
5.2: Dịch vụ nền tảng PaaS (Platform as a Service)

Dịch vụ PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển các
phần mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng
Cloud đó. Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa
(middleware), các ứng dụng chủ (application server) cùng các công cụ lập trình với
ngôn ngữ lập trình nhất định để xây dựng ứng dụng. Dịch vụ PaaS cũng có thể được
xây dựng riêng và cung cấp cho khách hàng thông qua một API riêng. Khách hàng
xây dựng ứng dụng và tương tác hạ tầng CC thông qua API đó. Ở mức PaaS, khách
hàng không quản lý nền tảng Cloud hay các tài nguyên lớp như hệ điều hành, lưu
giữ ở lớp dưới. Khách hàng điển hình của dịch vụ PaaS chính là các nhà phát triển
ứng dụng (ISV).
Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép
khách hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát triển
dự trên ngôn ngữ lập trình Java hoặc Python.
5.3: Dịch vụ phần mềm SaaS (Software as a Service)

Dịch vụ SaaS cung cấp các ứng dụng hoàn chỉnh như một dịch vụ theo yêu
càu cho nhiều khách hàng với chỉ một phiên bản cài đặt. Khách hàng lựa chọn ứng

Nhóm 3

Trang 9



Tìm hiểu dịch vụ Google App Engine của Google

dụng phù hợp với nhu cầu và sử dụng mà không quan tâm hay bỏ công sức quản lý
tài nguyên tính toán bên dưới.
Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng cho
doanh nghiệp mà nổi bật nhất là CRM. Các ứng dụng SaaS cho người dùng cuối phổ
biến là các ứng dụng Office Online của Microsoft hay Google Docs của Google.
6. Các mô hình triển khai của điện toán đám mây

Có 4 mô hình triển khai chính đám mây đó là: Đám mây công cộng (Public
Cloud), đám mây riêng (Private Cloud) , đám mây lai (Hybrid Cloud) và đám mây
cộng đồng (Community Cloud)

Hình 3: Mô hình triển khai điện toán đám mây

6.1: Private Cloud

Đám mây riêng và các đám mây nội bộ là thuật ngữ được sử dụng để cập đến
điện toán đám mây chạy trên mạng riêng. Trong đó sử dụng thế mạnh của công nghệ
ảo hóa để thực hiện việc quản lý các tài nguyên, cơ sở hạ tầng và các dịch vụ trong
đám mây riêng đượ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ể chủ động 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ụ. Doanh nghiệp sở hữu cơ sở hạ tầng và quản lý các
ứng dụng được triển khai trên đó.

Nhóm 3

Trang 10



Tìm hiểu dịch vụ Google App Engine của Google

Hình 4 : Mô hình đám mây riêng

Đám mây riêng có thể được xây dựng và quản lý bởi chính đội ngũ IT của doanh
nghiệp hoặc có thể thuê một nhà cung cấp dịch vụ đảm nhiệm công việc này.
6.2: Public Cloud

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 tài nguyên trong đám mây sẽ được cấp phát động, Các dịch vụ được cung
cấp thông qua môi trường internet. Khách hàng sử dụng dịch vụ sẽ được lợi là chi
phí đầu tư thấp, giảm thiểu rủi ro do nhà cung cấp dịch vụ đã gánh vác nhiệm vụ
quản lý hệ thống, cơ sở hạ tầng, bảo mật ngoài ra đám mây công cộng còn cung cấp
khả năng co giãn theo yêu cầu của người sử dụng.

Nhóm 3

Trang 11


Tìm hiểu dịch vụ Google App Engine của Google

Hình 5 : Mô hình đám mây công cộng

Public Cloud có một trở ngại, đó là vấn đề mất kiểm soát về dữ liệu và vấn đề an
toàn dữ liệu. Trong mô hình này mọi dữ liệu đều nằm trên dịch vụ Cloud, do nhà

cung cấp dịch vụ Cloud đó bảo vệ và quản lý. Chính điều này khiến cho khách hàng,
nhất là các công ty lớn cảm thấy không an toàn đối với những dữ liệu quan trọng của
mình khi sử dụng dịch vụ Cloud.
6.3: Community Cloud

Đám mây cộng đồng được xây dựng nhằm mục đích chia sẻ hạ tầng giữa các
tổ chức(doanh nghiệp). Ví dụ các doanh nghiệp hoạt động trong cùng lĩnh vực y tế
có thể chia sẻ chung đám mây. Tuy nhiên để xây dựng đám mây công đồng thì ngoài
việc cùng chung lĩnh vực hoạt động kinh doanh thì các doanh nghiệp cần phải có
nhiều điểm tương đồng như có cùng mối quan tâm chung về bảo mật, …Khi đó các
doanh nghiệp này sẽ nhóm họp nhau lại để cùng xây dụng đám mây cộng đồng chung
nhằm phục vụ cho chính các doanh nghiệp của họ.

Nhóm 3

Trang 12


Tìm hiểu dịch vụ Google App Engine của Google

Hình 6 : Mô hình đám mây cộng đồng

Khi triển khai điện toán đám mây cộng đồng các doanh nghiệp thực hiện quản
lý theo nhiêu cách.
Các doanh nghiệp có thể nhóm họp nhau lại và cùng tham gia quản lý đám
mây bằng chính nguồn lực của họ.
Nếu triển khai đám mây dựa trên nền tảng nhà cung cấp thứ ba thì họ có thể
lựa nguồn lực bên ngoài để tiến hành quản lý.
Đám mây cộng đồng có thể liên quan tới nhiều tổ chức doanh nghiệp, các
doanh nghiệp này có thể có nhiều chi nhánh, do vậy để thực hiện quản lý có hiệu

quả cần phải chỉ định người (nhóm) quản lý đám mây phải là người (nhóm) đứng
đầu các tổ chức doanh nghiệp. Họ phải có trách nhiều đôn đốc, kết hợp với các nhà
quản lý chi nhánh để cùng tham gia quản lý đám mây cộng đồng.
Thiết lập, chạy và điều hành điện đám mây cộng đồng một chút giống như
điều hành bệnh viện, trường học vì vậy chắc hẳn sẽ xuất hiện những vấn đề và những
rủi ro, người điều hành cần phải có một kế hoạch cụ thể nhằm giảm thiểu và xử lý
những vấn đề phát sinh gặp phải.

Nhóm 3

Trang 13


Tìm hiểu dịch vụ Google App Engine của Google

Quá trình xây dựng và triển khai đám mây cộng đồng là tốn kém hơn nhưng nó
đáp ứng được sự riêng tư, an ninh và có thể thiết lập các quy tắc để tuân thủ các
chính sách thực hiện quản lý đám mây giữa các doanh nghiệp.
6.4: Hybrid Cloud

Ý tưởng hình thành của đám mây lai đó là việc triển khai đám mây dựa trên
ưu điểm của đám mây riêng và đám mây công cộng. Với đám mây công cộng dễ áp
dụng, chi phí thấp nhưng không an toàn Ngược lại, Private Cloud an toàn hơn nhưng
tốn chi phí và khó áp dụng.

Hình 7: Mô hình đám mây lai

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).

Nhóm 3

Trang 14


Tìm hiểu dịch vụ Google App Engine của Google

7. Các nhà cung cấp

Điện toán đám mây đang được phát triển và cung cấp bởi nhiều nhà cung cấp,
trong đó có Amazon, Google, EXA, và Salesforce cũng như những nhà cung cấp
truyền thống như Sun Microsystems, HP, IBM, Intel, Cisco và Microsoft. Nó đang
được nhiều người dùng cá nhân cho đến những công ty lớn như General Electric,
L'Oréal, Procter & Gamble và Valeo chấp nhận và sử dụng.
8. Ưu, nhược điểm của điện toán đám mây
8.1: Ưu điểm

• Với những ưu điểm dưới đây công nghệ điện toán đám mây đã trở thành mô
hình công nghệ được áp dụng rộng rãi trên khắp thế giới.
• Tốc độ xử lý nhanh, cùng một gói băng thông nhưng khi sử dụng mô hình
đám mây tốc độ truy xuất sẽ nhanh hơn rất nhiều so với những dòng máy chủ
VPS, cung cấp cho người dùng những dịch vụ chất lượng tốt nhất với giá
thành gần như hoàn toàn miễn phí.
• Đối với những tổ chức, hoặc công ty khi sử dụng công nghệ điện toán đám
mây này sẽ giảm bớt được chi phí đầu tư ban đầu về cơ sở hạ tầng, bên cạnh
đó những chi phí như máy móc và nguồn nhân lực cũng sẽ được giảm đến
mức thấp nhất.

• Loại bỏ được yếu tố vật lý và địa lý, với không gian ảo, điện toán đám mây sẽ
cho phép người dùng truy cập và sử dụng hệ thống thông qua mạng Internet
ở bất kỳ đâu và trên bất kỳ thiết bị nào mà họ sử dụng.
• Với khả năng tiện dụng, cộng nghệ điện toán đám mây phù hợp với nhiều mô
hình công việc, có thể áp dụng cho nhiều lĩnh vực. Đáp ứng được mọi nhu cầu
từ phổ thông đến những nhu cầu trong kinh doanh và nghiên cứu khoa học…
• Khả năng mở rộng và thu hẹp nhanh chóng, tránh được tình trạng hoang phí
hay thiếu hụt tài nguyên khi triển khai công việc, giúp cải thiện chất lượng các
dịch vụ được cung cấp trên điện toán đám mây.
• Với mô hình 3 lớp của điện toán đám mây, khả năng bảo mật có thể nói là
tương đối ổn.
• Các ứng dụng triển khai trên nền tảng điện toán đám mây có thể dễ dàng sửa
chữa và cải thiện về tính năng, bởi chúng không được cài đặt cố định trên một
máy tính nào.

Nhóm 3

Trang 15


Tìm hiểu dịch vụ Google App Engine của Google

8.2: Nhược điểm

Với nhiều khả năng hay và tiện dụng như vừa kể trên, tuy nhiên, mô hình điện
toán đám mây vẫn còn mắc phải một số nhược điểm sau:
• Nhìn chung thì với mô hình điện toán đám mây nhược điểm lớn nhất vẫn chính
là vấn đề về bảo mật và tính riêng tư của người dùng, bên cạnh đó tình trạng
mất dữ liệu vấn có thể xảy ra khi lỗi hệ thống. Việc bị các hacker tấn công
quấy rối gây tổn thất cho người dùng và nhà cung cấp cũng không thể tránh

khỏi. Dù rằng là công nghệ tiên tiến có sức chứa cực khủng và truy cập nhanh,
thế nhưng tình trạng quá tải vẫn có thể xảy ra khiến một số hoạt động có thể
bị ngưng trệ. Thế nhưng đây cũng là nhược điểm chung thường thấy ở những
dòng máy chủ ảo trước đây.
• Một vấn đề khác liên quan đến nhà cung cấp, đó là khi khách hàng muốn thay
đổi nhà cung cấp thì việc chuyển đổi dữ liệu sang đám mây của nhà cung cấp
khác cũng là một vấn đề tương đối mệt mỏi. Do đó bạn có thể sẽ phụ thụ rất
nhiều vào nhà cung cấp, và hầu như có rất ít người nghĩ rằng sẽ thay đổi nhà
cung cấp khi mà việc chuyển đổi dữ liệu sẽ mất nhiều công sức và thời gian.

Nhóm 3

Trang 16


Tìm hiểu dịch vụ Google App Engine của Google

CHƯƠNG 2: KIẾN TRÚC GOOGLE APP ENGINE
1. Giới thiệu về Google App Engine

Google App Engine (gọi tắt là GAE hay App Engine) 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ý (google – managed data centers).
GAE là một dịch vụ lưu trữ các ứng dụng web. Khi nói đến “ứng dụng web”,
chúng ta muốn nói tới các ứng dụng hay dịch vụ được truy cập trên các trang web,
thường là thông qua trình duyệt web: web mua bán, mạng xã hội… kể cả các trang
web truyền thống như xử lý văn bản hay hình ảnh nhưng được thiết kế dành cho thời
gian thực.
Google sẽ cung cấp một hệ thống gồm: ngôn ngữ lập trình, hệ cơ sở dữ liệu,
các thư viện lập trình. Khi đó, người lập trình sẽ viết ứng dụng và ứng dụng này sẽ

chạy trên các máy chủ của Google.
GAE được thiết kế để lưu trữ những ứng dụng và phục vụ nhiều người dùng
một cách đồng thời. Khi một ứng dụng có thể phục vụ nhiều người dùng một cách
đồng thời mà không làm giảm hiệu suất, chúng ta gọi đó là sự co giãn(scale).
Những ứng dụng được viết cho App Engine sẽ được co giãn một cách tự động.
Càng nhiều người sử dụng chương trình, App Engine sẽ tạo ra càng nhiều tài nguyên
cho ứng dụng đó và quản lý chúng.
Xây dựng, mua, hay mượn? Đó là câu hỏi khó. Nhiều doanh nghiệp có cả một
danh sách phần cứng để chạy các ứng dụng như các cơ sở dữ liệu, các máy chủ ứng
dụng, các hệ thống quản lý thay đổi và các công cụ lần vết tìm lỗi. Tuy vậy, ngày
nay danh sách này có thể dễ dàng vứt bỏ để thay bằng việc sử dụng chính gói phần
mềm ấy dưới dạng một dịch vụ (SaaS) đang chạy trên một cơ sở hạ tầng của người
nào đó khác. Toàn bộ chồng ứng dụng mà một nhóm làm việc có thể phải sử dụng
để quản lý một quá trình phát triển có thể được vay mượn — nghĩa là, thuê với một
khoản phí nhỏ — giải phóng cho công ty khỏi phải đầu tư vào phần cứng để chạy
chúng. Ví dụ, thay vì mua một máy tính để chạy một hệ thống quản lý thay đổi (như
Subversion hoặc Git, cả hai là mã nguồn mở và có sẵn miễn phí), một nhóm làm
việc có thể sử dụng một dịch vụ quản lý thay đổi dùng chung như GitHub. Công ty
đằng sau GitHub phải gánh chịu chi phí của các tài sản phần cứng và tính một chi
phí danh nghĩa (thường là hàng tháng cho mỗi người dùng) cho các tổ chức khác sử
dụng Git. Cùng một nguyên tắc thuê phần mềm như là một dịch vụ từ các nhà cung

Nhóm 3

Trang 17


Tìm hiểu dịch vụ Google App Engine của Google

cấp khác như thế này có thể được áp dụng cho việc lần vết tìm lỗi, quản lý các bài

kiểm thử và quản lý các yêu cầu (ví dụ qua JIRA Hosted hoặc Pivotal Tracker). Cũng
có thể nói giống như vậy đối với các tài sản phần cứng nằm dưới mà các nền tảng
phần mềm khác (về bản chất, thường là tùy chỉnh) chạy trên đó. Một doanh nghiệp
có thể vứt bỏ phần cứng nằm bên dưới của một ứng dụng web cụ thể để thay bằng
việc chạy ứng dụng trên phần cứng được cung cấp bởi Amazon, Google hoặc các
đối tác khác. Các công ty này đưa ra khả năng thuê phần cứng ở các mức độ khác
nhau, vừa vặn có thể lưu trữ một ứng dụng. Hơn nữa, các công ty này quản lý khả
năng mở rộng, sao lưu và thậm chí cả an ninh nữa. Hãy suy nghĩ về nó một lát:
Amazon và Google đã nêu ra những mối quan tâm này (và nhiều hơn nữa) từ lâu rồi
và đối phó tốt hơn với chúng, có nhiều đổi mới xung quanh các khía cạnh của việc
chạy các nền tảng phần mềm sao cho hiệu quả. Bằng cách sử dụng App Engine của
Google, ví dụ thế, một công ty CNTT có thể hạ thấp tổng chi phí mua một cơ sở hạ
tầng để chạy các ứng dụng cần thiết. Và họ có thể triển khai các ứng dụng đó nhanh
hơn vì vô số các mối quan tâm đan chéo nhau, kết hợp với việc triển khai ứng dụng
và quản lý đã được tính đến và vì thế được cung cấp cho họ (với nhiều khả năng là
theo một cách tốt hơn). Nhanh và rẻ không còn có nghĩa là chất lượng thấp.
Không giống như những server cung cấp những dịch vụ thông thường hay các
server có chức năng tự quản lý, với GAE chúng ta chỉ phải trả tiền cho những tài
nguyên mà chúng ta sử dụng. Những tài nguyên này được đo bằng gigabyte và không
có bất kỳ lệ phí hàng tháng nào.
Google App Engine được cung cấp miến phí cho mỗi ứng dụng trong một giới
hạn, khi các ứng dụng vượt qua mức quá hạn mức thì phải trả thêm khoản phí cho
mức vượt quá này.
2. Môi trường phát triển

Hiện tại App Engine hỗ trợ khá nhiều ngôn ngữ như: Node.js, Java, Ruby,
C#, Go, Python, Php. Trong đó Java và Python là 2 ngôn ngữ chính.
Trong GAE, tùy vào ứng dụng viết theo ngôn ngữ nào, nó sẽ được chay trên
môi trường tương ứng của ngôn ngữ đó. Bên cạnh đó, chúng ta sẽ được cung cấp
miễn phí các dịch vụ của Google như URL Fetch, Mail, Memcache, … và được lưu

trữ trên cơ sở dữ liệu hướng đối tượng datastore.

Nhóm 3

Trang 18


Tìm hiểu dịch vụ Google App Engine của Google

3. Các thành phần và chức năng GAE
3.1: Môi trường thực thi

GAE cung cấp 2 môi trường tốt là Java và Python cho ứng dụng. Môi trường
chúng ta chọn 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.
Cả 2 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, gọi bộ phận xử lý yêu
cầu và trả về kết quả cho client.
3.2: Các file server tĩnh

Hầu hết các web service có mốt số tài nguyên mà chúng chuyển đến trình
duyệt không thay đổi trong suốt hoạt động của site. Ví dụ các hình ảnh và các site
Css hỗ trợ hiển thị, các đoạn mã Javascript chạy trên trình duyệt, và các file HTML
tĩnh. Việc này làm giảm hiểu quả làm việc của server ứng dụng.
Thay vì thế, App Engine cung cấp một tập các server tách biệt chuyên làm
nhiệm vụ trao đổi các file tĩnh này. Chúng ta upload các file tĩnh cùng với code ứng
dụng và có thể cấu hình vài cách hiển thị cho file này dồng thời hướng dẫn cho trình
duyệt lưu các bản sao file này trong bộ nhớ cache để giảm lưu lượng và tăng tốc cho
web.
3.3: Kho dữ liệu (datastore)


Hầu hết mọi ứng dụng web đều cần một nơi để chứa thông tin khi xử lý yêu
cầu từ phía client và lấy thông tin cho những lần xử lý sau này. Việc sử dụng một
server làm trung tâm dữ liệu là một ý tưởng rất hay nhưng có vấn đề xẩy ra khi có
nhiều kết nối đến server này.
Với datastore của GAE vấn đề sẽ được giải quyết với việc xử lý phân tán dữ
liệu và “co giãn” ứng dụng.
3.4: Thực tế và thuộc tính

Một ứng dụng App Engine có thể chứa dữ liệu trong một hay nhiều thực thể
datastore. Mỗi thực thể có một hay nhiều thuộc tính, mỗi thuộc tính đều có tên và
giá trị. Mỗi thực thể đều được phân loại để dễ truy vấn. Mỗi thực thể có một khóa
riêng (key) phân biệt lẫn nhau được cung cấp bổi một ứng dụng hoặc do App Engine.
Khác với CSDL quan hệ, khóa của thực thể không phải là thuộc tính, nó tồn tại độc
lập với thực thể. Khóa của thực thể không được thay đổi khi thực thể được tạo ra.

Nhóm 3

Trang 19


Tìm hiểu dịch vụ Google App Engine của Google

Với App Engine, mỗi câu truy vấn sẽ có một chỉ mục trong datastore. Khi ứng
dụng cần thực hiện một câu truy vấn, thì datastore sẽ tìm chỉ mục của câu truy vấn
đó. Khi chúng ta tạo mới một thực thể và cập nhật cái cũ thì datastore sẽ cập nhật lại
chỉ mục. Điều nay giúp cho câu truy vấn được nhanh hơn.
3.5: Truy vấn và chỉ mục

Một câu truy vấn trên datastore trả về không hoặc nhiều thực thể cùng loại với

nhau. Nó cũng có thể trả về các khóa của thực thể. Câu truy vấn có thể dựa vào các
giá trị thuộc tính của thực thể và được sắp xếp theo giá trị của thuộc tính. Câu truy
vấn cũng có thể làm việc với các khóa của thực thể. Với App Engine, mỗi câu truy
vấn sẽ có một chỉ mục trong datastore. Khi ứng dụng cần thực hiên một câu truy vấn,
thì datastore sẽ tìm chỉ mục của câu truy vấn đó. Khi chúng ta tạo mới một thực thể
và cập nhật cái cũ thì datastore cũng sẽ cập nhật lại chỉ mục. Điều này giúp cho câu
truy vấn được nhanh hơn.
3.6: Phiên giao dịch

Khi một ứng dụng có quá nhiều client liên tục đọc hay ghi cùng một dữ liệu
ở cùng một thời điểm, thì phiên giao dịch rất cần thiết để dữ liệu không bị đọc sai.
Mỗi phiên giao dịch là đơn vị nhỏ nhất và chỉ có hai trạng thái là thành công hoặc
thất bại. Một ứng dụng đọc hay cập nhật nhiều thực thể trong một phiên giao dịch,
nhưng nó phải nói cho App Engine biết những thực thể nào sẽ được cập nhật khi nó
tạo ra nhiều thực thể. Ứng dụng làm được điều này bởi việc tạo ra nhóm thực thể.
Nhờ nhóm thực thể, App Engine sẽ biết được các thực thể sẽ phân tán như thế nào
qua các server, Engine cũng hỗ trợ những phiên giao dịch nội bộ (local transaction).
Nếu một người dùng cố gắng cập nhật một thực thể trong khi người khác đang cập
nhật thực thể đó thì datastore sẽ ngay lập tức trả về một biệt lệ báo lỗi. Trong thuật
ngữ database, thì ta nói App Engine sử dụng “optimistic concurrency control”. Với
chỉ mục và “optimistic concurrency control”, App Engine được thiết kế giúp cho
ứng dụng có thể đọc dữ liệu nhanh hơn và đảm bảo hơn.
3.7: Các dịch vụ

Dịch vụ memcache là dịch vụ lưu trữ theo khóa – giá trị. Thuận lợi chính của
dịch vù này trên datastore là tốc độ nhanh, rất nhanh so với việc lưu trữ và lấy dữ
liệu một cách bình thường trên datastore. Memcache lưu trữ dữ liệu trên bộ nhớ thay
vì trên ổ đĩa để tăng tốc độ truy cập. Nó cũng phân tán như datastore truy nhiên
không lưu trữ, vì thế nếu mất điện thì memcache cũng mất.
Nhóm 3


Trang 20


Tìm hiểu dịch vụ Google App Engine của Google

Ứng dụng App Engine có thể truy cập các tài nguyên web khác nhờ dịch vụ
URL Fetch. Dịch vụ này tạo ra các yêu cầu theo dạng HTTP gửi đến server khác
trên internet như là việc tương tác với các service khác. Vì khi ta truy cập đến server
khác thời gian sẽ lây nên URL Fetch hỗ trợ chạy ngầm bên dưới trong khi xử lý các
yêu cầu khác.
Úng dũng App Engine có thể gửi mail dựa vào dịch vụ Mail, hoặc nếu được
cấu hình, nó có thể nhận được email.
Ứng dụng App Engine có thể gửi và nhận những thin nhắn đến các dịch vụ
chát có sử dũng giao thức XMPP bao gồm Google Talk.
3.8: Tài khoản

Chúng ta có thể sử dụng tài khoản trên Google cho các ứng dụng của chúng
ta. Và nếu người dùng của chúng ta đã có tài khoản trên Google, họ có thể đăng nhập
vào ứng dụng của chúng ta với các tài khoản đó mà không cần tạo tài khoản riêng
cho ứng dụng. Tất nhiên, điều đó không bắt buộc. Chúng ta luôn có thể xây dựng hệ
thống tài khoản riêng của mình hoặc sử dụng một provider OpenID.
3.9: Công cụ lập trình

Google cung cấp một số tool miễn phí cho việc phá triển ứng dụng App Engine
bằng ngôn ngữ Java và Python. Chúng ta có thể download software development kit
(SDK) cho ngôn ngữ tương ứng và hệ điều hành của chúng ta từ website Google.
Trang 17 Người dùng Java có thể down SDK cho Java trong form plug-in cho
Eclipse. Người dùng Python sử dụng Windows hoặc Mac OS X có thể tải SDK cho
Python từ form của giao diện ứng dụng. Các SDK đó đều có file zip, sử dụng

command-lines để trực tiếp tích hợp vào môi trường phát triển hoặc xây dựng hệ
thống. Mỗi SDK bao gồm một server web chạy ứng dụng của chúng ta tại máy cá
nhân, đóng vai trò môi trường thực thi,kho dữ liệu và các service. Server này tự động
phát hiện những thay đổi trong file source và load lại chúng nếu cần, vì thế chúng ta
có thể luôn mở server trong khi đang lập trình cho ứng dụng. Nếu chúng ta sử dụng
Eclipse, chúng ta có thể chạy server cho Java trong bộ tích hợp debugger, và có thể
đặt các breakpoint trong code. Chúng ta cũng có thể sử dụng Eclipse cho ứng dụng
phát triển Python dùng PyDev, một nhánh mở rộng của Eclipse, bao gồm bộ
debugger cho Python. Mỗi SDK cũng bao gồm một công cụ cho việc tương tác với
các ứng dụng chạy trên App Engine. Chủ yếu là sử dụng cho việc upload code lên
App Engine. Chúng ta cũng có thể sử dụng tool để download các file log từ ứng
dụng đang chạy, hoặc quản lý danh mục ứng dụng. SDK Python và Java gồm một

Nhóm 3

Trang 21


Tìm hiểu dịch vụ Google App Engine của Google

chức năng mà chúng ta có thể cài đặt trong ứng dụng cho việc truy cập có thứ tự từ
xa một cách an toàn đến ứng dụng. SDK Python bao gồm các công cụ dùng cho việc
xử lý dữ liệu lớn, như upload dữ liệu từ file text, và tải lượng lớn dữ liệu, hoặc sao
lưu cho mục đích lưu trữ. SDK cũng có commandline shell của Python cho việc test,
kiểm lỗi và thao tác với dữ liệu. (Các tool này có trong SDK cho Python, nhưng
cũng làm việc với các ứng dụng Java sử dụng phiên bản Java có chức năng truy cập
từ xa). Chúng ta có thể viết đoạn mã script và chương trình sử dụng chức năng truy
cập từ xa cho việc vận chuyển lượng lớn dữ liệu và các biện pháp bảo trì khác.
4. Các hạn chế của Google App Engine


• Các tập in lưu trữ lên App Engine chỉ có thể đọc- xóa (không sửa chữa).
• App Engine chỉ có thể chạy qua các yêu cầu HTTP (các dịch vụ khác có thể
chạy lệnh qua Console terminal).
• Các ứng dụng dùng python có thể sử dụng các thư viện của Python ngoài các
thư viện được cung cấp bởi App Engine nhưng phải là các thư viện viết bằng
python, C và Pyrex không đuộc hỗ trợ.
• Các ứng dụng java chỉ được sử dụng được các tập (The JRE Class White List)
các lớp viết từ JRE tiêu chuẩn.
• Không hỗ trợ tên miền ‘naked’(không có tiền tố www). Ví dụ
sẽ không chạy được trên App Engine mà phải là

• Datastore không lọc (filter) được hai thuộc tính cùng lúc. Ví dụ age> 4 and
age <10
5. Sự khác biệt với các dịch vụ khác

So với các dịch vụ điện toán đám mây khác như Amazon EC2, hoặc với các
hình thức viết trên máy chủ dịch vụ truyển thống App Engine cung cấp một môi
trường thuận lợi hơn để viết, đặc biệt cho các ứng dụng có nhu cầu mở rộng cho
người dùng đồng thời. App Engine giải quyết khó khăn trnog việc phát triển và quản
trị hệ thống khi xây dựng một ứng dụng lớn (hàng trăm yêu cầu trên giây).
Khi các mô hình yêu cầu người dùng cài đặt và thiết lập cấu hình thì App
Engine chỉ cần một màn hình quản trị, để quản trị cũng như mở rộng hay thu nhỏ
múc cung ứng dịch vụ.

Nhóm 3

Trang 22


Tìm hiểu dịch vụ Google App Engine của Google


TÀI LIỆU THAM KHẢO
1. “Quotas - Google App Engine - Google Code”. Code.google.com. Ngày 22 tháng
2 năm 1999.
2. “App Engine Developer Profiles - Google App Engine - Google Code”.
Code.google.com. Ngày 22 tháng 2 năm 1999
3. “gae-filestore - Simple Virtual File System on Google App Engine DataStore Google Project Hosting”. Code.google.com.
4. “The JRE Class White List - Google App Engine - Google Code”.
Code.google.com. Ngày 22 tháng 2 năm 1999.
5. “Issue 777 - googleappengine - Officially Support Naked Domains for GAE Apps
- Google App Engine - Google Project Hosting”. Code.google.com. Ngày 8 tháng
10 năm 2008.
6. “Google App Engine Datastore Gotchas « aleatory”. Aleatory.clientsideweb.net.
Ngày 28 tháng 11 năm 2009.
7. “Python Runtime Environment - Google App Engine”. Ngày 10 tháng 11 năm
2009.
8. “Quản trị các ứng dụng đã đăng ký trên App Engine”. Ngày 14 tháng 5 năm 2013.

Nhóm 3

Trang 23



×