BÁO CÁO MÔN HỌC
TÍNH TOÁN LƢỚI
Đề tài: Điện Toán Đám Mây - Nền Tảng Dịch Vụ
(PaaS) Và Google App Engine
GVHD: TS Phạm Trần Vũ
SVTH: Nguyễn Phan Anh (13070220)
Năm 2014
2
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
MỤC LỤC
MỤC LỤC
DANH MỤC HÌNH ẢNH
CHƢƠNG 1: ĐIỆN TOÁN ĐÁM MÂY
1.1 Điện toán đám mây là gì ?
1.2 Ưu điểm và lợi ích
1.3 Các đặc tính cơ bản
1.4 Mô hình phân phối
1.5 Mô hình dịch vụ
1.6 Trở ngại và thách thức
1.7 Các công ty cung cấp Điện toán đám mây
CHƢƠNG 2: NỀN TẢNG NHƢ LÀ DỊCH VỤ (PaaS)
2.1 PaaS là gì ?
2.2 Ưu điểm và lợi ích
2.3 Các đặc trưng cơ bản
2.4 Các thành phần và mô hình PaaS
2.5 Lựa chọn nhà cung cấp PaaS
2.6 Sự lệ thuộc vào nhà cung cấp
CHƢƠNG 3: GOOGLE APP ENGINE
3.1 Google App Engine là gì ?
3.2 Kiến trúc hoạt động
3.3 Các thành phần và chức năng chính
3.3.1 Môi trường thực thi
3.3.2 Tập tin server tĩnh
3.3.3 Kho dữ liệu
3.3.4 Tài khoản Google
3.3.5 Công cụ lập trình
3.4 Hạn chế
TÀI LIỆU THAM KHẢO
3
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
DANH MỤC HÌNH ẢNH
Hình 1.1 : Điện toán đám mây dưới góc nhìn của người sử dụng cuối.
Hình 1.2 : Điện toán đám mây dưới góc nhìn của nhà phát triển.
Hình 1.3 : Ưu điểm và lợi ích của Điện toán đám mấy.
Hình 1.4: Các đặc tính cơ bản của điện toán đám mây.
Hình 1.5: Ba mô hình phân phối Điện toán đám mây.
Hình 1.6: Ba mô hình dịch vụ cơ bản của Điện toán đám mây.
Hình 1.7: Ma trận so sánh ba mô hình dịch vụ cơ bản.
Hình 1.8: Mức độ kiểm soát của người sử dụng đối với ba mô hình dịch vụ cơ bản.
Hình 1.9: Các mô hình dịch vụ Điện toán đám mây.
Hình 1.10: Các công ty cung cấp Điện toán đám mây.
Hình 2.1: Nền tảng như là dịch vụ.
Hình 2.2: Các thành phần PaaS.
Hình 2.3: Mô hình PaaS.
Hình 3.1: Kiến trúc hoạt động của Google App Engine.
4
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
CHƢƠNG 1: ĐIỆN TOÁN ĐÁM MÂY
1.1. Điện toán đám mây là gì ?
Điện toán đám mây là một giải pháp toàn diện cung cấp công nghệ thông tin như một
dịch vụ. Nó là một giải pháp điện toán dựa trên Internet ở đó cung cấp tài nguyên chia sẻ
giống như dòng điện được phân phối trên lưới điện. Các máy tính trong các đám mây được
cấu hình để làm việc cùng nhau và các ứng dụng khác nhau sử dụng sức mạnh điện toán tập
hợp cứ như thể là chúng đang chạy trên một hệ thống duy nhất.
Tính linh hoạt của Điện toán đám mây là chức năng phân phát tài nguyên theo yêu
cầu. Điều này tạo điều kiện thuận lợi cho việc sử dụng các tài nguyên tích lũy của hệ thống,
phủ nhận sự cần thiết phải chỉ định phần cứng cụ thể cho một nhiệm vụ. Trước Điện toán
đám mây, các trang web và các ứng dụng dựa trên máy chủ đã được thi hành trên một hệ
thống cụ thể. Với sự ra đời của điện toán đám mây, các tài nguyên được sử dụng như một
máy tính gộp ảo. Cấu hình hợp nhất này cung cấp một môi trường ở đó các ứng dụng thực
hiện một cách độc lập mà không quan tâm đến bất kỳ cấu hình cụ thể nào.
Đối với người dùng cuối, Điện toán đám mây cung cấp các phần mềm và ứng dụng
trên môi trường Internet và họ có thể sử dụng chúng với nhiều loại thiết bị, phương tiện khác
nhau mọi lúc mọi nơi.
Hình 1.1 : Điện toán đám mây dưới góc nhìn của người sử dụng cuối.
5
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Đối với nhà phát triển ứng dụng và phần mềm, Điện toán đám mây cung cấp các
thành phần để xây dựng và phát triển các ứng dụng và phần mềm trên môi trường Internet
như môi trường phát triển, cơ sở dữ liệu…
Hình 1.2 : Điện toán đám mây dưới góc nhìn của nhà phát triển.
1.2. Ƣu điểm và lợi ích
Điện toán đám mây coi việc thuê ngoài như một giải pháp và nó mang lại cho người
dùng, doanh nghiệp sử dụng những lợi điểm:
Giảm thiểu chi phí: Người dùng, doanh nghiệp chỉ cần trả các chi phí liên quan tới
vận hành hệ thống hoặc chi phí sử dụng của ứng dụng và phần mềm. Nghĩa là người dùng sử
dụng bao nhiêu thì chỉ cần trả chi phí cho mục đích đó mà thôi.
Tập trung vào giá trị cốt lõi: Doanh nghiệp sử dụng Điện toán đám mây để cung
cấp ứng dụng và phần mềm có thể tập trung vào phát triển các giá trị cốt lõi của sản phẩm
hơn là phải quan tâm tới việc vận hành và duy trì phần cứng, phần mềm.
6
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Khả năng mở rộng vũng mạnh: Điện toán đám mây cho phép khả năng điều chỉnh
quy mô ngay lập tức hoặc tăng lên hoặc giảm xuống, bất cứ lúc nào mà không cần giao kết
dài hạn.
Hình 1.3 : Ưu điểm và lợi ích của Điện toán đám mấy.
1.3. Các đặc tính cơ bản
Điện toán đám mây có một số đặc tính cơ bản sau:
Phục vụ theo yêu cầu (On-demand self-service): Khả năng cung cấp cho một
khách hàng đơn lẻ có thể sử dụng điện toán như là máy chủ hoặc không gian lưu trữ mạng
và tự động được đáp ứng theo nhu cầu mà không cần phải yêu cầu thông qua nhân viên của
nhà cung cấp dịch vụ.
Sử dụng thông qua mạng (Broad network access): Khả năng sẵn sàng sử dụng
thông qua mạng và thông qua các cơ chế chuẩn nhằm thúc đẩy sử dụng cho nhiều nên tảng
phía khách hàng như điện thoại di động, máy tính bảng, máy tính xách tay và máy trạm, …
Tài nguyên gộp chung (Resource pooling): Tài nguyên của nhà cung cấp dịch vụ
được gộp lại để phục vụ nhiều khách hàng sử dụng mô hình đa người thuê (multi-tenant),
với nhiều tài nguyên ảo và tài nguyên vật lý khác nhau được bố trí và thu hồi một cách động
theo như yêu cầu của khách hàng.
Co giãn nhanh (Rapid elasticity): Khả năng có thể con giãn khi cung cấp và thu
hồi, tự động trong một số trường hợp, để co giãn quy mô nhanh chóng bên ngoài và bên
trong tương xứng với yêu cầu. Đối với khách hàng, các khả năng sẵn có cho trích lập dự
phòng thường xuất hiện không giới hạn và có thể được khai khác trong bất kỳ số lượng vào
bất cứ lúc nào.
Dịch vụ có thể do lƣờng (Measured service): Hệ thống điện toán đám mây tự động
kiểm soát và tối ưu hóa sử dụng tài nguyên bằng cách tận dụng khả năng đo lường ở một
mức độ trừu tượng thích hợp cho các loại hình dịch vụ (ví dụ: không gian lưu trữ, xử lý,
7
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
băng thông, và tài khoản sử dụng). Sử dụng tài nguyên có thể được theo dõi, kiểm soát và
báo cáo, cung cấp minh bạch cho cả nhà cung cấp và người tiêu dùng của các dịch vụ sử
dụng.
Hình 1.4: Các đặc tính cơ bản của điện toán đám mây.
1.4. Mô hình phân phối
Có ba mô hình phân phối của Điện toán đám mây:
- Điện toán đám mây công cộng
- Điện toán đám mây riêng tư
- Điện toán đám mây lai
8
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Hình 1.5: Ba mô hình phân phối Điện toán đám mây.
Các đám mây công cộng có sẵn cho công chúng hoặc một nhóm ngành nghề lớn và
do một tổ chức bán các dịch vụ đám mây sở hữu và cung cấp. Một đám mây công cộng là
cái mà người ta hình dung là đám mây theo nghĩa thông thường: đó là các tài nguyên được
cung cấp động trên Internet bằng cách sử dụng các ứng dụng web từ một nhà cung cấp bên
thứ ba bên ngoài cung cấp các tài nguyên chia sẻ và gửi hóa đơn tính cước trên cơ sở tính
toán việc sử dụng.
Các đám mây riêng tƣ tồn tại bên trong tường lửa của công ty bạn và do tổ chức
của bạn quản lý. Chúng là các dịch vụ đám mây do bạn tạo ra và kiểm soát trong doanh
nghiệp của mình. Các đám mây riêng tư cũng cung cấp nhiều lợi ích tương tự như các đám
mây công cộng, sự khác biệt chủ yếu là tổ chức của bạn chịu trách nhiệm thiết lập và duy trì
đám mây đó.
Các đám mây lai là một sự kết hợp của đám mây công cộng và riêng tư khi sử dụng
các dịch vụ có trong cả hai vùng công cộng và riêng tư. Các trách nhiệm quản lý được phân
chia giữa các nhà cung cấp dịch vụ đám mây công cộng và chính doanh nghiệp. Khi sử dụng
một đám mây lai, các tổ chức có thể xác định các mục tiêu và các yêu cầu của các dịch vụ
được tạo ra và có được chúng dựa vào sự lựa chọn thích hợp nhất.
1.5. Mô hình dịch vụ
9
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Các nhà cung cấp dịch vụ Điện toán đám mây cung cấp các dịch vụ của họ theo ba
mô hình dịch vụ cơ bản:
- Cơ sở hạ tầng như là dịch vụ (IaaS)
- Nền tảng như là dịch vụ (PaaS)
- Phần mềm như là dịch vụ (SaaS)
Hình 1.6: Ba mô hình dịch vụ cơ bản của Điện toán đám mây.
Tầng cơ sở hạ tầng là nền tảng của đám mây: Nó gồm có các tài sản vật lý bao
gồm các máy chủ, các thiết bị mạng, các ổ đĩa lưu trữ, v.v Cơ sở hạ tầng là một dịch
vụ (IaaS) có các nhà cung cấp như IBM® Cloud. Khi sử dụng IaaS bạn thực tế không kiểm
soát cơ sở hạ tầng nằm dưới, nhưng bạn có quyền kiểm soát các hệ điều hành, lưu trữ, triển
khai các ứng dụng và ở một mức độ hạn chế, có quyền kiểm soát việc lựa chọn các thành
phần mạng. Dịch vụ in theo yêu cầu (POD) là một ví dụ về các tổ chức có thể hưởng lợi từ
IaaS. Mô hình POD được dựa trên việc bán sản phẩm có khả năng tùy chỉnh. Các POD cho
phép các cá nhân mở cửa hàng và bán thiết kế các sản phẩm. Các chủ cửa hàng có thể tải lên
nhiều hay ít thiết kế tùy theo khả năng sáng tạo của họ. Có hàng ngàn lần tải lên. Với các
khả năng lưu trữ đám mây, một POD có thể cung cấp không gian lưu trữ không hạn chế.
Tầng nền tảng hệ thống là tầng giữa: Nó cung cấp cơ sở hạ tầng của ứng dụng.
Nền tảng hệ thống là một dịch vụ (PaaS) cung cấp sự truy cập đến các hệ điều hành và các
dịch vụ có liên quan. Nó cung cấp một cách để triển khai các ứng dụng lên đám mây bằng
cách sử dụng các ngôn ngữ lập trình và các công cụ do nhà cung cấp hỗ trợ. Bạn không cần
phải quản lý hoặc kiểm soát cơ sở hạ tầng nằm dưới, nhưng bạn có quyền điều khiển các
ứng dụng đã triển khai và ở một mức độ nào có quyền điều khiển ứng dụng sử dụng các cấu
hình môi trường trên máy tính chủ.PaaS có các nhà cung cấp như là Elastic Compute Cloud
(EC2) của Amazon. Nhà phần mềm doanh nhân nhỏ là một hoạt động kinh doanh lý tưởng
10
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
đối với PaaS. Với nền tảng hệ thống đã chọn lọc kỹ, có thể tạo ra các sản phẩm đẳng cấp thế
giới mà không thêm gánh nặng cho hệ thống đang chạy trong công ty.
Tầng ứng dụng là tầng trên cùng: tầng mà hầu hết mọi người xem như là đám
mây. Các ứng dụng chạy ở đây và được cung cấp theo yêu cầu của những người dùng. Phần
mềm là một dịch vụ (SaaS) có các nhà cung cấp như Google Pack. Google Pack bao gồm
các ứng dụng, các công cụ có thể sử dụng được qua Internet, như Calendar, Gmail, Google
Talk, Docs và nhiều hơn nữa.
11
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Chuyển
dịch mẫu
hình
Các đặc điểm
Các thuật
ngữ chính
Các lợi thế
Các bất lợi
và nguy cơ
Khi nào
không
nên sử
dụng
IaaS
Cơ sở hạ
tầng là tài
sản
Luôn độc lập về
nền tảng; chia sẻ
chi phí cơ sở hạ
tầng và do đó làm
giảm chi phí này;
các thỏa thuận ở
mức dịch vụ
(SLA); trả tiền
theo mức sử dụng,
tự điều chỉnh quy
mô
Điện toán
lưới, điện
toán tiện ích,
cá thể tính
toán, siêu
giám sát,
bùng nổ lên
đám mây,
điện toán
nhiều bên
thuê, phân
lượt tài
nguyên
Tránh được chi
phí vốn cho
phần cứng và
nguồn nhân
lực; giảm rủi ro
lợi tức đầu tư
(ROI); rào cản
thấp khi tham
gia vào; điều
chỉnh quy mô
tự động hóa và
trơn tru
Năng xuất và
hiệu quả kinh
doanh phụ
thuộc nhiều
vào khả năng
của nhà cung
cấp; chi phí
dài hạn có
tiềm năng lớn
hơn; sự tập
trung hóa đòi
hỏi các biện
pháp an ninh
khác hoặc mới
Khi ngân
sách vốn
lớn hơn
so với
ngân
sách hoạt
động
PaaS
Mua giấy
phép sử
dụng
Dùng cơ sở hạ
tầng đám mây;
cung cấp các
phương pháp quản
lý dự án nhanh
Chồng giải
pháp
Triển khai
phiên bản trơn
tru
Sự tập trung
hóa đòi hỏi các
biện pháp an
ninh khác hoặc
mới
Không có
SaaS
Phần mềm
là tài sản
(doanh
nghiệp và
người tiêu
dùng)
Các thỏa thuận ở
mức dịch vụ
(SLA); giao diện
người dùng do các
ứng dụng máy
khách nhẹ (thin-
client) cung cấp;
các thành phần
điện toán đám
mây qua các API;
được ghép lỏng;
theo mô đun; khả
năng tương tác
theo ngữ nghĩa
Máy khách
nhẹ; ứng
dụng khách-
chủ
Tránh được chi
phí vốn cho
phần mềm và
phát triển tài
nguyên; giảm
rủi ro lợi tức
đầu tư (ROI);
cập nhật lặp
nhiều lần và
trơn tru
Sự tập trung
hóa đòi hỏi các
biện pháp an
ninh khác hoặc
mới
Không có
Hình 1.7: Ma trận so sánh ba mô hình dịch vụ cơ bản.
12
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Hình 1.8: Mức độ kiểm soát của người sử dụng đối với ba mô hình dịch vụ cơ bản.
Hiện nay, do Điện toán đám mây phát triển nhanh chóng nên xuất hiện nhiều loại mô
hình dịch vụ Điện toán đám mây mới và xuất hiện khái niệm mọi thứ đều là dịch vụ (XaaS)
13
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Hình 1.9: Các mô hình dịch vụ Điện toán đám mây.
1.6. Trở ngại và thách thức
Bên cạnh những ưu thế và lợi điểm, Điện toán đám mây vẫn còn đó những trở ngại
cũng như thách thức cần phải giải quyết trong tương lai:
- Bảo vệ dự liệu
- Khả năng sẵn sàng và khôi phục dữ liệu
- Khả năng quản lý
- Hạn chế về luật pháp và qui định
1.7. Các công ty cung cấp Điện toán đám mây
14
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Hình 1.10: Các công ty cung cấp Điện toán đám mây.
15
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
CHƢƠNG 2: NỀN TẢNG NHƢ LÀ DỊCH VỤ
(PaaS)
2.1. PaaS là gì ?
PaaS (Platform as a Service – Nền tảng như là dịch vụ) hỗ trợ việc triển khai ứng
dụng mà không quan tâm đến chi phí hay sự phức tạp của việc trang bị và quản lý các lớp
phần cứng và phần mềm bên dưới, cung cấp tất cả các tính năng cần thiết để hỗ trợ chu trình
sống đầy đủ của việc xây dựng và cung cấp một ứng dụng và dịch vụ sẵn sàng trên môi
trường internet mà không cần bất kì thao tác tải hay cài đặt phần mềm cho những người phát
triển, quản trị hệ thống hoặc người dùng cuối.
Khi PaaS có sẵn như một dịch vụ, các nhà phát triển có thể kiểm soát toàn bộ việc
phát triển và triển khai ứng dụng . PaaS cho phép các nhà phát triển tạo ra các ứng dụng web
tùy chỉnh và phát hành nó một cách nhanh chóng, khi nhiều rắc rối như việc thiết lập hệ
thống, lưu trữ, cơ sở dữ liệu, quá trình tương tác người dùng và những nền tảng được đóng
gói.
Hình 2.1: Nền tảng như là dịch vụ.
16
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
2.2. Ƣu điểm và lợi ích
Dịch vụ nền tảng (PaaS) đang ở thời kì đầu và được ưa chuộng ở những tính năng
được ưa thích bởi nó cung cấp dịch vụ phần mềm có tích hợp các yếu tố về nền tảng hệ
thống.
Ư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 dịch 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ịch vụ, giao
diện người dùng và các yếu tố ứng dụng khác.
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.
2.3. Các đặc trƣng cơ bản
Khung công tác phát triển ứng dụng: Một khung công tác phát triển ứng dụng vững
mạnh được xây dựng trên công nghệ được sử dụng rộng rãi.
Dễ sử dụng: Một PaaS nên đi kèm với các công cụ WYSIWYG dễ sử dụng có các
tiện ích (widget) dựng sẵn, các thành phần giao diện người dùng đóng hộp, các công cụ kéo
thả, và hỗ trợ cho một số môi trường phát triển (IDE) chuẩn. Nó sẽ tạo điều kiện thuận lợi
cho việc phát triển ứng dụng lặp lại, nhanh chóng.
Các công cụ mô hình hóa quy trình nghiệp vụ (BPM): Bạn cần một khung công
tác BPM mạnh mẽ cho phép bạn mô hình hóa quy trình nghiệp vụ của mình và xây dựng
ứng dụng xung quanh nó.
Khả năng sẵn sàng: Nền tảng được chọn phải có thể truy cập được và có sẵn ở bất
cứ đâu, bất cứ lúc nào.
Khả năng mở rộng: Nền tảng này phải đủ thông minh để tận dụng khả năng co giãn
của một cơ sở hạ tầng bên dưới để xử lý các tải sẽ dùng ứng dụng.
An toàn: Để chống lại có hiệu quả các mối đe dọa, nền tảng cần giải quyết được
những thứ XSS, SQL Injection, tấn công từ chối dịch vụ (DDOS), Ngoài ra, nền tảng phải
hỗ trợ các khả năng đăng nhập một lần cho bạn để có thể tích hợp nó với các ứng dụng tại
chỗ còn lại của bạn hoặc bất kỳ ứng dụng điện toán đám mây nào khác.
Tính hòa nhập: Nền tảng này cần cung cấp khả năng để bao gồm, nhúng, và tích
hợp các ứng dụng khác đã xây dựng trên cùng nền tảng hoặc các nền tảng khác.
17
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Tính di động: Nền tảng này không cần quan tâm đến cơ sở hạ tầng bên dưới và cho
phép các công ty di chuyển ứng dụng từ IaaS này đến IaaS khác.
Các công cụ chuyển đổi: Để tạo điều kiện di chuyển dữ liệu dễ dàng và nhanh
chóng từ di sản ứng dụng tại chỗ đến ứng dụng dựa trên nền tảng mới, các công cụ chuyển
đổi nhập khẩu lớn là một phần cần thiết của bộ công cụ của nền tảng này.
API: Để thực hiện các nhiệm vụ như xác thực người dùng và lưu trữ và lấy ra các
tập tin và thậm chí đôi khi thực hiện cuộc gọi trực tiếp đến một cơ sở dữ liệu, nền tảng cần
có một API có đủ tài liệu cần thiết. Điều này sẽ cho phép hoạt động nghiệp vụ của bạn có
thể linh hoạt trong việc tạo và tùy chỉnh một ứng dụng phần mềm để giao tiếp với nền tảng,
đáp ứng các nhu cầu cụ thể của công ty.
2.4. Các thành phần và mô hình PaaS
Cách tốt nhất để hiểu PaaS là tách rời ra các thành phần chính của nó: nền tảng và
dịch vụ. Bây giờ, hãy xem xét dịch vụ được cung cấp, được gọi là chồng giải pháp. Như vậy,
việc cho rằng hai thành phần chính của PaaS là nền tảng điện toán và chồng giải pháp là hợp
lôgic.
Để minh họa hai thành phần này, chúng ta hãy xem xét kỹ hơn vào các định nghĩa
của chúng:
Một nền tảng điện toán, dưới dạng đơn giản nhất, đề cập đến một nơi mà phần mềm
có thể được khởi chạy một cách nhất quán miễn là mã đáp ứng được các tiêu chuẩn của nền
tảng đó. Các ví dụ phổ biến của các nền tảng gồm có Windows, Apple Mac OS X và Linux
cho các hệ điều hành. Google Android, Windows Mobile và Apple iOS cho điện toán di
động. Adobe AIR hay Microsoft .NET Framework cho các khung công tác phần mềm.
Hình 2.2: Các thành phần PaaS.
18
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
Một chồng giải pháp bao gồm các ứng dụng sẽ có mặt trong quá trình phát triển cũng
như triển khai ứng dụng. Các ứng dụng này dựa vào hệ điều hành, môi trường thời gian
chạy, kho kiểm soát nguồn và phần mềm trung gian cần thiết bất kỳ khác.
Hình 2.3: Mô hình PaaS.
2.5. Lựa chọn nhà cung cấp PaaS
Mỗi nhà cung cấp dịch vụ PaaS thường cung cấp các dịch vụ rất khác nhau và tuy
theo nền tảng mà nhà cung cấp đó lựa chọn hỗ trợ. Chính vì thế, khi lựa chọn một nhà cung
cấp dịch vụ PaaS chúng ta cần phải hỏi trước khi cam kết sử dụng với một nhà cung cấp
PaaS cụ thể:
- PaaS hỗ trợ các khung công tác và các ngôn ngữ nào? Lý tưởng là một PaaS nên hỗ
trợ các khung công tác bất kỳ dựa trên ngôn ngữ ưa chuộng của nền tảng đó.
- Có thể tạo ra bao nhiêu ứng dụng? Hầu hết các nhà cung cấp PaaS giới hạn số lượng
ứng dụng mà chúng ta có thể xây dựng dựa trên phương án hoặc gói chúng ta đã đăng
ký. Hãy chắc chắn rằng nhà cung cấp đưa ra một phương án hoặc gói đáp ứng các nhu
cầu của chúng ta.
19
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
- Những loại nội dung nào được phép? Các cơ sở hạ tầng hỗ trợ chào bán PaaS thường
liên quan đến khái niệm gọi là điện toán nhiều bên thuê(multi-tenant computing), ở
đây nhiều bên thuê cùng chia sẻ các quyền cư trú trên một máy chủ duy nhất, được
phân cách bằng các cá thể máy ảo do một trình siêu giám sát quản lý. Một nhà cung
cấp PaaS có thể có những hạn chế nhất định về kiểu ứng dụng và nội dung mà chúng
ta dự kiến lưu trữ trên máy chủ.
- Những loại cơ sở dữ liệu nào được hỗ trợ? Câu trả lời này là rất quan trọng nếu chúng
ta có dữ liệu muốn chuyển đến như là một phần ứng dụng của chúng ta. Chúng ta phải
chắc chắn rằng cơ sở dữ liệu theo đề xuất từ nhà cung cấp tương thích với định dạng
mà chúng ta có ý định sử dụng để nhập dữ liệu của mình.
- Có hỗ trợ SSL (HTTPS) không? Đây là một nhân tố quan trọng khác vì lý do an ninh.
Chúng ta sẽ gặp phải các vấn đề lớn nếu chúng ta dự kiến thực hiện các giao dịch
thông qua các ứng dụng của mình và chúng ta phát hiện ra rằng SSL không được hỗ
trợ.
2.6. Sự lệ thuộc vào nhà cung cấp
Sự lệ thuộc vào nhà cung cấp có nghĩa là một khách hàng phụ thuộc vào một nhà
cung cấp và không thể sử dụng nhà cung cấp khác mà không phải chịu chi phí chuyển đổi
đáng kể. Cơ hội để tạo ra một môi trường hỗ trợ sự lệ thuộc vào nhà cung cấp phát sinh cùng
với các công nghệ tương đối mới và ngày càng phổ biến, giống như điện toán đám mây. Ngay
từ bây giờ, những người sử dụng sớm đi theo điện toán đám mây phải nhận thức được họ
đang tự đẩy mình tới đâu trước khi ký kết bất kỳ các thỏa thuận IaaS và PaaS dài hạn nào.
Một cách để tránh sự lệ thuộc là thông qua tiêu chuẩn hóa các API và các công nghệ
nền tảng. Các tổ chức ví dụ như Simple Cloud đã bắt đầu làm việc với các nhà cung cấp mọi
tầm cỡ để tham gia vào dự án mã nguồn mở này nhằm mang lại tính nhất quán với PHP trong
đám mây. Để tạo ra Simple Cloud, Zend Technologies, Microsoft, IBM, và Rackspace đã
cùng hợp tác với mục tiêu cung cấp một tầng trừu tượng trên nhiều nền tảng khác nhau.
Mục tiêu của Simple Cloud API là tạo ra các giao diện chung để lưu trữ tệp, lưu trữ
tài liệu và các dịch vụ xếp hàng đơn giản. Điều này sẽ cho phép bạn viết các ứng dụng di
động qua lại giữa các nhà cung cấp điện toán đám mây lớn. Các nhà cung cấp, những người
đang đưa ra các sáng kiến như vậy để chuẩn hóa điện toán đám mây cần được khen thưởng vì
làm việc này và cần được khuyến khích tiếp tục những nỗ lực ấy. Khi chọn một nhà cung cấp
để cung cấp cho công ty của bạn các dịch vụ PaaS, tôi mạnh mẽ khuyến cáo nên xem xét kỹ
các nhà cung cấp có hỗ trợ tiêu chuẩn hóa. Các tiêu chuẩn làm cho cuộc sống dễ dàng hơn
20
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
cho tất cả chúng ta trong lĩnh vực CNTT, và quan trọng nhất, chúng tiết kiệm tiền cho doanh
nghiệp.
Để giải thoát thị trường PaaS khỏi các khả năng lệ thuộc nhà cung cấp, cần có các nhà
cung cấp dịch vụ hỗ trợ cùng một API bên dưới. Câu trả lời rất đơn giản: Các nhà cung cấp
dịch vụ những người bám chặt vào các công nghệ độc quyền phải đồng ý hỗ trợ các sáng kiến
tiêu chuẩn hóa như Simple Cloud.
21
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
CHƢƠNG 3: GOOGLE APP ENGINE
3.1. Google App Engine là gì ?
Google App Engine (gọi tắt là GAE hay App Engine) là một môi trường phát triển
ứng dụng dựa trên công nghệ điện toán đám mây. Ở đó Google 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, 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.
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.
3.2. Kiến trúc hoạt động
Hình 3.1: Kiến trúc hoạt động của Google App Engine.
22
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
3.3. Các thành phần và chức năng chính
3.3.1. Môi trƣờng thực thi (Runtime environment)
Google App Engine cung cấp bốn môi trường thực thi tốt cho các ứng dụng. Đó là
Java, Python, PHP và 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.
Cả bốn môi trường Java, Python, PHP và Go đề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.
3.3.2. Tập tin server tĩnh (Static file servers)
Hầu hết các trang web có một số tài nguyên mà chúng chuyển đến các trình duyệt
không thay đổi trong suốt hoạt động. Ví dụ như các hình ảnh và các tập tin CSS hỗ trợ hiển
thị của trang, các đoạn mã Javascript chạy trên trình duyện, và các tập tin HTML tĩnh. Vì
việc gửi những tập tin này không cần đến việc gọi mã của ứng dụng, nói cách khác, việc này
không cần thiết, làm giảm hiện quả làm việc của các server ứng dụng.
Vì thế Google 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 tập tin tĩnh này. Những server nói trên tối ưu hóa cho kiến trúc bên trong và
hạ tầng mạng để xử lý các yêu cầu cho các tài nguyên tĩnh. Đối với client, các tập tin tĩnh
này cũng giống như các tài nguyên khác được cung cấp bởi ứng dụng của chúng ta.
3.3.3. Kho dữ liệu (Datastore)
Hệ thống Cơ sở dữ liệu của Google App Engine gần giống như một đối tượng Cơ sở
dữ liệu. Thiết kế của Google App Engine Datastore chỉ là trừu tượng để cho Google App
Engine có thể xử lý việc phân tán và co giãn các ứng dụng. Chính vì thế trong các đoạn mã
của chúng ta sẽ quan tâm đến những thứ khác được nêu sau đây:
- Thực thể (Entities) và Thuộc tính (Properties)
- Truy vấn (Queries) và Chỉ mục (Indexes)
- Phiên giao dịch (Transaction)
- Các dịch vụ (Services)
3.3.4. Tài khoản Google
Các chức năng của Google App Engine tích hợp trong các tài khoản của Google như
Google Mail, Google Docs và Google Calendar. Chúng ta có thể sử dụng tài khoản trên
Google như cho các ứng dụng của chúng ta, do đó không cần thiết lập thêm. Và nếu người
23
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
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 trong ứ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 nhà cung cấp OpenID.
3.3.5. Công cụ lập trình
Google cung cấp một số công cụ miễn phí cho việc phá triển ứng dụng Google App
Engine bằng ngôn ngữ Java và Python, PHP và Go. Chúng ta có thể tải các bộ công cụ phát
triển (SDK) cho ngôn ngữ tương ứng và hệ điều hành của chúng ta từ trang web của Google.
Mỗi SDK bao gồm một web server 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 dịch vụ. Server này tự động phát hiện
những thay đổi trong mã nguồn và tải 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.
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
Google App Engine. Chủ yếu là sử dụng cho việc đưa code lên Google App Engine. Chúng
ta cũng có thể sử dụng công cụ để tải các tập tin log từ ứng dụng đang chạy, hoặc quản lý
danh mục ứng dụng.
3.4. Hạn chế
- Các tập tin khi lưu trữ trên Google App Engine chỉ có thể đọc xóa (không sửa chữa).
- Google 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 Python ngoài các thư viện
được cung cấp bởi Google App Engine nhưng phải là các thư viện viết bằng
python C và Pyrex không được hỗ trợ.
- Các ứng dụng Java chỉ sử dụng được tập 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 trên Google App Engine mà phải là .
- Datastore không lọc (filter) được hai thuộc tính cùng một lúc.
24
Điện Toán Đám Mây: Nền Tảng Dịch Vụ và Google App Engine
TÀI LIỆU THAM KHẢO
[1].
[2].
[3].
[4].
/>tml
[5].
[6].
[7].
[8].
[9]. />computing-stack-saas-paas-iaas